CN107480045A - 一种电能表软件的检错纠错与轨迹跟踪方法 - Google Patents

一种电能表软件的检错纠错与轨迹跟踪方法 Download PDF

Info

Publication number
CN107480045A
CN107480045A CN201710541354.0A CN201710541354A CN107480045A CN 107480045 A CN107480045 A CN 107480045A CN 201710541354 A CN201710541354 A CN 201710541354A CN 107480045 A CN107480045 A CN 107480045A
Authority
CN
China
Prior art keywords
data
electric energy
energy meter
head
software
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.)
Pending
Application number
CN201710541354.0A
Other languages
English (en)
Inventor
龙德亮
徐健
池金波
徐法格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Integrated Electronic Systems Lab Co Ltd
Original Assignee
Integrated Electronic Systems Lab Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Integrated Electronic Systems Lab Co Ltd filed Critical Integrated Electronic Systems Lab Co Ltd
Priority to CN201710541354.0A priority Critical patent/CN107480045A/zh
Publication of CN107480045A publication Critical patent/CN107480045A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种电能表软件的检错纠错与轨迹跟踪方法,1、为数据结构体增加CS校验字节进行CS校验;2、为数据结构体增加固定值的首尾特征字字节进行首尾特征字校验;3、判断数据缓冲区是否溢出;4、判断数据堆栈空间是否小于预先设定的预警值;5、对操作函数的重要入口参数进行合法性检查,若不满足操作函数执行要求则输出非法信息;6、设计电能表软件运行轨迹输出函数,将电能表软件运行轨迹信息以及运行状态信息输出到电脑端,方便地查看当前软件运行状况。本发明将各类检错纠错机制集合起来,并将查找出的问题统一通过轨迹函数输出到电脑端,快速定位问题位置并反馈给开发人员进行修改,把电能表的软件问题降到最低。

Description

