资源描述:
《Modbus协议详情_试验台控制设备基础协议详情.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Modbus协议_试验台控制设备基础协议2016-10-28更新一、Modbus串行链路协议基本要求物理层RS232接口或RS485接口:RJ45/DB9连接器与电缆相接数据信号发送速率:要求9600bps波特率,推荐19200bps波特率串行链路系统上的Modbus只应用于短距离(<20m)点到点的互连Modbus串行链路电缆必须屏蔽。在电缆两端,其屏蔽必须接到保护地上(若在这个端部使用了连接器,该连接器外壳要连在电缆屏蔽上)可视诊断必须用LED(发光两极管)指示通信状态和设备状态。Modbus实现
2、等级Modbus串行链路上的每个设备必须遵守相同实现等级的所有的强制的要求,常规等级必须提供可配置能力。二、Modbus串行链路帧模式RTU传输模式(建议采用)当设备使用RTU(RemoteTerminalUnit)模式在Modbus串行链路通信,报文中每个8位字节含有两个4位十六进制字符。这种模式的主要优点是较高的数据密度,在相同的波特率下比ASCII模式有更高的吞吐率。每个报文必须以连续的字符流传送。RTU模式位序列报文中每个8位字节含有两个4位十六进制字符(0–9,A–F),每个字符传送11位。
3、1起始位8数据位,首先发送最低有效位1位作为奇偶校验(默认偶校验)1停止位(注:使用无校验 要求2个停止位。)通用Modbus帧PDU-协议数据单元ADU-应用数据单元RS232/RS485ADU=253字节+服务器地址(1byte)+CRC(2字节)=256字节RTU模式帧序列由发送设备将Modbus报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到而错误标志必须作为结果被设置。CRC校验在RTU模式包含一个对全部报文容执行的,
4、基于循环冗余校验(CRC-CyclicalRedundancyChecking)算法的错误检验域。CRC域检验整个报文的容。不管报文有无奇偶校验,均执行此检验。CRC包含由两个8位字节组成的一个16位值。CRC域作为报文的最后的域附加在报文之后。计算后,首先附加低字节,然后是高字节。CRC高字节为报文发送的最后一个子节。其实现的C语言程序附后。unsignedCRC16(unsignedchar*puchMsg,unsignedusDataLen) {unsignedcharuchCRCHi=0xFF
5、;/*CRC的高字节初始化*/unsignedcharuchCRCLo=0xFF;/*CRC的低字节初始化*/unsigneduIndex; /*CRC查询表索引*/while(usDataLen--) /*完成整个报文缓冲区*/{uIndex=uchCRCLo^*puchMsgg++;uchCRCLo=uchCRCHi^auchCRCHi[uIndex};uchCRCHi=auchCRCLo[uIndex];}return(uchCRCHi<<8
6、uchCRCLo);}高字
7、节表staticunsignedcharauchCRCHi[]={0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,
8、0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x8
9、1,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x