1、Modbus on serial line - January 2006TOLEDModbus 串行通讯 Modbus协议于1978年由Modicon开发 1979年开始,Modbus作为一个标准的工业协议开始应用 基于RS232/RS485物理结构 是异步的,串行数据通信 支持主/从结构1Modbus on serial line - January 2006TOLEDRS485 两线制/四线制主-从未使用Modbus应用协议运行原理运行原理- Modbus串行以及OSI模型应用层应用层表达层表达层会话层会话层传输层传输层网络层网络层链路层链路层物理层物理层传输模式: RTU / ASCII
2、RS23212345672Modbus on serial line - January 2006TOLED运行原理运行原理- 总线拓扑结构点点- -到到- -点模式点模式总线总线主干支干菊花链线性终端电阻3Modbus on serial line - January 2006TOLED运行原理运行原理- Modbus 主从协议一个主站1247个从站响应响应请求请求通讯仅能由主站来初始化4Modbus on serial line - January 2006TOLED运行原理运行原理- 帧结构功能码功能码数据数据地址地址CRC或或LRC数据区,取决于功能代码= 0 247 识别从站的地址有
3、效性检查有效性检查= 1 to 127 执行的功能Modbus PDUPDU = 协议数据单元两种编址模式:单发广播地址范围= 1 247地址范围 = 0(仅用于写模式) 5Modbus on serial line - January 2006TOLED运行原理运行原理- 单发模式编址1 2 3 4 5n地址 = 1 247请求请求功能码功能码请求数据请求数据5CRC响应响应功能码功能码响应数据响应数据5CRC6Modbus on serial line - January 2006TOLED运行原理运行原理-广播模式编址 12345n从站无需响应主站从站无需响应主站请求请求功能码功能码请求
4、数据请求数据0CRC仅用于写功能仅用于写功能地址 = 07Modbus on serial line - January 2006TOLED运行原理运行原理- 单发编址时序图主站主站从站 1从站 n媒体介质等待等待超时超时处理响处理响应应分析响应. 准备请求从站1请求从站1请求响应响应响应响应下一个请求下一个请求下一个请求下一个请求8Modbus on serial line - January 2006TOLED运行原理运行原理-广播编址时序图主站主站从站 1从站 n媒体介质媒体介质广播请求广播请求广播请求广播请求下一次请求下一次请求等待超时处理 响应处理 响应9Modbus on seri
5、al line - January 2006TOLED运行原理运行原理- 传输错误事件时序图主站主站从站 1从站 n媒体介质媒体介质从站 1 请求从站 1 请求重发或下一次传输重发或下一次传输等待超时错误 检测无响应无响应10Modbus on serial line - January 2006TOLEDModbus RTU/ASCII-两种定义的串行传输模式RTU模式ASCII模式每个字符的内容和格式封装格式: 帧的起始和结束定义:传输模式和串口参数对所有的产品而言必须是一致的传输模式和串口参数对所有的产品而言必须是一致的必须的必须的可选的可选的11Modbus on serial lin
6、e - January 2006TOLEDModbus RTU/ASCII- RTU模式: 内容每个数据项在一个字节内被编码每个数据项在一个字节内被编码B0B1B2B3B4B5B6B7两个16进制数字编码实例: 读设备身份= 43 = 0 x2B0 x20 xB1101010012Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- RTU模式: 字符格式= 11位Nombrepairdebits1Oddnumberofbitsat1Bit 0Start Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Par
7、ity Stop8 bits de donne偶校验方式1 停止位100101011Parity10 x2B comprises4bitsat1编码实例: 读设备身份= 43 = 0 x2B0Paritpaire1奇/偶Bit 0Start Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1StopStop8 bits de donne2 停止位无校验方式100101011110 x2B comprises4bitsat1编码实例: 读设备身份 = 43 = 0 x2B13Modbus on serial line - January 2006TOLEDModbus RTU
8、/ASCII- RTU模式: 帧格式功能码功能码数据数据地址地址CRC0 252 字节1 字节2 字节1 字节256 字节(最大)= 1.5 字符.时间限制= 3.5 字符.= 3.5 字符.起始起始= 3.5字符字符结束结束= 3.5字符字符14Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- ASCII模式:内容每个数据项以两个每个数据项以两个ASCII字符编码字符编码(7(7位位) )B0B1B2B3B4B5B6B0B1B2B3B4B5B6两个ASCII字符编码实例: 读设备身份= 43 = 0 x2B010000101
9、00110ASCII code 2 = 0 x32ASCII code B = 0 x4215Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- ASCII模式: 字符格式= 10位Nombrepairdebits1Oddnumberofbitsat1Bit 0Start Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Parity Stop7 data bits偶校验方式1 停止位10110010Parity10 x32 comprises3bitsat1实例: 用ASCII编码字符 2 = 0 x321Evenp
10、arity0奇奇/ /偶偶Bit 0StartBit 6Bit 5Bit 4Bit 3Bit 2Bit 1StopStop7 bits de donne2 停止位无校验方式10110010110 x32 comprises3bitsat1实例: 用ASCII编码字符2 = 0 x3216Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- ASCII模式: 帧格式:1字符字符.CR + LF2字符字符.时间限制功能码功能码数据数据地址地址LRC0 2 x 252 字符2 字符.2 字符2 字符513 字符(最大)= 1 to 5
11、秒.无内部帧时间限制.17Modbus on serial line - January 2006TOLEDModbus RTU/ASCII-功能码 01 read coil status- 读线圈状态 02 read input status-读输入寄存器状态 03 read holding registers-读保持型寄存器 04 read input registers-读输入寄存器 05 force single coil-强制单个线圈 06 preset single register-预置单个寄存器 15 force multiple coil-强制多路线圈 16 preset m
12、ultiple registers-预置多寄存器 23 read/write 4X registers-读/写4X寄存器18Modbus on serial line - January 2006TOLED2022-5-2119Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- 传输错误检测奇偶校验帧校验字符层主站和从站之间执行两种类型检测消息层奇或偶检验 的选择如果是ASCII模式: 计算LRCLRC = Longitudinal Redundancy Checking如果是RTU模式: 计算CRCCRC = Cyclical
13、 Redundancy Checking20Modbus on serial line - January 2006TOLEDModbus RTU/ASCII- 错误检测的反馈从站检测到一个传输错误主站主站请求 等待超时等待超时不会提供响应不会提供响应不会处理请求不会处理请求主站检测到一个传输错误发送错误到应用程序发送错误到应用程序重新发送或重新发送或从站错误错误 检测检测主站主站从站等待等待处理处理 响应响应响应响应错误错误 检测检测不会处理请求不会处理请求重新发送或重新发送或发送错误到应用程序发送错误到应用程序请求 21Modbus on serial line - January 200
14、6TOLED三种标准化物理层三种标准化物理层-三种标准化Modbus电气接口RS485 2线制多点点到点RS485 4线制RS232必需的可选的可选的无需改变集成进 一个已存在的安装点到点模式 15 米(最大).传输速率:9600 bps /19200 bps (19.2 Kbps 缺省设置)其它速率: 1200, 2400, 4800, 38400, 56 Kbps, 115 Kbps 可选22Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层- Modbus RS485 2线制安装公共端差分双绞Slave 1TRSlave n
15、TR5 V650 ohms650 ohmsMasterRT拓扑结构拓扑结构: 总线类型最大长度最大长度: 主段: 1,000米/ 19,200 bits/s支干: 总共40米主电缆类型: 屏蔽双绞最大设备数最大设备数:不带中继,32个设备,包含主站120 ohms 1 nF120 ohms 1 nFPGD0D123Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-Modbus RS485 4线制安装Slave 1TRSlave nTR从双绞主双绞公共端MasterRT5 V5 V 650 ohms 650 ohms拓扑结构拓扑结
16、构: 总线类型120 ohms 1 nF120 ohms 1 nF120 ohms 1 nF120 ohms 1 nFPG最大长度最大长度: 主段: 1,000米/ 19,200 bits/s支干: 总共40米最大设备数最大设备数:不带中继,32个设备,包含主站24Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-Modbus 2/4线制兼容性连接2线制设备到一个4线制安装可能的, 通过调整安装接线连接4线制设备到一个2线制安装两种可能性:可能的,通过调整设备接线25Modbus on serial line - January
17、 2006TOLED三种标准化物理层三种标准化物理层- 连接2线制设备到一个4线制安装Slave 1TRMasterRT公共端5 V5 V 650 ohms 650 ohmsSlave nTRLine terminatorLineterminator断开一端的线性电阻1调整安装删除一对极电阻2在一端闭合两对双绞3用两线制连接设备4120 ohms 1 nF120 ohms 1 nF新两线总线的总长度必须小于1,000米26Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-连接4线制设备到一个2线制安装公共端差分双绞Slave 1
18、TR5 V 650 ohms 650 ohmsMasterRT闭合传输到设备的接受1调整设备接线连接设备到两线制安装2Slave nTR120 ohms 1 nF120 ohms 1 nF27Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-Grounding120 ohms 1 nF公共端差分双绞Slave 1TRSlave nTR5 V650 ohms650 ohmsMasterRT120 ohms 1 nF120 ohms 1 nFPGD0D1RS485通讯只允许在传输线通过7V+12V的电压范围。任何过高的电压会导致网络
19、的崩溃,甚至设备的损坏。为了保证电压不被超过,恰当的接地是必须的28Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-Polarization极化电阻120 ohms 1 nF公共端差分双绞Slave 1TRSlave nTR5 V650 ohms650 ohmsMasterRT120 ohms 1 nF120 ohms 1 nFPGD0D1为了保护接受设备免受外界的干扰采集到正确的状态,必须保证线上电压被偏置,那么需要给差分线路加上一对外部电阻,目的是产生足目的是产生足够的够的DCDC偏置电流以维持偏置电流以维持D0/D1D0
20、/D1之间至之间至少少200mV200mV的电压差的电压差29Modbus on serial line - January 2006TOLED三种标准化物理层三种标准化物理层-Termination终端电阻120 ohms 1 nF公共端差分双绞Slave 1TRSlave nTR5 V650 ohms650 ohmsMasterRT120 ohms 1 nF120 ohms 1 nFPGD0D1为了保护Modbus免受未知的影响,例如,反射和减小环电流,需要在线路两端添加RC终端30Modbus on serial line - January 2006TOLED执行类执行类-透明就绪规则
21、透明就绪规则 三个执行层次,用于三个服务层次Basic属于一个类 仅如果 所有所需的服务被支持时RegularRegularExtendedExtended一个设备 也能 支持属于更高类的服务.一个嵌入式的功能层次模型31Modbus on serial line - January 2006TOLED执行类执行类-透明就绪设备身份AllTRModbusTCP-IPdevicesCommunication servicesB to DModbusBasicTCP-IP+.ModbusBasicTCP-IP+FDR+.ModbusRegularTCP-IP+FDR+.其它其它TR设备设备(通过一
22、个通过一个TR网关网关)无无ModbusModbusBasicModbusRegularTR Modbus设备设备(通过一个(通过一个TRTR网关)网关)102030000105网页服务A 无网页两个执行类用于Modbus串行设备 A01&A0532Modbus on serial line - January 2006TOLED执行类执行类-两个执行类两个执行类Class A01Class A05消息类: BasicAccess to registersonly消息类: RegularBasic + accessto bits and diagnostics数据链接类: BasicNotco
23、nfigurable数据链接类: RegularConfigurable设备管理类: BasicLevel 1identification33Modbus on serial line - January 2006TOLED执行类执行类-服务类服务类-数据链路层BasicRegular无组态选项可组态的数据链路层地址: 1 to X with X= 247波特率: 9600 bps奇偶: odd传输模式: RTU如果是从站,那么支持广播模式Basic+地址: 支持地址248*波特率: 9600/19200 奇偶: 奇和偶34Modbus on serial line - January 200
24、6TOLED诊断错误诊断错误-错误码 01 无效的功能码 02 无效的数据地址 03 无效的数据值 04 从站设备失败 05 确认,从站已经接受请求并且正在处理,则返回该确认消息 06 从站设备忙 07 否定确认,从站无法执行请求 08 内存奇偶校验错误35Modbus on serial line - January 2006TOLEDQ&A 1. 不同厂商的Modbus设备是否能够被一个网关同时读取? 能和不能的判断原则是什么? 2. 网关最多能连接多少个Modbus设备? 判断依据是什么? 3. 网关能带多少Modbus监控点? 判断依据是什么? 4. 不同的Modbus通讯芯片是否对Modbus的通讯会有影响? 如何判断? 5. 如何判断Modbus设备遵循的是标准的Modicon Modbus协议? 6. Modbus ASCII通讯需要注意什么? 7. Modbus IP的通讯方式需要注意什么? 应用上有什么技巧? 8. 网络终端电阻的应用. 9. 测试软件? 测试辅助硬件设备? 10. Modbus Repeater 或Modbus路由器的应用? 11. Modbus Troubleshooting的步骤和方法. 36Modbus on serial line - January 2006TOLED2022-5-2137