CN110147226B - 一种根据功能块图自动生成程序的系统、方法及装置 - Google Patents

一种根据功能块图自动生成程序的系统、方法及装置 Download PDF

Info

Publication number
CN110147226B
CN110147226B CN201910261994.5A CN201910261994A CN110147226B CN 110147226 B CN110147226 B CN 110147226B CN 201910261994 A CN201910261994 A CN 201910261994A CN 110147226 B CN110147226 B CN 110147226B
Authority
CN
China
Prior art keywords
functional block
directed graph
instruction set
functional
assignment
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.)
Active
Application number
CN201910261994.5A
Other languages
English (en)
Other versions
CN110147226A (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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Priority to CN201910261994.5A priority Critical patent/CN110147226B/zh
Publication of CN110147226A publication Critical patent/CN110147226A/zh
Application granted granted Critical
Publication of CN110147226B publication Critical patent/CN110147226B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F8/311Functional or applicative languages; Rewrite languages
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation

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)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

本发明属于程序开发技术领域,具体涉及一种根据功能块图自动生成程序的系统、方法及装置。所述系统包括:功能块类单元,存储有至少一个功能块类,所述功能块类为功能块抽象封装成的一个类;有向图生成单元,将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;指令集生成单元,对有向图进行遍历,并进行变量替换,生成指令集代码。转换过程简单高效,降低了程序开发的门槛,且标准化程度高,适用较广。

Description

