发明内容
本发明的目的在于克服现有技术存在的缺陷,提供一种基于配电装置的远程自动点表更新处理方法,基于动态更新的方式,适用不同现场的点表需求。
为实现以上目的,一方面,采用一种基于配电装置的远程自动点表更新的处理方法,包括:
按照标准规约方式接收主站下发的文件内容数据包,并在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答;
在主站下发的文件内容数据包接收完毕后,对文件内容进行合法性校验,并将合法的文件内容存储至存储器;
对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新。
进一步地,所述对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新,包括:
从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目;
循环读取存储器偏移地址中已保存的所述主站下发的文件数据内容,依次按顺序解析还原出点表参数结构体comm_pointtable的各字段数据并存放在点表参数结构体comm_pointtable中,点表参数结构体comm_pointtable包含字段为信息体地址Infoaddr、偏移量Offset、上传系数Ratio、变化死区Deadzone以及备用Reserve;
比较点表参数结构体comm_pointtable中的字段Infoaddr和内存中上传使用的遥测数据结构体comm_yctable中的字段Infoaddr是否相同,遥测数据结构体comm_yctable包含字段为信息体地址Infoaddr、数据value和偏移量Offset;
若相同,则将遥测数据结构体comm_yctable中的字段Offset更新为点表参数结构体comm_pointtable中的Offset变量值;
循环至YCMAX个数目后,所有遥测数据结构体comm_yctable中字段Offset变量更新赋值完成。
进一步地,在所述从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目之前,还包括:
将所述遥测数据结构体comm_yctable中的字段Infoaddr初始化从0x4001顺序到0x4064,所述字段Offset依次赋值65535。
进一步地,还包括:
当所述主站实时召测遥测数据量时,通过指针指向所述遥测数据结构体comm_yctable中字段的首个遥测名称再加上字段Offset变量。
进一步地,所述按照标准规约方式接收主站下发的文件内容数据包,包括:
接收所述主站下发的写文件请求;
根据报文结构判断报文格式是否符合101帧结构格式或104帧结构格式;
若符合,则继续接收所述主站下发的写文件请求;
并对接收到的文件名及文件长度进行合法性检验;
若非法,则退出本次接收包过程。
另一方面,采用一种基于配电装置的远程自动点表更新的处理系统,包括主站、终端和存储器,终端和主站通过硬件通讯接口串口或网口连接,终端包括接收模块、校验模块和点表更新模块,其中:
接收模块用于按照标准规约方式接收主站下发的文件内容数据包,并在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答;
校验模块用于在主站下发的文件内容数据包接收完毕后,对文件内容进行合法性校验,并将合法的文件内容存储至所述存储器;
点表更新模块用于对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新。
进一步地,所述点表更新模块具体用于:
从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目;
循环读取存储器偏移地址中已保存的所述主站下发的文件数据内容,依次按顺序解析还原出点表参数结构体comm_pointtable的各字段数据并存放在点表参数结构体comm_pointtable中,点表参数结构体comm_pointtable包含字段为信息体地址Infoaddr、偏移量Offset、上传系数Ratio、变化死区Deadzone以及备用Reserve;
比较点表参数结构体comm_pointtable中的字段Infoaddr和内存中上传使用的遥测数据结构体comm_yctable中的字段Infoaddr是否相同,遥测数据结构体comm_yctable包含字段为信息体地址Infoaddr、数据value和偏移量Offset;
若相同,则将遥测数据结构体comm_yctable中的字段Offset更新为点表参数结构体comm_pointtable中的Offset变量值;
循环至YCMAX个数目后,所有遥测数据结构体comm_yctable中字段Offset变量更新赋值完成。
进一步地,所述接收模块包括文件接收单元和应答单元,其中:
接收单元用于按照所述按照标准规约方式,通过所述硬件通讯接口串口或网口接收所述主站下发的文件内容数据包;
应答单元用于在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答。
进一步地,所述接收单元具体用于:
接收所述主站下发的写文件请求;
根据报文结构判断报文格式是否符合101帧结构格式或104帧结构格式;
若符合,则继续接收所述主站下发的写文件请求;
并对接收到的文件名及文件长度进行合法性检验;
若非法,则退出本次接收包过程。
与现有技术相比,本发明存在以下技术效果:本发明采用主动接收、动态更新替换的设计,自动通过标准规约方式接收并分析主站下发的电表文件,并进行合法性校验后,解析文件格式内容,按照相应格式依次提取有用数据,对终端内部已有的电表文件进行更新替换,解决了目前电力系统终端调试接入效率低,运维工作量难度大的问题。
具体实施方式
为了更进一步说明本发明的特征,请参阅以下有关本发明的详细说明与附图。所附图仅供参考与说明之用,并非用来对本发明的保护范围加以限制。
如图1所示,本实施例公开了一种基于配电装置的远程自动点表更新的处理方法,包括如下步骤S1至S3:
S1、按照标准规约方式接收主站下发的文件内容数据包,并在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答;
S2、在主站下发的文件内容数据包接收完毕后,对文件内容进行合法性校验,并将合法的文件内容存储至存储器;
S3、对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新。
需要说明的是,终端通过硬件通讯接口串口或网口接收主站下发的文件内容数据包,终端易于与主站配合,完全基于标准规约方式进行;且基于动态更新的方式,具有适用于不同现场的点表需求。
作为进一步优选的技术方案,如图2至图3所示,步骤S1中的,按照标准规约方式接收主站下发的文件内容数据包,包括:
接收所述主站下发的写文件请求;
根据报文结构判断报文格式是否符合101帧结构格式或104帧结构格式;
若符合,则继续接收所述主站下发的写文件请求;
并对接收到的文件名及文件长度进行合法性检验;
若非法,则退出本次接收包过程;
需要说明的是,首先主站下发文件激活命令,其传输的数据包中含有文件名,文件长度等关键性内容,然后在将文件名中内容按最大一包256字节分段下发。
当硬件通讯接口串口或网口收到主站下发的写文件请求时,完成该数据帧的自动校验解析,并根据报文格式的特有结构确认该帧是否为101或104合法帧,在满足合法性检查后,对接收到的文件名及长度在进行检验,以防止非法的文件名或者不是设备能够识别的文件类型被误解析存储而引起系统运行异常。
接着终端被动等待主站的继续下发文件内容数据包,边收边存储边进行文件内容的字节CRC校验过程,所有分段的包接收完毕后,最终计算的CRC值与最后一包主站计算的校验CRC进行同值比较,进行写文件确认的正确或异常响应返回给主站进行应答,从而完成整个写入文件流程。
作为进一步优选的技术方案,如图4所示,上述步骤S3:对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新,包括:
从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目;
循环读取存储器偏移地址中已保存的所述主站下发的文件数据内容,依次按顺序解析还原出点表参数结构体comm_pointtable的各字段数据并存放在点表参数结构体comm_pointtable中,点表参数结构体comm_pointtable包含字段为信息体地址Infoaddr、偏移量Offset、上传系数Ratio、变化死区Deadzone以及备用Reserve;
比较点表参数结构体comm_pointtable中的字段Infoaddr和内存中上传使用的遥测数据结构体comm_yctable中的字段Infoaddr是否相同,遥测数据结构体comm_yctable包含字段为信息体地址Infoaddr、数据value和偏移量Offset;
若相同,则将遥测数据结构体comm_yctable中的字段Offset更新为点表参数结构体comm_pointtable中的Offset变量值;
循环至YCMAX个数目后,所有遥测数据结构体comm_yctable中字段Offset变量更新赋值完成。
需要说明的是,本实施例所涉及到二个重要的点表结构数据表(以遥测为例)参见表1和表2,根据表1、表2及结合设备最大存放的遥测量来定义一个#define YCMAX 100(代表设备最大有100个遥测上传量),定义一个YCMAX数目的上述点表参数结构体comm_pointtable[YCMAX],表明通过主站下发的点表最大支持的存放遥测信息数据量;包含5个字段变量:信息体地址(Infoaddr)、偏移量(Offset)、上传系数(Ratio)、变化死区(Deadzone)、备用(Reserve)。
定义另外一个遥测数据结构体comm_yctable[YCMAX],用于缓存存放设备通过ADC芯片采集到电压电流功率等数据,包含3个字段变量:信息体地址(Infoaddr)、数据(value)及偏移量(Offset)。
表1:点表结构数据表comm_pointtable
表2:遥测数据结构表comm_yctable
作为进一步优选的技术方案,在所述从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目之前,还包括:
上电初始化,将所述遥测数据结构体comm_yctable中的字段Infoaddr初始化从0x4001顺序到0x4064,所述字段Offset依次赋值65535(表明不传送该遥测量)。
作为进一步优选的技术方案,还包括:
当所述主站实时召测遥测数据量时,通过指针指向所述遥测数据结构体comm_yctable中字段的首个遥测名称再加上字段Offset变量,即实现了遥测数据的谁先谁后上传。
需要说明的是,上述原理同样适用是遥信,遥控点表,区别在于遥信和遥控的其他字段信息有所不同,关键性的infoaddr和offset字段含义同遥测,其处理过程一样,该处不再赘述。
本实施例还公开了一种基于配电装置的远程自动点表更新的处理系统,包括主站、终端和存储器,终端和主站通过硬件通讯接口串口或网口连接,终端包括接收模块、校验模块和点表更新模块,其中:
接收模块用于按照标准规约方式接收主站下发的文件内容数据包,并在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答;
校验模块用于在主站下发的文件内容数据包接收完毕后,对文件内容进行合法性校验,并将合法的文件内容存储至所述存储器;
点表更新模块用于对合法的文件内容进行解析,并提取数据对终端内部已有的点表文件进行更新。
作为进一步优选的技术方案,所述点表更新模块具体用于:
从对应存储器位置先读取所述文件内容,并解析出当前需要更新的遥测点表数目;
循环读取存储器偏移地址中已保存的所述主站下发的文件数据内容,依次按顺序解析还原出点表参数结构体comm_pointtable的各字段数据并存放在点表参数结构体comm_pointtable中,点表参数结构体comm_pointtable包含字段为信息体地址Infoaddr、偏移量Offset、上传系数Ratio、变化死区Deadzone以及备用Reserve;
比较点表参数结构体comm_pointtable中的字段Infoaddr和内存中上传使用的遥测数据结构体comm_yctable中的字段Infoaddr是否相同,遥测数据结构体comm_yctable包含字段为信息体地址Infoaddr、数据value和偏移量Offset;
若相同,则将遥测数据结构体comm_yctable中的字段Offset更新为点表参数结构体comm_pointtable中的Offset变量值;
循环至YCMAX个数目后,所有遥测数据结构体comm_yctable中字段Offset变量更新赋值完成。
作为进一步优选的技术方案,所述接收模块包括文件接收单元和应答单元,其中:
接收单元用于按照所述按照标准规约方式,通过所述硬件通讯接口串口或网口接收所述主站下发的文件内容数据包;
应答单元用于在接收到最后一包文件内容数据包时,将写文件正确或异常响应返回给主站进行应答。
作为进一步优选的技术方案,所述接收单元具体用于:
接收所述主站下发的写文件请求;
根据报文结构判断报文格式是否符合101帧结构格式或104帧结构格式;
若符合,则继续接收所述主站下发的写文件请求;
并对接收到的文件名及文件长度进行合法性检验;
若非法,则退出本次接收包过程。
本发明实施例提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
本实施例采用的基于配电装置的远程自动点表更新的处理方法,优势在于:
(1)引入点表结构数据表数,能动态存放主站需要的新点表文件相关内容,与内存中遥测数据表相关联,可以不必使用厂家配套的维护工具进行自定义方式下载点表;
(2)与目前主站规约兼容,充分利用现有的条件,无需重新开发或自定义规约进行开发;
(3)基于动态更新的方式,具有适用于不同现场的点表需求;
(4)对于终端设备厂家而言,无需进行对各个现场安排专人对接维护配置本地点表信息,效率提升的同时节省成本;
(5)利于方便移植到其他项目系统中,仅仅提供几个接口处理函数快速进行需求开发。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。