当前位置: 首页 > 专利查询>东南大学专利>正文

一种基于PLC编程中SFC到梯形图的转换方法技术

技术编号:10256892 阅读:585 留言:0更新日期:2014-07-25 12:06
本发明专利技术公开了一种基于PLC编程中SFC到梯形图的转换方法,包括以下步骤:(1)遍历SFC程序列链表,得到含有有效图符的程序块并将其转化成二维数组存储;(2)将步骤(1)中的程序块进行划分,分为单序列程序块和串并联程序块,若为单序列程序块则直接转换为梯形图,否则进入步骤(3);(3)判断步骤(2)中的串并联程序块为串联结构还是并联结构;(4)将步骤(2)中的串并联程序块划分为若干分支,并检查每个分支;若分支为单序列结构,则直接将其转换为梯形图,否则进入步骤(2)。本发明专利技术提供了一种SFC到梯形图的转换方法,完成了SFC到梯形图,再将本发明专利技术的梯形图进一步转换为指令表的工作,即能实现了PLC与下位机的通信。

【技术实现步骤摘要】
一种基于PLC编程中SFC到梯形图的转换方法
本专利技术涉及一种基于PLC编程中SFC到梯形图的转换方法。
技术介绍
顺序控制是PLC编程的一种重要方式,是指按照生产工艺预先规定的顺序,在各个输入信号的作用下,根据内部状态和事件顺序,使各个执行机构自动有序的进行操作。IEC61131-3标准中定义的SFC(SequentialFunctionChart)语言是一种描述控制系统的控制过程、功能和特性的状态转移图语言,主要由步、有向连线、转换条件和动作(或命令)组成。它具有简单、直观等特点,利用这种编程方法能够较容易地编写复杂的书序控制程序,从而提高工作效率,对于程序调试也极为方便。梯形图、指令表、顺序控制图等都是PLC的重要编程语言。针对梯形图与指令表之间的转化,已经有很多人提出了成熟的方法,例如:申请号为200410078297.X的中国专利技术专利申请提出了一种将梯形图程序转换为指令列表程序的方法及系统;申请号为201210222777.3的中国专利技术专利申请提出了一种应用于PLC开发的梯形图转换为语句表的方法。然而,尚未有人提出将顺序控制程序转化成梯形图或指令表的方法。为了实现与下位机的通信,顺序控制程序又必须转换成梯形图,并进一步转换成指令表。合理高效的顺序控制程序转梯形图的算法在PLC编程软件中显得尤为重要。
技术实现思路
专利技术目的:本专利技术的目的是针对现有技术的不足而提供一种基于PLC编程中SFC到梯形图的转换方法,完成了SFC到梯形图,再将本专利技术的梯形图进一步转换为指令表的工作,即能实现了PLC与下位机的通信。技术方案:为了实现专利技术目的,本专利技术公开了一种基于PLC编程中SFC到梯形图的转换方法,其特征在于,包括以下步骤:(1)遍历SFC程序列链表,得到含有有效图符的程序块并将其转化成二维数组存储;(2)将步骤(1)中的程序块进行划分,分为单序列程序块和串并联程序块,若为单序列程序块则直接转换为梯形图,否则进入步骤(3)。(3)判断步骤(2)中的串并联程序块为串联结构还是并联结构;若为串联结构,则从串联结构的开始位置进行串联结构的处理,即将每个选择分支的第一个转换条件的内部梯形图组合防盗串联结构的最前面;若为并联结构,则在并联结构的结束位置为每个分支增加STL+SXXX语句,其中SXXX为分支的最后一个状态步参数;(4)将步骤(2)中的串并联程序块划分为若干分支,并检查每个分支;若分支为单序列结构,则直接将其转换为梯形图。作为优选,为了提高转换效率,将一个大的SFC程序划分为子程序块去处理,本专利技术在步骤(2)中实现了划分,步骤(2)包括以下步骤:(2.1)判断程序块的起始点是否为选择分支的开始结束或并联开始行和结束行分支线;(2.2)向下遍历上述程序块的第一列,直至出现选择分支的开始结束、并联开始行和结束行分支线或结束行,划分为一个子程序块;若步骤(2.1)条件成立,则该子程序块为串并联程序块且包含选择分支的开始结束或并联开始行和结束行分支线的行,否则该子程序块为单序列程序块且不包含选择分支的开始结束或并联开始行分支线的行;(2.3)继续向下遍历,重复步骤(2.1)和步骤(2.2),直到结束行。作为优选,为了提高步骤(4)中检查每个分支的效率,本专利技术的步骤(4)包括以下步骤:(4.1)将步骤(2)中的串并联程序块划分为若干分支,找到串并联程序块最后一个分支的起始点列号;(4.2)根据该分支的第一列是否有选择分支的开始结束或并联开始行和结束行分支线图符来判断该分支为单序列结构还是串并联结构;若为单序列结构则直接转换为梯形图并进入步骤(4.4),否则进入步骤(4.3);(4.3)从分支的起始点开始向下遍历,直至遇到选择分支的开始结束或并联开始行分支线和结束行,则向右遍历直至这一行结束,并再次向下遍历,重复上述循环,当遇到空白图符则跳出循环,此时的列号即为该分支的结束列号,得到一个新的程序块,进入步骤(4.2);(4.4)判断右边是否还有分支,有则继续下一分支的处理,没有就进入下一步;下一步为判断起点是否为并联开始行和结束行分支线。有益效果:本专利技术与现有技术相比,提供了一种SFC到梯形图的转换方法,完成了SFC到梯形图,再将本专利技术的梯形图进一步转换为指令表的工作,即能实现了PLC与下位机的通信。附图说明图1为本专利技术SFC到梯形图的转换方法的流程图;图2为本专利技术的SFC程序示例;图3为图2中SFC程序示例的转换梯形图。具体实施方式下面结合附图对本专利技术作更进一步的说明。如图1所示,开始对一个程序块进行转换,首先判断其起点是否为选择分支的开始结束或并联开始行和结束行分支线,若不是则判定其为单序列程序块,则向下遍历直至遇到选择分支的开始结束或并联开始行分支线和结束行并将其转换为梯形图,接着判断是否到达最后一行,若是最后一行则进行下一个程序块的转换,否则继续本程序块的下一循环;否则若是选择分支的开始结束或并联开始行和结束行分支线则判定其为串并联程序块,则进行进一步的判定,判断其是否为选择分支的开始结束,若是则判断其为串联分支结构,找到串并联程序块的结束行,然后找出串并联程序块最后一个分支的起始点列号;判断分支是否为单序列分支,若是单序列分支则直接将其转换为梯形图,在判断其右边是否还有分支,有则继续下一分支的处理,没有就进入下一步,若分支不为单序列分支则找到该分支的结束列号得到一个新的程序块,然后也判断其右边是否还有分支,有则继续下一分支的处理,没有就进入下一步;下一步为判断起点是否为并联开始行和结束行分支线,若是则直接进行判断是否为最后一行,否则为每个分支增加STL+SXXX语句,其中SXXX为分支的最后一个状态步参数。图2中为一个SFC程序示例,图3则为该SFC程序示例通过本专利技术的转换方法得到的梯形图。本文档来自技高网...
一种基于PLC编程中SFC到梯形图的转换方法

【技术保护点】
一种基于PLC编程中SFC到梯形图的转换方法,其特征在于,包括以下步骤:(1)遍历SFC程序列链表,得到含有有效图符的程序块并将其转化成二维数组存储;(2)将步骤(1)中的程序块进行划分,分为单序列程序块和串并联程序块,若为单序列程序块则直接转换为梯形图,否则进入步骤(3);(3)判断步骤(2)中的串并联程序块为串联结构还是并联结构;若为串联结构,则从串联结构的开始位置进行串联结构的处理,即将每个选择分支的第一个转换条件的内部梯形图组合防盗串联结构的最前面;若为并联结构,则在并联结构的结束位置为每个分支增加STL+SXXX语句,其中SXXX为分支的最后一个状态步参数;(4)将步骤(2)中的串并联程序块划分为若干分支,并检查每个分支;若分支为单序列结构,则直接将其转换为梯形图,否则进入步骤(2)。

【技术特征摘要】
1.一种基于PLC编程中SFC到梯形图的转换方法,其特征在于,包括以下步骤:(1)遍历SFC程序列链表,得到含有有效图符的程序块并将其转化成二维数组存储;(2)将步骤(1)中的程序块进行划分,分为单序列程序块和串并联程序块,若为单序列程序块则直接转换为梯形图,否则进入步骤(3);(3)判断步骤(2)中的串并联程序块为串联结构还是并联结构;若为串联结构,则从串联结构的开始位置进行串联结构的处理,即将每个选择分支的第一个转换条件的内部梯形图组合放到串联结构的最前面;若为并联结构,则在并联结构的结束位置为每个分支增加STL+SXXX语句,其中SXXX为分支的最后一个状态步参数;(4)将步骤(2)中的串并联程序块划分为若干分支,并检查每个分支;步骤(4)包括以下步骤:(4.1)将步骤(2)中的串并联程序块划分为若干分支,找到串并联程序块最后一个分支的起始点列号;(4.2)根据该分支的第一列是否有选择分支的开始结束或并联开始行和结束行分支线图符来判断该分支为单序列结构还是串并联结构;若为单序列结构则直接转换为梯形图并进入步骤(4.4),否则进...

【专利技术属性】
技术研发人员:周一帆卞扬清张志胜童炜山
申请(专利权)人:东南大学
类型:发明
国别省市:江苏;32

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

1