一种通过计划队列实现控制逻辑的动态延时调用的方法技术

技术编号:10152697 阅读:172 留言:0更新日期:2014-06-30 19:17
本发明专利技术公开了一种通过计划队列实现控制逻辑的动态延时调用的方法,其特征在于通过建立计划队列及相应的管理模块,使得控制系统的主程序实现对控制逻辑的动态延时调用。其中,该方法包括:将控制系统中需要延时调用的控制逻辑作为一个计划项添加入计划队列1;建立计划镜像2作为计划队列1的信息备份;通过巡检执行与同步模块3检测某一计划项是否达到要求的执行时间,如是,则负责执行延时计划中的控制逻辑同时同步计划镜像2中的信息,当系统重启后还负责恢复计划队列1中的信息;计划队列管理模块4负责响应控制系统主程序的请求,添加、删除、查询、修改计划项;本发明专利技术方法本身可以构成一种控制逻辑算法;本发明专利技术提高了控制系统的性能。

【技术实现步骤摘要】
【专利摘要】本专利技术公开了,其特征在于通过建立计划队列及相应的管理模块,使得控制系统的主程序实现对控制逻辑的动态延时调用。其中,该方法包括:将控制系统中需要延时调用的控制逻辑作为一个计划项添加入计划队列1;建立计划镜像2作为计划队列1的信息备份;通过巡检执行与同步模块3检测某一计划项是否达到要求的执行时间,如是,则负责执行延时计划中的控制逻辑同时同步计划镜像2中的信息,当系统重启后还负责恢复计划队列1中的信息;计划队列管理模块4负责响应控制系统主程序的请求,添加、删除、查询、修改计划项;本专利技术方法本身可以构成一种控制逻辑算法;本专利技术提高了控制系统的性能。【专利说明】
本专利技术公开了,其特征是通过建立计划队列及相应的管理模块,使得基于计算机或MCU (Micro Control Unit微控制单元)的控制系统的主程序能够实现对控制逻辑的动态延时调用和管理。
技术介绍
控制逻辑(control logic)是各类基于计算机或MCU (Micro Control Unit微控制单元)的控制系统中软件程序的关键部分,它的作用是通过给定的逻辑算法的运算,得出控制结论,完成相应的自动控制任务。在现实的自动控制系统中(如用于:工业控制,农业生产自动化,楼宇自控,智能家居,以及各类机电设备的自动控制),有许多控制功能需要通过延时执行特定的控制逻辑程序来实现,这些需求包括但不限于:1.事先计划的固定周期的定时巡检任务:现实的控制系统中从发出控制指令到到达预期的控制目标的指标,需要经过一系列机电装置的运行,需要一定的时间才能实现;因此,有一定数量的控制任务只需要按照某个固定时间周期运行即可;这类需求属于控制系统中最基本也是最简单的延时运行控制逻辑的任务要求。2.事先计划的非固定周期的延时检查任务:同样,在现实的控制系统中,要完成某类控制任务,需要间隔发出一系列的控制指令,并且,特别是存在这样的情况,即指令的间隔时间是需要通过之前控制效果及其变化趋势计算后得出,是通过在运行过程中计算确定下一次预计运行相关控制逻辑的时间,进而得出输出的指令;因此,“动态延时”需求是控制系统中存在的也是比较复杂的延时运行控制逻辑的任务要求。3.非事先计划的非固定周期的延时检查任务:同样,在现实的控制系统中,特别是系统故障的自诊断逻辑程序,当系统中的某运行指标信息可能偏离正常范围时,系统故障的自诊断逻辑程序应当被触发运行,但是,往往只经过一次检查诊断还不能得出故障与否的结论,需要根据实际情况延时一段时间后再次或多次检查诊断;这里例举一个简单的例子:在冬季建筑或住宅中需要有热源采暖(如锅炉、制热的空调机组、集中供热的热力管线等),假如,在计划的供热期间控制系统发现热源温度不够高,并运行了“热源故障自诊断逻辑程序”,能够确认温度偏离了正常范围,但还不能确认属于故障,可能是正常的供热量调节过程,但是,如果若干时间之后热源温度仍然偏离正常范围,则可以确认属于故障,并指令备用热源启动运行;由此可知,非事先计划的非固定周期的延时任务运行是控制系统中存在的也是更为复杂的延时运行控制逻辑的任务要求。4.不同延时时间的但具有相同内容的系列延时任务:同样,在现实的控制系统中,某类控制任务的执行包含有前提条件,这些条件可能是对一些信息的综合判断,这些信息的变化已知有一定的规律,但不能准确预计,需要根据实际情况间断地检查;例如,锅炉停止运行后风扇和水泵还不能立即停止,需要等炉体温度和水温等下降到安全范围后再全部停机,这类延时检查的间隔可以根据已有的相关数据估算出一个或多个检查点,并且这些间隔时间往往是逐渐缩短的;因此,建立延时任务时要参考已有的任务计划的需求也是控制系统中存在的比较复杂的延时运行控制逻辑的任务要求。5.如前述第4条需求所述,在延时任务建立后假如发生控制系统重启事件,诸如延时关机的一类任务应该继续执行:在现实的控制系统中,这样的要求应该能够予以保障。综上所述,在各类控制系统中普遍存在控制逻辑的延时调用的需求,这些需求包括但不限于:1.固定周期的定时运行任务;2.单次的延时运行任务,并且延时的时间已经固定写入程序中;3.单次的延时运行任务,并且延时的时间在程序运行中动态确定;4.已经建立的延时任务,在没有执行前可以查询到计划中的任务内容、剩余时间,并且可以修改延时的时间或取消任务;5.能够建立多个具有相同任务内容的延时计划,同时,他们有不同的延时时间;6.当建立多个具有相同任务内容的延时计划时,后建立的延时任务中的延时时间可以根据已经计划的延时任务的延时时间动态确定;7.已经建立的延时任务,在控制系统发生短暂故障或重启后,应当能够继续执行,或提供重新核查的功能。为了满足延时调用控制逻辑程序的需求,许多计算机程序编程语言和运行环境提供了诸如“定时器”的功能。例如,在Windows操作环境下,有关定时器的功能包括:(I)SleepO函数,可以实现任务的暂停等待,但同时整个程序都被暂停,通常很少使用;(2) SetTimer ()和KillTimerO函数,常用定时器,可以建立,也可以取消;(3) timeSetEvent (), timeKiIIEvent ()函数,常用定时器,同样,可以建立,也可以取消。在Linux操作系统中也有类似功能的定时器可供应用程序使用。上述这类定时器都能够实现延时调用任务程序的功能,他们的基本工作流程参见图1,为现有采用定时器实现任务程序延时运行的流程图;其中,在步骤I中应用程序设置一个定时器i,该定时器通常包含的信息有:定时器的唯一标志ID,时间间隔(从启动定时器开始计算需要延时的时间长度),目标任务i(通常使用回调函数触发目标任务的运行);应用程序在步骤2中启动该定时器i后继续运行;在步骤3中操作系统监测到定时器i设定的定时时间到;经步骤4操作系统通知应用程序运行目标任务i ;目标任务i运行时还可以在自身程序中决定定时器i是就此结束仅实现延时调用目标任务的功能,还是继续存在以实现目标任务i按照同样的时间间隔周期运行。综上所述,采用程序开发语言提供的通用定时器实现任务程序延时运行的功能,能够满足简单的延时调用程序的要求,但是,在各类控制系统中存在比较复杂的控制逻辑程序的延时执行的需求,这种情况下,采用程序开发语言提供的通用定时器实现任务程序的延时运行会表现出如下不足:1.定时器由操作系统管理,应用程序不能干预,只能是建立或取消;2.定时器难以被应用程序查询、修改;对同样的任务程序如果需要建立不同的延时调用计划,必须使用不同的定时器ID,应用程序将难以查询和管理所有的延时任务,因此,遇到比较复杂的建立、修改延时任务计划的需求时,通用定时器难以胜任;3.如果遇到应用程序或操作系统意外重启,此前建立的延时任务计划随之消失,还有哪些任务没有执行将无记录可查。本专利技术通过建立计划队列及相应的管理功能,很好地解决了上述问题。
技术实现思路
本专利技术公开了,目的是要解决各类控制系统中的系统主程序对延时调用控制逻辑(程序)进行动态管理遇到的问题,包括:查询、修改的要求,以及系统意外重启后的继续执行或查询、修改的要求。为了实现本专利技术的目的,本专利技术所采用的技术方案包括:1.本专利技术公开了,其特征在于通过建立计划队列及相应的管理模块,使得本文档来自技高网
...

