CN115291853A - 一种ld语言在plc编程软件中导出导入的方法及装置 - Google Patents

一种ld语言在plc编程软件中导出导入的方法及装置 Download PDF

Info

Publication number
CN115291853A
CN115291853A CN202211224125.3A CN202211224125A CN115291853A CN 115291853 A CN115291853 A CN 115291853A CN 202211224125 A CN202211224125 A CN 202211224125A CN 115291853 A CN115291853 A CN 115291853A
Authority
CN
China
Prior art keywords
language
connection
programming software
output point
plc programming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202211224125.3A
Other languages
English (en)
Other versions
CN115291853B (zh
Inventor
秦奋
刘佳南
梁世武
张长江
朱立国
陈根
王圣洁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZHEJIANG SUPCON RESEARCH CO LTD
Original Assignee
ZHEJIANG SUPCON RESEARCH CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZHEJIANG SUPCON RESEARCH CO LTD filed Critical ZHEJIANG SUPCON RESEARCH CO LTD
Priority to CN202211224125.3A priority Critical patent/CN115291853B/zh
Publication of CN115291853A publication Critical patent/CN115291853A/zh
Application granted granted Critical
Publication of CN115291853B publication Critical patent/CN115291853B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明公开了一种LD语言在PLC编程软件中导出导入的方法,包括:将所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象传输至XML文件中,得到导出的XML文件;将不同的所述LD语言在PLC编程软件中导入时,采用逆向转换方式解析从不同LD语言导出的XML文件中元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。规范了PLC编程软件中LD语言导出导入的流程,实现了不同PLC编程软件间LD语言的互联互通。

Description

一种LD语言在PLC编程软件中导出导入的方法及装置
技术领域
本发明属于工业控制自动化技术领域,尤其涉及一种LD语言在PLC编程软件中导出导入的方法及装置。
背景技术
LD梯形图是IEC61131-3标准编程语言的一种,其沿袭了继电器控制电路的形式,是在常用的继电器与接触器逻辑控制基础上简化了符号演变而来的。在PLC梯形图中,左、右母线类似于继电器与接触器的控制电源线,输出线圈类似于负载,输入触点类似于按钮。梯形图由若干梯级构成,自上而下排列,每个梯级起于左母线,经过触点与线圈,止于右母线。复杂的梯形图中会有函数或者功能块,这些对象都通过能流线组织在一起。
PLC编程软件中的LD语言程序包括变量声明部分和图形代码部分。图形代码部分由若干个梯形图网络组成,而网络中又有多种类型的图形对象,这些图形对象通过连接线组织在一起。一般工程上实际应用的梯形图多为百个网络以上,如何能够准确无误地在图形化语言与XML语言之间进行相互转换,是本领域的技术难题。
长期以来,由于不同厂家之间的有自己的LD文件格式,互不兼容。导致一旦LD文件被设计出来,另外厂家想要复用时,只能够从头开始手动搭建,不利于PLC编程软件之间的互联互通。虽然IEC61131-10标准给出了PLC开放XML交换格式的相关规范,但并没有在具体实现层面给出过程样例,阻碍了标准推广的步伐,即难以将LD语言在不同PLC编程软件中互联互通。
鉴于此,有必要提出一种采用LD语言在PLC编程软件中导出导入的方法。
发明内容
本发明的目的是提供一种LD语言在PLC编程软件中导出导入的方法,通过挖掘IEC61131-10标准中有关LD语言的相关内容,结合PLC编程软件中LD文件的存储过程,实现了LD文件和XML文件的相互转换;同时不同软件间可以通过导出导入方法实现LD语言的互联互通。
本发明所提供的一种LD语言在PLC编程软件中导出导入的方法,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入方法如下:
定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
将所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象保存至XML文件中,得到导出的XML文件;
将不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。
作为优选地,所述将所述LD语言在PLC编程软件中导入包括:
解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;
按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;
按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件。
作为优选地,所述将所述LD语言在PLC编程软件中导出中,
创建图形对象并生成所述连接输出点ID,具体生成方法如下:
对第一网络的左母线的所述引用的连接输出点ID为设置参数,遍历到的网络组成元素的所述引用的连接输出点ID自增1,得到该网络各对象的所述引用的连接输出点ID;
其中,所述第一网络即PLC编程软件中LD语言文件的逻辑结构树,所述第一网络包括左母线、串联结构和右母线,定义串联结构的内部结构、功能块及各元素对应的输入、输出参数。
作为优选地,所述将所述LD语言在PLC编程软件中导出中:
根据逻辑关系计算出引用的连接输出点ID,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系如下:
左母线的连接输出点ID是当前网络的首个连接输出点ID值;
后一个对象的所述引用的连接输出点ID等于前一个对象的所述连接输出点ID;
或逻辑整体的所述连接输出点ID是组成元素的所述连接输出点ID并集;
与逻辑整体的所述连接输出点ID是最后一个元素的所述连接输出点ID;右母线的所述引用的连接输出点ID内容是当前整个网络的所述连接输出点ID值;
函数和功能块的所述引用的连接输出点ID是能流线上的输入引脚的所述引用的连接输出点ID,所述连接输出点ID是能流线上的输出引脚的所述连接输出点ID。
作为优选地,所述将不同的所述LD语言在PLC编程软件中导入中:
将XML文件中对应网络内容进行解析,将所述引用的连接输出点ID相同节点对象的头部并联起来作为并联结构;
如果仅一个所述引用的连接输出点ID则单独放置,将所述节点对象分堆处理,将左母线和右母线分别作为起始节点和终止节点。
将所述引用的连接输出点ID和所述连接输出点ID相匹配的节点连接,如果单一节点对象的所述引用的连接输出点ID和多个节点对象的所述连接输出点ID相关联,则对单一节点对象复制并分别连接;
根据对应LD网络的逻辑关系,对复制后的节点对象中相同或重复元素进行合并。
作为优选地,所述将不同的所述LD语言在PLC编程软件中导入中,通过计算连接点ID确定连接关系,所述图形对象的属性参照IEC61131-10标准。
本发明提供了一种LD语言在PLC编程软件中导出导入的装置,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入装置包括:
定义模块,用于定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
导出模块,用于在所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象保存至XML文件中,得到导出的XML文件;
导入模块,用于在不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。
作为优选地,所述导入模块包括:
解析单元,用于解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
第一导入单元,用于如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
第二导入单元,用于如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件。
本发明提供了一种LD语言在PLC编程软件中导出导入的设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行计算机可读指令时,实现如本发明实施例所述的LD语言在PLC编程软件中导出导入的方法。
本发明提供了一种计算机可读介质,存储计算机程序,所述计算机程序被一个或多个处理器执行时,实现如本发明实施例所述的LD语言在PLC编程软件中导出导入的方法。
本发明由于采用以上技术方案,使其与现有技术相比具有以下的优点和积极效果:
本发明采用了双向交互的形式,根据IEC61131-10标准中的规范,结合PLC编程软件中LD存储的逻辑,使用连接输入点和连接输出点作为数据抓手,实现LD语言在PLC编程软件中的导出导入功能。
本发明实例提供一种LD语言在PLC编程软件中导出导入的方法,有利于统一行业标准,降低成本,为不同厂家的编程软件LD语言实现互联互通提供方案和样本。该方法包括导出功能和导入功能。导出功能包括创建图形对象,根据各对象特点计算连接点ID,以及序列化对象到XML中;而导入功能包括解析XML文件中元素并创建节点对象,按照连接关系去分堆、串联和合并节点对象,以及将合并后的结构序列化。
规范了PLC编程软件中LD语言导出导入的流程,结合具体实例说明,易于理解,方便使用;解决了长期以来不同厂家之间的LD语言不能有效复用的问题,通过使用XML文件作为中间载体的方式,实现了不同PLC编程软件间LD语言的互联互通。
通过本发明,解决了现有不同PLC编程软件间LD语言不能有效互联互通的问题,给出了较为详细的实现方法,扩大了应用范围,具有良好的社会意义。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细说明,其中:
图1为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中LD编程语言组成图;
图2为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中LD语言变量声明示意图;
图3为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中LD语言图形代码示意图;
图4为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中图形对象连接关系示意图;
图5为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中连接输出点模式定义图;
图6为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中连接输入点模式定义图;
图7为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中带有OutId和RefId的LD语言图形代码示意图;
图8为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中LD语言文件导出到XML文件流程图;
图9为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中PLC软件中LD语言文件的逻辑结构树显示OutId标记的示意图;
图10为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中PLC软件中LD语言文件的逻辑结构树显示OutId和RefId标记的示意图;
图11为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中 LD语言文件导出的XML内容示意图;
图12为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中导入XML文件还原成LD语言文件的流程图;
图13为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中节点对象分堆的示意图;
图14为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中节点对象串联的示意图;
图15为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中节点对象合并中间过程的示意图;
图16为本发明实施例所述的一种LD语言在PLC编程软件中导出导入的方法中节点对象合并完成的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明所提供的一种LD语言在PLC编程软件中导出导入的方法,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入方法如下:
定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
将所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象传输至XML文件中,得到导出的XML文件;
将不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,即POU文件,从而实现LD语言与XML语言的双向交互。
本领域技术人员可以理解,PLC(Programmable Logic Controller,可编程逻辑控制器):一种具有微处理器的用于自动化控制的数字运算控制器。LD(Ladder Diagram,梯形图):一种用来描述布尔元素和机电元素(比如触点和线圈)网络的编程语言,是PLC使用得最多的图形编程语言,被称为PLC的第一编程语言。POU文件,(POU程序组织单元POU(Programming Organisation Unit)是IEC61131-3标准中重要的、被广泛使用的基本IEC编程单位。POU由3种类型的基本单元组成:程序(Program)、功能块(Function Block)、函数(Function))标准规范中对POU的描述。
本发明实例提供一种LD语言在PLC编程软件中导出导入的方法,导出是POU文件,即LD语言文件->XML,导入是XML->LD语言文件,有利于统一行业标准,降低成本,为不同厂家的编程软件LD语言实现互联互通提供方案和样本。该方法包括导出功能和导入功能。导出功能包括创建图形对象,根据各对象特点计算连接点ID,以及序列化对象到XML中;而导入功能包括解析XML文件中元素并创建节点对象,按照连接关系去分堆、串联和合并节点对象,以及将合并后的结构序列化。
本领域技术人员可以理解,LD语言是一种图形化编程语言,由变量声明和图形代码两大部分组成。变量声明中包含多种类型的变量,图形代码中包括网络标号,网络注释和网络图形。网络图形是LD语言的核心,由多种图形对象组成。LD语言的具体组成如图1所示,图2和图3分别是LD语言变量声明和图形代码的示意图。图3中可以看到,LD有多个网络构成,每个网络中若干个图形对象被能流线连接在一起。而想要把这样的结构完整地传递,就需要定义其中的连接关系。图4是抽象出来的图形对象的连接关系示意图,对象2和3并联后再与对象1和4进行串联。
IEC61131-10标准中对连接给出了相关的交互规范:
通过连接ID来关联图形对象之间的连接。每个“连接输出点”有一个属性“连接输出点ID,如图5中的connectionPointOutId,以下简称OutId”,对应的,“连接”有一个属性“引用的连接输出点ID,如图6中的refConnectionPointOutId,以下简称RefId”来指向该连接对应的输出点,该属性值应该与某个“连接输出点”的“连接输出点ID”相等,以此来表示图形对象间定向连接。
以图4中的连接关系举例,图中点标号1、2、3分别代表图形对象1、2、3的OutId,由于图形对象4为末端对象,不存在连接输出点。作为连接的另一端,对象2的RefId和对象1的OutId相等,也为1。同理对象3的RefId也为1。而对于对象4,它和对象2和3均有连接关系,按照标准规定,它的RefId有两个,分别为2和3,由于图形对象4为源端对象,不存在连接输入点。
有了这两种类型的ID,就可以把复杂的LD语言结构给有机的连接起来了。按照标准中规定的方法,可以将代码图形中的OutId和RefId标注出来,如图7所示,单引号数字代表OutId,双引号数字代表RefId。函数和功能块的引脚连接线的两端OutId和RefId一致,只标注了OutId。
由连接点这一方法,可以将图形化语言导出到XML文件中,大致的流程如图8所示:首先软件加载LD语言文件,根据加载的内容创建图形对象,在此过程中生成对象的OutId;紧接着根据逻辑关系去计算出RefId,这样连接关系就得到确定;最后将对象中的需要导出的内容序列化到XML文件中。
具体地,所述将所述LD语言在PLC编程软件中导出时,创建图形对象并生成所述连接输出点ID,具体生成方法如下:
对第一网络的左母线的所述引用的连接输出点ID为设置参数,遍历到的网络组成元素的所述引用的连接输出点ID自增1,得到该网络各对象的所述引用的连接输出点ID;
其中,所述第一网络即PLC编程软件中LD语言文件的逻辑结构树,所述第一网络包括左母线、串联结构和右母线,定义串联结构的内部结构、功能块及各元素对应的输入、输出参数。
以使用的PLC编程软件为例,介绍LD语言文件导出的过程。PLC编程软件将实例LD语言文件读取进来,该文件中网络1的逻辑结构如图9所示。整体上网络图形可以看做左母线,中间串联的内容,即串联结构OA1以及右母线这三部分。其中,OA1结构中包含并联结构OO1,功能块ton1和并联结构OO2。进一步的,OO1结构中包含newVar1和newVar2,OO2结构中包含OA2和newVar4;OA2中包含函数ADD和newVar3,ton1和ADD中包含各自对应的输入、输出参数,图中显示实参和形参放在一起,用”/”隔开。
按照如下的方式去生成OutId:第一个网络的左母线的OutId为1’,之后遍历到的元素的OutId自增1,由此得到该网络各对象的OutId,生成情况如图9中单引号数字所示。
在此基础上,结合图7中的OutId和RefId的标注情况,在逻辑结构树上将RefId进行标注,如图10所示的双引号数字。观察图7和图10中OutId和RefId的对应关系,可以得出以下结论:
左母线的OutId是当前网络的首个OutId值;后一个对象的RefId等于前一个对象的OutId;或逻辑整体的OutId是组成元素的OutId并集;与逻辑整体的OutId是最后一个元素的OutId;右母线的RefId内容是当前整个网络的OutId值;函数和功能块的RefId是能流线上的输入引脚的RefId,OutId是能流线上的输出引脚的OutId。
根据上面的结论去编写计算图形对象RefId的算法,运行产生相应的RefId。加上原来生成的OutId的内容,由此便得到了图形对象完整的连接关系。导出过程中除了确定连接关系外,其余的属性参照IEC61131-10标准来进行处理,经过上述操作我们可以得到如图11所示的XML文件。至此,由LD语言文件到XML文件的导出过程结束。
具体地,所述将所述LD语言在PLC编程软件中导入包括:
解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;
按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;
按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件,本实施例采用的POU文件是PLC编程软件的程序文件统称,包括很多种编程语言文件,LD编程文件只是属于POU文件的一种,每一种PLC编程软件,都有自己组织POU文件的形式。
本领域技术人员可以理解,LD语言在PLC编程软件中的导入方法,指的是将本软件或者其他软件导出的XML文件转化为当前软件中能够正确使用的LD语言文件。该过程的流程图如图12所示:首先解析导入的XML文件,找到表征是否是本软件导出的标志。如果是本软件导出的XML文件,则直接把XML文件中存储的原始内容给读取出来,然后将这一部分内容序列化,保存为本软件能够使用的LD语言文件。如果不是本软件导出的XML文件,则按照如下的算法去处理:创建节点对象,将解析后的内容填充进去;按照连接关系把RefId相同的对象放入到一个OR节点中,从而对对象进行了分堆;按照RefId和OutId的匹配关系,将元素串联起来;对含有相同元素的分支进行合并,最终得到反映梯形图逻辑的对象;最后根据对应的逻辑关系,进行序列化为LD语言文件的操作。
通过实例来说明上述过程:
将XML文件中网络1的内容进行解析,把RefId相同的对象头部并联起来作为OO结构,如果仅一个RefId则单独放置,以此方式得到图13所示的节点对象分堆示意图。注意把左母线和右母线分别作为起始节点和终止节点。
在此基础上,把RefId和OutId相匹配的节点连接起来,如果存在一个对象A的RefId和多个对象的OutId相关,则将对象A复制多份分别连接,如图14所示。
连接关系对应LD网络的逻辑关系,显然当前结构存在冗余内容,需要进行整合。图14中newVar1和newVar2右侧部分内容是完全一致的,因此要对此进行合并,合并后的结构如图15所示。
进一步地,图15中的右母线节点是重复的,将该节点合并起来,由此得到图16所示的结构。至此,当前节点结构为最简结构,且能够正确反映LD网络的实际逻辑。这样就实现了从XML文件到LD网络逻辑对象的转化,接着再按照本软件存储LD语言文件的方式,就可以把逻辑对象序列化LD语言文件,导入过程结束。
实施例二
基于相同构思,本发明提供了一种LD语言在PLC编程软件中导出导入的装置,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入装置包括:
定义模块,用于定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
导出模块,用于在所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象保存至XML文件中,得到导出的XML文件;
导入模块,用于在不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。
具体地,所述导入模块包括:
解析单元,用于解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
第一导入单元,用于如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
第二导入单元,用于如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件。
上述定义模块、导出模块、导入模块、解析单元、第一导入单元和第二导入单元的具体原理及实现方法,均如实施例一中所述,在此不再赘述。
实施例三
基于相同构思,本发明还提供了一种LD语言在PLC编程软件中导出导入的设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行计算机可读指令时,实现如本发明一实施例中的LD语言在PLC编程软件中导出导入的方法。
该LD语言在PLC编程软件中导出导入的设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)和存储器,一个或一个以上存储应用程序或数据的存储介质(例如一个或一个以上海量存储设备)。其中,存储器和存储介质可以是短暂存储或持久存储。存储在存储介质的程序可以包括一个或一个以上模块,每个模块可以包括对LD语言在PLC编程软件中导出导入的设备中的一系列指令操作。
进一步地,处理器可以设置为与存储介质通信,在LD语言在PLC编程软件中导出导入的设备上执行存储介质中的一系列指令操作。
LD语言在PLC编程软件中导出导入的设备还可以包括一个或一个以上电源,一个或一个以上有线或无线网络接口,一个或一个以上输入输出接口,和/或,一个或一个以上操作系统,例如Windows Serve、Vista等等。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被一个或多个处理器执行时,实现如本发明一实施例中的LD语言在PLC编程软件中导出导入的方法。实施例二中的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质。该计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得计算机执行实施例一中LD语言在PLC编程软件中导出导入的步骤。
本领域技术人员可以理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件的形式体现出来,该计算机软件存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等各种可以存储程序代码的介质。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种LD语言在PLC编程软件中导出导入的方法,其特征在于,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入方法如下:
定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
将所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象保存至XML文件中,得到导出的XML文件;
将不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。
2.根据权利要求1所述的LD语言在PLC编程软件中导出导入的方法,其特征在于,所述将所述LD语言在PLC编程软件中导入包括:
解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;
按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;
按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件。
3.根据权利要求1所述的LD语言在PLC编程软件中导出导入的方法,其特征在于,所述将所述LD语言在PLC编程软件中导出中,
创建图形对象并生成所述连接输出点ID,具体生成方法如下:
对第一网络的左母线的所述引用的连接输出点ID为设置参数,遍历到的网络组成元素的所述引用的连接输出点ID自增1,得到该网络各对象的所述引用的连接输出点ID;
其中,所述第一网络即PLC编程软件中LD语言文件的逻辑结构树,所述第一网络包括左母线、串联结构和右母线,定义串联结构的内部结构、功能块及各元素对应的输入、输出参数。
4.根据权利要求1所述的LD语言在PLC编程软件中导出导入的方法,其特征在于,所述将所述LD语言在PLC编程软件中导出中:
根据逻辑关系计算出引用的连接输出点ID,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系如下:
左母线的连接输出点ID是当前网络的首个连接输出点ID值;
后一个对象的所述引用的连接输出点ID等于前一个对象的所述连接输出点ID;
或逻辑整体的所述连接输出点ID是组成元素的所述连接输出点ID并集;
与逻辑整体的所述连接输出点ID是最后一个元素的所述连接输出点ID;右母线的所述引用的连接输出点ID内容是当前整个网络的所述连接输出点ID值;
函数和功能块的所述引用的连接输出点ID是能流线上的输入引脚的所述引用的连接输出点ID,所述连接输出点ID是能流线上的输出引脚的所述连接输出点ID。
5.根据权利要求1所述的LD语言在PLC编程软件中导出导入的方法,其特征在于,所述将不同的所述LD语言在PLC编程软件中导入中:
将XML文件中对应网络内容进行解析,将所述引用的连接输出点ID相同节点对象的头部并联起来作为并联结构;
如果仅一个所述引用的连接输出点ID则单独放置,将所述节点对象分堆处理,将左母线和右母线分别作为起始节点和终止节点;
将所述引用的连接输出点ID和所述连接输出点ID相匹配的节点连接,如果单一节点对象的所述引用的连接输出点ID和多个节点对象的所述连接输出点ID相关联,则对单一节点对象复制并分别连接;
根据对应LD网络的逻辑关系,对复制后的节点对象中相同或重复元素进行合并。
6.根据权利要求2所述的LD语言在PLC编程软件中导出导入的方法,其特征在于,所述将不同的所述LD语言在PLC编程软件中导入中,通过计算连接点ID确定连接关系,所述图形对象的属性参照IEC61131-10标准。
7.一种LD语言在PLC编程软件中导出导入的装置,其特征在于,所述LD语言包括多个网络,每个所述网络包括若干个图形对象,若干个图形对象通过能流线连接,其导出导入装置包括:
定义模块,用于定义若干图形对象间的连接关系,通过连接ID来关联所述图形对象之间的连接,所述连接ID类型包括连接输出点ID,用于设定所述图形对象本身的输出点及与连接输出点ID属性对应的所述引用的连接输出点ID,用于通过连接ID来关联所述图形对象之间的连接关系,确定所述连接输出点ID和所述引用的连接输出点ID间的对应关系;
导出模块,用于在所述LD语言在PLC编程软件中导出时,加载LD语言文件,根据加载的LD语言文件创建图形对象,根据各图形对象的特点计算连接点ID,将序列化对象保存至XML文件中,得到导出的XML文件;
导入模块,用于在不同的所述LD语言在PLC编程软件中导入时,从不同PLC编程软件中获取LD语言文件,并采用逆向转换方式解析从所述LD语言文件导出的XML文件中的元素并创建节点对象,按照连接点ID间的连接属性对所述节点对象进行分堆、串联处理及合并处理,将合并后的结构序列化,得到导入的LD语言文件,从而实现LD语言与XML语言的双向交互。
8.根据权利要求7所述的LD语言在PLC编程软件中导出导入的装置,其特征在于,所述导入模块包括:
解析单元,用于解析导入的XML文件,找到表征并判断是否是当前PLC编程软件导出的标志;
第一导入单元,用于如果是当前PLC编程软件导出的XML文件,则直接读取XML文件中存储的原始数据,将所述原始数据序列化,保存为当前应用程序使用的LD语言文件;
第二导入单元,用于如果非当前PLC编程软件导出的XML文件,则创建节点对象,将解析后的数据填充至节点对象;按照连接关系将与所述引用的连接输出点ID相同的节点对象设置于或节点中,对所述节点对象进行分堆;按照所述连接输出点ID和所述引用的连接输出点ID的匹配关系,将网络组成元素串联,对含有相同元素的分支进行合并,得到梯形图逻辑对象,实现了从XML文件到LD网络逻辑对象的转化,按照PLC编程应用程序存储LD语言文件的方式,将所述逻辑对象序列化LD语言文件,输出导入POU文件。
9.一种LD语言在PLC编程软件中导出导入的设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行计算机可读指令时,实现如权利要求1至6中任意一项所述的LD语言在PLC编程软件中导出导入的方法。
10.一种计算机可读介质,存储计算机程序,其特征在于,所述计算机程序被一个或多个处理器执行时,实现如权利要求1至6中任意一项所述的LD语言在PLC编程软件中导出导入的方法。
CN202211224125.3A 2022-10-09 2022-10-09 一种ld语言在plc编程软件中导出导入的方法及装置 Active CN115291853B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211224125.3A CN115291853B (zh) 2022-10-09 2022-10-09 一种ld语言在plc编程软件中导出导入的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211224125.3A CN115291853B (zh) 2022-10-09 2022-10-09 一种ld语言在plc编程软件中导出导入的方法及装置

