CN104407861A - 一种ePLC图编程平台中组合指令的实现方法 - Google Patents
一种ePLC图编程平台中组合指令的实现方法 Download PDFInfo
- Publication number
- CN104407861A CN104407861A CN201410667244.5A CN201410667244A CN104407861A CN 104407861 A CN104407861 A CN 104407861A CN 201410667244 A CN201410667244 A CN 201410667244A CN 104407861 A CN104407861 A CN 104407861A
- Authority
- CN
- China
- Prior art keywords
- combined command
- instruction
- command
- combined
- eplc
- 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
Links
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明涉及一种ePLC图编程平台中组合指令的实现方法。本发明首先在组合指令编辑环境中完成组合指令的编写,编写完成后系统对用户编写的组合指令进行形式审查。审查通过后对组合指令进行保存并生成一个组合指令模块添加到图编程平台中。在图编程平台中,用户可以根据需要拖拉生成的组合指令来完成ePLC控制程序的开发。在编译时需对组合指令进行单独处理,最终和其他部分程序一起生成最终的可执行文件。通过用户可以自定义组合指令,能方便用户按照应用需要将常用功能进行封装,使用时只需拖拉组合指令,就可以完成一个特定功能的设计,大大提高了程序设计效率,同时也提高了程序的可读性和可维护性。
Description
技术领域
本发明属于工业控制领域,特别是涉及一种ePLC图编程平台中组合指令的实现方法。
背景技术
作为现代工业控制设备三大支柱之一的可编程逻辑控制器(Programmable Logic Controller,PLC),以其较高的性价比在工业控制中得到广泛应用。但是近年来随着设备功能越来越复杂,以及企业掌握核心知识产权的需要,越来越多的企业逐步采用专用控制器代替通用的PLC。专用控制器的编程方式以汇编或C语言编程为主。为了提高程序的开发效率,充分结合PLC和专用控制器的优势,发展出了ePLC技术。ePLC是embedded PLC的简称,对专用控制器采用PLC图形化的开发手段。ePLC充分利用了现有嵌入式处理器的强大处理功能,按需定制各类专用控制器,并采用图形化开发平台(LD、SFC)对专用控制器进行软件开发。即具备了专用控制器可定制的特点,又具备了PLC图形化的开发手段。由于ePLC采用了和PLC类似的编程方法,因此支持相同的指令。每一条指令完成了一个特定的功能。但是在有些应用中会有多个重复的功能块,由固定的指令组成。但是在设计时需要重复编写。为了提高编程效率,理想的方法是能提供类似于函数的机制,能对常用的功能进行封装,使用时只需拖拉封装的模块即可。通过这种机制能大大提高编程效率,同时也方便复用。本发明就是基于这种思想,实现了一种通过基本IL指令封装实现组合指令的方法。
发明内容
本发明的目的是针对原有PLC中重复功能模块需要重复编写的不足,实现了一种通过基本IL指令封装成复合指令的方法。
一种ePLC图编程平台中组合指令的实现方法:通过基本的IL指令组合生成组合指令并添加到系统的组合指令集中,组合后的组合指令以一条独立指令的方式添加到ePLC图编程平台的指令工具栏中,在使用时可以将组合指令作为一条独立的指令使用,编译前用组成组合指令的IL指令集合替换组合指令。
所述的通过基本的IL指令组合生成组合指令,组合指令是由若干条操作数只包含临时变量和形参的IL指令组成的一个具有特定功能的指令集合。
所述的添加到系统的组合指令集中,ePLC图编程平台有一个XML文件描述的组合指令集,添加的组合指令以XML节点的方式添加到组合指令集XML文件中。
所述的组合后的组合指令以一条独立指令的方式添加到ePLC图编程平台的指令工具栏中,新增一条组合指令后系统自动为组合指令生成一个代表组合指令的图形控件,并将图形控件添加到ePLC图编程平台的指令工具栏中,作为一个独立的编程元件。
所述的在使用时可以将组合指令作为一条独立的指令使用,在使用时组合指令作为一条指令呈现给用户,用户只能看到组合指令名和指令说明等信息,不能看到组合指令的内部构造情况。在程序设计时,用户通过拖拉组合指令图形控件的方法使用组合指令。在用户选择某条组合指令后,需要按照形参的格式指定实参。
所述的编译前用组成组合指令的IL指令集合替换组合指令,在编译前首先通过遍历程序文件获取使用的组合指令名,通过组合指令名从组合指令集中获取组合指令的构造信息,然后将组成组合指令的IL指令中的形参替换成用户指定的实参后,将组成组合指令的IL指令集替换程序中的组合指令。
所述的编译前的替换过程由系统自动完成,无需用户参与,用户也无法看到替换的结果。
本发明的有益效果是:通过将若干条IL指令封装成复合指令,复合指令作为一条指令用于程序设计,用户只需通过拖拉复合指令的方法就可以完成一个功能模块的编写,大大提高了ePLC程序编写效率、可读性和可维护性。
附图说明
图1为组合指令编辑界面示例;
图2为组合指令图形控件表示示例;
图3 为组合指令实参设置示例;
图4 为包含组合指令的梯形图程序示例。
具体实施方式
本发明的一种ePLC图编程平台中组合指令的实现方法,包括组合指令的编辑方法、保存方法、图形控件表示方法、基于组合指令的程序设计方法和包含组合指令的程序编译方法。具体实现过程如下:
1、组合指令的编辑方法
ePLC图编程平台采用IL指令集和图形化语言(如LD,SFC等)实现程序编写,通过IL指令或LD语言等即可完成程序的开发。组合指令就是通过若干条IL指令组合成一个功能模块,组合指令功能模块可以在程序中作为一条指令使用。
在ePLC图编程平台的组合指令编辑页面中,首先指定组合指令名和形参列表。然后基于指定的形参列表和零时变量进行组合指令的编写,在组成组合指令的IL指令中不涉及任何和具体应用有关的指令操作数的地址信息。形参列表在组合指令使用时需要替换成实参。最后为了方便使用,给出所有参数的说明,包括参数的数据类型和长度等,在用户使用组合指令时呈现给用户。如图1为组合指令编辑功能示例。
2、组合指令的保存方法
组合指令编辑完以后,在新增的组合指令添加到组合指令集之前需要对组合指令进行形式检验。主要检查形参是否在组成组合指令的IL指令集合中都已使用,且IL指令集合中中的形参是否都在形参列表中声明。IL指令集合中的指令是否都符合标准。如果检查通过才添加到组合指令集,否则进行错误提示。
系统中的组合指令集以XML文件保存,一个XML节点表示一条组合指令。在节点中包含了组合指令名、形参列表、形参说明、组成组合指令的IL指令集等信息。
3、组合指令图形控件表示方法
新增组合指令通过形式检验并添加到组合指令集以后,在ePLC图编程平台指令列表中将新增一个图形控件,用来表示刚新增的组合指令。所有的组合指令都以同一个组合指令控件类实例表示,组合指令图形控件包括图形和组合指令名。如图2所示。
4、基于组合指令的程序设计方法
以梯形图(LD)语言为例,在ePLC图编程平台中,可以将组合指令作为一条独立的指令使用。用户使用时只能看到组合指令名和组合指令说明,不能看到组合指令的构造信息。编程时通过拖拉ePLC图编程平台指令列表中的组合指令图形控件的方法使用组合指令。在用户通过拖拉方式在程序设计页面中新增一条组合指令后,首先需要设置实参,如图3所示。设置完实参并通过检验保存后,刚拖拉的组合指令就添加到了程序设计页面中。检验主要是判断参数个数和类型是否符合要求。程序保存时组合指令的信息也同时保存,主要包括组合指令名和实参列表,另外还有组合指令的位置等信息,程序以XML文件格式保存。
5、包含组合指令的程序编译方法
最后是对包含组合指令的程序的编译。编译时首先读取包含程序信息的XML文件,从中获取所有的指令信息,如图4所示,通过分析指令间的串并关系将梯形图程序转换成IL指令程序。然后当判断到某条指令是组合指令时,根据组合指令名从组合指令集中获取组合指令信息,包括形参列表和组成组合指令的IL指令集合。然后将IL指令中的形参替换成用户指定的实参。替换后的IL指令集合作为一个功能块,替换原程序中的组合指令,如下所示为替换后的IL指令集合。
03 speed K2
04 LD M1000
05 MOVD VL0,VD2000
06 EORD VL0,VD3000
07 MOVD VD1000 ,VL0
以上所述仅为本发明的一个实施例子,但不能以此限制本发明的范围,凡依据本发明所做的结构上的变化,只要不失本发明的要义所在,都应视为落入本发明保护范围之内受到制约。
Claims (7)
1.一种ePLC图编程平台中组合指令的实现方法,其特征在于:通过基本的IL指令组合生成组合指令并添加到系统的组合指令集中,组合后的组合指令以一条独立指令的方式添加到ePLC图编程平台的指令工具栏中,在使用时可以将组合指令作为一条独立的指令使用,编译前用组成组合指令的IL指令集合替换组合指令。
2.权利要求1所述的实现方法,其特征在于:组合指令是由若干条操作数只包含临时变量和形参的IL指令组成的一个具有特定功能的指令集合。
3.权利要求1所述的实现方法,其特征在于:ePLC图编程平台有一个XML文件描述的组合指令集,添加的组合指令以XML节点的方式添加到组合指令集XML文件中。
4.权利要求1所述的实现方法,其特征在于:新增一条组合指令后系统自动为组合指令生成一个代表组合指令的图形控件,并将图形控件添加到ePLC图编程平台的指令工具栏中,作为一个独立的编程元件。
5.权利要求1所述的实现方法,其特征在于:在使用时组合指令作为一条指令呈现给用户,用户只能看到组合指令名和指令说明信息,不能看到组合指令的内部构造情况;在程序设计时,用户通过拖拉组合指令图形控件使用组合指令;在用户选择某条组合指令后,需要按照形参的格式指定实参。
6.权利要求1所述的实现方法,其特征在于:在编译前首先通过遍历程序文件获取使用的组合指令名,通过组合指令名从组合指令集中获取组合指令的构造信息,然后将组成组合指令的IL指令中的形参替换成用户指定的实参后,将组成组合指令的IL指令集替换程序中的组合指令。
7.权利要求6所述的实现方法,其特征在于:编译前的替换过程由系统自动完成,无需用户参与,用户也无法看到替换的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410667244.5A CN104407861A (zh) | 2014-11-20 | 2014-11-20 | 一种ePLC图编程平台中组合指令的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410667244.5A CN104407861A (zh) | 2014-11-20 | 2014-11-20 | 一种ePLC图编程平台中组合指令的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104407861A true CN104407861A (zh) | 2015-03-11 |
Family
ID=52645494
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410667244.5A Pending CN104407861A (zh) | 2014-11-20 | 2014-11-20 | 一种ePLC图编程平台中组合指令的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407861A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302057A (zh) * | 2015-11-22 | 2016-02-03 | 苏州和瑞科自动化科技有限公司 | 一种用于物料在栅格阵列间搬运的plc程序设计方法 |
WO2018054303A1 (zh) * | 2016-09-20 | 2018-03-29 | 遨博(北京)智能科技有限公司 | 一种控制机器人的方法及装置 |
CN108762197A (zh) * | 2018-06-14 | 2018-11-06 | 杭州电子科技大学 | 基于plc的运动控制方法和运动控制器 |
CN110147076A (zh) * | 2019-04-15 | 2019-08-20 | 杭州电子科技大学 | 一种视觉控制装置及方法 |
WO2023143197A1 (zh) * | 2022-01-28 | 2023-08-03 | 北京字跳网络技术有限公司 | 组合图形控件的生成方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561671A (zh) * | 2009-06-01 | 2009-10-21 | 杭州电子科技大学 | 基于构件的梯形图设计方法 |
CN101561757A (zh) * | 2009-06-01 | 2009-10-21 | 杭州电子科技大学 | 嵌入式构件自动生成方法 |
CN102393670A (zh) * | 2011-10-24 | 2012-03-28 | 杭州电子科技大学 | 一种梯形图内嵌高级语言进行混合编程的实现方法 |
-
2014
- 2014-11-20 CN CN201410667244.5A patent/CN104407861A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101561671A (zh) * | 2009-06-01 | 2009-10-21 | 杭州电子科技大学 | 基于构件的梯形图设计方法 |
CN101561757A (zh) * | 2009-06-01 | 2009-10-21 | 杭州电子科技大学 | 嵌入式构件自动生成方法 |
CN102393670A (zh) * | 2011-10-24 | 2012-03-28 | 杭州电子科技大学 | 一种梯形图内嵌高级语言进行混合编程的实现方法 |
Non-Patent Citations (1)
Title |
---|
王婷: ""基于构件重构技术的PLC算法生成平台的研究与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105302057A (zh) * | 2015-11-22 | 2016-02-03 | 苏州和瑞科自动化科技有限公司 | 一种用于物料在栅格阵列间搬运的plc程序设计方法 |
CN105302057B (zh) * | 2015-11-22 | 2018-04-13 | 苏州和瑞科自动化科技有限公司 | 一种用于物料在栅格阵列间搬运的plc程序设计方法 |
WO2018054303A1 (zh) * | 2016-09-20 | 2018-03-29 | 遨博(北京)智能科技有限公司 | 一种控制机器人的方法及装置 |
CN108762197A (zh) * | 2018-06-14 | 2018-11-06 | 杭州电子科技大学 | 基于plc的运动控制方法和运动控制器 |
CN110147076A (zh) * | 2019-04-15 | 2019-08-20 | 杭州电子科技大学 | 一种视觉控制装置及方法 |
WO2023143197A1 (zh) * | 2022-01-28 | 2023-08-03 | 北京字跳网络技术有限公司 | 组合图形控件的生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104407861A (zh) | 一种ePLC图编程平台中组合指令的实现方法 | |
US20140123104A1 (en) | Method and device for the programming and configuration of a programmable logic controller | |
CN110149800B (zh) | 一种用于处理与源程序的源代码相关联的抽象语法树的装置 | |
US7487080B1 (en) | Partitioning a model in modeling environments | |
US9501269B2 (en) | Automatic source code generation for accelerated function calls | |
CN108874438A (zh) | 补丁生成方法、装置、电子设备及计算机程序产品 | |
US9619212B2 (en) | Providing code, code generator and software development environment | |
CN104317589A (zh) | 一种用于加载动态链接库的代码自动生成方法及装置 | |
US20080028380A1 (en) | Localized, incremental single static assignment update | |
CN103885782A (zh) | 一种可视化编程页面程序库函数封装重用方法 | |
CN106737676A (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
CN104461528A (zh) | 一种可视化生成面向信号应用程序代码的方法及装置 | |
CN101826016A (zh) | 支持多核并行程序设计的可视化建模及代码框架生成方法 | |
CN110262794A (zh) | 一种基于规范与描述语言的aadl功能行为拓展方法及工具 | |
CN105204837B (zh) | 一种逻辑编程的实现方法和装置 | |
CN107179910A (zh) | 一种在线编辑即时生效的逻辑组态方法 | |
CN104063231A (zh) | 一种基于hit-tena的试验资源快速接入方法 | |
Son et al. | Test case generation from cause-effect graph based on model transformation | |
CN108170953B (zh) | 一种电路图迁移方法和装置 | |
CN102004660A (zh) | 一种业务流程的实现方法及装置 | |
Sun et al. | A model-driven approach to support engineering changes in industrial robotics software | |
CN105659175A (zh) | 配置自动化系统的处理设备与方法 | |
Biermann et al. | Independence analysis of firing and rule-based net transformations in reconfigurable object nets | |
CN103488519B (zh) | 一种交互式脚本语言解释器的实现方法 | |
Peñil et al. | Automatic synthesis from UML/MARTE models using channel semantics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150311 |
|
WD01 | Invention patent application deemed withdrawn after publication |