一种根据功能块图自动生成程序的系统、方法及装置
技术领域
本发明属于程序开发技术领域,具体涉及一种根据功能块图自动生成程序的系统、方法及装置。
背景技术
可编程控制器(PLC)在世界自动化领域广泛应用。随着越来越多的PLC厂商出现,各个厂商的PLC之间需要相互协作、相互移植的需求显著增多,一个明确规范的PLC编程语言标准就显得非常重要。IEC61131-3标准是由国际电工委员会(IEC)制定IEC61131标准的第3部分,用于规范PLC的编程语言规范。使得各个厂商之间的PLC程序更容易互相移植,互相兼容。
FBD功能块图语言是IEC61131-3标准规定的5种PLC编程语言之一。功能块图是一种图编程语言,它的编程方式类似于逻辑电路中的逻辑表达式,能够方便地描述复杂的功能,程序逻辑清晰、易于理解,但将功能块图程序编译为能在PLC设备上运行的可执行文件是PLC集成开发平台软件的难点之一。
指令集也是IEC61131-3标准规定的5中PLC编程语言之一,是一种类汇编语言,非常容易编译为对应的汇编语言,因此将功能块图转换为较容易编译的指令集语言,是功能块图编译的可行方案之一。但是PLC领域内传统的功能块图程序转换到指令集程序的方法有着建模复杂、流程繁琐、实现困难等缺点。
发明内容
有鉴于此,本发明的主要目的在于提供一种根据功能块图自动生成程序的系统、方法及装置,转换过程简单高效,且降低了程序开发的门槛,且标准化程度高,适用较广。
为达到上述目的,本发明的技术方案是这样实现的:
一种根据功能块图自动生成程序的系统,所述系统包括:
功能块类单元,存储有至少一个功能块类,所述功能块类为功能块抽象封装成的一个类;
有向图生成单元,将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;
指令集生成单元,对有向图进行遍历,并进行变量替换,生成指令集代码。
进一步的,所述功能块类单元中存储的每个功能块类的成员属性均包括:功能块的位置、功能块的大小、功能块的外表图片、功能块的输入引脚、功能块的输出引脚和内嵌指令集代码。
进一步的,所述指令集生成单元包括:单个有向图遍历模块,用于对单个有向图进行遍历,并进行变量替换,生成指令集代码;多个有向图遍历模块,用于对多个有向图进行遍历,,并进行变量替换,生成指令集代码。
一种根据功能块图自动生成程序的方法,所述方法执行以下步骤:
将每个功能块抽象封装为一个类,并进行存储,一个功能块即一个功能块类的实例对象;
将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;
对有向图进行遍历,并进行变量替换,生成指令集代码。
进一步的,所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的方法执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
进一步的,所述对有向图进行遍历,生成指令集代码的方法执行以下步骤:
判断该有向图是单个有向图还是多个有向图;
对单个有向图进行遍历,并进行变量替换,生成指令集代码;
对多个有向图进行遍历,并进行变量替换,生成指令集代码。
进一步的,所述对单个有向图进行遍历,生成指令集代码的方法执行以下步骤:将单个有向图中的功能块集合看做一棵树形的数据结构,将终点作为树的根节点,然后计算每个节点的深度,按节点的深度由大到小遍历,然后进行变量替换,生成指令集代码。
进一步的,所述对多个有向图进行遍历,生成指令集代码的方法执行以下步骤:将多个有向图中的每个独立的有向图视为单个有向图,根据单个有向图的纵坐标由高到低依次对每个单个有向图进行遍历,然后进行变量替换,生成指令集代码。。
进一步的,所述进行变量替换的方法,执行以下步骤:当功能块的引脚关联的是变量地址时,直接使用变量地址替换指令集代码中的变量;当功能块的引脚关联的是其他功能块时,分配一个临时变量来保存这个连线关系。
一种根据功能块自动生成程序的装置,所述装置包括:一种非暂时性的计算机可读存储介质,该存储介质存储了计算指令,其包括:将每个功能块抽象封装为一个类,并进行存储的代码段;将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的代码段;对有向图进行遍历,并进行变量替换,生成指令集代码的代码段。
本发明的一种根据功能块图自动生成程序的系统、方法及装置,具有如下有益效果:功能块图程序将转换为对应指令集程序,指令集作为一种类汇编语言非常容易编译为可以在PLC设备上运行的机器语言,从而为功能块图程序的编译提供一条简单有效的途径。
附图说明
图1为本发明的根据功能块图自动生成程序的方法的方法流程示意图;
图2为本发明实施例提供的功能块的抽象示例;
图3为本发明实施例提供的与图2中功能块对应的有向图;
图4为本发明实施例提供的图2的有向图中各个节点的深度表;
图5为本发明实施例提供的功能块中的引脚和指令集对应的示意图;
图6为本发明实施例提供的功能块图程序实例。
具体实施方式
下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
一种根据功能块图自动生成程序的系统,所述系统包括:
功能块类单元,存储有至少一个功能块类,所述功能块类为功能块抽象封装成的一个类;
有向图生成单元,将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;
指令集生成单元,对有向图进行遍历,并进行变量替换,生成指令集代码。
上述技术方案的工作原理为:使用面向对象的方法,在用户编写功能块图程序的过程中,基于用户对功能块之间的连线操作,以功能块为顶点,以功能块之间的连线为边,直接接建立有向图,最终通过遍历有向图并结合功能块内嵌的指令集代码生成指令集程序。
上述技术方案的有益效果为:指令集作为一种类汇编语言非常容易编译为可以在PLC设备上运行的机器语言,从而为功能块图程序的编译提供一条简单有效的途径。
进一步的,所述功能块类单元中存储的每个功能块类的成员属性均包括:功能块的位置、功能块的大小、功能块的外表图片、功能块的输入引脚、功能块的输出引脚和内嵌指令集代码。
上述技术方案的工作原理为:位置代表功能块实例的左上角在编程面板上的坐标值;大小和外表图片代表了功能块实例在编程面板上的显示形象;输入引脚表示功能块连接的输入,可以是变量、地址、或其他功能块的输出引脚,输入引脚的个数不固定;内嵌指令集代码代表该功能块实例对应的指令集代码。
上述技术方案的有益效果为:将功能块抽象封装为一个类,每个功能块即一个功能块类的实例对象,成员属性包括功能块的位置、大小、外表图片、输入引脚、输出引脚、内嵌指令集代码。便于理解,逻辑清晰。
进一步的,所述指令集生成单元包括:单个有向图遍历模块,用于对单个有向图进行遍历,并进行变量替换,生成指令集代码;多个有向图遍历模块,用于对多个有向图进行遍历,,并进行变量替换,生成指令集代码。
具体地,功能块图程序可以转换为相对应的有向图,该有向图以各个功能块对象作为有向图的顶点,各个功能块之间的连线作为边。用户在使用功能块图语言进行编程中对功能块的引脚进行赋值和连线操作,该操作会改变功能块对象中引脚成员的赋值,将赋值为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向从一个功能块的输出引脚指向另一个功能块的输入引脚。因此基于面向对象的功能块程序中的功能块对象集合本身即是有个完整的有向图,边隐含各个功能块对象的引脚成员属性中。
如图2所示,例举了一个功能块图的抽象程序,5个功能块对应图3所示的的5个节点,对应关系如图4所示,当用户为功能块之间连线时,有向图的边也被建立。比如当用户将SUB功能块的输出连接到MUL功能块的输入,对应的节点V3建立一条指向V4的边。
一种根据功能块图自动生成程序的方法,所述方法执行以下步骤:
将每个功能块抽象封装为一个类,并进行存储,一个功能块即一个功能块类的实例对象;
将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;
对有向图进行遍历,并进行变量替换,生成指令集代码。
进一步的,所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的方法执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
上述技术方案的工作原理为:功能块内嵌的指令集代码,是指用指令集语言编写的功能块所代表的功能,并保存在功能块对象的成员属性中。指令集语言由操作符和操作数组成,在编写内嵌指令集代码过程中涉及到引脚的操作时,使用操作符LD读取功能块输入引脚变量,用ST或MOV系列操作符输出到功能块输出引脚,操作数部分使用引脚名称作为作为变量,在最后转换过程中变量被替换为功能块对象引脚成员变量的赋值内容,因此,只要按正确的顺序遍历功能块,就能组合出功能块图程序对应的指令集程序。
进一步的,所述对有向图进行遍历,生成指令集代码的方法执行以下步骤:
判断该有向图是单个有向图还是多个有向图;
对单个有向图进行遍历,并进行变量替换,生成指令集代码;
对多个有向图进行遍历,并进行变量替换,生成指令集代码。
具体地,如图5所示,例举了功能块三引脚加法器内嵌的指令集语言,该加法器内嵌的指令集代码所代表的功能为:当EN引脚使用时,将IN1、IN2、IN3引脚的三个输入值相加输出到OUT引脚,EN的状态输出到EO引脚。
进一步的,所述对单个有向图进行遍历,生成指令集代码的方法执行以下步骤:将单个有向图中的功能块集合看做一棵树形的数据结构,将终点作为树的根节点,然后计算每个节点的深度,按节点的深度由大到小遍历,然后进行变量替换,生成指令集代码。
具体地,每个联通的功能块图集合最终的输出会集中在出度为0的节点上,如图3的功能块图程序最终在V5节点输出,因此将这个集合看做一棵树形的数据结构,将终点作为树的根节点,然后计算每个节点的深度,最终有向图的遍历顺序是按节点的深度由大到小遍历。例如图3所示的有向图中各个节点对应的深度如图4所示,有向图的遍历顺序为V2-V1-V3-V4-V5。
队列生成的具体过程如下:
首先选择有向图的起点,在一个完整联通图中找到出度为0的功能块对象作为队列的头部;
在上一步的基础上,对整个连通图进行广度遍历;
将队列反转得到正确的遍历顺序。
进一步的,所述对多个有向图进行遍历,生成指令集代码的方法执行以下步骤:将多个有向图中的每个独立的有向图视为单个有向图,根据单个有向图的纵坐标由高到低依次对每个单个有向图进行遍历,然后进行变量替换,生成指令集代码。
如果功能块图程序中有多个联通图,则按联通图起点的纵坐标由高到低遍历。如图6所示的功能块图程序有两个联通图A和B,由于联通图A的第一个功能块的纵坐标高于联通图B的第一个功能块的纵坐标,因此遍历过程中先遍历A图再遍历B图。
进一步的,所述进行变量替换的方法,执行以下步骤:当功能块的引脚关联的是变量地址时,直接使用变量地址替换指令集代码中的变量;当功能块的引脚关联的是其他功能块时,分配一个临时变量来保存这个连线关系。
遍历功能块图的过程中,使用功能块引脚的赋值内容代替功能块内嵌指令集代码中的变量,包括两种情况:引脚关联变量地址和引脚关联其他功能块。
引脚关联变量地址的情况,直接使用变量地址替换指令集代码中的变量。比如图6功能块程序中A部分的第一个ADD2功能块,内嵌的第一句读入EN引脚值的指令集代码是“LDEN”,由于EN引脚赋值变量BOOL1,根据变量定义可知BOOL1在内存中的地址是M201,因此将M201替换EN,得到最终的指令集程序代码的第一行“LD M201”。
引脚关联其他功能块的情况,在这种情况下两个功能块之间会有连接线,并不会关联变量地址,此处需要分配一个临时变量来保存这个连线关系,临时变量以VL作为前缀,后面跟随数值。比如图6功能块程序中A部分的第一个ADD2功能块的OUT引脚连接EQ功能块的IN1引脚,因此ADD2功能块的OUT引脚对应的指令集代码“MOVD OUT VL”中的OUT替换临时变量VL2,相对应的,EQ功能块中的“EQD OUT INT1INT2”中的INT1替换为VL2。
一种根据功能块自动生成程序的装置,所述装置包括:一种非暂时性的计算机可读存储介质,该存储介质存储了计算指令,其包括:将每个功能块抽象封装为一个类,并进行存储的代码段;将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的代码段;对有向图进行遍历,并进行变量替换,生成指令集代码的代码段。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
需要说明的是,上述实施例提供的系统,仅以上述各功能模块的划分进行举例说明,在实际应用中,可以根据需要而将上述功能分配由不同的功能模块来完成,即将本发明实施例中的模块或者步骤再分解或者组合,例如,上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块,以完成以上描述的全部或者部分功能。对于本发明实施例中涉及的模块、步骤的名称,仅仅是为了区分各个模块或者步骤,不视为对本发明的不当限定。
所属技术领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
术语“第一”、“第二”等是用于区别类似的对象,而不是用于描述或表示特定的顺序或先后次序。
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过程、方法、物品或者设备/装置所固有的要素。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (9)

