校验、1个或2个停止位)。
数据帧的结构,即报文格式:
设备地址 |
功能代码 |
数据段 |
CRC16校验码 |
1个byte |
1个byte |
N个byte |
2个byte |
设备地址:由一个字节组成,在我们的系统中只使用了1~247,其它地址保留。每个终端设备的地址必须是唯一的,仅仅被寻址到的终端会响应相应的查询。
功能代码:告诉了被寻址到的终端执行何种功能。下表列出该系列仪表所支持的功能代码,以及它们的功能。
功能代码 |
功能 |
03H/04H |
读一个或多个寄存器的值 |
10H |
写一个或多个寄存器的值 |
数据段:包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些数据的内容可能是数值、参考地址或者设置值。
校验码:CRC16占用两个字节,包含了一个16 位的二进制值。CRC 值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC 值,然后与接收到的CRC 域中的值进行比较,如果这两个值不相等,就发生了错误。
生成一个 CRC16 的流程为:
(1) 预置一个16 位寄存器为0FFFFH(全1),称之为CRC 寄存器。
(2) 把数据帧中的第一个字节的8 位与CRC 寄存器中的低字节进行异或运算,结果存回CRC 寄存器。
(3) 将CRC 寄存器向右移一位,Zui高位填以0,Zui低位移出并检测。
(4) 如果Zui低位为0:重复第三步(下一次移位);如果Zui低位为1:将CRC 寄存器与一个预设的固定值(0A001H)进行异或运算。
(5) 重复第三步和第四步直到8 次移位。这样处理完了一个完整的八位。
(6) 重复第2 步到第5 步来处理下一个八位,直到所有的字节处理结束。
(7) Zui终CRC 寄存器的值就是CRC16 的值。
6.1.3 通信报文举例:(1) 读数据寄存器(功能代码03H/04H):读三相电流值,A相电流5.000A,B相电流4.996A,C相电流4.980A,仪表地址为1。
(1) 读出的电压为二次侧的电压值,固定1位小数位,二次侧的电压值=读出值/10,一次侧的电压值=读出值×PT变比/10。
(2) 读出的电流为二次侧的电流值,固定3位小数位,二次侧的电流值=读出值/1000,一次侧的电流值=读出值×CT变比/1000。
(3) 功率、功率因数符号位寄存器,低字节的位BIT0、BIT1、BIT2、BIT3、BIT4、BIT5、BIT6、BIT7分别表示A相有功、B相有功、C相有功、总有功、A相无功、B相无功、C相无功、总无功的符号位,1表示负,0表示正。高字节的位BIT0、BIT1、BIT2、BIT3分别表示A相功率因数、B相功率因数、C相功率因数、总功率因数的感性还是容性,0表示感性,1表示容性。
(4) 读出的功率为二次侧的功率值,固定1位小数位,二次侧的功率值=读出值/10,一次侧的功率值=读出值×PT变比×CT变比/10。
(5) 频率固定2位小数位,频率值=读出值/100。
(6) 电能值由3个寄存器(Word0、Word1、Word2)组成,前2个寄存器组成一个长整数,表示整数部分的值,后1个寄存器组成一个整数,表示小数部分的值,为3位的小数。电能值=Word0×0x10000 + Word1 + word2/1000。
6.2 电能计量与电能脉冲输出数显多功能电力仪表可提供双向有功、双向无功电能计量,2 路电能脉冲输出功能和RS485的数字接口来完成电能数据的显示和远传。集电级开路光耦继电器的电能脉冲实现有功电能和无功电能的远传,可采用远程的计算机终端、PLC、DI 开关采集模块采集仪表的脉冲总数来实现电能累积计量。所采用输出方式是电能的精度检验的方式(国家计量规程:标准表的脉冲误差比较方法)。
(1) 电器特性:脉冲采集接口的电路示意图中 VCC≤48V、Iz≤50mA 。
(2) 脉冲常数:3600 imp/kWh;当仪表累积1kWh 时脉冲输出个数为N=3600个,需要强调的是1kWh 为电能的二次测电能数据,在PT、CT 的情况下,相对的N 个脉冲数据对应1 次测电能为1kWh×电压变比PT×电流变比CT。
(3) 应用举例:PLC 终端使用脉冲计数装置,假定在时长为t的一段时间内采集脉冲个数为N 个,仪表输入为:10kV/100V,400A/5A,则该时间段内仪表电能累积为:N/3600×100×80 度电能。