苍南仪表流量计MODBUS通信协议―――V1.3一、协议概述1.1 MODBUS协议内容符合GB/Z 19582.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, CRC2.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), CRC2.3.2读最近第M个月记录(1条记录)主站发送:addr, 66H, 00, 65H, 02H, M_hi,M_low, CRC从站响应:addr,66H, 0AH, sum(BIN), year(BCD), month(BCD), CRC2.3.3读最近第M个启/停记录(1条记录)主站发送:addr, 66H, 00, 66H, 02H,M_hi, M_low, CRC从站响应:addr,66H,10H,sum(BIN),year(BCD),month(BCD),day(BCD),hour(BCD),minite(BCD),sec(BCD), ssflag(byte),0, CRC2.3.4读最近第M个传感器被剪断或接上时的记录(1条记录,仅配接机械计数器的智能积算仪适用)主站发送:addr, 66H, 00, 67H, 02H,M_hi, M_low, CRC从站响应:addr,66H,08H ,year(BCD),month(BCD),day(BCD),hour(BCD),minite(BCD),sec(BCD), bkflag(byte),0, CRC备注:●M为字,用2个字节表示,M_hi为高字节,M_low为低字节;读最近的一条记录时,M=1;当M=0或大于流量计内部保存的记录数时,流量计返回数值为0的一个序列。
●psum(BIN),sum(BIN):用8字节8位二进制数表示的累积量,高位在先,其中前6个字节为整数,后2个字节为小数;单位:m3。
●q0(BIN):用4字节8位二进制数表示的标况瞬时流量,高位在先,其中前3个字节为整数,后1个字节为小数;单位:Nm3/h。
●t(BIN):用4字节8位二进制数表示的温度,高位在先,其中前3个字节为整数,后1个字节为小数;单位:℃。
●p(BIN):用4字节8位二进制数表示的压力,高位在先,其中前3个字节为整数,后1个字节为小数;单位:KPa。
●year,month,day,hour,minite,sec 为单字节BCD码,分别表示年(以2000年为起点,20不显示)、月、日、时、分、秒。
●ssflag为启/停标记,当ssflag=55H时,表示该记录为启动记录;当ssflag=0EEH时,表示该记录为停止记录。
●bkflag为正常/剪断标记,当bkflag=55H时,表示该记录为传感器连线恢复正常时的记录;当bkflag=0EEH时,表示该记录为传感器连线被剪断时的记录。
注1:记录起始时间:用于指定实时记录的起始时间,2个字节,小时-分钟;秒时间默认为0;注2:当前时间:年月日时分秒,6个字节,BCD码,其中年为1个字节(以2000年为起点,20不显示):注3:仪表生产信息:36个字节,ASCII码;其中厂家代码10字,产品型号12个字节,产品序号8个字节,软件版本3个字节,生产日期3个字节(年月日);注4:实时记录:一条实时数据记录共34个字节,包括工况累积量8个字节(8位二进制数,单位:m3)、标况累积量8个字节(8位二进制数,单位:m3)、瞬时流量4个字节(8位二进制数,单位:m3/h)、温度4个字节(8位二进制数,单位:℃)、压力4个字节(8位二进制数,单位:kPa)、时间6个字节(BCD码,年月日时分秒)注5:月记录;一条月记录共10个字节,标况累积量8字节(8位二进制数,单位:m3)、时间2个字节(BCD码,年月)注6:启停记录:一条启停记录共15个字节,标况累积量8个字节(8位二进制数,单位:m3)、时间6个字节(BCD码,年月日时分秒)、启停标记1个字节(55H表示流量从无到有,EEH表示流量从有到无)、0(保留字节);注7:防剪断记录:一条防剪断记录共8个字节,时间6个字节(BCD码,年月日时分秒)、防剪断标记1 个字节(55H表示传感器线束被接通,为正常情况;EEH表示传感器线束被剪断,为异常情况;记录时间为接通或被剪断的时间)、0(保留字节)。
2.4 流量计在收到一个通讯帧后没有响应的几种情况:2.4.1收到数据帧的通讯地址字节与本机地址不同时;2.4.2收到数据帧的通讯地址字节(等于0)是广播地址时;2.4.3收受到数据帧的CRC校验出错时;2.5.4收受到数据帧的命令码出错时。
2.5 异常响应当从机接受到一个发给本机的数据帧、CRC校验正确,并检测到异常时,从站响应为:addr, function_code+128,error_code,CRC备注:function_code:为主机命令帧中的功能码(第二个字节),function_code+128即功能码字节的最高位置1,表示异常;表5三、数据类型在表格中的数据有3种类型:BIN、BCD码和ASCII码:3.1、BIN :二进制数,高字节在前,低字节在后;分别有4种情形:1字节(无小数,无符号);2字节(无小数,无符号);4字节(最后1位小数,第一个字节最高位是符号位,1表示负数,0表示正数);(例外,个别变量,最后3位表示小数,第一个字节为整数位,包括符号位);8字节(最后2位小数,无符号;实时记录显示的工况累积量和标况累积量小数位后一个字节默认为00,小数位按一个字节计算。
)3.2、BCD码:1个字节表示2位数值,数值范围为0-9;3.3、ASCII码:字符,8位,一个字节ASCII码,表示1个英文字母或数字;四、特殊说明为了兼容原自定义的流量计通讯协议,增加一条特殊的指令格式:4.1、数据位为8位,无奇偶校验。
即将通信模式Cod设定为10;4.2、流量计的地址(ADDR)出厂默认值为023,即16进制的17。