1.一种根据功能块图自动生成程序的系统,其特征在于,所述系统包括:
功能块类单元,存储有至少一个功能块类,所述功能块类为功能块抽象封装成的一个类;
有向图生成单元,将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;所述有向图以各个功能块对象作为有向图的顶点,各个功能块之间的连线作为边;
指令集生成单元,对有向图进行遍历,并进行变量替换,生成指令集代码;
使用面向对象的方法,在用户编写功能块图程序的过程中,基于用户对功能块之间的连线操作,以功能块为顶点,以功能块之间的连线为边,直接建立有向图,最终通过遍历有向图并结合功能块内嵌的指令集代码生成指令集程序;
所述功能块类单元中存储的每个功能块类的成员属性均包括:功能块的位置、功能块的大小、功能块的外表图片、功能块的输入引脚、功能块的输出引脚和内嵌指令集代码;
所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的方法执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
2.如权利要求1所述的根据功能块图自动生成程序的系统,其特征在于,所述指令集生成单元包括:
单个有向图遍历模块,用于对单个有向图进行遍历,并进行变量替换,生成指令集代码;
多个有向图遍历模块,用于对多个有向图进行遍历,并进行变量替换,生成指令集代码。
3.一种根据功能块图自动生成程序的方法,其特征在于,所述方法执行以下步骤:
将每个功能块抽象封装为一个类,并进行存储,一个功能块即一个功能块类的实例对象;
将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图;所述有向图以各个功能块对象作为有向图的顶点,各个功能块之间的连线作为边;
对有向图进行遍历,并进行变量替换,生成指令集代码;
所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的方法执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
4.如权利要求3所述的根据功能块图自动生成程序的方法,其特征在于,所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的方法执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
5.如权利要求4所述的根据功能块图自动生成程序的方法,其特征在于,所述对有向图进行遍历,生成指令集代码的方法执行以下步骤:
判断该有向图是单个有向图还是多个有向图;
对单个有向图进行遍历,并进行变量替换,生成指令集代码;
对多个有向图进行遍历,并进行变量替换,生成指令集代码。
6.如权利要求5所述的根据功能块图自动生成程序的方法,其特征在于,所述对单个有向图进行遍历,生成指令集代码的方法执行以下步骤:将单个有向图中的功能块集合看做一棵树形的数据结构,将终点作为树的根节点,然后计算每个节点的深度,按节点的深度由大到小遍历,然后进行变量替换,生成指令集代码。
7.如权利要求6所述的根据功能块图自动生成程序的方法,其特征在于,所述对多个有向图进行遍历,生成指令集代码的方法执行以下步骤:将多个有向图中的每个独立的有向图视为单个有向图,根据单个有向图的纵坐标由高到低依次对每个单个有向图进行遍历,然后进行变量替换,生成指令集代码。
8.如权利要求7所述的根据功能块图自动生成程序的方法,其特征在于,所述进行变量替换的方法,执行以下步骤:当功能块的引脚关联的是变量地址时,直接使用变量地址替换指令集代码中的变量;当功能块的引脚关联的是其他功能块时,分配一个临时变量来保存这个连线关系。
9.一种根据功能块自动生成程序的装置,其特征在于,所述装置包括:一种非暂时性的计算机可读存储介质,该存储介质存储了计算指令,其包括:
将每个功能块抽象封装为一个类,并进行存储的代码段;
将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的代码段;所述有向图以各个功能块对象作为有向图的顶点,各个功能块之间的连线作为边;
对有向图进行遍历,并进行变量替换,生成指令集代码的代码段;所述将操作人员进行连线和/或赋值操作关联的两个功能块,转换为对应的有向图的的代码段执行以下步骤:以各个功能块作为有向图的顶点,各个功能块之间的连线作为边;当功能块的引脚进行赋值和连线操作时,该操作会改变功能块中引脚成员的赋值,将该赋值作为关联功能块实例的引用,这种对其他功能块的引用所表示的连接关系即有向图的边,边的方向为从一个功能块的输出引脚指向另一个功能块的输入引脚。
CN201910261994.5A 2019-04-02 2019-04-02 一种根据功能块图自动生成程序的系统、方法及装置 Active CN110147226B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910261994.5A CN110147226B (zh) 2019-04-02 2019-04-02 一种根据功能块图自动生成程序的系统、方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910261994.5A CN110147226B (zh) 2019-04-02 2019-04-02 一种根据功能块图自动生成程序的系统、方法及装置

