APP下载

计算机实现对A40表参数的半自动校验

2011-04-26李勇刚上海烟草集团有限责任公司

上海计量测试 2011年4期
关键词:校验码字节校验

李勇刚/上海烟草集团有限责任公司

0 引言

电力系统是否正常事关安全生产,为此对电力系统检测仪表的运行维护、保养是相当重要的工作。对新的电力测量仪表的性能检测进行试验,实现计算机对多功能电力测量仪A40的半自动测试,利用此方法大大提高了工作效力。

在电力系统中有广泛应用的A40表,由于其功能强大、可显示的参数丰富,给使用提供了极大方便,但相应地给仪表的维护与校验带来一定的麻烦,虽然厂方提供了测试软件,可由于不够直观,实用中不够方便。为此,在计算机上编写对A40表参数进行测试的程序,并与开发的硬件设备联用,实现对主要参数进行半自动校验:只要在检测点输入标准信号,计算机会自动记录被测量和标准值,自动计算误差值,判别是否超差。它界面直观、操作方便,为A40表校验提供了崭新的工具。

1 被测参数的选择

A40表输入的主要端口只是电流、电压,但可以显示的参数多达几十个。其实各种参数只是对入口端的电流、电压在表的内部按其与电流电压的内在关系,通过数学计算得出的值。一般说来,如果表内部CPU芯片没有损坏、程序没有冲乱,只要输入的电流电压测试正确,其他参数也不会出错。为简化对表的校验,仅选择了有限的电流、电压、频率、功率和用电数的测试。如果要校验其他参数,对程序来讲,只不过改动界面和参数地址而已,十分方便。

2 计算机与A40电力参数表的通信

校验程序的核心是计算机与A40表的串口通信。A40表提供了各种数据的详细地址和说明,同时提供一个可插在A40表背部接口上的RS-485转接模块,使表内数据通过该模块,以RS-485通信方式与计算机进行通信,为采集表中数据提供了方便。信息交换采用MODBUS-RTU格式进行,计算机对A40表进行读的03H命令(因为只对A40表进行读,所以只用03命令)格式:

● 设备地址

● 功能码 03

● 数据首地址

● 数据长度

● CRC16校验码

信息按上述次序从设备地址到CRC16校验码依次发送到A40表。信号传输形式都用2进制,下文具体说明。

设备地址:要读参数所在A40表的通信地址。出厂时默认为05H 。如果使用中已经改动,则要用从A40表中查出表的实际地址。只占用1个单字节。

功能码:本程序是对A40表参数校验,按MODBUS通信规定,为计算机读A40表数据,所以其功能代码为03H,只占用1个单字节。

数据首地址:指计算机要读的数据在A40表中存放的首地址。说明书中提供2种地址:一种是十进制(Decimal address)地址,一种是16进制(Hexa.address)地址。可以自己决定采用那种地址,但在发送接收时都为二进制。在说明书中这些地址旁边有列双字节数(Number of words)的说明,如果下面标注的数字为2,则说明本参数要有2个双字节地址(即有4个8位的单字节)存放数据,表中列出的地址为低位的1个双字节首地址,另一个双字节高地址未标出。双字节数列下面如果为数字1,则说明参数只要1个双字节地址(即有2个8位的单字节)存放数据,表中的地址即为1个双字节地址。对于电流、电压等大部分参数均为双字节地址。发送时先发首地址高8位单字节,后发首地址低8位单字节。

数据长度:对于计算机读表A40的03命令,这里数据长度是指要读全部数据的地址长度(全部双字节地址个数)—— 即数据所放双地址的个数,它占用2个单字节。发送时,先发地址长度数的高8位单字节,再发地址长度数的低8位单字节。每个数据的地址长度,即为A40说明书表中所列的双字节数。

CRC16校验码:它是MODBUS中规定的用称为CRC16方法对校验码前面所有传输的信息(包括设备地址码)进行计算,占2个单字节。计算的校验码高字节放在前,先发送。

接收计算机03读命令后,A40表首先按接收到的信息,用同样规则计算出的CRC16 校验码,与收到的CRC16 校验码进行比较。若不等,表示信息传输发送错误,据此可以重发或进行其他处理;若相等,则A40发出正常返回信息,把要读的数据发送给计算机。一般情况下,无大的干扰,程序与设备本身正常,二者连接正确,对使用者不必考虑。

接收计算机03读命令后,A40表返回给计算机信息的格式:

● 设备地址

● 功能码 03

● 数据字节数

● 数据

● CRC16校验码

信息按次序从设备地址到CRC16校验码依次返回给计算机。传输形式也为2进制,具体说明如下。