【技术保护点】
本专利技术公开了一种通过计划队列实现控制逻辑的动态延时调用的方法,其特征在于通过建立计划队列及相应的管理模块,使得基于计算机或MCU的控制系统的主程序能够实现对控制逻辑的动态延时调用和管理,它包括: (1)计划队列,用于将所述控制系统中需要延时调用的控制逻辑作为一个计划项添加入该计划队列,其中所述每一个计划项包含的数据元素有:控制逻辑ID、执行时间、控制逻辑执行时所需参数、添加到计划队列的时间戳; (2)计划镜像,是所述计划队列的实时动态镜像信息,同步记录计划队列中的完整内容;该计划镜像可以保存在数据库中也可以保存在数据文件中;该计划镜像的作用包括:作为所述计划队列的实时备份,当系统意外重启后,用于恢复计划队列中的信息; (3)巡检执行与同步模块,负责循环检测所述计划队列中记录的所有所述计划项,当检测到某一计划项标记的所述执行时间小于等于当前系统时间时,该项计划中所述控制逻辑将被执行并从计划队列中移除;巡检执行与同步模块同时负责计划镜像与计划队列的信息同步;特别当系统意外重启后,巡检执行与同步模块负责将所述计划镜像中的内容导入系统重启后新建立的所述计划队列; (4)计划队列管理模块,根据所述控制系统主程序的请求:负责将新的所述延时调用控制逻辑的计划项插入计划队列、负责修改已有计划项的信息、负责删除尚未执行的计划项、负责查询已有计划项的信息并答复查询请求。...

【技术特征摘要】

【专利技术属性】
技术研发人员:韩骐键
申请(专利权)人:三和智控北京系统集成有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1