Publications (2)

Publication Number Publication Date
CN110147226A CN110147226A (zh) 2019-08-20
CN110147226B true CN110147226B (zh) 2023-10-03

Family

ID=67589426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910261994.5A Active CN110147226B (zh) 2019-04-02 2019-04-02 一种根据功能块图自动生成程序的系统、方法及装置

Country Status (1)

Country Link
CN (1) CN110147226B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022188172A1 (en) * 2021-03-12 2022-09-15 Siemens Aktiengesellschaft Graph transformation method, apparatus and system of function block chain
CN114912086A (zh) * 2022-03-29 2022-08-16 广州超音速自动化科技股份有限公司 一种软件权限管理分配方法及系统
CN115658079B (zh) * 2022-10-24 2023-10-13 上海繁易信息科技股份有限公司 一种功能块图转换为结构化文本的方法及相关设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369234A (zh) * 2008-06-24 2009-02-18 杭州电子科技大学 按照iec 61131-3标准的将梯形图语言编译成指令表语言的方法
CN101561671A (zh) * 2009-06-01 2009-10-21 杭州电子科技大学 基于构件的梯形图设计方法
CN103942081A (zh) * 2014-03-07 2014-07-23 东莞市升力智能科技有限公司 Plc梯形图il指令表生成方法
CN104662513A (zh) * 2012-07-10 2015-05-27 洛林·克雷默 自动改进程序编译中的并行处理的方法及其系统
CN109143952A (zh) * 2018-06-13 2019-01-04 华东师范大学 可编程逻辑控制器编程语言转换系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101369234A (zh) * 2008-06-24 2009-02-18 杭州电子科技大学 按照iec 61131-3标准的将梯形图语言编译成指令表语言的方法
CN101561671A (zh) * 2009-06-01 2009-10-21 杭州电子科技大学 基于构件的梯形图设计方法
CN104662513A (zh) * 2012-07-10 2015-05-27 洛林·克雷默 自动改进程序编译中的并行处理的方法及其系统
CN103942081A (zh) * 2014-03-07 2014-07-23 东莞市升力智能科技有限公司 Plc梯形图il指令表生成方法
CN109143952A (zh) * 2018-06-13 2019-01-04 华东师范大学 可编程逻辑控制器编程语言转换系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
PLC梯形图中内嵌C语言编程的实现;黄小强 等;《PLC梯形图内嵌C语言编程的实现》;20120430;全文 *
周伟 等.基于N叉树的PLC功能块向指令表的转换算法研究.《机电工程》.2015, *
基于N叉树的PLC功能块向指令表的转换算法研究;周伟 等;《机电工程》;20151231;全文 *
张磊 等.面向对象技术在物流电控程序设计中的应用.物流技术与应用.2015,第141-144页. *

