基于面向对象的交换协议的用电信息采集任务管理方法技术

技术编号:17796597 阅读:66 留言:0更新日期:2018-04-25 20:05
本发明专利技术涉及基于面向对象的交换协议的用电信息采集任务管理方法:1、在内存中创建全局变量;2、判断与数据采集任务相关的参数是否发生变更;3、判断是否有需要置为无效的任务;4、将有效数据采集任务同步;5、查找高优先级任务,并指向该数据采集任务的地址;6、把OAD内容、电能表档案的存储序号同步;7、选择电表及OAD进行组帧抄取数据;8、发起抄表通信。本发明专利技术保证了高优先级的任务及时响应;节省了大量的内存资源,降低大量的产品成本;保证了在各任务切换后再次执行时的连贯性。

Task management method of power information collection based on object oriented switching protocol

The invention relates to an electric information acquisition task management method based on object oriented switching protocols: 1, create global variables in memory; 2, determine whether parameters related to data acquisition tasks change; 3, determine whether there is a need for invalid tasks; 4, synchronize effective data acquisition tasks; 5, lookup high excellence First level task, and point to the address of the data acquisition task; 6, synchronize the storage number of OAD content and electric energy meter file; 7, select the electric meter and OAD to copy the data from the group frame; 8, initiate the meter reading communication. The invention ensures the timely response of the high priority task, saves a lot of memory resources, reduces the cost of a large number of products, and ensures the continuity of the repeated execution of each task after the task is switched.

【技术实现步骤摘要】
基于面向对象的交换协议的用电信息采集任务管理方法
本专利技术涉及用电信息采集
,尤其涉及一种基于面向对象的交换协议的用电信息采集任务管理方法。
技术介绍
电力系统中的用电信息采集系统,之前所采用的通信规约Q/GDW1376.1、DL/T645等均是面向过程的,存在着功能扩展性和应用灵活性欠缺的缺点,一旦有业务变更时,需要对协议重新修订、对现场的终端设备进行大规模重新升级,增大了现场运维的压力。基于以上原因,用电信息采集系统中面向对象的用电信息数据交换协议逐步推广开来,该协议具有业务适应强、采集效率高、数据源唯一和兼容性好的特点。尤其是在采集终端设备中,根据该协议的功能,通过任务配置表可以很方便地对数据采集任务(包括普通采集任务、事件采集任务、透明任务)进行优先级划分、采集数据内容变更、任务执行频率及周期调整等工作。由于各数据采集任务均有一定的时效性,因此如何根据各任务的优先级进行有效、合理地分配各采集任务的执行时间变得尤为重要。目前的解决方法是把各采集任务的所有数据信息复制到内存中,然后,在内存中根据各采集任务的执行时间段和优先级进行排序后筛查优先执行的任务。这种方案的优点是操作方便,执行效率高,但是由于各采集任务包含的数据信息很多,付出的代价就是需要消耗大量的内存资源。对于嵌入式系统的产品来讲,硬件资源、尤其是内存容量的增加意味着产品成本的升高,不利于提升产品的市场竞争力。
技术实现思路
针对上述问题,本专利技术提供了一种在保证各采集任务执行效率不变的情况下,同时能够降低内存消耗,进而降低产品成本的采集任务管理的方法。本专利技术所采取的技术方案为:基于面向对象的交换协议的用电信息采集任务管理方法,包括以下步骤:步骤1、在采集终端的内存中创建以下全局变量:当前运行任务控制块指针pstClientTaskTCBCur、任务控制块数组StClientTaskTCBArry[N]、数据采集内容配置表stFileTable、需采集电表序号配置表ucMS[M],所述的StClientTaskTCBArry[N]中的[N]表示采集终端的参数存储区所实际支持的最大采集任务数量,所述的ucMS[M]中的[M]表示采集终端所支持的最大电能表数量;所述的StClientTaskTCBArry[N]是一个结构体数组,包含以下成员:当前任务类型ucCurTaskType,当前任务优先级ucTaskPri,当前所抄取的OAD计数器指针ucCurDataIDPtr,当前所抄取的电表编号uwCurMeterNO、其中用SELECT_CHANL_FIN表示所有电表抄取完毕;所述的stFileTable包含以下成员:采集总数量ucOADSum,ucOAD[K]、即待采集的OAD;步骤2、查询采集终端的参数存储区,判断与数据采集任务相关的参数是否发生变更,若否则转步骤3,若是则将步骤1中所定义的全局变量全部初始化为默认值、并转步骤3;步骤3、判断StClientTaskTCBArry[N]是否有需要置为无效的任务,若否则转步骤4,若是则将ucCurTaskType置为无效、即设置ucCurTaskType=TASK_INVALID、并转步骤4;步骤4、将采集终端中参数存储区内有效的数据采集任务同步到StClientTaskTCBArry[N]内的任务数据;步骤5、在StClientTaskTCBArry[N]内查找高优先级任务,根据ucTaskPri进行排序,从中选出优先级最高的数据采集任务、并把pstClientTaskTCBCur指向该数据采集任务在StClientTaskTCBArry[N]内的地址;本步骤中通过“任务控制块数组”与参数存储区内的数据采集任务先进行关键参数同步,后进行优先级排序,进而选出最高优先级任务的形式,保证了高优先级的任务及时响应;步骤6、根据步骤5所选出的优先级最高的数据采集任务,在对应的参数存储区内查找该任务所要采集的数据OAD内容,把OAD内容同步到stFileTable中、并把该任务需要采集的电能表档案在参数存储区内的存储序号同步到ucMS[M]中;本步骤通过多个数据采集任务共享一个“数据采集内容配置表”和一个“需采集电表序号配置表”,以及在“需采集电表序号配置表”中仅仅记录电能表在参数存储区内的存储序号的形式,节省了大量的内存资源;步骤7、根据pstClientTaskTCBCur所指向的任务控制块,通过uwCurMeterNO和ucCurDataIDPtr选择电表及OAD进行组帧抄取数据;本步骤通过“任务控制块数组”中的“当前所抄取的OAD计数器指针”和“当前所抄取的电表编号”记录各任务的执行情况,保证了在各任务切换后再次执行时的连贯性;步骤8、根据步骤7中选择出的电能表档案信息和所要采集的数据OAD进行组帧,发起抄表通信。优选地,步骤3中判断任务控制块数组是否有需要置为无效的任务的判断依据是:当前任务类型有效,当前所抄取的电表编号为SELECT_CHANL_FIN,则将其置为无效的任务。优选地,步骤4中将采集终端中参数存储区内有效的数据采集任务同步到StClientTaskTCBArry[N]内的任务数据的具体步骤包括:4.1、在StClientTaskTCBArry[N]内查找无效的任务,即满足ucCurTaskType==TASK_INVALID的任务,若不存在则转步骤5,否则转步骤4.2;StClientTaskTCBArry[N]是各采集任务关键信息点在采集终端的内存中进行的临时标记,若此时在内存中查找出对应的任务无效时,需要到步骤4.2中再次核对该任务是否已经达到有效的条件,若有效就把重新在内存中置为有效;4.2、根据StClientTaskTCBArry[N]中所标记为无效的任务,在参数存储区内查找对应的数据信息,判断该任务是否已经达到就绪态,如果否则转步骤5,如果是则转步骤4.3;4.3、把该任务在参数存储区内的方案类型和执行优先级数据值分别同步到StClientTaskTCBArry[N]内的ucCurTaskType和ucTaskPri内,同时把ucCurDataIDPtr和uwCurMeterNO清为0。优选地,步骤4.2所述的任务达到就绪态是指任务的执行状态、执行频率、开始时间、结束时间满足如下条件:A、任务的执行状态为正常;B、采集终端的当前时间大于等于开始时间且小于结束时间;C、采集终端的当前时间点处于任务的执行周期内。优选地,步骤7中进行组帧抄取数据的具体步骤包括:7.1、如果uwCurMeterNO在有效范围内,同时ucCurDataIDPtr不等于宏值SELECT_DATA_ID_FIN,则转步骤7.2;否则,根据uwCurMeterNO值重新选择一个新的电能表进行采集数据;7.2、根据ucCurDataIDPtr的值,在stFileTable中查找对应的数据OAD,具体步骤如下:首先判断ucCurDataIDPtr是否小于于等于stFileTable中的ucOADSum,若否,则设置ucCurDataIDPtr=SELECT_DATA_ID_FIN;若是,则在stFileTable中的ucOAD[K]中选取下标为ucCurDataIDPtr的数据OAD进行组本文档来自技高网...
基于面向对象的交换协议的用电信息采集任务管理方法

