苍南仪表流量计MODBUS通信协议
―――V1.3
一、协议概述
1.1 MODBUS协议内容符合GB/Z 1958
2.1/2/3-2004(IEC60870-5)标准。
1.2该协议适用于本厂的LWQC系列IC卡气体智能涡轮流量计、LUXC系列IC卡气体智能旋进漩涡流
量计、LLQC系列IC卡气体智能罗茨流量计、CNRMC系列IC卡气体智能罗茨流量计等产品。
1.3主要特点
设备属性:流量计为MODBUS通信总线上的从站
通信模式:RTU
通信媒介:RS485
通信地址:1-247
波特率:1200、2400、4800、9600、19200 bps
数据位:8位
校验位:无校验(2个停止位)、偶校验(1个停止位)、奇校验(1个停止位)
1.4 特殊性
本协议针对流量计而开发,支持多字节二进制数、ASCII字符串、BCD码等类型变量的数据通信;
通信选用MODBUS的03H、07H功能码,并增设用户自定义的66H功能码。
二、支持的MODBUS功能码
2.1 功能码03:
2.1.1读取起始地址在start_addr起N个字的数据(IC卡流量计部分参数)。见表1。
主站发送:addr, 03, start_addr_hi ,start_addr_low, N_hi,N_low, CRC
从站响应:addr, 03, num, data(0),….,data(num-1), CRC
异常响应:addr, 83H, error_code, CRC
表1
其中:
●起始地址:由start_addr_hi、start_addr_low 2个字节组成,依次为起始地址的高字节、低字节;
起始地址必须为表1第1列中的数值,否则流量计回复地址出错(error_code =2);
●寄存器数目N:由N_hi、N_low 2个字节组成,表示读取N个字(1个字由2个字节组成)的
数据;
●num:表示数据的个数,data(i),i=0,…,num, num=2N。
●error_code代码参见表5。
示例1(出厂默认:Cod为01,Cdr为23,bps为9600)
●主站发送:17 03 00 04 00 04 073E
地址功能码起始地址寄存器数目CRC效验码
●从站响应:17 03 08 00000039412524E1 9D25
地址功能码字节数工况流量效验码
●变量数据为8字节二进制数表示的标准累积流量,高位在先,其中前6个字节为整数部分,后两
个为小数部分,解包得数据3752229.144Nm3/h。
●附数据解包说明:
1)整数部分十六进制数00 00 00 39 41 25等于十进制的3752229。
2)小数部分十六进制数(24 E1)16 = (9441)10 / 65536= 0.14405(十进制小数)。;
3)结果为3752229.14,单位:Nm3/h
示例2读寄存器数据(此例中将当前积算仪显示的数据读出)
●主站发送:17 03 00 00 00 10 46F0
地址功能码起始地址寄存器数目CRC校验码
●从站响应:17 03 20 00 00 00 37 12 05 A0 43 00 00 00 37 12 05 A0 43
地址功能码接收字节数工况累积量标况累积量
00 01 CB 6B 00 01 CB 89 00 00 14 00 00 00 65 53 06 85
工况流量标况流量温度压力效验码
备注:当主机发送的数据帧出错,从机不应答响应error_code代码,此时拒绝主机继续发送命令。
2.1.2读取起始地址在start_addr起N个字的数据(IC卡卡控部分参数)。见表2:
示例3
主站发送:17 03 01 06 00 1B E6 CA
地址功能码起始地址寄存器数目CRC校验和
从站接收:17 03 36 00 00 00 00 00 00 02 00 00 01 00 00 00 00 地址功能码字节数用户号表型号表状态剩余气量
00 00 00 00 03 E8 00 00 00 00 00 00 00 00 00 00 00 00 00 00
购气次数累计购气量本次购气量累计应急购气量本次应急购气量应急购气次数
00 00 00 00 00 EA 60 00 00 00 00 01 8F 25 00 20 00 30 1C 4A
报警气量充值限透支限过零气量拆卸次数阀开关次数低电压次数
F2 6C
校验和
2.2 功能码07,读取流量计的1个字节的状态数据。见表3。
主站发送:addr, 07, CRC
从站响应:addr, 07,status, CRC
2.3功能码66H,用户自定义的功能码,用于读取流量计内部历史数据。见表4。
2.3.1读最近第M个实时记录(1条记录)
主站发送:addr, 66H, 00, 64H, 02H,M_hi, M_low, CRC
从站响应:addr,66H ,22H,psum(BIN),sum(BIN),q0(BIN),t(BIN),p(BIN),year(BCD),month(BCD), day(BCD),hour(BCD),minite(BCD),sec(BCD), CRC
2.3.2读最近第M个月记录(1条记录)
主站发送:addr, 66H, 00, 65H, 02H, M_hi,M_low, CRC
从站响应:addr,66H, 0AH, sum(BIN), year(BCD), month(BCD), CRC
2.3.3读最近第M个启/停记录(1条记录)