一种连续功能图编程方法

文档序号:6640886阅读:150来源:国知局
一种连续功能图编程方法
【专利摘要】本发明涉及一种连续功能图编程方法,包括:在建立连续功能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;以及在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯一的,相同的周期性任务具有相同的任务类型。
【专利说明】-种连续功能图编程方法

【技术领域】
[0001] 本发明设及一种工业控制编程方法,特别地设及连续功能图编程方法。

【背景技术】
[0002] 连续功能图(CFC-Continuous F^mction Qiart)是一种图形化编程语言。连续 功能图编程具有W下特点;(1)通过绘制功能图表来自动生成程序;(2)拥有强大的预制程 序库;(3)通过简单的连线来降低开发成本并减少错误。连续功能图不仅仅具有可编程逻 辑控制器化C(Programm油le Logic Controller)典型的元素,例如;输入/输出、定时器、 计数器、符号表等,而且具有图形化编程语言语言的特性,其非常适合于过程控制和系统工 程。CFC源于IEC 61131-3标准规定,是五种编程语言之一的功能块图(punction Block Diagram)。连续功能图与功能块图的主要特点在于其展示出了其隶属的资源与任务。虽然 连续功能图并没有相关国际标准,但在工业控制领域被广泛使用。
[0003] 然而,连续功能图CFC编程不够灵活,无法满足用户在工业控制方面的实际需要, 因此,非常有必要提供一种更为灵活的连续功能图CFC编程方法。


【发明内容】

[0004] 针对W上技术问题,本申请提出了一种连续功能图编程方法,包括;在建立连续功 能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;W及在使用连 续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯 一的,相同的周期性任务具有相同的任务类型。
[0005] 如上所述的方法,进一步包括:在编译连续功能图程序时,按照任务型生成任务函 数,并且在每个任务函数中按执行顺序编号放置功能块代码。
[0006] 如上所述的方法,进一步包括;通过连续功能图编译器将连续功能图编译成可被 目标机调度核识别的可执行代码。
[0007] 如上所述的方法,进一步包括;在目标机上按照所述任务类型建立对应的线程。 [000引如上所述的方法,其中,包括目标机上包括多个线程,且所述多个线程具有各自的 优先级,其中高优先级的线程可W中断低优先级的线程而先执行。
[0009] 如上所述的方法,其中,调度周期越短的周期性任务对应的线程的优先级越高。
[0010] 如上所述的方法,其中,所述周期性任务的数量为8或8的幕次个。
[0011] 如上所述的方法,其中,所述任务类型与调度周期相对应。
[0012] 如上所述的方法,其中,各个线程会在调度时间到时调用相应的周期任务函数。
[0013] 如上所述的方法,其中,各个线程在其触发条件成立时启动。

【专利附图】

【附图说明】
[0014] 下面,将结合附图对本发明的优选实施方式进行进一步详细的说明,其中:
[0015] 图1是根据本发明的一个实施例的连续功能图CFC编程的方法示意图;
[0016] 图2是根据本发明的一个实施例的CFC编程中周期任务的示意图;
[0017] 图3是根据本发明的一个实施例的CFC编程中创建周期任务的示意图;
[0018] 图4a是根据本发明的一个实施例的用于连续功能图编程的修改功能块输出连接 器初始值方法;
[0019] 图4b是根据本发明的一个实施例的多输出变量的实现方法的示意图;
[0020] 图5a是根据本发明的一个实施例在CFC编程中设置物理量M的流程图;
[0021] 图化是根据本发明的一个实施例在CFC编程中对物理量M进行观测时的流程图;
[0022] 图6是根据本发明的一个实施例的连续功能图文件比较的差异处理流程图拟及
[0023] 图7是根据本发明的一个实施例的连续功能图文件差异的图形化展示示意图。

【具体实施方式】
[0024] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 连续功能图CFC包括多个功能块。每个功能块能够实现一个简单的逻辑功能。通 过将不同的功能块的输入连接器和输出连接器进行连接,连续功能图CFC编程可W实现复 杂的逻辑功能控制。
[0026] 具体而言,连续功能图CFC的编程界面为图形界面。在该图形界面中包含了若干 个图表(化art)。用户在图表化art中W图形的方式插入已经编制好的块,指定该些块之间 的连接关系,或者为该些块分配输入/输出地址。在该种通过鼠标点击托拽的方式完成项 目编写后,用户即可进行编译。接下来,CFC程序将被整体编译,编译的结果WS化代码的 形式出现,最终将生成S化代码。用户将该些代码下载到化C中即可执行。
[0027] 在连续功能图CFC编程中,对于不同调度时间的功能块,将其分配在不同的周期 调度任务中,每个周期调度任务设置为固定的调度周期,实现功能块的多周期调度任务控 审IJ。在同一张功能图中,相同调度周期的功能块被分配固定的执行顺序。在多张连续功能 图中,相同调度周期的功能块按照连续功能图的顺序进行执行。
[002引在现有的连续功能图CFC编程中,功能块都是按照周期任务进行调度的。该显然 不够灵活,因为某些应用中部分功能块只需要在周期任务调度之前被执行一次,并不要进 行周期调度。
[0029] 为了实现单次调度,并保证不同连续功能图之间的相互配合,根据本发明的一个 实施例,提出了一种带多级预置类任务的连续功能图。举例而言,对于两级预置任务的功能 图,在开始执行周期任务之前,先执行两级预置类任务,从而使得连续功能图CFC编程更具 有灵活性。
[0030] 图1是根据本发明的一个实施例的连续功能图CFC编程的方法示意图。如图1所 述,方法100包括;在程序开始101后,在步骤102,执行连续功能图1中的预置值类任务1 功能块,然后在步骤103依次执行连续功能图2中的预置值类任务1的功能块、……、^此 类推,直到步骤104,执行连续功能图化-1)中的预置值类任务1的功能块W及在步骤105 执行连续功能图k中的预置值类任务1的功能块,其中k是连续功能图的数量。在预置值 类任务1全部执行完之后,在步骤106,执行连续功能图1中的预置值类任务2功能块、在步 骤107执行连续功能图2中的预置值类任务2功能块、……、W此类推,直到步骤108执行 连续功能图化-1)中的预置值类任务2的功能块W及步骤109连续功能图k中的预置值类 任务2的功能块,其中k为连续功能图工程中连续功能图的数量。预置值类任务2全部执 行完之后,在步骤110开始执行周期类任务。
[0031] 本发明W上的实例提出了一种带两级预置类任务的连续功能图编程方法。在周期 任务开始执行之前,执行两级预置类任务,可W大大节省目标控制器的硬件资源,并且极大 地提高连续功能图编程的灵活性。
[0032] 根据本发明的另一个实施例,对于周期任务而言,本发明的连续功能图编程可变 数量的周期任务。现有的支持连续功能图编程的产品都将周期任务数量都是固定的,一般 在5个W内。然而,该种对于周期任务的限制极大地制约了软件开发的灵活性,而太多的周 期任务数又会浪费系统资源。
[0033] 在本发明的一个实例中,连续功能图编程中的周期性任务的数量是可变的,而且 是有优先级的。局优先级任务可W占先执行,即可W打断低优先级任务而先执行。通常,调 度周期越短的任务优先级越高。
[0034] 图2是根据本发明的一个实施例的CFC编程中周期任务的示意图。如图2所 示,对于每一个功能模块FB (化net ion Block)而言,其包括W下几个参数;实例名、类型 FBTYPE、输入IN和输出OUT。多个FB的输入IN和输出OUT相互连接形成周期任务。例如, 在图2中连续功能图中共有8个独立的FB串,每个FB串代表一个周期任务,因此,图2的 实例中周期任务数为8个。
[0035] 进一步地,每个周期任务可W包括不同数量的FB。例如,在第一个周期任务中包 括n个FB,分别为FBl-FBn ;第二个周期任务中包括3个FB,分别为FBA-FBC。其中,每个 FB具有一个执行顺序编号,其为正整数,代表在该FB在该周期任务中的执行顺序。其中,每 个FB还具有一个任务类型,其代表了其所在的周期任务的编号。在本发明的实例中,W上 的各个参数和编号可W灵活设置,W根据实际需求,获得CFC编程的灵活性。在图2的实例 中,在连续功能图编辑器中可为每个功能块指定任务类型(T1-T8)和执行顺序编号。例如 图中1功能块FBUFB2……FBn隶属于T1任务,它们的执行顺序编号依次为1、2……n。其 他T2-T8任务与T1任务类似。
[0036] 图3是根据本发明的一个实施例的CFC编程中创建周期任务的示意图。首先,在 步骤301中,在建立连续功能图CFC工程时,确定周期任务的数量,并且确定任务类型。W 图2所示的实施例为例,即创建T1-T8的8个任务类型。
[0037] 接下来,在步骤302中,为T1-T8任务指定调度周期。在步骤303中,在使用连续功 能图编程时,为每个功能块FB指定T1-T8中的一个任务类型和执行顺序编号。在步骤304 中,在编译连续功能图程序时,按照任务类别生成T1-T8任务函数,每个任务函数中按执行 顺序编号放置功能块代码。
[003引 W下是图2的实施例的程序实例,仅用W说明本发明的技术方案。
[0039]

【权利要求】
1. 一种连续功能图编程方法,包括: 在建立连续功能图CFC工程时,确定周期性任务的数量; 为各个周期性任务指定调度周期;以及 在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述 任务类型是唯一的,相同的周期性任务具有相同的任务类型。
2. 根据权利要求1所述的方法,进一步包括:在编译连续功能图程序时,按照任务型生 成任务函数,并且在每个任务函数中按执行顺序编号放置功能块代码。
3. 根据权利要求2所述的方法,进一步包括:通过连续功能图编译器将连续功能图编 译成可被目标机调度核识别的可执行代码。
4. 根据权利要求3所述的方法,进一步包括:在目标机上按照所述任务类型建立对应 的线程。
5. 根据权利要求4所述的方法,其中,包括目标机上包括多个线程,且所述多个线程具 有各自的优先级,其中高优先级的线程可以中断低优先级的线程而先执行。
6. 根据权利要求5所述的方法,其中,调度周期越短的周期性任务对应的线程的优先 级越高。
7. 根据权利要求1所述的方法,其中,所述周期性任务的数量为8或8的幂次个。
8. 根据权利要求1所述的方法,其中,所述任务类型与调度周期相对应。
9. 根据权利要求4所述的方法,其中,各个线程会在调度时间到时调用相应的周期任 务函数。
10. 根据权利要求4所述的方法,其中,各个线程在其触发条件成立时启动。
【文档编号】G06F9/44GK104503765SQ201410851749
【公开日】2015年4月8日 申请日期:2014年12月31日 优先权日:2014年12月31日
【发明者】郑雪洋, 夏菲, 高吉磊, 谢冰若, 马驰, 殷振环, 马志文, 李伟 申请人:北京纵横机电技术开发公司, 中国铁道科学研究院机车车辆研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1