CN103942081A - Plc梯形图il指令表生成方法 - Google Patents

Plc梯形图il指令表生成方法 Download PDF

Info

Publication number
CN103942081A
CN103942081A CN201410084101.1A CN201410084101A CN103942081A CN 103942081 A CN103942081 A CN 103942081A CN 201410084101 A CN201410084101 A CN 201410084101A CN 103942081 A CN103942081 A CN 103942081A
Authority
CN
China
Prior art keywords
network
ladder diagram
row piece
plc ladder
row
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.)
Pending
Application number
CN201410084101.1A
Other languages
English (en)
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.)
ADVANCED INTELLIGENT MACHINE Co Ltd
Original Assignee
ADVANCED INTELLIGENT MACHINE 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 ADVANCED INTELLIGENT MACHINE Co Ltd filed Critical ADVANCED INTELLIGENT MACHINE Co Ltd
Priority to CN201410084101.1A priority Critical patent/CN103942081A/zh
Publication of CN103942081A publication Critical patent/CN103942081A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明公开了一种PLC梯形图IL指令表生成方法,涉及高级语言的编译或解释方法技术领域。包括以下步骤:1)首先,通过分级算法对PLC梯形图进行第一层分级、分类处理;2)接着,进行第二层分网络处理,进入每一级PLC梯形图的IL指令表转换过程后,通过子PLC梯形图编译算法对该级PLC梯形图按网络顺序进行IL指令表转换处理;3)最后,进行第三层分行处理,对该网络每一行的图元进行遍历并进行IL指令表转换处理,生成IL指令表。使用所述方法生成IL指令表,具有便捷、高效、故障排查周期短及高度自适应的特点。

Description

