
新pwmiii通讯规约v3.doc
5页本控制器软件通讯协议:Ver 3 2009-07-07 更新一、通讯数据格式说明:启动通讯电平 6 字节(AAH、55H、AAH、55H、AAH、55H)+ 通讯同步头 6 字节(EBH、90H、EBH、90H、EBH、90H)+ 控制器 ID(5 字节,类型字符串+编号)+ 命令 (1 字节) (具体参见第三部分:命令说明)+ 数据包长度(1 字节,数据内容的字节数,最大不超过 200 字节)+ 数据内容 + CRC 循环冗余校验码(2 字节,高字节在前)+ 7FH(结束码) 例如:计算机对 ID = ‘I01’0016H 的 I01 系列控制器发送实时监测命令串 AA 55 AA 55 AA 55 EB 90 EB 90 EB 90 ‘I01’ 00 16 A0 00 xx xx 7F 注:注: 校验范围:发送端校验前清零校验码,然后对校验范围:发送端校验前清零校验码,然后对‘‘数据包长度数据包长度’’+9 个字节(即从个字节(即从 ID 的第一的第一 个字节开始,到个字节开始,到‘‘结束码结束码’’前的一个字节为止)的数据进行运算,将结果写入校验字,然前的一个字节为止)的数据进行运算,将结果写入校验字,然 后将组装好的数据串发送出去;接收端对去掉同步头包含校验码的全部接收数据(不包括后将组装好的数据串发送出去;接收端对去掉同步头包含校验码的全部接收数据(不包括 结束码)进行校验,结果为结束码)进行校验,结果为 0 正常数据包,不为零则数据包异常;上例中即对正常数据包,不为零则数据包异常;上例中即对‘I01’ 00 16 A0 00 00 00 共 9 个字节进行校验,然后用校验结果替换掉最后 2 字节的 00 00例如对上例的回应如下:例如对上例的回应如下: AA 55 AA 55 AA 55 EB 90 EB 90 EB 90 12 字节启动同步头字节启动同步头 ‘I01’ 00 16 A0 2D ID、命令、数据长度、命令、数据长度 15 2B 15 1F 15 1F 15 2B 00 00 00 00 15 1F 00 00 00 00 9 个个 2 字节参数字节参数 00 00 00 00 00 00 00 00 00 0E 00 00 07 B0 00 56 00 02 9 个个 2 字节参数字节参数 00 00 00 00 00 00 20 80 00 9 个单字节参数个单字节参数 71 C7 7F 2 字节校验码字节校验码 1 字节结束码字节结束码 二、预说明如下: 1、 控制器对启动通讯电平 AA 55 AA 55 AA 55 不识别;为了节省有些设备也不发送,因此 上位机软件对此 6 字节也不敏感2、 6 字节启动通讯电平 + 6 字节通讯启动同步头 12 个字节 以下简写为“同步头” ; 3、 电压、电流等浮点数据均表示为实际数值 100 倍的 2 字节整型数,如 12.5V,表示为 12500x04E2(16 进制 2 字节整形数),请自行转换显示;4、 2 字节以上整型数均为高字节在前,低字节在后的顺序传递; 5、 以下提到的时间数据—年月日时分秒,均为数值的十进制 BCD 码,年数据仅为最后 2 位数,如 08H 11H 20H21H38H40H 表示 08 年 11 月 20 日 21 时 38 分 40 秒;;6、 ID 为 5 字节数据,前 3 个字节为类型代码字符串,后 2 个字节为编号的 16 进制数 7、 后续增加的命令遵循以上原则; 8、 设备的显示数据误差±2%以内。
三、命令字节定义如下: 1、 命令 A0H(读取即时采集数据):用于实时监测 具体发送格式及响应格式: 主机发送:同步头+ ID + A0H + 00H + CRCH + CRCL + 7FH 从机回送:同步头+ ID + A0H + 0DH + 采集数据串 + CRCH + CRCL + 7FH采集数据串内容及顺序:(除标记注明的外,参数均为 2 字节) 阵列电流+阵列电压+ 蓄电池电压 +负载电流 + 蓄电池温度+剩余电量百分比+ 3 字节 状态标志串; 光电池阵列电压、蓄电池电压、光电池阵列电流、负载电流、蓄电池温度(1 字 节) 、剩余电量百分比(2 字节) ,共 6 个参数,10 字节; 状态标志串: 3 字节,按顺序分别说明如下:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0光电池00连接/断开不存在防反失效开关失效蓄电池01超压过放欠压过充负载10连接/断开失控短路过载Bit7、Bit6 区分光电池、蓄电池、负载;Bit4 =1 表示工作连接;=0 表示没有连接;Bit3~ Bit0 表示状态标志:=1:表示相应的状态出现;=0:表示该状态未出现;未注明的位为保留位,通常为 0; 2、 命令 A1H(读取控制参数数据): 具体发送格式及响应格式: 主机发送:同步头 + ID + A1H + 00H + CRCH + CRCL + 7FH 从机回送:同步头 + ID + A1H + 0FH + 控制参数串 + CRCH + CRCL + 7FH 控制参数数据串内容及顺序(除标记注明的外,参数均为 2 字节): 额定电压(1 字节)+ 蓄电池总容量 +提升充电压 + 浮充电压 + 恢复提升电压 + 过放恢复电压+过放电压 + 温度补偿系数(1 字节)+ 额定负载电流(1 字节)额定电压:1 字节,取值仅限于 1、2、4,对应 12、24、48V 系统 蓄电池总容量:相应额定电压等级下的等效总 Ah 数 = 单体 Ah * 并联组数;修 改范围 100~9999; 提升电压~过放电压:设备理论控制点电压值;此参数的表示方式参见“预说明” 的第 3 条;额定电压提升电压浮充电压直充恢复欠压过放电压过放恢复上限15.0013.8013.5012.4011.1012.80下限13.8013.2012.7011.6010.2012.2012V默认14.4013.6012.8012.0011.4012.40上限30.0027.6027.0024.8022.2025.60下限27.6026.4025.4023.2020.4024.4024V默认28.8027.2025.6024.0022.8024.80上限60.0055.2054.0049.6044.4051.2048V下限55.2052.8050.8046.4040.8048.80默认57.6054.4051.2048.0045.6049.60温度补偿系数:默认 5mV/℃/2V,可调整的范围 0~9; 额定负载电流:默认 30A,调整范围:仅限于 20、30、40、50A(出厂设定,用 户不可调整)3、 命令 A2H(写入控制参数数据): 具体发送格式及响应格式: 主机发送:同步头 + ID + A2H + 0FH + 控制参数串 + CRCH + CRCL + 7FH 从机回送:同步头 + ID + A2H + 10H + 控制参数串 + 写入标志 +CRCH + CRCL + 7FH控制参数串内容及顺序同命令 A1 的控制参数串内容, 写入标志字节为成功标志,=1:成功;=0:不成功,重发;4、 命令 A3H(读取控制器时钟): 具体发送格式及响应格式: 主机发送:同步头 + ID + A3H + 00H + CRCH + CRCL + 7FH 从机回送:同步头 + ID + A3H + 07H + 时间 + CRCH + CRCL + 7FH 时间:按顺序为年、月、星期、日、时、分、秒,共 7 个字节5、 命令 A4H(时间写入控制器): 具体发送格式及响应格式: 主机发送:同步头 + ID + A4H + 07H + 时钟+ + CRCH + CRCL + 7FH 从机回送:同步头 + ID + A4H + 08H + 时钟+ 写入标志 + CRCH + CRCL + 7FH回送本机设置后日历时钟数值,可以让上位机判断是否成功地正确设置。
发送、回送时钟的内容均为:年、月、星期、日、时、分、秒数值 写入标志字节,=1 表示已经写入时钟芯片, = 0 表示写入不成功6、 命令 A6H(读取历史数据记录) 发送格式及响应格式: 主机发送:同步头 + ID + A6H + 00H + CRCH + CRCL + 7FH 从机回送:同步头 + ID + A6H + xxH + 1~4 条记录数据 + CRCH + CRCL + 7FH记录数据格式:负载电流+充电电流+蓄电池电压+光电池电压+机内温度+蓄电池温度+ 年月日时分(各 1 字节)+状态(单字节) 状态字节定义:Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0未使用=1RTC 异 常 =0 正常=1 温度 传感器 异常 =0 正常=1 开路/ 超压 =0 正常=1 过载 =0 未过 载=1 短路 =0 未短 路=1 过放 =0 未过 放=1 充电 =0 未充7、 AAH(读取下位机 ID) (未完善,暂使用 ID 掩码 = ’I01’01,广播方式) 发送格式及响应格式: 主机发送:同步头 + ID 掩码 + AAH + 00H + CRCH + CRCL + 7FH 从机回送:同步头 + ID + AAH + 05H + 5 字节 ID + CRCH + CRCL + 7FH8、 命令 ABH(修改下位机 ID) (未完善) 发送格式及响应格式: 主机发送:同步头 + 旧 ID + ABH + 02H + 新 ID 编号 + CRCH + CRCL + 7FH 从机回送:同步头 + 新 ID + ABH + 02H + 新 ID 编号 + CRCH + CRCL + 7FH 此命令回应后,上位机判断返回的 ID 编号与发送的一致,同时修改站点资料相应 ID 编 号,从下一次通讯开始使用新 ID;不一致则重发该命令;以上所列为控制器所能响应的命令; 附本控制器软件所用附本控制器软件所用 CRC 校验源代码如下:校验源代码如下: //--------------------------------------------------------------------------------------------------------------------------////功功 能:能:CRC 循环冗余校验循环冗余校验 // //参参 数:数:2 个,个,CRC_Buff,无符号字符指针,被校验的数据首址无符号字符指针,被校验的数据首址; crc_len,被被 // // 校验数据长度校验数据长度,包括两个字节的包括两个字节的 CRC 码码 // //返返 回:无符号双字节整数回:无符号双字节整数,CRC 循环冗余校验码循环冗余校验码 // //-------------------------------------------------------------------------------------------------------------------------// WORD CRC(BYTE *CRC_Buff,BYTE crc_len) {BYTE crc_i,crc_j,r1,r2,。
