一种在集中器中进行参数修改的方法技术

技术编号:19139790 阅读:102 留言:0更新日期:2018-10-13 08:37
本发明专利技术属于电信息采集系统的技术领域,涉及集中器,尤其涉及一种在集中器中进行参数修改的方法。包括以下有效步骤:a、首先在内存中创建变量;b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;d、把参数变更后的新参数写入到申请的内存空间内;e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。本发明专利技术通过提供一种在集中器中进行参数修改的方法,相对于传统的修改方法,本发明专利技术既节省了内存同时也提高了传递效率。

A method of modifying parameters in concentrator

The invention belongs to the technical field of the electric information acquisition system and relates to a concentrator, in particular to a method for modifying parameters in the concentrator. It includes the following effective steps: a, first create a variable in memory; b, parse instructions to determine the relative offset of the changed parameter and the total number of bytes occupied by the parameter; c, create a linked list node, while inserting the node into the parameter storage list, according to the number of bytes occupied by the parameter to request a piece of the same size Memory space; D. Write the new parameter after the parameter change into the application memory space; E. Synchronize the data in the parameter storage list with the data of the new parameter in the application memory space, that is, complete the concentrator parameter modification. By providing a method for modifying parameters in a concentrator, the present invention not only saves memory but also improves transmission efficiency compared with the traditional method.