PLC梯形图IL指令表生成方法
技术领域
本发明涉及高级语言的编译或解释技术领域,尤其涉及一种IL指令表生成方法。
背景技术
随着科技的进步,新一代数控技术对社会生产力提高和制造产业升级起到越来越重要的作用。PLC技术是新一代数控技术发展的重要组成部分和发展方向,其具有开关及模拟量控制、数值运算、通讯等功能,通过PLC(ProgrammableLogic Controller,可编程逻辑控制器)运行内核,快速而准确地扫描控制程序,与I/O系统通讯,实现控制功能。此外,IEC61131-3标准对于PLC编程的规范及推广起到了极大的作用。
PLC编程系统是PLC控制的重要组成部分,它是PLC控制设备运行的必备开发工具。用户根据实际使用需求在PLC编程系统中编写PLC梯形图程序,编译以后将生成的目标代码下载到控制器,控制器驱动电机驱动器控制设备运行。传统PLC是数控系统的重要组成部分,采用可编程存储器保存程序,按顺序执行计数、定时、逻辑运算、算术运算、顺序控制等面向用户的指令,通过数字或者模拟输入输出控制机械部件或生产过程。
传统PLC具有可靠性高、抗干扰能力强、适用于恶劣的控制环境等优点,在工业控制领域中得到广泛的应用。然而,传统PLC产品功能的实现依赖于硬件,数据结构封闭,编程元素的数目、种类、编程语言差异大,工作人员需经一段培训才能掌握一种产品的编程方法。随着计算机技术的快速发展以及PLC方面国际标准的制定,基于PC的PLC编程系统作为一项新技术被提出,并打破了传统PLC的局限性。
基于PC的PLC编程系统是指充分利用工业计算机IPC或嵌入式计算机EPC的软件和硬件资源,用软件来实现传统硬件PLC的功能。其具有以下优点:1)遵循国际工业标准,如IEC61131标准和IEC61499标准,增强了PLC程序的可读性、可移植性和可维护性。2)可充分利用PC机的硬件资源,如大容量内存,高速CPU及其他硬件,提高PLC的运行速度及可靠性,在数据处理、文件及数据库管理方面,基于PC的PLC编程系统具有明显优势。3)人机界面友好,便于操作。4)网络通讯功能强大,通过互联网可远程控制PLC系统,查询并更新控制信息。
目前,国内的PLC编程开发系统种类繁多,编程语言差异大,与IEC61131-3PLC编程语言标准相差甚远、对复杂PLC梯形图编译自适应能力低、编译效率低、缺乏程序调试功能等问题尤为突出,导致控制程序开发过程繁琐、调试困难、开发周期长、系统稳定性差,这成为快速开发稳定可靠的控制程序的主要障碍。
国内清华大学、哈尔滨工业大学、大连理工大学等和一些科研机构也在PLC控制系统方面做了大量研究。中国科学院沈阳技术研究院开发的PLC梯形图编程软件,编译步骤如下:1)采用深度扫描优先法实现PLC梯形图到IL指令表的转换;2)采用Flex词法分析器将IL指令表解析成C代码;3)采用Bison工具解析C代码,将其转换成目标代码。该软件的缺点是转换步骤过多,自适应能力差,效率低。
北京工业大学的张思详等所开发的PLC编程系统,通过遍历存放PLC梯形图逻辑信息的数组生成C代码,特点是内存消耗巨大,而且编译生成的C代码,不可直接运行,需要二次处理。
浙江大学葛益军等采用面向对象建模方法对PLC编程系统进行了建模。浙江大学吴铁军教授及其科研团队在对IEC61131-3标准进行研究以后实现了LD、FBD、ST、SFC4种语言的编程,4种语言分别采用相应的编译算法,生成C语言,然后采用特定的解析算法进行进一步处理生成目标代码,同时提供仿真功能,但在处理效率方面有待提高。
发明内容
本发明所要解决的技术问题是提供一种PLC梯形图IL指令表生成方法,使用所述方法生成IL指令表,具有便捷、高效、故障排查周期短及高度自适应的特点。
为解决上述技术问题,本发明所采取的技术方案是:一种PLC梯形图IL
指令表生成方法,其特征在于包括以下步骤:
1)首先,通过分级算法对PLC梯形图进行第一层分级、分类处理;
2)接着,进行第二层分网络处理,进入每一级PLC梯形图的IL指令表转换过程后,通过子PLC梯形图编译算法对该级PLC梯形图按网络顺序进行IL指令表转换处理;
3)最后,进行第三层分行处理,对该网络每一行的图元进行遍历并进行IL指令表转换处理,生成IL指令表。(按照这种写法)
优选的,在进行第一层分级处理时,分别对第一级PLC梯形图,第二级PLC梯形图和子程序PLC梯形图的程序进行IL指令表转换处理,并在每一级程序完成转换后添加相应的程序结束标志。
优选的,第二层分网络处理具体过程如下:
1)清空IL语言存放容器;
2)遍历子PLC梯形图的网络;
3)对该级PLC梯形图的所有网络进行IL语言转换处理,当遇到被注释的网络时,则跳过该网络进入下一个网络,否则对该网络进行转换预处理,网络通过预处理后再进行IL语言转换处理;
4)预处理过程中若遇到网络为空、网络断路、网络短路或者网络重叠的情况,处理机制会对出错的情况进行相应的报错处理,并跳过该网络的IL转换过程;
5)网络通过预处理后,IL语言转换处理机制会先对该网络进行检测,判断该网络属于单行还是多行网络,若为单行网络,则调用单行网络转换算法进行IL语言转换处理,否则调用多行网络转换算法进行IL语言转换处理;
6)转换成功后,返回子PLC梯形图的转换结果。
优选的,对于单行网络IL指令表,按照以下方法进行处理:
1)遍历该网络的图元;
2)当遇到标记指令时,对LBL指令进行特殊处理;
3)检测该行是否有效,若无效则进行相应的报错处理;
4)将网络的行图元转换成IL语言,其中首个输入图元按“LD或LDI+图元寄存器地址”的形式进行转换,其余输入图元按“AND或ANI+图元寄存器地址”的形式进行转换,输出图元按“图元指令名+图元参数”的形式进行转换。
优选的,对于多行网络IL指令表,按照以下方法进行处理:
1)进入多行网络编译处理过程后,首先进行初始化设置;
2)按从下往上,从左往右的顺序遍历网络的行数组,定义出该网络的输出模块,并将网络的剩余部分定义为输入模块;
3)分别递归调用输入模块的IL指令表转换算法和输出模块的IL指令表转换算法对输入块和输出块进行处理,直到输入模块和输出模块都被分割为单行网络并转换为相应的IL指令表。
优选的,输入模块的IL指令表转换算法包括以下步骤:
1)对输入块进行行块划分,通过输入块行块划分算法将输入块按照行块划分规则划分,并入栈。
2)遍历行块,分第一行块和非第一行块进行处理;
3)所有行块处理完成后,则结束输入块转换处理过程;
优选的,第一行块处理过程如下:首先检测行块是否为单行,若为单行则通过查错后利用单行转换算法进行转换;否则通过输入块列块划分算法对行块进行列块划分,并递归调用输入模块的IL指令表转换算法对划分出的列块进行处理;对于非第一列块,在进行递归处理后需添加“ANB”标志。
优选的,非第一行块处理过程如下:首先检测行块是否为单行,若为单行,则通过查错后检测该行的节点数量,数量为1时将该行转换为“OR strName”,数量大于1时利用单行转换算法进行转换;否则对行块进行列块划分,并递归调用输入块处理算法对划分出的列块进行处理;对于非第一列块,在进行递归处理后需添加“ANB”标志;每次行块处理完成后需添加“ORB”标志。
优选的,输出模块的IL指令表转换方法包括以下步骤:
(1)进入输出块处理过程后,先对参数进行初始化设置;
(2)检测输出块是否有输出图元,若没有,则进行报错处理;
(3)检测输出块是否包含输入图元,若没有,则遍历行图元,并将输出图元转换为相应的IL语言并返回,否则对输出块进行块划分;
(4)遍历行块,添加相应的栈位置标记,并检测该行块是否包含输入图元,若有,则递归调用网络处理算法将该行块当成新的网络进行处理,否则递归调用输出模块的IL指令表转换算法进行处理;
(5)直到遍历完行块,输出块处理过程结束。
采用上述技术方案所产生的有益效果在于:1)所述方法遵循IEC61131国际工业标准,增强了PLC程序的可读性、可移植性和可维护性;2)可准确高效的将PLC梯形图程序编译成IL指令表;3)采用基于块的递归划分的方法将复杂PLC梯形图简化成单行PLC梯形图进行IL指令表,具有很强的复杂PLC梯形图编译自适应能力;4)具有完善的智能报错功能,在编译过程中提供查错功能,对PLC梯形图进行查错并提示用户进行修正,提高用户编写PLC程序的效率。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1是本发明中分级算法流程图;
图2是本发明中子PLC梯形图编译算法流程图;
图3是本发明中单行网络IL转换处理流程图;
图4是本发明中多行网络IL转换处理流程图的上半部分;
图5是本发明中多行网络IL转换处理流程图的下半部分;
图6是本发明中输入模块的IL指令表转换流程图的左半部分;
图7是本发明中输入模块的IL指令表转换流程图的右半部分;
图8是本发明中输入块行块划分算法流程图;
图9是本发明中输入块列块划分算法流程图;
图10是本发明中输出模块的IL指令表转换流程图;
图11是PLC梯形图输入块划分示意图;
图12是PLC梯形图输入块第一次划分处理示意图;
图13是PLC梯形图输入块第二次划分处理示意图;
图14是PLC梯形图输入块多次划分处理示意图;
图15是PLC梯形图输入块转换结果示意图;
图16是PLC梯形图输出块行划分示意图;
图17是PLC梯形图输出块第二次划分处理示意图;
图18是PLC梯形图输出块多次划分处理示意图。
具体实施方式
IL指令表又称为布尔助记符或语句表,是IEC61131-3定义的五种PLC编程语言中最接近机器语言的文本语言,其具有编程效率低、可读性差、但编译效率高的特点。适合作其他PLC编程语言向目标代码转换的中间语言。
PLC梯形图的IL指令表转换是一个复杂的逻辑及算法处理过程,基于背景技术所述,本发明提供了以下技术方案解决现有技术中存在的问题:
本发明的总体思路是:对PLC梯形图按分级、分网络、分行的逻辑顺序进行IL指令转换处理。
一种PLC梯形图IL指令表生成方法,包括以下步骤:
1)首先,通过分级算法对PLC梯形图进行第一层分级、分类处理;
2)接着,进行第二层分网络处理,进入每一级PLC梯形图的IL指令表转换过程后,通过子PLC梯形图编译算法对该级PLC梯形图按网络顺序进行IL指令表转换处理;
3)最后,进行第三层分行处理,对该网络每一行的图元进行遍历并进行IL指令表转换处理,生成IL指令表。
以上是本申请的核心思想,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其他不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
下面通过具体实施例进行说明。
实施例
所述方法首先进行第一层分级处理,通过分级算法对PLC梯形图进行分级分类处理,如图1所示,从而分别对第一级PLC梯形图,第二级PLC梯形图和子程序PLC梯形图的程序进行IL指令表转换处理;并在每一级程序完成转换后添加相应的程序结束标志。
接着进行第二层分网络处理,进入每一级PLC梯形图的IL指令表转换过程后,通过子PLC梯形图编译算法对该级PLC梯形图按网络顺序进行IL指令表转换处理,如图2所示,其处理流程如下:
(1)清空IL语言存放容器;
(2)遍历子PLC梯形图的网络;
(3)对该级PLC梯形图的所有网络进行IL语言转换处理,当遇到被注释的网络时,则跳过该网络进入下一个网络,否则则对该网络进行转换预处理,网络通过预处理后再进行IL语言转换处理;
(4)预处理过程中若遇到网络为空、网络断路、网络短路或者网络重叠的情况,处理机制会对出错的情况进行相应的报错处理,并跳过该网络的IL转换过程;
(5)网络通过预处理后,IL语言转换处理机制会先对该网络进行检测,判断该网络属于单行还是多行网络,若为单行网络,则调用单行网络转换算法进行IL语言转换处理,否则则调用多行网络转换算法进行IL语言转换处理;
(6)转换成功后,返回子PLC梯形图的转换结果。
最后进行第三层分行处理,进入PLC梯形图网络的IL指令表转换过程后,对该网络每一行的图元进行遍历并进行IL指令表转换处理。
PLC梯形图的网络有单行指令和多行指令两种情况,由于单行的转换算法简单,在PLC梯形图程序中存在一部分单行的PLC梯形图程序,为了提高转换效率,减少不必要的算法执行时间,对PLC梯形图网络转换按照单行和多行PLC梯形图程序分类进行处理,其处理流程分别如下:
单行网络IL指令表转换处理流程如图3所示:
(1)遍历该网络的图元;
(2)当遇到标记指令时,对LBL指令进行特殊处理;
(3)检测该行是否有效,若无效则进行相应的报错处理;
(4)将网络的行图元转换成IL语言,其中首个输入图元按“LD或LDI+图元寄存器地址”的形式进行转换,其余输入图元按“AND或ANI+图元寄存器地址”的形式进行转换,输出图元按“图元指令名+图元参数”的形式进行转换。
多行网络IL指令表转换处理流程:
多行PLC梯形图程序的IL指令表转换是IL指令表转换的核心,本发明采用基于块的递归划分的方法将复杂PLC梯形图简化成单行PLC梯形图进行解析,其处理流程如图4-5所示(图4中的a、b分别对应连接图5中的a、b),处理过程如下:
(1)进入多行网络编译处理过程后,首先进行初始化设置;
(2)按从下往上,从左往右的顺序遍历网络的行数组,定义出该网络的输出模块,并将网络的剩余部分定义为输入模块;
(3)分别递归调用输入模块的IL指令表转换算法和输出模块的IL指令表转换算法对输入块和输出块进行处理,直到输入模块和输出模块都被分割为单行网络并转换为相应的IL指令表。
输入模块的IL指令表转换流程如图6-7所示(图6中的c、d、e、f分别对应连接图7中的c、d、e、f),处理过程如下:
(1)输入块行块划分,通过输入块行块划分算法,如图8所示,行块划分预处理,定义输入块为RestRect;检测RestRect是否可以进行划分,若可以,则调用划分算法对RestRect进行行块划分,并将划分出的行块进行入栈处理;重新定义RestRect,将未进行行块划分的输入块存入RestRect;循环进行行块划分处理直到RestRect无法继续划分,则完成行块划分并入栈处理过程;
(2)遍历行块,分第一行块和非第一行块进行处理。
1)第一行块处理:首先检测行块是否为单行,若为单行则通过查错后利用单行转换算法进行转换。否则通过输入块列块划分算法,如图9所示,进入列块划分并入栈处理过程,将图元竖线坐标进行出栈处理;依次检测出栈的竖线长度是否为最大值,若是,则利用该竖线坐标构造列块,并将该列块进行入栈处理;否则则继续进行竖线坐标出栈处理,直到出栈结束;剩余图元构造为列块,并进行列块入栈处理;完成列块划分并入栈处理。对行块进行列块划分,并递归调用输入模块的IL指令表转换算法对划分出的列块进行处理,对于非第一列块,在进行递归处理后需添加“ANB”标志。
2)非第一行块处理:首先检测行块是否为单行,若为单行,则通过查错后检测该行的节点数量,数量为1时将该行转换为“OR strName”,数量大于1时利用单行转换算法进行转换。否则则对行块进行列块划分,并递归调用输入块处理算法对划分出的列块进行处理。对于非第一列块,在进行递归处理后需添加“ANB”标志。每次行块处理完成后需添加“ORB”标志。
(3)所有行块处理完成后,则结束输入块转换处理过程。
输出模块的IL指令表转换流程如图10所示,处理过程如下:
(1)进入输出块处理过程后,先对参数进行初始化设置;
(2)检测输出块是否有输出图元,若没有,则进行报错处理;
(3)检测输出块是否包含输入图元,若没有,则遍历行图元,并将输出图元转换为相应的IL语言并返回;否则则对输出块进行块划分;
(4)遍历行块,添加相应的栈位置标记,并检测该行块是否包含输入图元,若有,则递归调用网络处理算法将该行块当成新的网络进行处理,否则则递归调用输出模块的IL指令表转换算法进行处理;
(5)直到遍历完行块,输出块处理过程结束。
至此,本方案即完成了对待转换PLC梯形图所有图元的遍历并转换为相应的IL语言,最后生成IL指令表文件(txt)。
在本实施例中以输入块和输出块IL指令表转换进行举例说明。
输入块IL指令表转换
以一个网络为例进行输入块IL指令表转换分析:
1、对网络进行输入块和输出块划分,如图11所示:
2、对输入块进行处理,处理过程如下所述:
1)第一次划分,将输入块进行行块划分,在对各行进行列块划分,如图12所示:
2)第二次划分,对划分出来的列块,转入第一次划分处理,进行行块划分,如图13所示;
3)如此循环,直到把输入块划分到不可划分的最小块并转换为IL指令表,如图14所示;
4)转换后的IL指令表结果如图15及以下文本所示:
输出块IL指令表转换
输出块采用行递归划分处理,每个行块为一个新的网络,递归调用网络处理函数,从而完成IL指令表的转换。
以一个网络为例进行输出块IL指令表转换分析:
1、先将该输出块划分为四个行块,如图16所示。
2、遍历行块,添加相应的栈位置标记,将行块一、行块三和行块四当作新的网络,递归调用网络处理算法进行处理;递归调用输出模块的IL指令表转换算法处理行块二,如图17所示。
3、如此循环,直到把所有节点都转换为IL指令表,如图18及以下代码所示;
综上所述,本发明具有以下优点:1)所述方法遵循IEC61131国际工业标准,增强了PLC程序的可读性、可移植性和可维护性;2)可准确高效的将PLC梯形图程序编译成IL指令表;3)采用基于块的递归划分的方法将复杂PLC梯形图简化成单行PLC梯形图进行IL指令表,具有很强的复杂PLC梯形图编译自适应能力;4)具有完善的智能报错功能,在编译过程中提供查错功能,对PLC梯形图进行查错并提示用户进行修正,提高用户编写PLC程序的效率。

