将梯形图语言转换为ST语言的方法、系统及装置制造方法及图纸

技术编号:38652148 阅读:16 留言:0更新日期:2023-09-02 22:40
本发明专利技术公开了一种将梯形图语言转换为ST语言的方法、系统及装置,包括:S1、获取梯形图语言的XML文本;S2、解析梯形图语言的文本得到多叉树;S3、遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;S4、制定排序规则,按照排序规则将元素树列表进行排序,得到新列表;S5、遍历新列表,根据当前节点类型和当前节点相连接的情况计算ST语言的表达式。本发明专利技术可以实现将梯形图元素与ST代码行建立一一对应关系,便于代码的静态分析与错误检查,增加工程的可移植性。增加工程的可移植性。增加工程的可移植性。

【技术实现步骤摘要】
将梯形图语言转换为ST语言的方法、系统及装置


[0001]本专利技术涉及梯形图语言转换领域,尤其是涉及一种梯形图语言转换为ST语言的方法、系统及装置。

技术介绍

[0002]IEC61131

3标准与PLCopen TC6 XML已经被大多数PLC厂商接受,但是出于现实原因,目前从梯形图到ST语言转换软件未能符合IEC61131

3标准。同时由于所有PLC厂商对ST编程语言的支持基本相同,但是对梯形图的功能、拓扑以及连接方式等方面的支持却不一致,这就导致了用梯形图语言编写的代码在更换编程控制器平台后,移植性比较差。

技术实现思路

