【技术实现步骤摘要】
将梯形图语言转换为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文本;< ...
【技术保护点】
【技术特征摘要】
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语言无关的节点后组成元素树列表;
排序...
【专利技术属性】
技术研发人员:尹志威,王一凡,贺银增,徐晨,周笑,任大明,
申请(专利权)人:寂山智工苏州科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。