一种电能表软件的检错纠错与轨迹跟踪方法
技术领域
本发明属于电能表技术领域,具体涉及一种电能表软件的检错纠错与轨迹跟踪方法。
背景技术
随着国家电网公司智能电能表系列标准的正式实施,电能表的功能明显增多,电能表软件代码量达到十万行之多,软件调试及问题排查工作非常艰巨。尽管有供应商内部进行的产品***测试和国家电网计量中心进行的全性能测试,但很多问题隐藏深、重现频率小,比如变量被异常改写、缓冲区或堆栈溢出、软件异常复位……等,无法确认所有的隐藏错误,加之国家电网禁止对现场运行的电能表软件升级,造成了部分错误无法在出厂前消除,影响了现场的使用。
发明内容
为解决上述技术问题,本发明提出了一种电能表软件的检错纠错与轨迹跟踪方法,在编码阶段规避软件问题,同时一旦发生错误能够很快对错误定位跟踪。
本发明所采用的技术方案如下:
一种电能表软件的检错纠错与轨迹跟踪方法,包括以下步骤:
步骤1、为电能表软件所定义的数据结构体增加CS校验字节,存储或读取变量时先根据CS校验字节进行CS校验;
进行CS校验的具体步骤如下:
1.1、写数据时,先计算得到数据结构体变量的CS校验字节,CS校验字节=数据结构体中除CS校验字节之外的其他变量的数据值之和,然后将计算得到的CS校验字节与数据一起写入存储区;
1.2、读数据时,执行以下步骤:
1.2.1、将数据结构体中除CS校验字节之外的其他变量字节的数据值进行累加得到CS1,然后将CS1与该数据结构体存储的CS校验字节进行比较,判定二者是否相等,若是则读取并使用数据、读数据结束,若否则转1.2.2;
1.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
1.2.3、读取备份区数据,并转步骤1.2.1。
通过对电能表软件中的数据结构体增加CS校验字节,可根据校验结果判断数据结构体的数据是否遭到破坏,确认数据被破坏后可以通过读取备份的结构体数据解决该问题,保证了数据的正确性,对于要保证电能表正确运行的电能表参数而言该方式至关重要。
步骤2、为电能表软件所定义的数据结构体增加固定值的首尾特征字字节,存储或读取变量时先根据首尾特征字字节进行首尾特征字校验;
进行首尾特征字校验的具体步骤如下:
2.1、写数据时执行以下步骤:
2.1.1、判断要写入的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则将数据和首尾特征字同时进行存储、写数据结束,若否则转下一步;
2.1.2、重置默认值并输出调试信息,存储默认数据;
2.2、读数据时执行以下步骤:
2.2.1、判断要读取的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则读取并使用数据、读数据结束,若否则转下一步;
2.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
2.2.3、读取备份区数据,并转步骤2.2.1。
通过对电能表软件中的数据结构体增加首尾特征字字节,可根据首尾特征字的值是否被改变判断结构体数据是否受到破坏,确认数据被破坏后可以通过读取备份结构体数据方式解决该问题,该方式对于电能表的正确运行同样至关重要。
步骤3、在使用电能表软件所定义的数据缓冲区之前先判断数据缓冲区是否溢出,若是则输出溢出信息,若否则正常使用数据缓冲区。
因数据缓冲区一旦溢出,电能表内对缓冲区的所有操作均为错误操作,该方式可以及时提醒开发人员进行缓冲区调整,停止电能表软件的错误运行。
步骤4、在使用电能表软件所定义的数据堆栈空间之前先判断数据堆栈空间是否小于预先设定的预警值,若是则输出数据堆栈空间报警信息,若否则正常使用数据堆栈空间。
因数据堆栈空间一旦超过预警值,就很有可能在运行过程发生数据堆栈溢出,造成电能表软件死机,该方式可以及时提醒开发人员注意数据堆栈空间的剩余大小,及时更改数据堆栈空间避免溢出。
步骤5、对电能表软件所定义的操作函数的重要入口参数进行合法性检查,若不满足操作函数执行要求则输出非法信息。
一旦不合法数据传入而无判断,就会造成函数的不正确执行或返回错误结果,该方式可确保函数入口参数的合法性,确保函数的正确执行。
步骤6、设计电能表软件运行轨迹输出函数,在软件的关键运行处执行运行轨迹输出函数,将电能表软件运行轨迹信息以及运行状态信息输出到电脑端,根据运行轨迹输出函数的输出信息方便地查看当前软件的运行状况。
通过查看电能表软件运行过程中的轨迹信息,可以掌控电能表软件的实时运行状况,可以查看电能表是否有错误的逻辑关系,可以快速定位发生错误的位置,该方式对于调试电能表软件、排查问题起到了非常重要的作用。
本发明产生的有益效果:目前电能表的软件中虽然也有各类检错纠错机制,但存在的普遍问题是各类机制均是独立运行,只能在软件调试过程中呈现问题,正常运行过程中一旦出现软件问题,就无法告知错误位置。本发明将各类检错纠错机制集合起来,并将各类机制查找出的问题统一通过轨迹运行函数输出到电脑端,进而快速定位问题位置并反馈给开发人员进行修改,把电能表的软件问题降到最低。
附图说明
图1、读数据时进行CS校验的流程图;
图2、读数据时进行首尾特征字校验的流程图;
图3、判断数据缓冲区是否溢出的流程图;
图4、判断数据堆栈空间是否小于预先设定的预警值的流程图。
具体实施方式
下面结合附图,具体说明本发明的实施方式。
一种电能表软件的检错纠错与轨迹跟踪方法,包括以下步骤:
步骤1、为电能表软件所定义的数据结构体增加CS校验字节,存储或读取变量时先根据CS校验字节进行CS校验;
为数据结构体增加CS校验字节的程序代码如下:
校验和判定函数CHECK_STRUCT_SUM(),校验和设置函数SET_STRUCT_SUM();
进行CS校验的具体步骤如下:
1.1、写数据时,先计算得到数据结构体变量的CS校验字节,CS校验字节=数据结构体中除CS校验字节之外的其他变量的数据值之和,然后将计算得到的CS校验字节与数据一起写入存储区;
1.2、读数据时,如图1所示,执行以下步骤:
1.2.1、将数据结构体中除CS校验字节之外的其他变量字节的数据值进行累加得到CS1,然后将CS1与该数据结构体存储的CS校验字节进行比较,判定二者是否相等,若是则读取并使用数据、读数据结束,若否则转1.2.2;
1.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
1.2.3、读取备份区数据,并转步骤1.2.1。
步骤2、为电能表软件所定义的数据结构体增加固定值(比如0x55)的首尾特征字字节,存储或读取变量时先根据首尾特征字字节进行首尾特征字校验;
为数据结构体增加固定值的首尾特征字字节的程序代码如下:
进行首尾特征字校验的具体步骤如下:
2.1、写数据时执行以下步骤:
2.1.1、判断要写入的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则将数据和首尾特征字同时进行存储、写数据结束,若否则转下一步;
2.1.2、重置默认值并输出调试信息,存储默认数据;
2.2、读数据时,如图2所示,执行以下步骤:
2.2.1、判断要读取的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则读取并使用数据、读数据结束,若否则转下一步;
2.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
2.2.3、读取备份区数据,并转步骤2.2.1。
步骤3、在使用电能表软件所定义的数据缓冲区之前先判断数据缓冲区是否溢出,若是则输出溢出信息,若否则正常使用数据缓冲区,具体步骤如图3所示。
步骤4、在使用电能表软件所定义的数据堆栈空间之前先判断数据堆栈空间是否小于预先设定的预警值,若是则输出数据堆栈空间报警信息,若否则正常使用数据堆栈空间,具体步骤如图4所示。
步骤5、对电能表软件所定义的操作函数的重要入口参数进行合法性检查,若不满足操作函数执行要求则输出非法信息。
步骤6、设计电能表软件运行轨迹输出函数,在软件的关键运行处执行运行轨迹输出函数,将电能表软件运行轨迹信息以及运行状态信息输出到电脑端,根据运行轨迹输出函数的输出信息方便地查看当前软件的运行状况。
定义运行轨迹输出函数的程序代码如下:
Debug_Print(char*format,...),输出函数所在行、当前变量值、上级调用函数等信息。

Claims (3)

1.一种电能表软件的检错纠错与轨迹跟踪方法,其特征在于,包括以下步骤:
步骤1、为电能表软件所定义的数据结构体增加CS校验字节,存储或读取变量时先根据CS校验字节进行CS校验;
步骤2、为电能表软件所定义的数据结构体增加固定值的首尾特征字字节,存储或读取变量时先根据首尾特征字字节进行首尾特征字校验;
步骤3、在使用电能表软件所定义的数据缓冲区之前先判断数据缓冲区是否溢出,若是则输出溢出信息,若否则正常使用数据缓冲区;
步骤4、在使用电能表软件所定义的数据堆栈空间之前先判断数据堆栈空间是否小于预先设定的预警值,若是则输出数据堆栈空间报警信息,若否则正常使用数据堆栈空间;
步骤5、对电能表软件所定义的操作函数的重要入口参数进行合法性检查,若不满足操作函数执行要求则输出非法信息;
步骤6、设计电能表软件运行轨迹输出函数,在软件的关键运行处执行运行轨迹输出函数,将电能表软件运行轨迹信息以及运行状态信息输出到电脑端,根据运行轨迹输出函数的输出信息方便地查看当前软件的运行状况。
2.根据权利要求1所述的一种电能表软件的检错纠错与轨迹跟踪方法,其特征在于,步骤1中所述的进行CS校验的具体步骤如下:
1.1、写数据时,先计算得到数据结构体变量的CS校验字节值,CS校验字节值=数据结构体中除CS校验字节之外的其他变量的数据值之和,然后将计算得到的CS校验字节值与数据一起写入存储区;
1.2、读数据时,执行以下步骤:
1.2.1、将数据结构体中除CS校验字节之外的其他变量字节的数据值进行累加得到CS1,然后将CS1与该数据结构体存储的CS校验字节进行比较,判定二者是否相等,若是则读取并使用数据、读数据结束,若否则转1.2.2;
1.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
1.2.3、读取备份区数据,并转步骤1.2.1。
3.根据权利要求1所述的一种电能表软件的检错纠错与轨迹跟踪方法,其特征在于,步骤2中所述的进行首尾特征字校验的具体步骤如下:
2.1、写数据时执行以下步骤:
2.1.1、判断要写入的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则将数据和首尾特征字同时进行存储、写数据结束,若否则转下一步;
2.1.2、重置默认值并输出调试信息,存储默认数据;
2.2、读数据时执行以下步骤:
2.2.1、判断要读取的变量的首尾特征字与数据结构体中预先设定的固定值的首尾特征字是否一致,若是则读取并使用数据、读数据结束,若否则转2.2.2;
2.2.2、判断备份区的数据是否均读完,若是则重置默认值并输出调试信息、读数据结束,若否则转下一步;
2.2.3、读取备份区数据,并转步骤2.2.1。
CN201710541354.0A 2017-07-05 2017-07-05 一种电能表软件的检错纠错与轨迹跟踪方法 Pending CN107480045A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710541354.0A CN107480045A (zh) 2017-07-05 2017-07-05 一种电能表软件的检错纠错与轨迹跟踪方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710541354.0A CN107480045A (zh) 2017-07-05 2017-07-05 一种电能表软件的检错纠错与轨迹跟踪方法

Publications (1)

Publication Number Publication Date
CN107480045A true CN107480045A (zh) 2017-12-15

Family

ID=60596390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710541354.0A Pending CN107480045A (zh) 2017-07-05 2017-07-05 一种电能表软件的检错纠错与轨迹跟踪方法

Country Status (1)