【技术实现步骤摘要】
一种在集中器中进行参数修改的方法
本专利技术属于电信息采集系统的
,涉及集中器,尤其涉及一种在集中器中进行参数修改的方法。
技术介绍
随着电力系统信息化改造的不断推进,集中器在集抄系统中的使用量在不断的增长。在集中器内存在着多达几十种的各类配置参数,正是这些各类参数共同控制着集中器,使其按照设计的固有方案长期稳定的运行。但是集中器内的所有参数都不是一成不变的,而是根据实际的外部使用环境,对其内部的相关参数值进行着动态的修改。因此如何正确、有效的修改管理这些参数变的至关重要。目前一般的处理的方案是通过文件系统在外部存储单元中创建参数文件,同时在内存中做一个参数备份。当需要对参数进行修改时,先对内存中的备份参数进行修改,当所有要修改的参数在内存中修改完成后,在把内存中的备份参数整体同步到外部存储中的参数文件中。此种方案的优点是充分利用了内存的特性,修改方便、效率高,同时带来的弊端就是内存开销比较大,随着参数种类的增加,内存的开销也随着增加,对于嵌入式系统的产品来讲,硬件资源,尤其是内存容量的增加,意味着产品成本的升高,不利于提升产品的市场竞争力。
技术实现思路
本专利技术针对上述集中器参数修改内存开销比较大、成本高导致市场竞争力差的技术问题,提出一种方法简单、修改方便、效率高且内存消耗少的一种在集中器中进行参数修改的方法。为了达到上述目的,本专利技术采用的技术方案为,本专利技术提供一种在集中器中进行参数修改的方法,包括以下有效步骤:a、首先在内存中创建变量:参数存储结构体、参数存储结构体指针、节点结构体、参数存储链表,其中,所述参数存储结构体为集中器所要存储的所有参数;所述参数存储结构体指针为参数存储结构体定义的指针变量;所述节点结构体用于定义链表中每个节点所包含的成员元素;所述参数存储链表用来传递需要存储的参数;b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;d、把参数变更后的新参数写入到申请的内存空间内;e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。作为优选,所述a步骤中,所述节点结构体包括序列值、自身控制块,其中,所述序列值用于各节点在链表中排序所用,所述自身控制块用于当前节点所指向的控制块地址。作为优选,所述a步骤中,所述参数存储链表包括节点数量、链表起始指针以及链表节点指针,其中,所述节点数量用于统计链表中节点的总数量;所述链表起始指针用于指向链表开始节点的地址,在链表查找时方便找到第一个节点位置;所述链表节点指针用于指向链表节点的地址。作为优选,所述b步骤中,具体操作如下:当集中器收到参数变更的指令后,首先解析出当前需要变更的具体参数x,然后通过步骤a中定义的参数存储结构体指针确定出参数x在结构体内的相对偏移量,偏移量=参数x地址-参数1地址;其次确定出参数x在参数存储结构体中所占用的字节总数量m。作为优选,所述c步骤中,具体操作如下:c1、根据步骤a中节点结构体创建节点变量指针,同时该指针指向一块新申请的内存,把步骤b中确定的偏移量赋值给序列值,即,节点变量指针->序列值=偏移量;c2、根据步骤b中计算的参数x所占用的字节数量m,申请一块同样大小的内存空间,同时令节点变量指针->自身控制块指向此内存空间;c3、把新创建的节点插入到参数存储链表中,由于步骤b中有可能会一次变更多个参数,因此参数存储链表中有可能是多个节点的连接,当一个新的节点插入到已有的结构链中时,可以根据新增节点的序列值和已有节点的序列值通过升序进行各节点之间的连接,同时参数存储链表中的节点数量加一。作为优选,所述e步骤中,具体操作如下:e1、确定参数存储链表中是否存在需要更新的参数,即,判断参数存储链表->节点数量是否大于零,若大于零则进入e2;e2、对参数存储空间内的参数备份,把当前的参数存储空间内的参数按照既有的顺序全部读取出来,临时存储到一块安全的存储空间内;e3、擦除当前的参数存储空间;e4、参数存储空间内的参数再写入,由于在上一步中把参数存储空间内的所有数据都进行了擦除操作,在此需要把参数存储链表和步骤e2临时存储空间内的参数从新写入到参数存储空间内,来实现新参数的变更。作为优选,所述e4步骤的具体操作如下:e4a、从参数存储链表中取出第一个节点的序列值,由步骤c1可知序列值是每个需要变更的参数在参数存储结构体中相对于参数1的偏移量,因此通过该值可知第一个节点所存储的参数值在参数存储空间内的存储位置;e4b、把临时存储空间内偏移量为0到参数1的偏移量之间的所有参数写入到参数存储空间内;e4c、把参数1的偏移量的参数由参数存储链表中第一个节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;e4d、从参数存储链表中取出下一个节点的序列值,即,参数的相对偏移量,把临时存储空间内偏移量为相对偏移量到参数1的偏移量之间的所有参数写入到参数存储空间内;e4e、把参数1的偏移量的参数由参数存储链表中的节点取出后写入到参数存储空间内,同时记录该参数在存储空间内存储的截止位置相对于参数1起始地址的相对偏移量;e4f、重复执行步骤e4d、e4e直至把所有的参数同步完毕。与现有技术相比,本专利技术的优点和积极效果在于,本专利技术通过提供一种在集中器中进行参数修改的方法,相对于传统的修改方法,本专利技术取消了参数区在内存中的备份,节省了大量的内存资源、采用链表的形式一次传递多个要变更的参数,既节省了内存同时也提高了传递效率、在参数存储空间进行数据更新时,先进行参数备份,在一次性的从备份区或者链表中提取参数数据进行数据更新,既提高了效率也保证了数据的安全。具体实施方式为了能够更清楚地理解本专利技术的上述目的、特征和优点,下面结合实施例对本专利技术做进一步说明。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。在下面的描述中阐述了很多具体细节以便于充分理解本专利技术,但是,本专利技术还可以采用不同于在此描述的其他方式来实施,因此,本专利技术并不限于下面公开说明书的具体实施例的限制。实施例1,本实施例提供一种在集中器中进行参数修改的方法,具体操作如下:1)在内存中创建如下变量:“参数存储结构体”DLT_PARA、“参数存储结构体指针”pstDltPara、“节点结构体”ListItem_t、“参数存储链表”xParaStoreList、其中“参数存储结构体”包含了集中器所要存储的所有参数,具体格式如下:对于结构体内的每个具体的参数y,根据各自的实际情况会分别定义出不同的结构体格式,即不同的参数数据构建不同的结构体格式。“参数存储结构体指针”pstDltPara是由“参数存储结构体”DLT_PARA定义的指针变量,根据参数区在参数存储单元里实际分配的绝对物理地址对该变量进行赋值。“节点结构体”定义了链表中每个节点所包含的成员元素,具体如下:①“序列值”xItemValue,主要用来各节点在链表中排序所用。②“自身控制块”pvOwner,当前节点所指向的控制块地址“参数存储链表”是创建的链表变量,主要用本文档来自技高网...

