CN101566839B - 一种梯形图内嵌组态算法的实现方法 - Google Patents
一种梯形图内嵌组态算法的实现方法 Download PDFInfo
- Publication number
- CN101566839B CN101566839B CN2009100991569A CN200910099156A CN101566839B CN 101566839 B CN101566839 B CN 101566839B CN 2009100991569 A CN2009100991569 A CN 2009100991569A CN 200910099156 A CN200910099156 A CN 200910099156A CN 101566839 B CN101566839 B CN 101566839B
- Authority
- CN
- China
- Prior art keywords
- configuration
- algorithm
- configuration algorithm
- data
- ladder diagram
- 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
Links
Images
Landscapes
- Programmable Controllers (AREA)
Abstract
本发明公开了一种梯形图内嵌组态算法的实现方法,包括组态算法构件化、组态算法包的自动生成、组态算法中参数的内存分配与映射、逻辑控制任务与过程控制任务的任务调度;对组态算法进行抽象化、原子化,剥离成一个个构件,采用控件的表现形式,实现控制算法的组态;本发明可以实现逻辑控制与过程控制的无缝结合,扩大工业控制的范围与提高控制的灵活度。
Description
技术领域
本发明涉及梯形图内嵌入组态算法技术,特别地,涉及一种自动生成梯形图内嵌组态算法的技术。
背景技术
长期以来PLC与DCS控制系统各自在离散和过程行业都占有主要地位。然而,随着自动化技术的进步,尤其是自动化系统通信技术的飞越式发展,两者正在呈现融合与集成的趋势。随着DCS与PLC功能的不断发展和完善,新型的DCS与新型的PLC,都有向对方靠拢的趋势。新型的DCS已有了很强的顺序控制功能;而新型的PLC,在处理闭环控制方面性能较好,而且无论在控制器方面还是网络方面都能做到冗余。二者能组成大型网络,适用范围已有很大的交叉,技术上相互融合。
发明内容
本发明的目的在于针对现有的梯形图控制范围太小与控制要求的越来越高的现象,提供一种梯形图内嵌组态算法的实现方法,能实现梯形图控制与组态控制的无缝结合。
本发明的目的是通过以下技术方案来实现的:一种梯形图内嵌组态算法的实现方法,包括如下步骤:
(1)使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述,形成描述组态算法的XML形式描述文件;
(2)解析器对描述文件进行解析,对解析结果进行格式化处理;
(3)根据解析结果,生成数据和源代码;
(4)将源代码与数据内嵌入梯形图中;
(5)将梯形图与组态算法一起编译生成目标指令集;
(6)生成的指令集下载到目标平台运行。
本发明的有益效果是:通过梯形图内嵌入组态算法技术,可以实现梯形图控制与组态控制的无缝结合,扩大了控制范围与提高控制的灵活度。
附图说明
图1是梯形图内嵌组态算法结构框图;
图2是梯形图内嵌组态算法设计流程图;
图3是梯形图内嵌组态算法内核框图;
图4是一个组态设计的示例图;
图5是组态算法分析示例图;
图6是组态语言示例图;
图7是组态数据流向示例图;
图8是组态代码自动生成示例图;
图9是抢占式任务调度示例图。
具体实施方式
本发明的一种梯形图内嵌组态算法的实现方法。整体框架如图3所示,通过操作系统各个模块实现组态算法任务、梯形图任务与其它任务的调度与切换,使系统协调而且有序的运行。操作系统上层可分为三大模块:设备驱动模块、通讯协议模块、通讯事件处理模块,实现任务所需的底层驱动模块。通过硬件抽象层(HIUD)对硬件层进行抽象,由HIUD层完成底层驱动的调用,实现组态算法与梯形图程序的硬件无关性,方便移植。该方法结构参见图1,包括如下步骤:
1.使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述,形成描述组态算法的XML形式描述文件(图2步骤101)。
通过PC机上组态策略生成器软件进行控制算法模块的拖拉、连线、参数设定设计,自动生成组态算法的XML描述文件。具体步骤如下:
1.1通过图形化拖拉设计生成组态页面,如图4所示。
1.2将组态算法解析成各个正确而又有序的控制算法序列,如图6所示。
解析组态算法采用自底向上的方式,也就是从输出控件为起点,向前进行搜索,如图5所示。搜索算法具体如下:
1.2.1将一系列输出模块放入母堆栈中。
1.2.2弹出一个输出模块,建立一个子堆栈,并将输出模块压入栈中。此时,输出模块为当前模块。
1.2.3分析当前模块的输入线段,按输入的先后顺序将输入模块依次压入母堆栈中。
1.2.4检查母堆栈中是否还有模块,没有则搜索结束,最后得到的子堆栈就是组态算法序列;有则弹出模块,并设为当前模块,压入子堆栈中;如当前结点为输入模块,则进入第4步;如当前结点不是输入模块,则进入第3步。
1.3依次将得到的组态算法序列中的算法与参数用XML语言描述到文件中。
2解析器对描述文件进行解析,对解析结果进行格式化处理(图2步骤102)。
采用XSLT模板对描述文件进行匹配生成代码,并产生几个相关的XML文件。过程如图8所示。具体步骤如下:
2.1采用XSLT模板对描述文件进行匹配生成控制程序块,包括参数的初始化,控制算法的裁剪,控制算法的组态。控制算法的组态,关键在于数据流的关系。每个组态算法模块中至少包含一个输入或输出,各个模块之间的联系就是数据流的流向关系,在这里,用栈数据结构进行表示这种关系,如图7所示,包括以下三点规则:
2.1.1输入表示弹出栈动作,输入的点数决定弹出栈的数据个数。
2.1.2输出表示压入栈动作,输出的点数决定压入栈的数据个数。
2.1.3数据入栈时,按顺序入栈;数据出栈对变量进行赋值时,则要按反序进行赋值。
2.2根据上位机用户设定的地址表,生成组态算法到梯形图的地址映射表。
2.3结合地址表与参数列表,生成数据表,这些数据是写入到FLASH中,是可读可写的变量。针对用户要求修改的参数集合,必须给这些参数分配地址,以便用户在设计人机界面时可以进行配置而进行修改。内存按功能不同,可分为两块:梯形图内存与组态算法内存,用连续的空间分配这两块内存。这些参数在下载时更新相应的FLASH区,上电时将FLASH中的数据搬到RAM中,运行时用户可修改其值,断电时将RAM中的数据再搬回到FLASH中,以达到更新的目的。
2.4根据用户调用控制算法情况生成组态算法包,组态算法包是控制算法集合的子集,是通过裁剪得到需要的算法。上位机每个算法控件绑定一个组态算法,当拖拉时就会相应地生成控制算法。
3根据解析结果,生成数据和源代码(图2步骤103)。
根据用户调用组态的情况,将所用的组态代码与XML文件进一步解析,
生成与梯形图融合的数据与代码。具体步骤如下:
3.1将用户所用的组态算法包进行匹配融合,保证组态算法包中不存在相同的控制算法。
3.2添加用户所用的组态控制程序代码。将步骤2中所生成控制程序代码文件加入到梯形图程序中。
3.3组合用户所用的地址表,并依次递增划分内存,生成地址代码部份。
3.4组合用户所用的数据表,生成数据代码部份。
4将源代码与数据内嵌入梯形图中(图2步骤104)。该步骤具体步骤如下:
4.1在梯形图软件设计中,划分出组态算法的执行区。梯形图中有快速逻辑区与慢速逻辑区,是根据梯形图执行周期长短设置的,现加入组态逻辑区,组态算法的执行周期比梯形图的慢速逻辑执行周期长。
4.2将组态算法以控件形式拖拉到组态执行区中,并可拖拉多个组态算法。
4.3根据组态算法调用情况,调用相关文件和生成相关代码与数据。具体步骤参见步骤3。
4.4根据执行周期不同,梯形图与组态算法形成多任务调度。任务调度机制如下:
4.4.1任务调度介绍:多任务内核使用中断驱动,基于优先级的任务调度机制,具有较快的上下文切换和较低的中断延迟。这里采用的是基于优先级的抢占式和先来先服务调度算法。
4.4.2基于优先级的抢占式:任务可分为梯形图快速逻辑任务、梯形图慢速逻辑任务、组态算法任务,每个任务都有一优先级,内核把CPU分配给优先级最高的就绪任务,当一个任务占有CPU正在运行时,若另一个优先级比它更高的任务来临时,则内核就切换当前任务的现场到较高优先级任务的现场,高优先级任务抢占了CPU。在图9中,快速逻辑任务优先级为高,慢速逻辑任务优先级为中,组态算法任务优先级为低。组态算法任务最先运行,但它被慢速逻辑任务与快速逻辑任务打断,因此最后才运行完毕。
4.4.3先来先服务(任务队列)介绍:当任务的优先级相同时,就会形成任务队列,每个任务队列里的任务根据进入队列的时间先后依次占用CPU。
4.4.4上下文切换介绍:当任务切换时,要对现场进行保护,保存当前的寄存器;当任务切换回来时,要对寄存器中的值进行恢复操作。
5将梯形图与组态算法一起编译生成目标指令集(图2步骤105)。
调用第三方编译器,将步骤3自动生成的代码与其它代码一起编译,生成目标平台所能识别的指令集,也就是二进制代码。
6生成的指令集下载到目标平台运行(图2步骤106)。
将步骤5所生成二进制代码,通过串口方式下载到目标平台,也就是单片机中。
以上所述仅为本发明一个实施例子,但不能以此限制本发明范围,凡依据本发明所做的结构上的变化、功能模块的增删,只要不失本发明的要义所在,都应视为落入本发明保护范围之内受到制约。
Claims (6)
1.一种梯形图内嵌组态算法的实现方法,其特征在于,包括如下步骤:
(1)使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述,形成描述组态算法的XML形式描述文件;
(2)解析器对描述文件进行解析,对解析结果进行格式化处理;
(3)根据解析结果,生成数据和源代码;
(4)将源代码与数据内嵌入梯形图中;
(5)将梯形图与组态算法一起编译生成目标指令集;
(6)生成的指令集下载到目标平台运行。
2.根据权利要求1所述梯形图内嵌组态算法的实现方法,其特征在于,所述步骤(1)具体如下:
(A)通过图形化拖拉设计生成组态页面;
(B)将组态算法解析成各个正确而又有序的控制算法序列:解析组态算法采用自底向上的方式,也就是从输出控件为起点,向前进行搜索;
(C)依次将得到的组态算法序列中的控制算法与参数用XML语言描述到文件中。
3.根据权利要求2所述梯形图内嵌组态算法的实现方法,其特征在于,所述步骤(B)中,所述搜索具体如下:
(a)将一系列输出模块放入母堆栈中;
(b)弹出一个输出模块,建立一个子堆栈,并将输出模块压入栈中;此时,输出模块为当前模块;
(c)分析当前模块的输入线段,按输入的先后顺序将输入模块依次压入母堆栈中;
(d)检查母堆栈中是否还有模块,没有则搜索结束,最后得到的子堆栈就是组态算法序列;有则弹出模块,并设为当前模块,压入子堆栈中;如当前结点为输入模块,则进入步骤(d);如当前结点不是输入模块,则进入步骤(c)。
4.根据权利要求1所述梯形图内嵌组态算法的实现方法,其特征在于,所述步骤(2)采用XSLT模板对描述文件进行匹配生成代码,并产生几个相关的XML文件,具体如下:
(A)采用XSLT模板对描述文件进行匹配生成控制程序块,包括参数的初始化,控制算法的裁剪,控制算法的组态;控制算法的组态,关键在于数据流的关系;每个控制算法中至少包含一个输入或输出,各个模块之间的联系就是数据流的流向关系,在这里,用栈数据结构进行表示这种关系,包括以下三点规则:
(a)输入表示弹出栈动作,输入的点数决定弹出栈的数据个数;
(b)输出表示压入栈动作,输出的点数决定压入栈的数据个数;
(c)数据入栈时,按顺序入栈;数据出栈对变量进行赋值时,则要按反序进行赋值;
(B)根据上位机用户设定的地址表,生成组态算法到梯形图的地址映射表;
(C)结合地址表与参数列表,生成数据表,这些数据是写入到FLASH中,是可读可写的变量;针对用户要求修改的参数集合,必须给这些参数分配地址,以便用户在设计人机界面时可以进行配置而进行修改;内存按功能不同,可分为两块:梯形图内存与组态算法内存,用连续的空间分配这两块内存;这些参数在下载时更新相应的FLASH区,上电时将FLASH中的数据搬到RAM中,运行时用户可修改其值,断电时将RAM中的数据再搬回到FLASH中,以达到保存当前数据的目的;
(D)根据用户调用控制算法情况生成组态算法包,组态算法包是控制算法集合的子集,是通过裁剪得到需要的算法;上位机每个算法控件绑定一个组态算法,当拖拉时就会相应地生成控制算法。
5.根据权利要求1所述梯形图内嵌组态算法的实现方法,其特征在于,所述步骤(3)根据用户组态的情况,将所用的组态算法代码与XML文件进一步解析,生成与梯形图融合的数据与代码,具体如下:
(A)将用户所用的组态算法包进行匹配融合,保证组态算法包不存在相同的控制算法;
(B)添加用户所用的组态控制程序代码;将步骤2中所生成控制程序代码文件加入到梯形图程序中;
(C)组合用户所用的地址表,并依次递增划分内存,生成地址代码部份;
(D)组合用户所用的数据表,生成数据代码部份。
6.根据权利要求1所述梯形图内嵌组态算法的实现方法,其特征在于,所述步骤(4)具体如下:
(A)在梯形图软件设计中,划分出组态算法的执行区;梯形图中有快速逻辑区与慢速逻辑区,是根据梯形图执行周期长短设置的,现加入组态逻辑区,组态控制算法的执行周期比梯形图的慢速逻辑执行周期长;
(B)将组态算法以控件形式拖拉到组态执行区中,并可拖拉多个组态算法;
(C)根据组态算法调用情况,调用相关文件和生成相关代码与数据;
(D)根据执行周期不同,梯形图与组态形成多任务调度。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100991569A CN101566839B (zh) | 2009-06-01 | 2009-06-01 | 一种梯形图内嵌组态算法的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100991569A CN101566839B (zh) | 2009-06-01 | 2009-06-01 | 一种梯形图内嵌组态算法的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566839A CN101566839A (zh) | 2009-10-28 |
CN101566839B true CN101566839B (zh) | 2011-03-30 |
Family
ID=41283038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100991569A Active CN101566839B (zh) | 2009-06-01 | 2009-06-01 | 一种梯形图内嵌组态算法的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101566839B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799135A (zh) * | 2012-08-10 | 2012-11-28 | 唐志 | 工业控制免编程通用操作系统以及系统的实现方法 |
CN102950595B (zh) * | 2012-10-31 | 2017-05-31 | 常州数控技术研究所 | 一种工业机器人的编程系统和方法 |
CN104391746B (zh) * | 2014-11-18 | 2017-10-13 | 国电南瑞科技股份有限公司 | 继电保护装置保护元件动态调用的实现方法 |
CN104965713B (zh) * | 2015-07-22 | 2018-04-13 | 谢升 | 基于集成开发环境的芯片级控制器开发平台及其控制方法 |
CN105930270B (zh) * | 2016-04-20 | 2018-12-21 | 杭州优稳自动化系统有限公司 | 一种实现算法在线组态、运行和调试的方法 |
CN107291444B (zh) * | 2017-05-11 | 2020-08-28 | 广东卓信环境科技股份有限公司 | Plc指令生成方法及装置和plc编程方法 |
CN108959058B (zh) * | 2017-05-18 | 2020-07-28 | 南京南瑞继保电气有限公司 | 一种虚拟控制器的组态调试器实现方法 |
CN107423054B (zh) * | 2017-06-29 | 2021-03-19 | 北京广利核系统工程有限公司 | 基于fpga的自定义图形化算法组态装置、系统和方法 |
CN108920186A (zh) * | 2018-06-25 | 2018-11-30 | 杭州电子科技大学 | 一种运动指令解析方法及装置 |
CN111474894B (zh) * | 2020-03-05 | 2021-08-24 | 杭州电子科技大学 | 可变目标plc仿真调试方法、存储介质及功能模块 |
CN113778041B (zh) * | 2021-11-11 | 2022-02-15 | 西安热工研究院有限公司 | Dcs控制器间通讯数据生成方法和系统、设备及存储介质 |
CN116842394A (zh) * | 2023-09-01 | 2023-10-03 | 苏州高视半导体技术有限公司 | 算法参数文件生成方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0635772B1 (en) * | 1990-03-02 | 1997-05-07 | Mitsubishi Denki Kabushiki Kaisha | Controller programming apparatus and process using ladder diagram technique |
CN1588256A (zh) * | 2004-09-23 | 2005-03-02 | 艾默生网络能源有限公司 | 将梯形图程序转换为指令列表程序的方法及系统 |
CN101295247A (zh) * | 2008-06-24 | 2008-10-29 | 杭州义益自动化有限公司 | 一种跨cpu平台的嵌入式图形界面生成方法 |
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
-
2009
- 2009-06-01 CN CN2009100991569A patent/CN101566839B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0635772B1 (en) * | 1990-03-02 | 1997-05-07 | Mitsubishi Denki Kabushiki Kaisha | Controller programming apparatus and process using ladder diagram technique |
CN1588256A (zh) * | 2004-09-23 | 2005-03-02 | 艾默生网络能源有限公司 | 将梯形图程序转换为指令列表程序的方法及系统 |
CN101295247A (zh) * | 2008-06-24 | 2008-10-29 | 杭州义益自动化有限公司 | 一种跨cpu平台的嵌入式图形界面生成方法 |
CN101303580A (zh) * | 2008-06-24 | 2008-11-12 | 杭州义益自动化有限公司 | 支持多种cpu构造plc控制器的实现方法 |
Non-Patent Citations (2)
Title |
---|
JP特开2004-62223A 2004.02.26 |
韩忠旭.图形化软件开发方法在可编程控制器中的扩展应用.《电网技术》.1998,第22卷(第10期),26-28,33. * |
Also Published As
Publication number | Publication date |
---|---|
CN101566839A (zh) | 2009-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101566839B (zh) | 一种梯形图内嵌组态算法的实现方法 | |
CN101221535B (zh) | Java虚拟机的垃圾回收移动通信终端及回收方法 | |
CN102236621A (zh) | 计算机接口信息配置系统及方法 | |
CN106737676B (zh) | 一种基于脚本可二次开发的工业机器人编程系统 | |
CN102567097B (zh) | 一种多任务下载的方法及终端 | |
CN103135979A (zh) | 终端应用的生成方法、装置及系统 | |
CN101051280A (zh) | 智能卡嵌入式操作系统及其控制方法 | |
CN101859244A (zh) | 多工具链工程构建方法及系统 | |
CN101604241A (zh) | 一种嵌入式系统的代码生成方法 | |
CN103941650A (zh) | 逻辑与运动集成控制器 | |
CN102760062A (zh) | 基于轨道交通嵌入式软件的参数设置方法 | |
CN104978174A (zh) | 多操作系统中网卡之间的切换方法和系统 | |
CN102566481B (zh) | 一种基于c语言的plc控制系统及其实现方法 | |
CN103019819A (zh) | 一种基于插件机制的动态库统一调度方法 | |
Traulsen et al. | Compiling synccharts to synchronous c | |
CN1287287C (zh) | 基于控制系统实现在线更新数据的方法 | |
CN111274667A (zh) | 一种跨尺度材料计算软件集成计算系统及方法 | |
CN104182280B (zh) | 面向混合主存嵌入式系统的低能耗rm实时任务调度方法 | |
CN103605318B (zh) | Cnc控制器的功能定制方法、装置以及cnc控制器 | |
CN104461569A (zh) | 一种基于matlab的c/c++程序生成辅助方法 | |
CN100370381C (zh) | 一种可重配置的开放式结构计算机数控系统 | |
CN1371053A (zh) | 在电子通信装置的编译系统平台上下载应用程序的方法 | |
CN102508445A (zh) | 一种智能算法处理系统和方法 | |
CN102779036A (zh) | 用于自动化技术的软件工具 | |
CN103019850A (zh) | 一种任务绑定的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |