1.多功能电表的地址
提到通信便必须包含地址。多功能电表的地址为6个字节,采用BCD编码格式和小端格式。例如西安某公司的多功能电表,在电表的铭牌上标注了电表的地址为“620445941606”。首先,电表采用BCD编码,所谓BCD编码就是以两个数字为一组,这两个数字代表16进制数,例如BCD编码12,其16进制为12,其10进制为18。电表在数据域也采用BCD编码,真心觉得这非常多余。其次,该电表的地址从高地址向低地址排列为62-04-45-94-16-06。以上6字节数据全部为16进制描述,采用了类似MAC地址的描述方式(不过电表没学像)。但是电表在发送地址域数据时采用小端模式,即低地址数据先发送,那么发送顺序为06-16-94-45-04-62。总结,读多功能电表时需要以两个数字为单位倒过来读取,读取的数据为16字节数据。
再者,若多功能电表的地址不足6字节,可使用00补充。例如常州某公司的多功能电表,其铭牌地址为RS3430163。那么其地址域从低地址往高地址排列为63-01-43-03-00-00。
2.访问总电量指令
阅读相关的国家标准,查询多功能电表的总电量的标志编码为DI0 = 10H,DI1= 90H。在发送时需要加33H,所以变成了 43H和C3H,在发送时低地址数据要先发送,所以发送顺序为43H-C3H
3.总电量返回结果
总电量的返回结果也要遵循小端模式和BCD编码格式,返回的具体格式为XXXXXX.XX。例如多功能电表显示总电量为112233.44。那么接收的数据为44-33-22-11,4字节数据均为16进制描述,44H先被接收到,11H最后被接收到,请务必注意44-33-22-11均为减33H之后的结果,接收到的44H表示小数部分,即0.44。从44H转换为0.44,需要经过BCD编码到10进制编码转变并乘以0.01,例如接收到的44H为BCD码,变为10进制为4X10+4=44(BCD码和33H真的是多余的)。以此类推,可解析11-22-33。
|