设备地址:A40表已经确定的通信地址。出厂时默认为05H。如果使用中已经改动,则自动为改动后的A40表实际地址。一般情况下,计算机发送过来的设备地址与表返回信息的设备地址相同。只占用1个单字节。

功能码:返回计算机发出的功能码。本程序计算机发出的是03功能代码,相应A40表信息返回时仍为1个单字节的03H功能码。

字节数:A40表按计算机发送过来的数据长度(数据个数),返回给计算机的数据双字节个数。例如计算机发送过来要读的数据个数为N,如果每个数据为2个双字节(A40表中也有1个数据只占1个双字的参数),则返回的字节数=2N。只占用1个单字节,所以对占2个双字节数的数据,一般最多能读(返回)127个数据,对占一个双单字节的数据,最多能读(返回)255个。

数据:这里放的就是计算机要读的A40中变量的数据值,每个数据所占的双字节数即为A40表说明书中所列双字节数标题下面写的数字。返回时先发低地址(即计算机发送到A40要读数据的首地址)里的数据,再发高地址中数据,直到把最后一个数据发完,而每个数据发送是先发数值的高8位,最后发数值的最低8位,直到把4个单字节数据发完(如果数据是一个双字节,则一个数据只要发数值的高8位、数值的低8位二个单字节)。

CRC16校验码:情况与前面计算机发送时相同,只是这个校验码是对A40表返回信息(校验码前的所有字节)计算的结果。计算机收到A40表的返回信息,同样对校验码前的所有字节进行CRC16校验码计算,计算的校验码和A40表的返回的CRC16校验码相等,则表示信息传输正确。同样通信正常情况下,对使用者来说好像不存在一样,没有什么关系。

以读一个相电压1数据为例进行说明(详见表 1)。

相电压1的16进制地址=30 EH、双字节数=2、单位=V/100(即A40表返回时单位为10 mV)。

返回的电压值转为十进制,则电压=0+0+(5×16+5)×256+15×16 = 22000(10×10-3) = 220(V)。

3 连接

连接比较简单, 对本测试只要在A40表的I11和U1N接入标称电流、标称电压,在计算机和A40表的RS485插件之间接上RS232转RS485的转换器,A40表和计算机接上电源就完成连接。需要注意的是,表的输入相位非常重要,不能搞错。这里表的I11和U1N必须与表的电源是同一相位,否则测试结果会不对。具体接线参考图1。

表1 相电压1的数据

4 操作界面与功能

操作界面分二个部分:上部为校验表所需要题写的内容,如送检单位和通信参数等。下部为参数测试的测试结果表格。实际操作界面如图2。

图1 电力参数测试接线示意图

功能:

1)可以测试上述指出的五个参数,除电度数外测试5点后自动计算出最大误差。在电度数标称值中填入输入的电流电压值和测试时间,就会计算出标准的电度数和从A40中读出测试时间内电度数差及相对误差;

2)用阴影框来显示等待测试的参数,使测试十分明了。测试点可以跳过,也可后退重新进行测试;

3)可以按A40表的实际地址、波特率等使用的五个通信参数数值,更改通信参数设置;

4)测试过程中提示区不断提示正在测试的内容或过程信息,使测试变得十分方便、明了;

5)自动显示测试时间;

6)测试结果可以打印和保存到Excel的表格中。

5 操作

操作简单:打开电源,打开软件,把界面表格以上部分按名称填好测试表格所需的栏目(例如测试单位等)和A40表的实际通信参数。按表格内容填入1个标称值,按“测试”按钮,立即显示出测试值(对电度数要经过填入的时间后才能显示结果)。该点如不准备测试可按向前按钮,要重测前面一点,则按后退按钮,一直到最后,测试数据结束。根据测试结果,选择检测结果:合格、不合格或限用。这时,要打印测试的界面,按打印按钮,要把界面保存起来,则按保存按钮。最后关闭软件,结束测试。

如果要测试其他电压或电流,软件上只要加上其地址,界面中加上它们的显示位置就可以。

测试结束,用鼠标点测试软件标题栏上关闭符号“×”,本测试软件退出,测试工作全部结束。

图2 计算机上操作界面

猜你喜欢

校验码字节校验
No.8 字节跳动将推出独立出口电商APP
No.10 “字节跳动手机”要来了?
炉温均匀性校验在铸锻企业的应用
简谈MC7字节码
基于Excel实现书号校验码的验证
基于FPGA的循环冗余校验码设计
身份证号码中的数学
大型电动机高阻抗差动保护稳定校验研究
基于加窗插值FFT的PMU校验方法
锅炉安全阀在线校验不确定度评定