Claims (9)

1.一种PLC梯形图IL指令表生成方法,其特征在于包括以下步骤: 
1)首先,通过分级算法对PLC梯形图进行第一层分级、分类处理; 
2)接着,进行第二层分网络处理,进入每一级PLC梯形图的IL指令表转换过程后,通过子PLC梯形图编译算法对该级PLC梯形图按网络顺序进行IL指令表转换处理; 
3)最后,进行第三层分行处理,对该网络每一行的图元进行遍历并进行IL指令表转换处理,生成IL指令表。 
2.根据权利要求1所述的PLC梯形图IL指令表生成方法,其特征在于:在进行第一层分级处理时,分别对第一级PLC梯形图,第二级PLC梯形图和子程序PLC梯形图的程序进行IL指令表转换处理,并在每一级程序完成转换后添加相应的程序结束标志。 
3.根据权利要求1所述的PLC梯形图IL指令表生成方法,其特征在于,第二层分网络处理具体过程如下: 
1)清空IL语言存放容器; 
2)遍历子PLC梯形图的网络; 
3)对该级PLC梯形图的所有网络进行IL语言转换处理,当遇到被注释的网络时,则跳过该网络进入下一个网络,否则对该网络进行转换预处理,网络通过预处理后再进行IL语言转换处理; 
4)预处理过程中若遇到网络为空、网络断路、网络短路或者网络重叠的情况,处理机制会对出错的情况进行相应的报错处理,并跳过该网络的IL转换过程; 
5)网络通过预处理后,IL语言转换处理机制会先对该网络进行检测,判断该网络属于单行还是多行网络,若为单行网络,则调用单行网络转换算法进行IL语言转换处理,否则调用多行网络转换算法进行IL语言转换处理; 
6)转换成功后,返回子PLC梯形图的转换结果。 
4.根据权利要求3所述的PLC梯形图IL指令表生成方法,其特征在于,对于单行网络IL指令表,按照以下方法进行处理: 
1)遍历该网络的图元; 
2)当遇到标记指令时,对LBL指令进行特殊处理; 
3)检测该行是否有效,若无效则进行相应的报错处理; 
4)将网络的行图元转换成IL语言,其中首个输入图元按“LD或LDI+图元寄存器地址”的形式进行转换,其余输入图元按“AND或ANI+图元寄存器地址”的形式进行转换,输出图元按“图元指令名+图元参数”的形式进行转换。 
5.根据权利要求3所述的PLC梯形图IL指令表生成方法,其特征在于,对于多行网络IL指令表,按照以下方法进行处理: 
1)进入多行网络编译处理过程后,首先进行初始化设置; 
2)按从下往上,从左往右的顺序遍历网络的行数组,定义出该网络的输出模块,并将网络的剩余部分定义为输入模块; 
3)分别递归调用输入模块的IL指令表转换算法和输出模块的IL指令表转换算法对输入块和输出块进行处理,直到输入模块和输出模块都被分割为单行网络并转换为相应的IL指令表。 
6.根据权利要求5所述的PLC梯形图IL指令表生成方法,其特征在于,输入模块的IL指令表转换算法包括以下步骤: 
1)对输入块进行行块划分,通过输入块行块划分算法将输入块按照行块划分规则划分,并入栈。 
2)遍历行块,分第一行块和非第一行块进行处理; 
3)所有行块处理完成后,则结束输入块转换处理过程。 
7.据权利要求6所述的PLC梯形图IL指令表生成方法,其特征在于,第一行块处理过程如下:首先检测行块是否为单行,若为单行则通过查错后利用单行转换算法进行转换;否则通过输入块列块划分算法对行块进行列块划分,并递归调用输入模块的IL指令表转换算法对划分出的列块进行处理;对于非第一列块,在进行递归处理后需添加“ANB”标志。 
8.据权利要求6所述的PLC梯形图IL指令表生成方法,其特征在于,非第一行块处理过程如下:首先检测行块是否为单行,若为单行,则通过查错后检测该行的节点数量,数量为1时将该行转换为“OR strName”,数量大于1时利用单行转换算法进行转换;否则对行块进行列块划分,并递归调用输入块处理算法对划分出的列块进行处理;对于非第一列块,在进行递归处理后需添 加“ANB”标志;每次行块处理完成后需添加“ORB”标志。 
9.根据权利要求5所述的PLC梯形图IL指令表生成方法,其特征在于,输出模块的IL指令表转换方法包括以下步骤: 
(1)进入输出块处理过程后,先对参数进行初始化设置; 
(2)检测输出块是否有输出图元,若没有,则进行报错处理; 
(3)检测输出块是否包含输入图元,若没有,则遍历行图元,并将输出图元转换为相应的IL语言并返回,否则对输出块进行块划分; 
(4)遍历行块,添加相应的栈位置标记,并检测该行块是否包含输入图元,若有,则递归调用网络处理算法将该行块当成新的网络进行处理,否则递归调用输出模块的IL指令表转换算法进行处理; 
(5)直到遍历完行块,输出块处理过程结束。 
CN201410084101.1A 2014-03-07 2014-03-07 Plc梯形图il指令表生成方法 Pending CN103942081A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410084101.1A CN103942081A (zh) 2014-03-07 2014-03-07 Plc梯形图il指令表生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410084101.1A CN103942081A (zh) 2014-03-07 2014-03-07 Plc梯形图il指令表生成方法

