一种连续功能图文件的比较方法
【技术领域】
[0001] 本发明涉及一种工业控制编程方法,特别地涉及连续功能图文件的比较方法。
【背景技术】
[0002] 连续功能图(CFC-ContinuousFunctionChart)是一种图形化编程语言。连续 功能图编程具有以下特点:(1)通过绘制功能图表来自动生成程序;(2)拥有强大的预制程 序库;(3)通过简单的连线来降低开发成本并减少错误。连续功能图不仅仅具有可编程逻 辑控制器PLC(ProgrammableLogicController)典型的元素,例如:输入/输出、定时器、 计数器、符号表等,而且具有图形化编程语言语言的特性,其非常适合于过程控制和系统工 程。CFC源于IEC61131-3标准规定,是五种编程语言之一的功能块图(FunctionBlock Diagram)。连续功能图与功能块图的主要特点在于其展示出了其隶属的资源与任务。虽然 连续功能图并没有相关国际标准,但在工业控制领域被广泛使用。
[0003] 然而,连续功能图CFC编程不够灵活,无法满足用户在工业控制方面的实际需要, 因此,非常有必要提供一种更为灵活的连续功能图CFC编程方法。
【发明内容】
[0004] 针对以上技术问题,本申请提出了一种连续功能图文件的比较方法,包括:提取第 一连续功能图文件中所有的程序页、功能块、信号、注释块、连接信息,组织成易于快速搜索 的、已排序的内部数据表;提取第二连续功能图文件中所有的程序页、功能块、信号、注释 块、连接信息,组织成易于快速搜索的、已排序的内部数据表;遍历第一和第二连续功能图 文件的所述内部数据表,搜索第一和第二连续功能图文件的所述内部数据表的差异;以及 输出差异信息表。
[0005] 如上所述的方法,其中第一或第二连续功能图文件的所述内部数据表中包括多个 对象,每个对象都带有特征字符串,其中功能块与注释块的特征字符串为块名,信号的特征 字符串为信号名,连接的特征字符串为连接起点对象名加终点对象名。
[0006] 如上所述的方法,其中所述搜索包括在第一或第二连续功能图文件的所述内部数 据表中搜索特征字符串相同的对象,并进一步比较其对象信息。
[0007] 如上所述的方法,其中如果特征字符串仅在第一或第二连续功能图文件的所述内 部数据表中存在的对象,直接判定所述对象为差异对象。
[0008] 如上所述的方法,所述第一或第二连续功能图文件满足以下条件:连续功能图文 件中的功能块名具有唯一性,即无重名的功能块;连续功能图中的信号名具有唯一性,即无 重名的信号;以及连续功能图中每个任务里的功能块执行顺序号具有唯一性,即在同一个 任务中无序号相同的两个功能块。
[0009] 如上所述的方法,其中对于第一或第二连续功能图文件的所述内部数据表中每个 对象,记录该对象所在页码与坐标信息。
[0010] 如上所述的方法,其中所述差异信息表包括差异索引,其用于定位差异的页码和 坐标。
[0011] 如上所述的方法,其中所述差异索引是所述差异的编号。
[0012] 如上所述的方法,其中如果所述差异为不存在对应的对象,则差异索引定义为-1。
[0013] 如上所述的方法,进一步包括:根据所述差异索引确定需要向用户显示的内容,并 突出显示该差异对应的对象。
【附图说明】
[0014] 下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
[0015] 图1是根据本发明的一个实施例的连续功能图CFC编程的方法示意图;
[0016] 图2是根据本发明的一个实施例的CFC编程中周期任务的示意图;
[0017] 图3是根据本发明的一个实施例的CFC编程中创建周期任务的示意图;
[0018] 图4a是根据本发明的一个实施例的用于连续功能图编程的修改功能块输出连接 器初始值方法;
[0019] 图4b是根据本发明的一个实施例的多输出变量的实现方法的示意图;
[0020] 图5a是根据本发明的一个实施例在CFC编程中设置物理量M的流程图;
[0021] 图5b是根据本发明的一个实施例在CFC编程中对物理量M进行观测时的流程图;
[0022] 图6是根据本发明的一个实施例的连续功能图文件比较的差异处理流程图;以及
[0023] 图7是根据本发明的一个实施例的连续功能图文件差异的图形化展示示意图。
【具体实施方式】
[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 连续功能图CFC包括多个功能块。每个功能块能够实现一个简单的逻辑功能。通 过将不同的功能块的输入连接器和输出连接器进行连接,连续功能图CFC编程可以实现复 杂的逻辑功能控制。
[0026] 具体而言,连续功能图CFC的编程界面为图形界面。在该图形界面中包含了若干 个图表(Chart)。用户在图表Chart中以图形的方式插入已经编制好的块,指定这些块之间 的连接关系,或者为这些块分配输入/输出地址。在这种通过鼠标点击托拽的方式完成项 目编写后,用户即可进行编译。接下来,CFC程序将被整体编译,编译的结果以SCL代码的 形式出现,最终将生成STL代码。用户将这些代码下载到PLC中即可执行。
[0027] 在连续功能图CFC编程中,对于不同调度时间的功能块,将其分配在不同的周期 调度任务中,每个周期调度任务设置为固定的调度周期,实现功能块的多周期调度任务控 制。在同一张功能图中,相同调度周期的功能块被分配固定的执行顺序。在多张连续功能 图中,相同调度周期的功能块按照连续功能图的顺序进行执行。
[0028] 在现有的连续功能图CFC编程中,功能块都是按照周期任务进行调度的。这显然 不够灵活,因为某些应用中部分功能块只需要在周期任务调度之前被执行一次,并不要进 行周期调度。
[0029] 为了实现单次调度,并保证不同连续功能图之间的相互配合,根据本发明的一个 实施例,提出了一种带多级预置类任务的连续功能图。举例而言,对于两级预置任务的功能 图,在开始执行周期任务之前,先执行两级预置类任务,从而使得连续功能图CFC编程更具 有灵活性。
[0030] 图1是根据本发明的一个实施例的连续功能图CFC编程的方法示意图。如图1所 述,方法100包括:在