Publications (2)

Publication Number Publication Date
CN115291853A true CN115291853A (zh) 2022-11-04
CN115291853B CN115291853B (zh) 2023-02-24

Family

ID=83833249

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211224125.3A Active CN115291853B (zh) 2022-10-09 2022-10-09 一种ld语言在plc编程软件中导出导入的方法及装置

Country Status (1)

Country Link
CN (1) CN115291853B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5285376A (en) * 1991-10-24 1994-02-08 Allen-Bradley Company, Inc. Fuzzy logic ladder diagram program for a machine or process controller
US20040015844A1 (en) * 2001-02-19 2004-01-22 Schneider Automation Programming station generating a program in single language and automation equipment using such a program
US20040117773A1 (en) * 2001-04-17 2004-06-17 Pascal Nicolle Method for graphically visualizing an automatism application and computer terminal for carrying out said method
EP1600854A2 (de) * 2004-05-21 2005-11-30 Siemens Aktiengesellschaft Verfahren zum Arbeiten mit Kontaktplan und Funktionsplan und hierzu geeigneter grafischer Editor
US20090083719A1 (en) * 2007-09-20 2009-03-26 Delta Electronics, Inc. Method of compiling machine code program for programmable logic controller
JP2010176377A (ja) * 2009-01-29 2010-08-12 Meidensha Corp Plcのプログラム変換ツール
WO2018087308A1 (de) * 2016-11-10 2018-05-17 Phoenix Contact Gmbh & Co.Kg Austausch von echtzeitdaten zwischen programmmodulen
CN109032056A (zh) * 2018-06-13 2018-12-18 华东师范大学 可编程逻辑控制器编程语言转换方法
CN109143953A (zh) * 2018-06-26 2019-01-04 华东师范大学 一种基于中间语言的plc程序验证方法
CN109976760A (zh) * 2017-12-27 2019-07-05 北京东土科技股份有限公司 一种图形语言的交叉编译方法及交叉编译器
CN113419723A (zh) * 2021-05-12 2021-09-21 南京南瑞继保电气有限公司 梯形图编译方法、梯形图调试方法、电子设备及存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5285376A (en) * 1991-10-24 1994-02-08 Allen-Bradley Company, Inc. Fuzzy logic ladder diagram program for a machine or process controller
US20040015844A1 (en) * 2001-02-19 2004-01-22 Schneider Automation Programming station generating a program in single language and automation equipment using such a program
US20040117773A1 (en) * 2001-04-17 2004-06-17 Pascal Nicolle Method for graphically visualizing an automatism application and computer terminal for carrying out said method
EP1600854A2 (de) * 2004-05-21 2005-11-30 Siemens Aktiengesellschaft Verfahren zum Arbeiten mit Kontaktplan und Funktionsplan und hierzu geeigneter grafischer Editor
US20090083719A1 (en) * 2007-09-20 2009-03-26 Delta Electronics, Inc. Method of compiling machine code program for programmable logic controller
JP2010176377A (ja) * 2009-01-29 2010-08-12 Meidensha Corp Plcのプログラム変換ツール
WO2018087308A1 (de) * 2016-11-10 2018-05-17 Phoenix Contact Gmbh & Co.Kg Austausch von echtzeitdaten zwischen programmmodulen
CN109976760A (zh) * 2017-12-27 2019-07-05 北京东土科技股份有限公司 一种图形语言的交叉编译方法及交叉编译器
CN109032056A (zh) * 2018-06-13 2018-12-18 华东师范大学 可编程逻辑控制器编程语言转换方法
CN109143953A (zh) * 2018-06-26 2019-01-04 华东师范大学 一种基于中间语言的plc程序验证方法
CN113419723A (zh) * 2021-05-12 2021-09-21 南京南瑞继保电气有限公司 梯形图编译方法、梯形图调试方法、电子设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘毅: "基于XML的嵌入式软PLC通用梯形图开发方案", 《中国科技信息》 *
邹光华等: "基于XML的PLC数据描述", 《计算机工程》 *