Publications (1)

Publication Number Publication Date
CN103942081A true CN103942081A (zh) 2014-07-23

Family

ID=51189757

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410084101.1A Pending CN103942081A (zh) 2014-03-07 2014-03-07 Plc梯形图il指令表生成方法

Country Status (1)

Country Link
CN (1) CN103942081A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607569A (zh) * 2015-12-25 2016-05-25 山东超越数控电子有限公司 一种将il语言转换为梯形图的方法及装置
CN109143952A (zh) * 2018-06-13 2019-01-04 华东师范大学 可编程逻辑控制器编程语言转换系统
CN109188994A (zh) * 2017-06-30 2019-01-11 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统
CN110147226A (zh) * 2019-04-02 2019-08-20 杭州电子科技大学 一种根据功能块图自动生成程序的系统、方法及装置
CN112327744A (zh) * 2020-11-20 2021-02-05 深圳市海浦蒙特科技有限公司 用于可编程逻辑控制器的梯形图与指令表互相转换方法
CN113360142A (zh) * 2021-06-24 2021-09-07 广东工贸职业技术学院 一种数控内嵌plc中间文件的设计与编译方法
CN114594720A (zh) * 2022-02-07 2022-06-07 厦门聚视智创科技有限公司 一种plc高效编程系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330865A (ja) * 2005-05-24 2006-12-07 Keyence Corp ユーザプログラム表示装置及びこれに適用されるプログラム
CN101364098A (zh) * 2008-09-12 2009-02-11 南京航空航天大学 一种将梯形图转换为指令表程序及解释执行的方法与系统
CN101957745A (zh) * 2009-07-16 2011-01-26 沈阳高精数控技术有限公司 梯形图语言转换为结构文本语言的方法
CN102354144A (zh) * 2011-09-06 2012-02-15 北京联合大学 一种将梯形图转化成plc程序指令的方法
CN102508654A (zh) * 2011-10-11 2012-06-20 江苏科技大学 嵌入式可编程控制器的梯形图编辑软件设计方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006330865A (ja) * 2005-05-24 2006-12-07 Keyence Corp ユーザプログラム表示装置及びこれに適用されるプログラム
CN101364098A (zh) * 2008-09-12 2009-02-11 南京航空航天大学 一种将梯形图转换为指令表程序及解释执行的方法与系统
CN101957745A (zh) * 2009-07-16 2011-01-26 沈阳高精数控技术有限公司 梯形图语言转换为结构文本语言的方法
CN102354144A (zh) * 2011-09-06 2012-02-15 北京联合大学 一种将梯形图转化成plc程序指令的方法
CN102508654A (zh) * 2011-10-11 2012-06-20 江苏科技大学 嵌入式可编程控制器的梯形图编辑软件设计方法

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
YUAN XIAOHONG ETC.: "The Research of Syntax Tree of the Compiler Based", 《BUSINESS MANAGEMENT AND ELECTRONIC INFORMATION (BMEI), 2011 INTERNATIONAL CONFERENCE》 *
ZHAO XINBO ETC.: "Research of Conversion Algorithm of Programmable Logic Controller Ladder", 《INTELLIGENT NETWORKS AND INTELLIGENT SYSTEMS (ICINIS), 2012 FIFTH INTERNATIONAL CONFERENCE》 *
孙玉霞等: "PLC 梯形图向语句表的转换算法及实现", 《湖北师范学院学报( 自然科学版)》 *
张扬等: "基于网络的PLC实验梯形图编辑器设计及实现", 《机电工程》 *
苏淑芝: "软PLC梯形图编程系统的研究与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
莫易敏等: "PLC 梯形图转化为指令表算法及实现", 《控制工程》 *
邹莉: "软PLC梯形图向指令表转换新算法的研究与实现", 《 聊城大学学报(自然科学版)》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105607569A (zh) * 2015-12-25 2016-05-25 山东超越数控电子有限公司 一种将il语言转换为梯形图的方法及装置
CN105607569B (zh) * 2015-12-25 2018-02-23 山东超越数控电子股份有限公司 一种将il语言转换为梯形图的方法及装置
CN109188994A (zh) * 2017-06-30 2019-01-11 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统
CN109188994B (zh) * 2017-06-30 2021-06-08 沈阳新松机器人自动化股份有限公司 一种梯形图编译方法及相应的plc系统
CN109143952A (zh) * 2018-06-13 2019-01-04 华东师范大学 可编程逻辑控制器编程语言转换系统
CN109143952B (zh) * 2018-06-13 2020-05-12 华东师范大学 可编程逻辑控制器编程语言转换系统
CN110147226A (zh) * 2019-04-02 2019-08-20 杭州电子科技大学 一种根据功能块图自动生成程序的系统、方法及装置
CN110147226B (zh) * 2019-04-02 2023-10-03 杭州电子科技大学 一种根据功能块图自动生成程序的系统、方法及装置
CN112327744A (zh) * 2020-11-20 2021-02-05 深圳市海浦蒙特科技有限公司 用于可编程逻辑控制器的梯形图与指令表互相转换方法
CN113360142A (zh) * 2021-06-24 2021-09-07 广东工贸职业技术学院 一种数控内嵌plc中间文件的设计与编译方法
CN114594720A (zh) * 2022-02-07 2022-06-07 厦门聚视智创科技有限公司 一种plc高效编程系统

