CN103885365B - 一种动态管理控制逻辑集的方法 - Google Patents
一种动态管理控制逻辑集的方法 Download PDFInfo
- Publication number
- CN103885365B CN103885365B CN201410109942.3A CN201410109942A CN103885365B CN 103885365 B CN103885365 B CN 103885365B CN 201410109942 A CN201410109942 A CN 201410109942A CN 103885365 B CN103885365 B CN 103885365B
- Authority
- CN
- China
- Prior art keywords
- control logic
- control
- queue
- logic
- collection
- 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
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000005538 encapsulation Methods 0.000 claims description 3
- 239000012141 concentrate Substances 0.000 claims description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012917 library technology Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000037213 diet Effects 0.000 description 1
- 235000005911 diet Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种动态管理控制逻辑集的方法,其特征是通过建立一个开放式架构的控制逻辑池1实现控制系统中对大量复杂控制逻辑的动态调度管理。其中,该方法还包括:控制逻辑集2包含了所述控制系统中的所有控制逻辑,并按照功能或属性分别封装为共享函数对象;控制逻辑注册表3登记了控制逻辑集2中的所有控制逻辑的相关信息;控制逻辑执行队列群4包含了2个以上的控制逻辑执行队列,作为控制逻辑的执行通道和缓存空间;控制逻辑池动态调度平台5在接到所述控制系统主程序请求执行某个控制逻辑的信息后,通过控制逻辑注册表3提取该控制逻辑相关信息,选择并添加入控制逻辑执行队列群4中合适的控制逻辑执行队列。
Description
技术领域
本发明公开了一种动态管理控制逻辑集的方法,其特征是通过构建一个开放结构的控制逻辑池,实现各类基于计算机或MCU的控制系统中的控制逻辑集群的动态调度与管理,充分发挥了多线程技术的快速、灵活的优势。
背景技术
控制逻辑(control logic)是各类基于计算机或MCU(Micro Control Unit微控制单元)的控制系统中软件程序的关键部分,它的作用是通过给定的逻辑算法的运算,得出控制结论,完成相应的自动控制任务。
在工业控制、农业自动化控制、楼宇自控、智能家居、机电设备控制等行业和领域,当前越来越多地采用主要由计算机构成的集中式或集中加分布式自动控制系统,但是,系统中的控制程序普遍仍采用IEC 61131系列国际标准。
事实上,IEC 61131系列标准的产生和发展是为了规范早期PLC的生产和应用,其中软件结构模型模拟了硬件逻辑电路的工作机理,采用了循环或定时循环的顺序扫描运行原则,虽然该标准也可以将部分控制逻辑设计为函数形式,在运行中调用,但本质上仍然是一种单线程的程序结构,难以适应集中控制模式中大量且复杂的控制逻辑的运行管理,限制了控制系统的响应速度,也限制了大数据集中与共享的运用。这也是为什么目前通过组态模式建立的集中式监控系统仍然将控制逻辑分布在众多的现场控制器内,集中到中央服务器的数据多用于监视、查询和报表,控制逻辑并没有集中,即所谓的“分散控制,集中管理”。
综上所述,现有的技术方案在处理控制逻辑的运行机制上存在有如下问题:
1.不论控制逻辑如何分割成相对独立的功能块或子函数,在运行中都是顺序执行;
2.在分布式控制系统中,虽然可以把众多的控制逻辑分别放在不同的现场控制单元中同时运行,但是,这种分布式并行方案也同时将数据分割,控制逻辑在执行时所能利用的数据量受到限制,相应地,控制逻辑的功能必然受到限制;
3.将数据与控制逻辑全部集中存放与处理的全集中方案,如果大量的控制逻辑程序只能顺序执行,控制系统的响应时间则会变得难以接受。
因此,随着信息技术的高速发展,支持多线程的计算机或MCU越来越普及,探索实现基于多线程软件技术的复杂控制逻辑集群的有效运行管理方案就有了更加紧迫的需求和更现实的应用价值。
本发明创新地提出了“控制逻辑池”的开放式架构方案,实现了控制系统中对复杂控制逻辑的动态调度管理,提高了系统的运行效率,增强了系统的可靠性和软件程序的可复用性,同时由于控制逻辑可以独立封装还使得控制系统具有了更好的可维护性。
发明内容
本发明公开了一种动态管理控制逻辑集的方法,目的是要实现各类控制系统中大量控制逻辑的并行处理、动态调度、灵活增删改的管理问题。
为了实现本发明的目的,本发明所采用的技术方案包括:
1.本发明所述的一种动态管理控制逻辑集的方法,其技术方案参见图1,为本发明技术方案的结构图,本发明特征是通过建立一个开放式架构的控制逻辑池1,实现了控制系统中对大量复杂控制逻辑的动态调度管理,他包括:
(1)控制逻辑集2包含了所有所述控制系统中的控制逻辑,并按照功能或属性封装打包,控制系统运行时为完成某个控制任务可以将控制逻辑集2中的相关控制逻辑并列执行或相互接续执行或相互交叉调用;
(2)控制逻辑注册表3登记了控制逻辑集2中的所有控制逻辑的ID、名称、类别、所需参数、优先级及内部特征属性;
(3)控制逻辑执行队列群4包含至少2个队列,作为控制逻辑的执行通道,并用于多个控制逻辑执行请求的缓存;通常部分控制逻辑中含有短暂的等待指令,但这会影响其他控制逻辑的及时运行,因此需要建立至少2个队列,其中一个队列可被指定用于处理所述控制逻辑内部特征属性为“有等待”的一类控制逻辑;
(4)控制逻辑池动态调度平台5在接到执行某个控制逻辑的请求信息后通过控制逻辑注册表3提取该控制逻辑相关信息,并比较其优先级及内部特征属性,选择并添加入控制逻辑执行队列群4中合适的队列;
2.本发明所述的一种动态管理控制逻辑集的方法,其特征是利用计算机操作系统提供的共享函数库技术,将所述控制系统中的所有控制逻辑按照功能或属性分别封装为共享函数对象,集中管理形成控制逻辑集2,实现控制系统运行中对控制逻辑的动态加载执行或卸载。
附图说明
图1为本发明技术方案的结构图
图2为本发明技术方案中控制逻辑池动态调度流程图
图3为本发明技术方案中执行队列运行管理流程图
具体实施方式
以下通过附图说明本发明技术方案的实施方式:
图1为本发明技术方案的结构图,说明了本发明技术方案实施构建的方式。其中,该方法包括:通过建立一个开放式架构的控制逻辑池1,实现了控制系统中对大量复杂控制逻辑的动态调度管理,该方法还包括:
(1)控制逻辑集2包含了所有所述控制系统中的控制逻辑,并按照功能或属性封装打包,控制系统运行时为完成某个控制任务可以将控制逻辑集2中的相关控制逻辑并列执行或相互接续执行或相互交叉调用;
(2)控制逻辑注册表3登记了控制逻辑集2中的所有控制逻辑的ID、名称、类别、所需参数、优先级及内部特征属性;
(3)控制逻辑执行队列群4包含至少2个队列,作为控制逻辑的执行通道,并用于多个控制逻辑执行请求的缓存;通常部分控制逻辑中含有短暂的等待指令,但这会影响其他控制逻辑的及时运行,因此需要建立至少2个队列,其中一个队列可被指定用于处理所述控制逻辑内部特征属性为“有等待”的一类控制逻辑;
(4)控制逻辑池动态调度平台5在接到执行某个控制逻辑的请求信息后通过控制逻辑注册表3提取该控制逻辑相关信息,并比较其优先级及内部特征属性,选择并添加入控制逻辑执行队列群4中合适的队列;
2.本发明所述的一种动态管理控制逻辑集的方法,其特征是利用计算机操作系统提供的共享函数库技术,将所述控制系统中的所有控制逻辑按照功能或属性分别封装为共享函数对象,集中管理形成控制逻辑集2,实现控制系统运行中对控制逻辑的动态加载执行或卸载;其中,具体实施方式包括但不限于:
(1)在Windows平台中,将所述控制系统中的所有控制逻辑按照功能或属性分别封装为.dll动态链接库;
(2)在Linux平台中,将所述控制系统中的所有控制逻辑按照功能或属性分别封装为.so共享对象。
图2为本发明技术方案中控制逻辑池动态调度流程图,说明了本发明技术方案关键部分的具体实施方法示例,该示例基于控制逻辑执行队列群中建有2个基本的控制逻辑执行队列,分别标注为队列(1)和队列(2)。其中,该方法包括:控制逻辑池动态调度平台执行步骤1收到控制逻辑i的执行请求后,开始执行步骤2根据控制逻辑i的ID,在控制逻辑注册表中找到控制逻辑i的相应属性;进入步骤3,判断控制逻辑i的属性中的“有无等待”属性项是否为“有等待”;如果步骤3的结果为是,进入步骤4从控制逻辑执行队列(1)头部取出其控制逻辑的优先级Pri(max);进入步骤6,判断是否Pri(max)大于等于步骤1中收到的控制逻辑i的优先级;如果步骤6的结果为是,则执行步骤7插入队列(1)的尾部,否则执行步骤8插入队列(1)的头部;如果步骤3的结果为否,进入步骤5从队列(5)头部取出其控制逻辑的优先级Pri(max);进入步骤9,判断是否Pri(max)大于等于步骤1中收到的控制逻辑i的优先级;如果步骤9的结果为是,则执行步骤11插入队列(2)的尾部,否则执行步骤10插入队列(2)的头部。
图3为本发明技术方案中执行队列运行管理流程图,示例说明了本发明技术方案中所述控制逻辑执行队列群中从控制逻辑执行队列1到控制逻辑执行队列n都拥有各自的但也是相同的执行队列自身的运行管理功能的实施方法。其中,该方法包括:首先对队列i进行查看,进入步骤1的判断,如果步骤1的结果为否,则继续查看直到步骤1的结果为是;当步骤1的结果为是,执行步骤2从队列i的头部取出一项,然后执行步骤3按相应参数执行此逻辑,即对步骤2中该项数据解析后,根据解析后得到的控制逻辑ID与控制逻辑注册表找到相应的控制模块,传入解析后的参数,开始执行控制逻辑;最后执行步骤4,将此项删除,头指针下移,然后转到步骤1。
需要说明的是,以上实施例是用以说明本发明的技术方案,而非对其限制。
综上所述,本发明具有如下优点:
1.本发明通过建立一个开放式架构的控制逻辑池实现了控制系统中对大量复杂控制逻辑的动态调度管理,特别是可以成为全集中控制系统架构中关键的控制逻辑构建与运行管理的一个可行的、有效的、开放的方案;
2.本发明在较为宏观的架构层面给出了控制逻辑集的动态管理实施方案,也将该方案在实际项目中运行检验的经验教训形成诸多的优化细节融入本发明技术方案中,具有较高的应用价值。
本发明技术方案已经用于申请人的实际工程项目中,并经过了至少2年的运行检验。
Claims (1)
1.一种动态管理控制逻辑集的方法,其特征在于通过建立一个开放式架构的控制逻辑池,实现控制系统中对大量复杂控制逻辑的动态调度管理,它包括:
(1)控制逻辑集,其包含了所有所述控制系统中的控制逻辑,并按照属性封装打包,控制系统运行时为完成某个控制任务可以将控制逻辑集中的相关控制逻辑并列执行或相互接续执行或相互交叉调用;
(2)控制逻辑注册表,其登记了所述控制逻辑集中的所有控制逻辑的ID、名称、类别、所需参数、优先级及内部特征属性;
(3)控制逻辑执行队列群,其包含至少2个控制逻辑执行队列,作为控制逻辑的执行通道,并用于多个控制逻辑执行请求的缓存;其中一个队列被指定用于处理所述控制逻辑内部特征属性含有“有等待”特征的一类控制逻辑;
(4)控制逻辑池动态调度平台,其在接到所述控制系统主程序请求执行某个控制逻辑的信息后,通过所述控制逻辑注册表提取该控制逻辑相关信息,并比较其优先级及内部特征属性,然后选择并添加入控制逻辑执行队列群中合适的控制逻辑执行队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410109942.3A CN103885365B (zh) | 2014-03-24 | 2014-03-24 | 一种动态管理控制逻辑集的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410109942.3A CN103885365B (zh) | 2014-03-24 | 2014-03-24 | 一种动态管理控制逻辑集的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103885365A CN103885365A (zh) | 2014-06-25 |
CN103885365B true CN103885365B (zh) | 2018-07-06 |
Family
ID=50954316
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410109942.3A Active CN103885365B (zh) | 2014-03-24 | 2014-03-24 | 一种动态管理控制逻辑集的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103885365B (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100489783C (zh) * | 2004-06-28 | 2009-05-20 | 李晓波 | 在单计算机上可在同一时刻执行多道程序的方法及系统 |
CN100512230C (zh) * | 2007-07-10 | 2009-07-08 | 杭州华三通信技术有限公司 | 多通道数据处理方法及装置 |
US8954986B2 (en) * | 2010-12-17 | 2015-02-10 | Intel Corporation | Systems and methods for data-parallel processing |
CN102073520A (zh) * | 2010-12-30 | 2011-05-25 | 中国民航信息网络股份有限公司 | 一种c++应用程序版本动态管理系统和方法 |
CN102542047B (zh) * | 2011-12-28 | 2016-08-03 | 北京奇虎科技有限公司 | 一种任务逻辑库生成方法和系统、数据处理方法和系统 |
-
2014
- 2014-03-24 CN CN201410109942.3A patent/CN103885365B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103885365A (zh) | 2014-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105068927A (zh) | 基于关键字驱动的城轨传动控制单元自动化测试方法 | |
CN110046099A (zh) | 智能化软件测试系统及方法 | |
CN105808432A (zh) | 轨道交通牵引传动控制单元软件自动化测试系统及方法 | |
WO2022198550A1 (zh) | 测试系统、车辆模拟装置、测试装置及测试方法 | |
CN112461062B (zh) | 一种基于运载火箭综合试验分布式测试的自动测控系统 | |
CN106780149A (zh) | 一种基于定时任务调度的设备实时监测系统 | |
CN105739481B (zh) | 工控软件的测试方法、装置及系统 | |
CN104657262A (zh) | 高实时自动化测试系统和测试方法 | |
CN103885365B (zh) | 一种动态管理控制逻辑集的方法 | |
CN108594051B (zh) | 一种电气设备故障自动检测方法和系统 | |
CN109932588A (zh) | 一种航电设备验证测试引擎 | |
CN105162655B (zh) | 一种网络吞吐量自动化测试方法及系统 | |
CN107450350B (zh) | 一种自动化轨道吊模拟器 | |
CN107942753A (zh) | 机器人与终端设备的软件的通讯框架和通讯方法 | |
CN109699023A (zh) | 高铁信号设备自动测试数据封装及处理方法 | |
CN116627609A (zh) | 基于Hive批处理的调度方法及装置 | |
CN106407117A (zh) | 一种通用的接口测试方法 | |
CN104516811B (zh) | 一种分布式执行测试用例的方法和系统 | |
CN103279110B (zh) | 一种机车辅助电机设备检修线的检修控制装置 | |
CN105138332A (zh) | 状态机的实现方法和装置 | |
CN111399462B (zh) | 离散连续混合的产品作业控制逻辑数字孪生虚实同步方法 | |
CN102183952A (zh) | 一种在plc中嵌入非致命故障诊断的方法 | |
CN112650170B (zh) | 一种自动化设备的控制平台及实现方法 | |
CN106600149B (zh) | 流程解析方法及装置 | |
CN110007597A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 102628 room D201, 2nd floor, building 1, building 2, Jinyuan Road, economic development zone, Daxing District, Beijing Patentee after: TRIPLE H INTELLIGENT CONTROL (BEIJING) SYSTEM INTEGRATION Co.,Ltd. Country or region after: China Address before: Room 1001, Block B, Higma Apartment, 49 Zhichun Road, Haidian District, Beijing Patentee before: TRIPLE H INTELLIGENT CONTROL (BEIJING) SYSTEM INTEGRATION Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address | ||
OL01 | Intention to license declared | ||
OL01 | Intention to license declared |