Country Link
CN (1) CN107480045A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683861A (zh) * 2018-12-10 2019-04-26 积成电子股份有限公司 一种电能表的轻型协作式操作***及其实现方法
CN110674050A (zh) * 2019-10-08 2020-01-10 腾讯科技(深圳)有限公司 内存越界检测方法、装置、电子设备及计算机存储介质
CN112614331A (zh) * 2020-12-14 2021-04-06 杭州海兴电力科技股份有限公司 抄读电能表事件的方法与电能表抄读事件***
CN115080648A (zh) * 2022-06-27 2022-09-20 厦门市美亚柏科信息股份有限公司 一种用于海图机轨迹数据的获取方法和***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877793A (zh) * 2009-06-01 2010-11-03 杭州海康威视软件有限公司 数据传输方法、检错方法、***和装置
CN102937944A (zh) * 2012-10-16 2013-02-20 北京交控科技有限公司 一种基于Arcnet串口服务器
CN103607258A (zh) * 2013-11-18 2014-02-26 深圳市道通科技有限公司 汽车电脑诊断设备中主从设备的通信方法、装置及***
CN106126367A (zh) * 2016-06-28 2016-11-16 湖北锐世数字医学影像科技有限公司 一种文件的自校验方法及***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101877793A (zh) * 2009-06-01 2010-11-03 杭州海康威视软件有限公司 数据传输方法、检错方法、***和装置
CN102937944A (zh) * 2012-10-16 2013-02-20 北京交控科技有限公司 一种基于Arcnet串口服务器
CN103607258A (zh) * 2013-11-18 2014-02-26 深圳市道通科技有限公司 汽车电脑诊断设备中主从设备的通信方法、装置及***
CN106126367A (zh) * 2016-06-28 2016-11-16 湖北锐世数字医学影像科技有限公司 一种文件的自校验方法及***

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
吴朔媚 等: "《计算机网络安全技术研究》", 31 March 2017, 东北师范大学出版社 *
张勇 等: "《嵌入式实时操作***μC/OS-Ⅲ应用技术——基于ARM Cortex-M3 LPC1788》", 30 April 2013, 北京航空航天大学出版社 *
陈敏: "《OPNET物联网仿真》", 30 April 2015, 华中科技大学出版社 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109683861A (zh) * 2018-12-10 2019-04-26 积成电子股份有限公司 一种电能表的轻型协作式操作***及其实现方法
CN110674050A (zh) * 2019-10-08 2020-01-10 腾讯科技(深圳)有限公司 内存越界检测方法、装置、电子设备及计算机存储介质
CN110674050B (zh) * 2019-10-08 2022-04-19 腾讯科技(深圳)有限公司 内存越界检测方法、装置、电子设备及计算机存储介质
CN112614331A (zh) * 2020-12-14 2021-04-06 杭州海兴电力科技股份有限公司 抄读电能表事件的方法与电能表抄读事件***
CN115080648A (zh) * 2022-06-27 2022-09-20 厦门市美亚柏科信息股份有限公司 一种用于海图机轨迹数据的获取方法和***

Similar Documents

Publication Publication Date Title
CN107480045A (zh) 一种电能表软件的检错纠错与轨迹跟踪方法
CN108710551B (zh) 基于sparc处理器单粒子翻转故障注入的测试方法及***
US7320114B1 (en) Method and system for verification of soft error handling with application to CMT processors
CN100419695C (zh) 将进程删除错误引向应用程序
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
CN102301427A (zh) 分析来自具有有限耐久性和/或保持性的存储器设备的监视数据信息
CN106776095A (zh) Ssd固态硬盘数据可靠性智能检测方法及检测装置
CN108446189A (zh) 一种星载嵌入式软件容错启动***及方法
CN101334754A (zh) 基于故障注入的嵌入式***测评方法
CN103984630A (zh) 一种基于at697处理器的单粒子翻转故障处理方法
CN105320579B (zh) 面向sparc v8处理器的自修复双冗余流水线及容错方法
WO2022037022A1 (zh) 一种在线并行处理的软错误实时检错与恢复方法及***
CN103778030A (zh) 日志子***写入方法、错误追踪方法及处理器
CN109933340A (zh) 一种航天器eeprom基于页模式的在轨写入和自检方法
CN110489285B (zh) 一种固态硬盘的异常分支测试方法和***
CN100501686C (zh) 在差错处理程序执行期间处理差错的方法、处理器及***
US6539338B1 (en) Self-diagnostic testing of a network interface adapter
CN113342571A (zh) 一种应用于嵌入式***的eeprom数据掉电不丢失方法
CN106815153A (zh) 一种安全存储方法、装置和***
CN104597807A (zh) 一种星载综合电子cpu翻转加固***及方法
CN114974388B (zh) 一种高速ddr存储器单粒子错误评估***及方法
Lee et al. Evaluation of error detection coverage and fault-tolerance of digital plant protection system in nuclear power plants
CN109885342A (zh) 一种执法记录仪的***程序修复方法
CN112542208B (zh) Sd nand测试方法、装置、存储介质和终端
CN203882621U (zh) 一种存储装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171215