Similar Documents

Publication Publication Date Title
CN103942081A (zh) Plc梯形图il指令表生成方法
Singh et al. Kiwi: Synthesis of FPGA circuits from parallel programs
CN110633248A (zh) 高性能计算环境中的序列优化
CN102508654B (zh) 嵌入式可编程控制器的梯形图编辑器设计方法
CN100465895C (zh) 编译器、编译方法
CN103941650B (zh) 逻辑与运动集成控制器
CN104820613A (zh) 一种异构多核程序的编译方法
CN104267654A (zh) 梯形图程序转换成指令表程序及其编译的方法与系统
CN102087609A (zh) 多处理器平台下的动态二进制翻译方法
CA2943044A1 (en) Solving np-complete problems without hyper-polynomial cost
CN102866890A (zh) 基于对象关联的Android嵌入式界面及程序框架的生成系统及生成方法
CN104865904A (zh) 一种面向多周期运算任务的无扰组态方法
CN117009038B (zh) 一种基于云原生技术的图计算平台
CN110781126A (zh) 一种TensorFlow的FPGA异构加速实现方法、系统、终端及存储介质
CN103838616A (zh) 基于树型程序分支的计算机程序即时编译方法
CN105447285A (zh) 一种提高OpenCL硬件执行效率的方法
CN112527304B (zh) 基于异构平台的自适应节点融合编译优化方法
CN108664238A (zh) 一种解释型脚本语言c-sub的执行方法及装置
Burkhardt Universal programming languages and processors: A brief survey and new concepts
CN102508691B (zh) 一种图形语言程序的有序分解方法及有序分解器
CN101968785A (zh) 理解人类自然语言的逻辑机器模型
Chen Distributed intelligence for user-oriented computing
CN104461569A (zh) 一种基于matlab的c/c++程序生成辅助方法
Frankau et al. Stream processing hardware from functional language specifications
Quinlan et al. Annotating user-defined abstractions for optimization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned

Effective date of abandoning: 20180302

AD01 Patent right deemed abandoned