CN101566839A - 一种梯形图内嵌组态算法的实现方法 - Google Patents

一种梯形图内嵌组态算法的实现方法 Download PDF

Info

Publication number
CN101566839A
CN101566839A CNA2009100991569A CN200910099156A CN101566839A CN 101566839 A CN101566839 A CN 101566839A CN A2009100991569 A CNA2009100991569 A CN A2009100991569A CN 200910099156 A CN200910099156 A CN 200910099156A CN 101566839 A CN101566839 A CN 101566839A
Authority
CN
China
Prior art keywords
configuration
algorithm
data
module
configuration algorithm
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
CNA2009100991569A
Other languages
English (en)
Other versions
CN101566839B (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
Hangzhou Electronic Science and Technology University
Original Assignee
Hangzhou Electronic Science and Technology 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 Electronic Science and Technology University filed Critical Hangzhou Electronic Science and Technology University
Priority to CN2009100991569A priority Critical patent/CN101566839B/zh
Publication of CN101566839A publication Critical patent/CN101566839A/zh
Application granted granted Critical
Publication of CN101566839B publication Critical patent/CN101566839B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

本发明公开了一种梯形图内嵌组态算法的实现方法,包括组态算法构件化、组态算法包的自动生成、组态算法中参数的内存分配与映射、逻辑控制任务与过程控制任务的任务调度;对组态算法进行抽象化、原子化,剥离成一个个构件,采用控件的表现形式,实现控制算法的组态;本发明可以实现逻辑控制与过程控制的无缝结合,扩大工业控制的范围与提高控制的灵活度。

Description

一种梯形图内嵌组态算法的实现方法
技术领域
本发明涉及梯形图内嵌入组态算法技术,特别地,涉及一种自动生成梯形图内嵌组态算法的技术。
背景技术
长期以来PLC与DCS控制系统各自在离散和过程行业都占有主要地位。然而,随着自动化技术的进步,尤其是自动化系统通信技术的飞越式发展,两者正在呈现融合与集成的趋势。随着DCS与PLC功能的不断发展和完善,新型的DCS与新型的PLC,都有向对方靠拢的趋势。新型的DCS已有了很强的顺序控制功能;而新型的PLC,在处理闭环控制方面性能较好,而且无论在控制器方面还是网络方面都能做到冗余。二者能组成大型网络,适用范围已有很大的交叉,技术上相互融合。
发明内容
本发明的目的在于针对现有的梯形图控制范围太小与控制要求的越来越高的现象,提供一种梯形图内嵌组态算法的实现方法,能实现梯形图控制与组态控制的无缝结合。
本发明的目的是通过以下技术方案来实现的:一种梯形图内嵌组态算法的实现方法,包括如下步骤:
(1)使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述;
(2)解析器对描述文件进行解析,对解析结果进行格式化处理;
(3)根据解析结果,生成数据和源代码;
(4)将源代码与数据内嵌入梯形图中;
(5)将梯形图与组态一起编译生成目标指令集;
(6)生成的指令集下载到目标平台运行。
本发明的有益效果是:通过梯形图内嵌入组态算法技术,可以实现梯形图控制与组态控制的无缝结合,扩大了控制范围与提高控制的灵活度。
附图说明
图1是梯形图内嵌组态算法结构框图;
图2是梯形图内嵌组态算法设计流程图;
图3是梯形图内嵌组态算法内核框图;
图4是一个组态设计的示例图;
图5是组态分析示例图;
图6是组态语言示例图;
图7是组态数据流向示例图;
图8是组态代码自动生成示例图;
图9是抢占式任务调度示例图。
具体实施方式
本发明的一种梯形图内嵌组态算法的实现方法。整体框架如图3所示,通过操作系统各个模块实现组态任务、梯形图任务与其它任务的调度与切换,使系统协调而且有序的运行。操作系统上层可分为三大模块:设备驱动模块、通讯协议模块、通讯事件处理模块,实现任务所需的底层驱动模块。通过硬件抽象层(HIUD)对硬件层进行抽象,由HIUD层完成底层驱动的调用,实现组态与梯形图程序的硬件无关性,方便移植。该方法结构参见图1,包括如下步骤:
1.使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述(图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)使用者通过组态策略生成器进行组态设计,系统对设计结果进行描述。
(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)根据执行周期不同,梯形图与组态形成多任务调度。
CN2009100991569A 2009-06-01 2009-06-01 一种梯形图内嵌组态算法的实现方法 Active CN101566839B (zh)

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 true CN101566839A (zh) 2009-10-28
CN101566839B 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)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799135A (zh) * 2012-08-10 2012-11-28 唐志 工业控制免编程通用操作系统以及系统的实现方法
CN102950595A (zh) * 2012-10-31 2013-03-06 常州数控技术研究所 工业机器人的编程系统和方法
CN104391746A (zh) * 2014-11-18 2015-03-04 国电南瑞科技股份有限公司 继电保护装置保护元件动态调用的实现方法
CN104965713A (zh) * 2015-07-22 2015-10-07 谢升 基于集成开发环境的芯片级控制器开发平台及其控制方法
CN107291444A (zh) * 2017-05-11 2017-10-24 广东卓信环境科技股份有限公司 Plc指令生成方法及装置和plc编程方法
CN107423054A (zh) * 2017-06-29 2017-12-01 北京广利核系统工程有限公司 基于fpga的自定义图形化算法组态装置、系统和方法
WO2018210007A1 (zh) * 2017-05-18 2018-11-22 南京南瑞继保电气有限公司 一种虚拟控制器的组态调试器实现方法
CN108920186A (zh) * 2018-06-25 2018-11-30 杭州电子科技大学 一种运动指令解析方法及装置
CN105930270B (zh) * 2016-04-20 2018-12-21 杭州优稳自动化系统有限公司 一种实现算法在线组态、运行和调试的方法
CN111474894A (zh) * 2020-03-05 2020-07-31 杭州电子科技大学 可变目标plc仿真调试方法、存储介质及功能模块
CN113778041A (zh) * 2021-11-11 2021-12-10 西安热工研究院有限公司 Dcs控制器间通讯数据生成方法和系统、设备及存储介质
CN116842394A (zh) * 2023-09-01 2023-10-03 苏州高视半导体技术有限公司 算法参数文件生成方法、电子设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2526692B2 (ja) * 1990-03-02 1996-08-21 三菱電機株式会社 プログラマブルコントロ―ラのプログラミング方法
CN1328632C (zh) * 2004-09-23 2007-07-25 艾默生网络能源有限公司 将梯形图程序转换为指令列表程序的方法及系统
CN101295247B (zh) * 2008-06-24 2011-01-26 杭州义益自动化有限公司 一种跨cpu平台的嵌入式图形界面生成方法
CN101303580A (zh) * 2008-06-24 2008-11-12 杭州义益自动化有限公司 支持多种cpu构造plc控制器的实现方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102799135A (zh) * 2012-08-10 2012-11-28 唐志 工业控制免编程通用操作系统以及系统的实现方法
CN102950595A (zh) * 2012-10-31 2013-03-06 常州数控技术研究所 工业机器人的编程系统和方法
CN102950595B (zh) * 2012-10-31 2017-05-31 常州数控技术研究所 一种工业机器人的编程系统和方法
CN104391746B (zh) * 2014-11-18 2017-10-13 国电南瑞科技股份有限公司 继电保护装置保护元件动态调用的实现方法
CN104391746A (zh) * 2014-11-18 2015-03-04 国电南瑞科技股份有限公司 继电保护装置保护元件动态调用的实现方法
CN104965713B (zh) * 2015-07-22 2018-04-13 谢升 基于集成开发环境的芯片级控制器开发平台及其控制方法
CN104965713A (zh) * 2015-07-22 2015-10-07 谢升 基于集成开发环境的芯片级控制器开发平台及其控制方法
CN105930270B (zh) * 2016-04-20 2018-12-21 杭州优稳自动化系统有限公司 一种实现算法在线组态、运行和调试的方法
CN107291444A (zh) * 2017-05-11 2017-10-24 广东卓信环境科技股份有限公司 Plc指令生成方法及装置和plc编程方法
CN107291444B (zh) * 2017-05-11 2020-08-28 广东卓信环境科技股份有限公司 Plc指令生成方法及装置和plc编程方法
WO2018210007A1 (zh) * 2017-05-18 2018-11-22 南京南瑞继保电气有限公司 一种虚拟控制器的组态调试器实现方法
CN107423054A (zh) * 2017-06-29 2017-12-01 北京广利核系统工程有限公司 基于fpga的自定义图形化算法组态装置、系统和方法
CN107423054B (zh) * 2017-06-29 2021-03-19 北京广利核系统工程有限公司 基于fpga的自定义图形化算法组态装置、系统和方法
CN108920186A (zh) * 2018-06-25 2018-11-30 杭州电子科技大学 一种运动指令解析方法及装置
CN111474894A (zh) * 2020-03-05 2020-07-31 杭州电子科技大学 可变目标plc仿真调试方法、存储介质及功能模块
CN111474894B (zh) * 2020-03-05 2021-08-24 杭州电子科技大学 可变目标plc仿真调试方法、存储介质及功能模块
CN113778041A (zh) * 2021-11-11 2021-12-10 西安热工研究院有限公司 Dcs控制器间通讯数据生成方法和系统、设备及存储介质
CN116842394A (zh) * 2023-09-01 2023-10-03 苏州高视半导体技术有限公司 算法参数文件生成方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN101566839B (zh) 2011-03-30

