一种连续功能图编程方法技术

技术编号:18575610 阅读:224 留言:0更新日期:2018-08-01 10:37
本发明专利技术涉及一种连续功能图编程方法,包括:在建立连续功能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;以及在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯一的,相同的周期性任务具有相同的任务类型。

A programming method for continuous function graph

The invention relates to a continuous function graph programming method, which includes determining the number of periodic tasks when building a continuous function diagram CFC project; specifying a scheduling cycle for each periodic task; and specifying the task type and execution sequence numbers for each function block when programming the continuous function graph, which is the task described. The type is unique, and the same periodic task has the same task type.

【技术实现步骤摘要】
一种连续功能图编程方法
本专利技术涉及一种工业控制编程方法,特别地涉及连续功能图编程方法。
技术介绍
连续功能图(CFC-ContinuousFunctionChart)是一种图形化编程语言。连续功能图编程具有以下特点:(1)通过绘制功能图表来自动生成程序;(2)拥有强大的预制程序库;(3)通过简单的连线来降低开发成本并减少错误。连续功能图不仅仅具有可编程逻辑控制器PLC(ProgrammableLogicController)典型的元素,例如:输入/输出、定时器、计数器、符号表等,而且具有图形化编程语言语言的特性,其非常适合于过程控制和系统工程。CFC源于IEC61131-3标准规定,是五种编程语言之一的功能块图(FunctionBlockDiagram)。连续功能图与功能块图的主要特点在于其展示出了其隶属的资源与任务。虽然连续功能图并没有相关国际标准,但在工业控制领域被广泛使用。然而,连续功能图CFC编程不够灵活,无法满足用户在工业控制方面的实际需要,因此,非常有必要提供一种更为灵活的连续功能图CFC编程方法。
技术实现思路
针对以上技术问题,本申请提出了一种连续功能图编程方法,包括:在建立连续功能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;以及在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯一的,相同的周期性任务具有相同的任务类型。如上所述的方法,进一步包括:在编译连续功能图程序时,按照任务型生成任务函数,并且在每个任务函数中按执行顺序编号放置功能块代码。如上所述的方法,进一步包括:通过连续功能图编译器将连续功能图编译成可被目标机调度核识别的可执行代码。如上所述的方法,进一步包括:在目标机上按照所述任务类型建立对应的线程。如上所述的方法,其中,包括目标机上包括多个线程,且所述多个线程具有各自的优先级,其中高优先级的线程可以中断低优先级的线程而先执行。如上所述的方法,其中,调度周期越短的周期性任务对应的线程的优先级越高。如上所述的方法,其中,所述周期性任务的数量为8或8的幂次个。如上所述的方法,其中,所述任务类型与调度周期相对应。如上所述的方法,其中,各个线程会在调度时间到时调用相应的周期任务函数。如上所述的方法,其中,各个线程在其触发条件成立时启动。附图说明下面,将结合附图对本专利技术的优选实施方式进行进一步详细的说明,其中:图1是根据本专利技术的一个实施例的连续功能图CFC编程的方法示意图;图2是根据本专利技术的一个实施例的CFC编程中周期任务的示意图;图3是根据本专利技术的一个实施例的CFC编程中创建周期任务的示意图;图4a是根据本专利技术的一个实施例的用于连续功能图编程的修改功能块输出连接器初始值方法;图4b是根据本专利技术的一个实施例的多输出变量的实现方法的示意图;图5a是根据本专利技术的一个实施例在CFC编程中设置物理量M的流程图;图5b是根据本专利技术的一个实施例在CFC编程中对物理量M进行观测时的流程图;图6是根据本专利技术的一个实施例的连续功能图文件比较的差异处理流程图;以及图7是根据本专利技术的一个实施例的连续功能图文件差异的图形化展示示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。连续功能图CFC包括多个功能块。每个功能块能够实现一个简单的逻辑功能。通过将不同的功能块的输入连接器和输出连接器进行连接,连续功能图CFC编程可以实现复杂的逻辑功能控制。具体而言,连续功能图CFC的编程界面为图形界面。在该图形界面中包含了若干个图表(Chart)。用户在图表Chart中以图形的方式插入已经编制好的块,指定这些块之间的连接关系,或者为这些块分配输入/输出地址。在这种通过鼠标点击托拽的方式完成项目编写后,用户即可进行编译。接下来,CFC程序将被整体编译,编译的结果以SCL代码的形式出现,最终将生成STL代码。用户将这些代码下载到PLC中即可执行。在连续功能图CFC编程中,对于不同调度时间的功能块,将其分配在不同的周期调度任务中,每个周期调度任务设置为固定的调度周期,实现功能块的多周期调度任务控制。在同一张功能图中,相同调度周期的功能块被分配固定的执行顺序。在多张连续功能图中,相同调度周期的功能块按照连续功能图的顺序进行执行。在现有的连续功能图CFC编程中,功能块都是按照周期任务进行调度的。这显然不够灵活,因为某些应用中部分功能块只需要在周期任务调度之前被执行一次,并不要进行周期调度。为了实现单次调度,并保证不同连续功能图之间的相互配合,根据本专利技术的一个实施例,提出了一种带多级预置类任务的连续功能图。举例而言,对于两级预置任务的功能图,在开始执行周期任务之前,先执行两级预置类任务,从而使得连续功能图CFC编程更具有灵活性。图1是根据本专利技术的一个实施例的连续功能图CFC编程的方法示意图。如图1所述,方法100包括:在程序开始101后,在步骤102,执行连续功能图1中的预置值类任务1功能块,然后在步骤103依次执行连续功能图2中的预置值类任务1的功能块、……、以此类推,直到步骤104,执行连续功能图(k-1)中的预置值类任务1的功能块以及在步骤105执行连续功能图k中的预置值类任务1的功能块,其中k是连续功能图的数量。在预置值类任务1全部执行完之后,在步骤106,执行连续功能图1中的预置值类任务2功能块、在步骤107执行连续功能图2中的预置值类任务2功能块、……、以此类推,直到步骤108执行连续功能图(k-1)中的预置值类任务2的功能块以及步骤109连续功能图k中的预置值类任务2的功能块,其中k为连续功能图工程中连续功能图的数量。预置值类任务2全部执行完之后,在步骤110开始执行周期类任务。本专利技术以上的实例提出了一种带两级预置类任务的连续功能图编程方法。在周期任务开始执行之前,执行两级预置类任务,可以大大节省目标控制器的硬件资源,并且极大地提高连续功能图编程的灵活性。根据本专利技术的另一个实施例,对于周期任务而言,本专利技术的连续功能图编程可变数量的周期任务。现有的支持连续功能图编程的产品都将周期任务数量都是固定的,一般在5个以内。然而,这种对于周期任务的限制极大地制约了软件开发的灵活性,而太多的周期任务数又会浪费系统资源。在本专利技术的一个实例中,连续功能图编程中的周期性任务的数量是可变的,而且是有优先级的。高优先级任务可以占先执行,即可以打断低优先级任务而先执行。通常,调度周期越短的任务优先级越高。图2是根据本专利技术的一个实施例的CFC编程中周期任务的示意图。如图2所示,对于每一个功能模块FB(FunctionBlock)而言,其包括以下几个参数:实例名、类型FBTYPE、输入IN和输出OUT。多个FB的输入IN和输出OUT相互连接形成周期任务。例如,在图2中连续功能图中共有8个独立的FB串,每个FB串代表一个周期任务,因此,图2的实例中周期任务数为8个。进一步地,每个周期任务可以包括不同数量的FB。例本文档来自技高网...

【技术保护点】
1.一种连续功能图编程方法,包括:在建立连续功能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;以及在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯一的,相同的周期性任务具有相同的任务类型。

【技术特征摘要】
1.一种连续功能图编程方法,包括:在建立连续功能图CFC工程时,确定周期性任务的数量;为各个周期性任务指定调度周期;以及在使用连续功能图编程时,为每个功能块FB指定任务类型和执行顺序编号,其中所述任务类型是唯一的,相同的周期性任务具有相同的任务类型。2.根据权利要求1所述的方法,进一步包括:在编译连续功能图程序时,按照任务型生成任务函数,并且在每个任务函数中按执行顺序编号放置功能块代码。3.根据权利要求2所述的方法,进一步包括:通过连续功能图编译器将连续功能图编译成可被目标机调度核识别的可执行代码。4.根据权利要求3所述的方法,进一步包括:在目标机...

【专利技术属性】
技术研发人员:谢冰若郑雪洋夏菲高吉磊
申请(专利权)人:北京纵横机电技术开发公司中国铁道科学研究院机车车辆研究所
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1