Also Published As

Publication number Publication date
CN115291853B (zh) 2023-02-24

Similar Documents

Publication Publication Date Title
US6826432B2 (en) Process for programming an automation application
CN108681444A (zh) 一种基于xml技术的软plc组态开发方法
CN107291444B (zh) Plc指令生成方法及装置和plc编程方法
CN110244936B (zh) 用于支持visio流程图自动导入dcs算法组态软件的方法和装置
Popovic et al. Extension of the common information model with a catalog of topologies
US20120304148A1 (en) Visual comparison display of software
CN111399828B (zh) 一种基于模型驱动的逻辑设备建模方法及终端
CN110147226B (zh) 一种根据功能块图自动生成程序的系统、方法及装置
US20020049789A1 (en) Method for generating application specific input files
CN107122338A (zh) 一种数字化仪控系统的功能图自动转换成组态文件的方法
CN103208087A (zh) 一种基于iec61968标准的配电网数据校验方法
CN115291853B (zh) 一种ld语言在plc编程软件中导出导入的方法及装置
CN112417515A (zh) 组态软件协议处理方法及系统
CN113705143A (zh) 一种自动化仿真系统和自动化仿真方法
CN111830919B (zh) 一种基于eplan平台的端接文件生成方法和装置
CN116151162A (zh) 寄存器代码和文档的自动化设计方法、装置、设备及介质
CN114397856B (zh) 一种将cfc语言程序应用于龙芯平台的转换方法及装置
CN113032337B (zh) 一种用于辅助印刷电路板物料焊接的物料查询方法、系统、智能终端及计算机可读存储介质
US20040015827A1 (en) Programming station generating a compacted program and automation equipment using such a program
CN117453200A (zh) 一种fbd语言在plc编程中导出导入的方法及装置
CN113536407A (zh) 基于单元设备构造项目图纸的方法、装置及存储介质
CN112685043A (zh) 回调函数的异步转化方法、装置、设备及可读存储介质
CN113948950A (zh) 适用于高功率光纤激光器控制系统内部的通讯方法和装置
CN109951465B (zh) 一种基于工厂方法模式和动态加载模块的数据通信方法
Estevez et al. A novel Approach to attain the true reusability of the code between different PLC programming Tools

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant