您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > MODBUS-RTU通信协议-
MODBUSRTU通信协议本通信协议采用标准ModBus协议,采用RTU(十六进制数)传输模式。ModBus协议是一种主---从式协议。任何时刻只有一个设备能够在线路上进行发送。由主站管理信息交换,且只有主站能发起。主站会依次对从站进行轮流查询。只有当从站地址与轮询地址相匹配,从站才能回复消息。从站之间不能进行直接通信。协议桢中不包含任何消息报头及消息结束符,消息的开始和结束依靠间隔时间来识别,当间隔时间长于或等于3.5个字符时,即作为检测到桢结束。如果网络内没有与查询地址相一致的从站或从站接收时CRC校验出错,主站将不会接收到返回桢,这时主站根据超时设定判断是否超时,如超时,作出重发或弹出异常错误窗口动作。协议桢定义如下:从站地址功能代码数据区CRC16从站地址:地址必须在1---247之间。在同个主站网络中每个从站地址必须唯一。设定仪表二级参数DE。功能代码:包含读、写多个寄存器。数据:以二进制代码传输。CRC16:循环冗余校验,校验从从站地址到数据区最后一个字节,计算多项式码为A001(hex)。通讯口设置通讯方式异步串行通讯接口,如RS-485,RS-232,RS-422等波特率1200~9600bps(可由设定仪表二级参数自由更改,设定仪表二级参数BT,默认9600)见表10字节数据格式HEX.一位起始位.八位数据位.一位停止位.无校验1********1起始位数据位(从低到高)停止位消息桢格式(读、写功能是从主站角度定义的)读寄存器桢从站地址功能代码首寄存器地址寄存器数NCRC161字节1字节2字节2字节2字节1---24703HAddrH,AddrLNH,NL(1---24)CrcL,CrcH读寄存器返回桢从站地址功能代码字节数寄存器数据CRC161字节1字节1字节N*2字节2字节1---24703HN*2DataH,DataLCrcL,CrcH写寄存器桢从站地址功能代码首寄存器地址寄存器数N字节数寄存器数据CRC161字节1字节2字节2字节1字节N*2字节2字节1---24710HAddrH,AddrLNH,NL1---24N*2DataH,DataLCrcL,CrcH写寄存器返回桢从站地址功能代码首寄存器地址寄存器数NCRC161字节1字节2字节2字节2字节1---24710HAddrH,AddrLNH,NL1---24CrcL,CrcH错误返回桢从站地址功能代码错误代码CRC161字节1字节1字节2字节1---247查询功能代码+80H见表2CrcL,CrcH功能代码表:1功能代码ModBus名功能名广播一次连续的N的最大值03HReadHoldingRegisters读N个寄存器值No12510HWriteMultipleRegisters写N个寄存器值No123错误代码表:2错误代码说明1非法功能2非法数据地址3非法数据值4从站设备故障寄存器0x03,0x10命令对应的保持寄存器地址表,MODBUS地址40001对应于寄存器地址0。所以MODBUS上面传输的地址应该是寄存器地址+40001。每个通道的起始地址为40001+56+7*(n-1);其中n是第几个通道。序号寄存器地址参数名称数据格式类型备注155H主电状态UChar只读0:故障1:正常255L备电状态UChar只读0:故障1:正常356H第一通道保留字节UChar只读保留456L第一通道连接状态UChar只读0:故障1:正常557H第一通道气体名称UChar只读见气体名称657L第一通道气体单位UChar只读1:PPM,2:%LEL,3:%VOL758H第一通道保留字节UChar只读保留858L第一通道气体小数点UChar只读小数点从右向左数。25.4小数点是1959第一通道气体浓度UInt_16只读去除了小数点的气体浓度1060第一通道低危险报警值UInt_16只读去除了小数点的气体低危险报警浓度1161第一通道高危险报警值UInt_16只读去除了小数点的气体高危险报警浓度1262H第一通道报警方式UChar只读0:持续动作,1:脉冲动作1362L第一通道报警状态UChar只读0:无报警,1:低危险,2:高危险14~*63~*第二通道~*按照第一通道的模式顺延下去注:1.继电器在低危险报警浓度和高危险报警浓度都工作。2.必须在控制器上面使用1066的指令来读取所有探头的高低报警数值,MODBUS里面的低危险报警值和低危险报警值,以及报警状态才能有正确的数值反馈。3.在读取数据的时候,建议先读取连接状态,判断探头是否在线,然后再读取其他数据。气体名称#defineGAS_O20x01#defineGAS_EX0x02#defineGAS_CO0x03#defineGAS_H2S0x04#defineGAS_SO20x05#defineGAS_NO0x06#defineGAS_NO20x07//0x08#defineGAS_CL20x08#defineGAS_NH30x09#defineGAS_H20x0A#defineGAS_HCN0x0B#defineGAS_PH30x0C#defineGAS_O30x0D#defineGAS_CLO20x0E#defineGAS_C2H4O0x0F//0x10#defineGAS_CH2O0x10#defineGAS_SIH40x11#defineGAS_HF0x12#defineGAS_F20x13#defineGAS_COCL20x14#defineGAS_CO20x15#defineGAS_SO2F20x16#defineGAS_C2H20x17#defineGAS_CH4O0x18//0x18#defineGAS_N20x19#defineGAS_C6H60x1A#defineGAS_VOC0x1B#defineGAS_HCL0x1C#defineGAS_THT0x1D#defineGAS_C2H40x1E#defineGAS_CH3BR0x1F#defineGAS_CH40x20#defineGAS_NOX0x21#defineGAS_SF60x22#defineGAS_B2H60x23#defineGAS_ASH30x24#defineGAS_C2H6O0x25
本文标题:MODBUS-RTU通信协议-
链接地址:https://www.777doc.com/doc-5628082 .html