一种电力采集终端抄表任务调度的方法技术

技术编号:29998304 阅读:31 留言:0更新日期:2021-09-11 04:40
一种电力采集终端抄表任务调度的方法,包括以下步骤:S1以电力采集终端的抄表端口号为单位,分别创建业务容器,所述业务容器通过一双向循环链表实现调度事件列表,所述调度事件列表的每个节点对应一个端口的任务调度,各个端口独立管理自身任务;S2、当某个端口获得调度机会时,业务容器根据业务类型引用对应业务的操作方法进行操作。业务容器通过一个双向链表的访问,实现不同端口的实时调度处理,用最少的资源实现不同端口的并行执行;抽象的业务使得抄表系统和具体协议、用户使用场景无关,抄表系统加载任务后即开始执行任务调度;通过消息队列检测异步通知,保证实时任务可以优先得到处理。得到处理。得到处理。

【技术实现步骤摘要】
一种电力采集终端抄表任务调度的方法


[0001]本专利技术涉及电力采集系统,尤其是一种电力采集终端抄表任务调度的方法。

技术介绍

[0002]电力采集终端是电力数据采集的终端设备,其主要功能是执行用户指定的采集任务,在规定的时间内把对应任务的数据采集并存储。
[0003]由于采集终端运行的现场环境复杂,需要执行的业务类型和种类是复杂多样的。现有技术执行中采集终端执行抄表时大多数只能串行执行,当有多个抄表任务时只能按照优先级排队依次执行,效率低下;对于不同通讯协议的变更显得束手无策,且难以应付面对用户可能不断更新的需求。

技术实现思路

