一种plc顺序功能流程图语言实现系统及实现方法
技术领域
1.本发明涉及一种plc顺序功能流程图语言实现系统及实现方法,属于plc可编程控制技术领域。
背景技术:2.顺序功能流程图编程语言是描述控制系统的控制过程、功能和特性的一种图形语言,是描述顺序控制过程的一种有力工具,一般应用在plc控制系统中。
3.根据国际电工委员会制定的工业控制编程语言标准(iec61131-3),plc编程语言包含以下五种:梯形图语言(ld)、指令表语言(il)、功能模块图语言(fbd)、顺序功能流程图语言(sfc)和结构化文本(st)。针对各种编程语言的实现方法,iec61131-3中并没有详细的规定。比如顺序功能流程图语言,只对顺序功能流程图的组成元素做了描述,一个顺序控制过程,可分为若干个状态(步),状态与状态之间由转换分隔,每个状态具有plc执行的不同动作,当相邻状态之间的转换条件满足时,就实现状态的转换,即上一个状态的动作结束,下一个状态的动作开始,顺序功能流程图的组成如图4所示。
4.iec60848给出了顺序功能表图用grafcet语言规范,但并没有提出实现grafcet语言规范的方法。
技术实现要素:5.本发明的目的在于克服现有技术中的不足,提供一种plc顺序功能流程图语言实现系统及实现方法,以功能为主线,按功能流程顺序设计程序,程序语言和流程描述非常相似,实现所见即所得的顺序功能流程图程序。
6.为达到上述目的,本发明是采用下述技术方案实现的:
7.第一方面,本发明提供了一种plc顺序功能流程图语言实现系统,包括:
8.流程图编辑系统,用于和用户进行交互,提供图像编辑环境;
9.语法检查模块,用于对编辑系统输出的图形对象数据集文件进行语法、逻辑检查;
10.转换模块,用于把通过了语法、逻辑检查后的数据文件转换成中间文本;
11.汇编系统,用于把中间文本和plc需要的其他信息连接起来并经过译码形成plc可识别的目标文件;
12.程序传送系统,用于实现上下位机之间的网络通信,包括目标程序的上传、下载。
13.进一步的,所述中间文本为低级的描述性文件。
14.第二方面,本发明提供一种根据前述任一项所述的plc顺序功能流程图语言实现系统的实现方法,包括:
15.流程图编辑系统生成图像数据集;
16.语法检查模块遍历该数据集;
17.转换模块通过遍历该数据集输出中间文本文件;
18.汇编系统把所述中间文本文件和plc需要的其他信息连接起来并经过译码形成
plc可识别的目标文件;
19.程序传送系统将所述目标文件下载到plc,其中,plc读取目标文件后按照目标文件中的指令进行执行。
20.进一步的,所述流程图编辑系统生成的图形数据集中包括:开始步对象实例、结束步对象实例、执行步对象实例、条件步对象实例、跳转步对象实例以及有向连线对象实例,每一个对象实例都包括多个特征值。
21.进一步的,所述多个特征值包括:执行指令类型、指令表达式、位置、显示颜色、输入对象、输出对象的中的一种或多种。
22.进一步的,所述开始步对象实例和结束步对象实例用来表示顺序控制流程的开始和结束,一个顺序功能流程图程序必须且只能包含一个开始步对象实例;执行步对象实例规定了顺序控制流程每一步要执行的指令,指令是一段计算或一条命令;条件步对象实例规定了顺序控制流程从上一执行步到下一执行步的转换条件;跳转步对象实例规定了顺序控制流程将要跳转的步号。
23.进一步的,所述语法检查模块遍历该数据集,包括:
24.对数据集中各个对象按顺序功能进行排序;
25.对数据集中表达式特征值进行语法合法性检查。
26.进一步的,所述对数据集中各个对象按顺序功能进行排序,包括:
27.找到开始步对象实例,其中,开始步对象实例没有输入对象,只有输出对象;
28.根据开始步对象实例的特征值中的输出对象找到有向连线,根据编辑系统编写的流程图程序,有向连线对象实例的输出对象可以是执行步对象实例,或条件步对象实例,或跳转步对象实例,依次类推,直到找到结束步对象实例。
29.进一步的,所述plc可识别的目标文件包括:plc需要的如变量声明、函数声明信息以及一条条plc可以识别的指令。
30.与现有技术相比,本发明所达到的有益效果:
31.本发明提供一种plc顺序功能流程图语言实现系统,以功能为主线,按功能流程顺序设计程序,程序语言和流程描述非常相似,实现所见即所得的顺序功能流程图程序,条理清楚,编程简单易懂、缩短了工程设计、调试和维修时间,节约了人力成本,提高了经济效益。
附图说明
32.图1是本发明实施例提供的顺序功能流程图语言元素类的派生关系图;
33.图2是本发明实施例提供的顺序功能流程图语言编程系统框架图;
34.图3是本发明实施例提供的应用实例程序图。
35.图4是本发明背景技术中顺序功能流程图的组成示意图。
具体实施方式
36.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
37.实施例1
38.本实施例介绍一种plc顺序功能流程图语言实现系统,包括:
39.流程图编辑系统,用于和用户进行交互,提供图像编辑环境;
40.语法检查模块,用于对编辑系统输出的图形对象数据集文件进行语法、逻辑检查;
41.转换模块,用于把通过了语法、逻辑检查后的数据文件转换成中间文本;所述中间文本为低级的描述性文件;
42.汇编系统,用于把中间文本和plc需要的其他信息连接起来并经过译码形成plc可识别的目标文件;
43.程序传送系统,用于实现上下位机之间的网络通信,包括目标程序的上传、下载。
44.实施例2
45.本实施例提供一种根据前述任一项所述的plc顺序功能流程图语言实现系统的实现方法,包括:
46.流程图编辑系统生成图像数据集;
47.语法检查模块遍历该数据集;
48.转换模块通过遍历该数据集输出中间文本文件;
49.汇编系统把所述中间文本文件和plc需要的其他信息连接起来并经过译码形成plc可识别的目标文件;
50.程序传送系统将所述目标文件下载到plc,其中,plc读取目标文件后按照目标文件中的指令进行执行。
51.具体的,所述流程图编辑系统生成的图形数据集中包括:开始步对象实例、结束步对象实例、执行步对象实例、条件步对象实例、跳转步对象实例以及有向连线对象实例,每一个对象实例都包括多个特征值。
52.具体的,所述多个特征值包括:执行指令类型、指令表达式、位置、显示颜色、输入对象、输出对象的中的一种或多种。
53.具体的,所述开始步对象实例和结束步对象实例用来表示顺序控制流程的开始和结束,一个顺序功能流程图程序必须且只能包含一个开始步对象实例;执行步对象实例规定了顺序控制流程每一步要执行的指令,指令是一段计算或一条命令;条件步对象实例规定了顺序控制流程从上一执行步到下一执行步的转换条件;跳转步对象实例规定了顺序控制流程将要跳转的步号。
54.具体的,所述语法检查模块遍历该数据集,包括:
55.对数据集中各个对象按顺序功能进行排序;
56.对数据集中表达式特征值进行语法合法性检查。
57.具体的,所述对数据集中各个对象按顺序功能进行排序,包括:
58.找到开始步对象实例,其中,开始步对象实例没有输入对象,只有输出对象;
59.根据开始步对象实例的特征值中的输出对象找到有向连线,根据编辑系统编写的流程图程序,有向连线对象实例的输出对象可以是执行步对象实例,或条件步对象实例,或跳转步对象实例,依次类推,直到找到结束步对象实例。
60.具体的,所述plc可识别的目标文件包括:plc需要的如变量声明、函数声明信息以及一条条plc可以识别的指令。
61.实施例3
62.顺序功能流程图语言由有向连线、步两种元素组成;步元素分为开始步、结束步、执行步、条件步、跳转步,步元素主要包含执行指令类型、指令表达式、位置、显示颜色、输入对象、输出对象等多个特征值,步元素有共同的基类,不同的步元素均由基类派生出,附图1为顺序功能流程图语言元素类的派生关系图;有向连线用cflow类表示,步元素各个步分步对应类cstart、cend、caction、ccondition、cjump;在一个确定的流程程序实现中,cflow类包含了各个步元素之间的执行顺序关系;使各个元素形成了一个有内在逻辑关系的有机整体,并以此来表示顺序功能流程的整个过程。各个步元素在顺序功能流程图语言编辑系统中采用图形化显示;顺序功能流程图语言系统还包括编译、下载到目标机等功能。编译包括语法逻辑检查和语言转换模块,语法检查和转换模块均是通过对上述图形数据集的层层迭代和递归遍历得出符合用户需要的流程程序,并把该程序中逻辑关系准确无误地转换成plc可以识别的指令集;附图2为顺序功能流程图语言编程系统框架图。
63.从附图2中可知系统的各个功能模块之间的数据流向,其中顺序功能流程图编辑系统主要负责和用户进行交互,给用户提供一个图形编辑环境;语法检查模块负责对编辑系统输出的图形对象数据集文件(顺序功能流程图程序)进行语法、逻辑检查;转换模块负责把通过了语法、逻辑检查后的数据文件转换成中间文本,中间文本为低级的描述性文件,类似于c语言文件;汇编系统则主要负责把中间文本和plc需要的其他信息连接起来并经过译码形成plc可识别的目标文件;程序传送系统则负责上下位机之间的网络通信,包括目标程序的上传、下载等;
64.以下为用本专利所述的顺序功能流程图编程系统编写流程图程序,如附图3。
65.流程图编辑系统生成的图形数据集中包含一个开始步对象实例(startobj)、两个结束步对象实例(endobj1~2)、3个执行步对象实例(actionobj1~3)、一个条件步对象实例(condition1),一个跳转步对象实例(jump1)、7个有向连线对象实例(flow1~7);每一个对象实例都包含执行指令类型、指令表达式、位置、显示颜色、输入对象、输出对象等多个特征值,其中输出对象和输出对象特征值表述了其在数据集的逻辑顺序,表1显示了该数据集7个有向连线对象其输入输出对象的真值表。
66.表1有向连线对象的输入输出对象真值表
67.有向连线对象输入对象输出对象flow1startaction1flow2action1condition1flow3condition1action2flow4condition1jump1flow5action2end1flow6jump1action3flow7action3end2
68.语法检查模块遍历该数据集,一是对数据集中各个对象按顺序功能进行排序,其算法是,先找到开始步startobj,开始步没有输入对象,只有输出对象,根据其特征值中输出对象可以找到有向连线flow1,有向连线(flow1)的输出对象为执行步(action1),依次类推,在找到条件步condition1、执行步action2、结束步end1、跳转步jump1、执行步action3、结束步end2;二是对数据集中表达式特征值进行语法合法性检查,不同的表达式特征值有
不同的语法规则,类似c语言中语法规则。
69.转换模块通过遍历该数据集输出中间文本文件。中间文本为低级的描述性文件。其格式为:
70.step(0);
71.express(0);
72.…
;
73.step(n);
74.express(n);
75.其中step(n)就是语法检查模块完成的结果;
76.express(n)来自编辑系统生成的各个对象的表达式特征值。
77.汇编系统把中间文本和plc需要的其他信息连接起来并经过译码形成plc可识别的目标文件,目标文件包含plc需要的如变量声明、函数声明等信息以及一条条plc可以识别的指令,其的格式为:
78.operation para1,para2;
79.operation为指令操作,para1和para2为操作参数。
80.汇编系统的转换算法与通用的汇编编译系统类似,这里不作详细说明。
81.程序传送系统把目标文件下载plc,plc读取目标文件后就可以按目标文件中的一条条指令进行执行。
82.本发明提供一种plc顺序功能流程图语言实现系统,以功能为主线,按功能流程顺序设计程序,程序语言和流程描述非常相似,实现所见即所得的顺序功能流程图程序,条理清楚,编程简单易懂、缩短了工程设计、调试和维修时间,节约了人力成本,提高了经济效益。
83.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。