Similar Documents

Publication Publication Date Title
CN101566839B (zh) 一种梯形图内嵌组态算法的实现方法
CN102236621B (zh) 计算机接口信息配置系统及方法
CN104731584A (zh) 一种开放式数控系统人机界面可定制的组态设计方法
CN106737676B (zh) 一种基于脚本可二次开发的工业机器人编程系统
CN101051280A (zh) 智能卡嵌入式操作系统及其控制方法
CN1233011A (zh) 用于计算机运行期间改变软件的系统
CN103135979A (zh) 终端应用的生成方法、装置及系统
CN102047218A (zh) 进程中的调度器实例
CN106547522B (zh) 一种流应用优化的方法及装置
CN101859244A (zh) 多工具链工程构建方法及系统
CN101604241A (zh) 一种嵌入式系统的代码生成方法
CN105183698A (zh) 一种基于多核dsp的控制处理系统和方法
CN101246449B (zh) 跟踪函数调用轨迹的方法和装置
CN102760062A (zh) 基于轨道交通嵌入式软件的参数设置方法
CN102567097A (zh) 一种多任务下载的方法及终端
CN102541566A (zh) 半导体软件界面框架生成方法
CN104978174A (zh) 多操作系统中网卡之间的切换方法和系统
CN106527335A (zh) 一种支持协程功能的plc控制器
CN102566481B (zh) 一种基于c语言的plc控制系统及其实现方法
CN101453511A (zh) 一种手机平台ui界面自适应的方法
CN103019819A (zh) 一种基于插件机制的动态库统一调度方法
CN1287287C (zh) 基于控制系统实现在线更新数据的方法
CN100370381C (zh) 一种可重配置的开放式结构计算机数控系统
CN105279195A (zh) 网页应用调用浏览器功能的方法及装置
CN102566871B (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