【技术保护点】
1.一种在集中器中进行参数修改的方法,其特征在于,包括以下有效步骤:a、首先在内存中创建变量:参数存储结构体、参数存储结构体指针、节点结构体、参数存储链表,其中,所述参数存储结构体为集中器所要存储的所有参数;所述参数存储结构体指针为参数存储结构体定义的指针变量;所述节点结构体用于定义链表中每个节点所包含的成员元素;所述参数存储链表用来传递需要存储的参数;b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;d、把参数变更后的新参数写入到申请的内存空间内;e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。

【技术特征摘要】
1.一种在集中器中进行参数修改的方法,其特征在于,包括以下有效步骤:a、首先在内存中创建变量:参数存储结构体、参数存储结构体指针、节点结构体、参数存储链表,其中,所述参数存储结构体为集中器所要存储的所有参数;所述参数存储结构体指针为参数存储结构体定义的指针变量;所述节点结构体用于定义链表中每个节点所包含的成员元素;所述参数存储链表用来传递需要存储的参数;b、解析指令确定所变更的参数的相对偏移量及该参数所占用的总字节数;c、创建链表节点,同时把该节点插入到参数存储链表,根据参数占用的字节数量申请一块同样大小的内存空间;d、把参数变更后的新参数写入到申请的内存空间内;e、将参数存储链表中的数据与申请的内存空间内的新参数的数据同步,即完成集中器参数的修改。2.根据权利要求1所述的一种在集中器中进行参数修改的方法,其特征在于,所述a步骤中,所述节点结构体包括序列值、自身控制块,其中,所述序列值用于各节点在链表中排序所用,所述自身控制块用于当前节点所指向的控制块地址。3.根据权利要求2所述的一种在集中器中进行参数修改的方法,其特征在于,所述a步骤中,所述参数存储链表包括节点数量、链表起始指针以及链表节点指针,其中,所述节点数量用于统计链表中节点的总数量;所述链表起始指针用于指向链表开始节点的地址,在链表查找时方便找到第一个节点位置;所述链表节点指针用于指向链表节点的地址。4.根据权利要求3所述的一种在集中器中进行参数修改的方法,其特征在于,所述b步骤中,具体操作如下:当集中器收到参数变更的指令后,首先解析出当前需要变更的具体参数x,然后通过步骤a中定义的参数存储结构体指针确定出参数x在结构体内的相对偏移量,偏移量=参数x地址-参数1地址;其次确定出参数x在参数存储结构体中所占用的字节总数量m。5.根据权利要求4所述的一种在集中器中进行参数修改的方法,其特征在于,所述c步骤中,具体操作如下:c1、根据步骤a中节点结构体创建节点变量指针,同时该指针指向一块新申请的内存,把步骤b中确定的偏移量赋值给序列值,即,节点变量指针->序列值=偏移量;c2、根据步骤b中计算的参数x所占用的字节数量m,申请...

【专利技术属性】
技术研发人员:李保勇展云峰王大胜赵晓龙谭登亮张风良赵晓娟申祥坤郑霄翔魏薇李柯曹务松衡泽超张姗姗王怀栋
申请(专利权)人:国网山东省电力公司阳谷县供电公司
类型:发明
国别省市:山东,37

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

1