[0004]本专利技术所要解决的技术问题是针对上述技术现状提供一种能同时调度并执行多个任务的电力采集终端抄表任务调度的方法。
[0005]本专利技术解决上述技术问题所采用的技术方案为:一种电力采集终端抄表任务调度的方法,其特征在于:所述方法包括以下步骤:
[0006]S1、以电力采集终端的抄表端口号为单位,分别创建业务容器,所述业务容器通过一双向循环链表实现调度事件列表,所述调度事件列表的每个节点对应一个端口的任务调度,各个端口独立管理自身任务;
[0007]S2、当某个端口获得调度机会时,业务容器根据业务类型引用对应业务的操作方法进行操作。
[0008]作为优选,在步骤S1中,每个端口的业务容器内容包括端口新老功能、端口挂载业务类型、端口操作方法、端口数据缓存;所述端口挂载业务类型将业务分为挂起、睡眠等待、就绪、执行四种状态,所述端口挂载业务通过4张链表实行业务的管理。
[0009]作为优选,在步骤S1中,业务容器根据各个端口功能及业务类型抽象出,业务基类属性和方法。
[0010]作为优选,所述业务基类属性包括执行时间、采集对象和采集方法。
[0011]作为优选,所述业务基类方法包括业务初始化、业务执行、业务进度管理、业务暂停、超时处理;所述业务基类方法通过指针的回调来引用具体业务。
[0012]作为优选,在步骤S2中,业务容器根据业务的基类属性记录业务的执行状态,再根据业务的执行状态进行业务发送和接收、超时处理。
[0013]作为优选,业务执行发送后进入,等待状态,在超时时间内每次该端口获得调度后都要检测接收,指定的时间内未接收到数据则任务业务超时,继续执行该业务的下一步操作。
[0014]作为优选,业务基类属性还包括暂停标识,所述暂停标识通过消息队列的方式通知抄表系统,当抄表系统收到外界发来消息后,立即暂停当前业务执行,保存抄表状态后;
响应发来的消息任务后继续获取上一轮执行业务的状态,接续执行。
[0015]作为优选,所述消息队列包括消息类型和消息内容。
[0016]作为优选,所述消息类型决定消息的处理方式,消息内容包括收到消息后的操作方法
[0017]与现有技术相比,本专利技术的优点在于:本专利技术提供的用于电力采集终端抄表系统的方法,业务容器通过一个双向链表的访问,实现不同端口的实时调度处理,用最少的资源实现不同端口的并行执行;抽象的业务使得抄表系统和具体协议、用户使用场景无关,抄表系统加载任务后即开始执行任务调度;通过消息队列检测异步通知,保证实时任务可以优先得到处理;抄表过程不用关心任务,由业务容器处理,从而实现一个类似于实时操作系统一样的抄表核心。
附图说明
[0018]图1为本专利技术实施例的抄表任务调度的流程图。
具体实施方式
[0019]以下结合附图实施例对本专利技术作进一步详细描述。
[0020]参见图1,一种电力采集终端抄表任务调度的方法,包括以下步骤:
[0021]S1、开始,电力采集终端的抄表端口初始化,以电力采集终端的抄表端口(包括但不限于PLC、AC、485、PULSE)号为单位,分别创建业务容器,每个端口的业务容器内容包括端口新老功能、端口挂载业务类型、端口操作方法、端口数据缓存;端口挂载业务类型将业务分为挂起、睡眠等待、就绪、执行四种状态,端口挂载业务通过4张链表实行业务的管理,业务状态的切换实际上就是链表的增减,每张链表上的业务本质性就是抄表任务,业务容器创建成功后电力采集终端进一步把抄表相关任务加载到各个端口的挂起链表中;所述业务容器通过一双向循环链表实现调度事件列表,操作系统创建抄表线程后,抄表线程便开始在自身任务里循环访问调度事件列表的各个节点,调度事件列表的每个节点对应一个端口的任务调度,各个端口独立管理自身任务;
[0022]S2、业务容器初始化,读取抄表任务参数,n=0,任务参数转成业务信息,添加到挂起链表中,当某个端口获得调度机会时,业务容器根据业务类型引用对应业务的操作方法进行操作。
[0023]业务容器业务容器另外,步骤S1中,业务容器根据各个端口功能及业务类型抽象出,业务基类属性和方法。业务基类属性包括执行时间、采集对象和采集方法;业务基类方法包括业务初始化、业务执行、业务进度管理、业务暂停、超时处理;业务基类方法通过指针的回调来引用具体业务,从而实现不同业务模型的统用处理。
[0024]在步骤S2中,当某个端口获得调度机会时,业务容器根据业务类型引用对应业务的操作方法,业务的操作方法在具体的业务内容中实现,业务容器根据业务的基类属性记录业务的执行状态,业务内容根据当前执行状态进行业务发送和接收、超时等处理。
[0025]由于业务数据的发送和接收是一个异步处理的过程,单个业务执行发送后进入,等待状态,在超时时间内每次该端口获得调度后都要检测接收,指定的时间内未接收到数据则任务业务超时,继续执行该业务的下一步操作。
[0026]每个端口获得调度时均按图1的流程执行,由于各个端口发送和接收数据相对于业务调度来说慢的多,因此业务周期调度各端口可以保证各个端口并行执行,各个端口独立管理自身任务保障各个任务的有序执行。
[0027]具体的,当获得任务调度时,包括以下步骤:
[0028]S3:获取通道队列,n=n+1,通道n调度器的端口接收检测;
[0029]S4:判断是否有挂起任务,如果存在,进入步骤S5;如果不出在,则进入步骤S6;
[0030]S5:判断是否在业务执行时间内:如果是,进入步骤S5.1;如果否,则进入步骤S5.2:
[0031]S5.1:从挂起链表中剔除,添加到就绪表,就绪表排序,继续下一个判断,回到步骤S4;
[0032]S5.2:认为执行时间已过,更新执行时间,继续下一个判断,回到步骤S4;
[0033]S6:判断是否有就绪任务,如果是,判断是否在业务执行时间内:如果是,就绪表按优先级排队,然后继续等待调度,回到步骤S6,如果否,则挂起,回到步骤S6;如果否,进入步骤S7;
[0034]S7:业务切换,判断是否有任务执行,如果是,进入步骤S7.1,如果否,则进入步骤S7.2;
[0035]S7.1:访问就绪表,就绪表优先级当前任务,暂停当前任务,判断当前任务仍在时间段内,如果是,加入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种电力采集终端抄表任务调度的方法,其特征在于:所述方法包括以下步骤:S1、以电力采集终端的抄表端口号为单位,分别创建业务容器,所述业务容器通过一双向循环链表实现调度事件列表,所述调度事件列表的每个节点对应一个端口的任务调度,各个端口独立管理自身任务;S2、当某个端口获得调度机会时,业务容器根据业务类型引用对应业务的操作方法进行操作。2.根据权利要求1所述的电力采集终端抄表任务调度的方法,其特征在于:在步骤S1中,每个端口的业务容器内容包括端口新老功能、端口挂载业务类型、端口操作方法、端口数据缓存;所述端口挂载业务类型将业务分为挂起、睡眠等待、就绪、执行四种状态,所述端口挂载业务通过4张链表实行业务的管理。3.根据权利要求2所述的电力采集终端抄表任务调度的方法,其特征在于:在步骤S1中,业务容器根据各个端口功能及业务类型抽象出,业务基类属性和方法。4.根据权利要求3所述的电力采集终端抄表任务调度的方法,其特征在于:所述业务基类属性包括执行时间、采集对象和采集方法。5.根据权利要求4所述的电力采集终端抄表任务调度的方法,其特征在于:所述业务基类方法包括业务初始化、业务执行、...

【专利技术属性】
技术研发人员:丁成立苟孟生刘绪胜王维旭
申请(专利权)人:宁波三星医疗电气股份有限公司
类型:发明
国别省市:

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

1