Also Published As

Publication number Publication date
CN110147226A (zh) 2019-08-20

Similar Documents

Publication Publication Date Title
CN110147226B (zh) 一种根据功能块图自动生成程序的系统、方法及装置
CN107710149B (zh) 利用连接性模型生成plc代码的方法和系统
US20140123104A1 (en) Method and device for the programming and configuration of a programmable logic controller
CN109143952B (zh) 可编程逻辑控制器编程语言转换系统
CN107291444B (zh) Plc指令生成方法及装置和plc编程方法
CN102508654B (zh) 嵌入式可编程控制器的梯形图编辑器设计方法
CN109918081B (zh) 一种编译方法及编译器
US20210365253A1 (en) Heterogeneity-agnostic and topology-agnostic data plane programming
CN113608495B (zh) 一种可编程逻辑控制实现方法
CN107193534B (zh) 一种将plc梯形图转换成指令表并解释执行的方法
CN110955410A (zh) 一种代码自动生成方法、装置、设备及介质
CN109032056A (zh) 可编程逻辑控制器编程语言转换方法
CN114706592B (zh) 面向对象及面向过程语言的Modelica仿真组件生成方法
CN104063231A (zh) 一种基于hit-tena的试验资源快速接入方法
CN116521181B (zh) 基于游戏系统的脚本数据处理方法、装置、设备及介质
CN111475159B (zh) 一种自动生成程序的方法、装置及存储介质
CN105117227B (zh) 自动生成代码的方法及装置
CN108829440B (zh) 一种将逻辑组态数组转为逻辑执行命令的方法和系统
US20220111515A1 (en) Method and Apparatus for Managing Robot Program
CN109828796A (zh) 一种基于微内核架构的插件调用方法及装置
Thapa et al. Auto-generation of IEC standard PLC code using t-MPSG
CN110853327B (zh) 一种基于单片机的船舶机舱设备数据现场调试采集方法及装置
CN113433885A (zh) 用于plc编程系统的梯形图转换为结构化文本的方法
CN113987725A (zh) 用于核电站dcs透传网络变量逻辑关系自动生成方法
CN113536407A (zh) 基于单元设备构造项目图纸的方法、装置及存储介质

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