[0003]本专利技术的目的在于提供一种将梯形图语言转换为ST语言的方法,旨在解决将梯形图语言转换为ST语言的方法。
[0004]本专利技术提供一种将梯形图语言转换为ST语言的方法,包括:
[0005]S1、获取梯形图语言的XML文本;
[0006]S2、解析梯形图语言的文本得到多叉树;
[0007]S3、遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;
[0008]S4、制定排序规则,按照排序规则将元素树列表进行排序,得到新列表;
[0009]S5、遍历新列表,根据当前节点类型和当前节点相连接的情况计算ST语言的表达式。
[0010]本专利技术还提供一种将梯形图语言转换为ST语言的系统,包括:
[0011]获取模块:用于获取梯形图语言的XML文本;<br/>[0012]解析模块:用于解析梯形图语言的文本得到多叉树;
[0013]遍历模块:用于遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;
[0014]排序模块:用于制定排序规则,按照排序规则将元素树列表进行排序,得到新列表;
[0015]计算模块:用于遍历新列表,根据当前节点类型和当前节点相连接的情况计算ST语言的表达式。
[0016]本专利技术实施例还提供一种将梯形图语言转换为ST语言的装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述方法的步骤。
[0017]本专利技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有信息传递的实现程序,所述程序被处理器执行时实现上述方法的步骤。
[0018]采用本专利技术实施例,将梯形图元素与ST代码行建立一一对应关系,便于代码的静态分析与错误检查,增加工程的可移植性。
[0019]上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。
附图说明
[0020]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1是本专利技术实施例的将梯形图语言转换为ST语言的方法的流程图
[0022]图2是本专利技术实施例的将梯形图语言转换为ST语言的方法的梯形图计算contact表达式示意图;
[0023]图3是本专利技术实施例的将梯形图语言转换为ST语言的方法的block类型计算表达式示意图;
[0024]图4是本专利技术实施例的将梯形图语言转换为ST语言的系统示意图;
[0025]图5是本专利技术实施例的将梯形图语言转换为ST语言的装置示意图。
具体实施方式
[0026]下面将结合实施例对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0027]方法实施例
[0028]根据本专利技术实施例,提供了一种将梯形图语言转换为ST语言的方法,图1是本专利技术实施例的将梯形图语言转换为ST语言的方法的流程图,如图1所示,具体包括:
[0029]S1、获取梯形图语言的XML文本;
[0030]S2、解析梯形图语言的文本得到多叉树;
[0031]S2具体包括:按照PLCopen TC6 XML规范解析文本,得到XML节点元素组成的多叉树。
[0032]S3、遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;
[0033]S3具体包括:遍历多叉树所有一级节点,去掉与生成ST语言无关的节点后组成元素树列表,元素树列表包括:connector、continuation、leftPowerRail、rightPowerRail、coil、contact、block、invariable、outVariable、inOutVariable、label、jump和return;
[0034]S4、制定排序规则,按照排序规则将元素树列表进行排序,得到新列表;
[0035]S4具体包括:制定排序规则,按照排序规则将元素树列表进行排序,得到新列表,所述排序规则如下:
[0036]S41、创建一个空列表SortList,用来存储梯形图已排序元素,创建临时列表orderTmp、outVarTmp、blockTmp和conTmp;
[0037]S42、遍历元素树列表;
[0038]S43、判断当前节点是否指定执行顺序;若是则将节点添加至orderTmp中,然后执行S42,若否继续向下执行S431;
[0039]S431、判断当前节点类型是否为outVariable、inOutVariable和coil;若是则将当前节点添加到outVarTmp中,然后执行S42,若否继续向下执行S432;
[0040]S432、判断当前节点类型是否为block、return和jump;若是则将当前节点添加至blockTmp中,然后执行S42,若否则继续向下执行S433;
[0041]S433、判断当前节点类型是否为connector;若是则将当前节点添加至conTmp中,然后执行S42,若否则继续向下执行S434;
[0042]S434、判断当前节点类型是否为label节点;若是则开始排序:先将orderTmp按照指定执行顺序升序排序,其次分别将outVarTmp,blockTmp和conTmp按照节点位置坐标升序排序,再其次顺序将排序好的orderTmp,outVarTmp,blockTmp和conTmp中的所有节点追加至SortList,然后将当前label节点也追加至SortList中,最后清空orderTmp,outVarTmp,blockTmp和conTmp列表内容,继续执行S42;若否,则继续向下执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种将梯形图语言转换为ST语言的方法,其特征在于,包括:S1、获取梯形图语言的XML文本;S2、解析梯形图语言的文本得到多叉树;S3、遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;S4、制定排序规则,按照排序规则将元素树列表进行排序,得到新列表;S5、遍历新列表,根据当前节点类型和当前节点相连接的情况计算ST语言的表达式。2.根据权利要求1所述的方法,其特征在于,所述S2具体包括:按照PLCopen TC6 XML规范解析文本,得到XML节点元素组成的多叉树。3.根据权利要求2所述的方法,其特征在于,所述S3具体包括:遍历多叉树所有一级节点,去掉与生成ST语言无关的节点后组成元素树列表,元素树列表包括:connector、continuation、leftPowerRail、rightPowerRail、coil、contact、block、invariable、outVariable、inOutVariable、label、jump和return。4.根据权利要求3所述的方法,其特征在于,所述S4具体包括:制定排序规则,按照排序规则将元素树列表进行排序,得到新列表,所述排序规则如下:S41、创建一个空列表SortList,用来存储梯形图已排序元素,创建临时列表orderTmp、outVarTmp、blockTmp和conTmp;S42、遍历元素树列表;S43、判断当前节点是否指定执行顺序;若是则将节点添加至orderTmp中,然后执行S42,若否继续向下执行S431;S431、判断当前节点类型是否为outVariable、inOutVariable和coil;若是则将当前节点添加到outVarTmp中,然后执行S42,若否继续向下执行S432;S432、判断当前节点类型是否为block、return和jump;若是则将当前节点添加至blockTmp中,然后执行S42,若否则继续向下执行S433;S433、判断当前节点类型是否为connector;若是则将当前节点添加至conTmp中,然后执行S42,若否则继续向下执行S434;S434、判断当前节点类型是否为label节点;若是则开始排序:先将orderTmp按照指定执行顺序升序排序,其次分别将outVarTmp,blockTmp和conTmp按照节点位置坐标升序排序,再其次顺序将排序好的orderTmp,outVarTmp,blockTmp和conTmp中的所有节点追加至SortList,然后将当前label节点也追加至SortList中,最后清空orderTmp,outVarTmp,blockTmp和conTmp列表内容,继续执行S42;若否,则继续向下执行S435;S435、判断是否已经遍历到列表尾部,若是,则启动排序规则:先将orderTmp按照指定执行顺序升序排序,其次分别将outVarTmp,blockTmp和conTmp按照节点位置坐标升序排序,再其次顺序将排序好的orderTmp,outVarTmp,blockTmp和conTmp中的所有节点追加至SortList,最后直接结束;若否,继续执行S42。5.一种将梯形图语言转换为ST语言的系统,其特征在于,包括:获取模块:用于获取梯形图语言的XML文本;解析模块:用于解析梯形图语言的文本得到多叉树;遍历模块:用于遍历多叉树所有一级节点,剔除与生成ST语言无关的节点后组成元素树列表;
排序...

【专利技术属性】
技术研发人员:尹志威王一凡贺银增徐晨周笑任大明
申请(专利权)人:寂山智工苏州科技有限公司
类型:发明
国别省市:

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

1