【技术保护点】
基于面向对象的交换协议的用电信息采集任务管理方法,其特征在于,包括以下步骤:步骤1、在采集终端的内存中创建以下全局变量:当前运行任务控制块指针pstClientTaskTCBCur、任务控制块数组StClientTaskTCBArry[N]、数据采集内容配置表stFileTable、需采集电表序号配置表ucMS[M],所述的StClientTaskTCBArry[N]中的[N]表示采集终端的参数存储区所实际支持的最大采集任务数量,所述的ucMS[M]中的[M]表示采集终端所支持的最大电能表数量;所述的StClientTaskTCBArry[N]是一个结构体数组,包含以下成员:当前任务类型ucCurTaskType,当前任务优先级ucTaskPri,当前所抄取的OAD计数器指针ucCurDataIDPtr,当前所抄取的电表编号uwCurMeterNO、其中用SELECT_CHANL_FIN表示所有电表抄取完毕;所述的stFileTable包含以下成员:采集总数量ucOADSum,ucOAD[K]、即待采集的OAD;步骤2、查询采集终端的参数存储区,判断与数据采集任务相关的参数是否发生变更,若否则转步骤3,若是则将步骤1中所定义的全局变量全部初始化为默认值、并转步骤3;步骤3、判断StClientTaskTCBArry[N]是否有需要置为无效的任务,若否则转步骤4,若是则将ucCurTaskType置为无效、即设置ucCurTaskType=TASK_INVALID、并转步骤4;步骤4、将采集终端中参数存储区内有效的数据采集任务同步到StClientTaskTCBArry[N]内的任务数据;步骤5、在StClientTaskTCBArry[N]内查找高优先级任务,根据ucTaskPri进行排序,从中选出优先级最高的数据采集任务、并把pstClientTaskTCBCur指向该数据采集任务在StClientTaskTCBArry[N]内的地址;步骤6、根据步骤5所选出的优先级最高的数据采集任务,在对应的参数存储区内查找该任务所要采集的数据OAD内容,把OAD内容同步到stFileTable中、并把该任务需要采集的电能表档案在参数存储区内的存储序号同步到ucMS[M]中;步骤7、根据pstClientTaskTCBCur所指向的任务控制块,通过uwCurMeterNO和ucCurDataIDPtr选择电表及OAD进行组帧抄取数据;步骤8、根据步骤7中选择出的电能表档案信息和所要采集的数据OAD进行组帧,发起抄表通信。...

【技术特征摘要】
1.基于面向对象的交换协议的用电信息采集任务管理方法,其特征在于,包括以下步骤:步骤1、在采集终端的内存中创建以下全局变量:当前运行任务控制块指针pstClientTaskTCBCur、任务控制块数组StClientTaskTCBArry[N]、数据采集内容配置表stFileTable、需采集电表序号配置表ucMS[M],所述的StClientTaskTCBArry[N]中的[N]表示采集终端的参数存储区所实际支持的最大采集任务数量,所述的ucMS[M]中的[M]表示采集终端所支持的最大电能表数量;所述的StClientTaskTCBArry[N]是一个结构体数组,包含以下成员:当前任务类型ucCurTaskType,当前任务优先级ucTaskPri,当前所抄取的OAD计数器指针ucCurDataIDPtr,当前所抄取的电表编号uwCurMeterNO、其中用SELECT_CHANL_FIN表示所有电表抄取完毕;所述的stFileTable包含以下成员:采集总数量ucOADSum,ucOAD[K]、即待采集的OAD;步骤2、查询采集终端的参数存储区,判断与数据采集任务相关的参数是否发生变更,若否则转步骤3,若是则将步骤1中所定义的全局变量全部初始化为默认值、并转步骤3;步骤3、判断StClientTaskTCBArry[N]是否有需要置为无效的任务,若否则转步骤4,若是则将ucCurTaskType置为无效、即设置ucCurTaskType=TASK_INVALID、并转步骤4;步骤4、将采集终端中参数存储区内有效的数据采集任务同步到StClientTaskTCBArry[N]内的任务数据;步骤5、在StClientTaskTCBArry[N]内查找高优先级任务,根据ucTaskPri进行排序,从中选出优先级最高的数据采集任务、并把pstClientTaskTCBCur指向该数据采集任务在StClientTaskTCBArry[N]内的地址;步骤6、根据步骤5所选出的优先级最高的数据采集任务,在对应的参数存储区内查找该任务所要采集的数据OAD内容,把OAD内容同步到stFileTable中、并把该任务需要采集的电能表档案在参数存储区内的存储序号同步到ucMS[M]中;步骤7、根据pstClientTaskTCBCur所指向的任务控制块,通过uwCurMeterNO和ucCurDataIDPtr选择电表及OAD进行组帧抄取数据;步骤8、根据步骤7中选择出的电能表档案信息和所要采集的数据OAD进行组帧,发起抄表通信。2.根据权利要求1所述的基于面向对象的交换协议的用电信息采集任务管理方法,其特征在于,步骤3中判断任务控制块数组是否有需要置为无效的任务的判断依据是:当前任务类型有效,当前所抄取的电表编号为SELECT_CHANL_FIN,则将其置为无效的任务。3.根据权利要求1所述的基于面向对象的交换协议的用电信息采集任务管理方法,其特征在于,步骤4中将采集终端中参数存...

【专利技术属性】
技术研发人员:衡泽超许远向李先刚许岩赵长收王春城宁晨光宋忠强薛坤郑宝毅王福斌刘十佳
申请(专利权)人:积成电子股份有限公司
类型:发明
国别省市:山东,37

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

1