一、概述
1.定义:Modbus协议应用于电子控制器上的一种通用语言,实现控制器相互之间、控制器经由网络和其他设备之间的通信
2.内容:
• 定义一个控制器能够认识使用的消息结构,不管经过何种网络进行通信
• 描述了控制器请求访问其他设备的过程
• 制定了统一的消息域的结构和内容
• 每个控制器必须知道它们的设备地址,识别地址发来的消息,决定产生何种行为
3.特点:
• 协议标准开放、公开发表且无版税要求
• 协议支持多种电气接口,如RS232,RS485,TCP/IP等;可以在各种介质上传输
• 歇息消息帧格式简单、紧凑、通俗易懂
4.模型
协议处在OSI模型第七层之上的应用层报文传输协议
5.协议版本
1) 协议存在用于串行链路、TCP/IP以太网或其他支持互联网协议的网络版本
2) 大多数Modbus设备通信通过串口(RS232/RS485)或TCP/IP物理层进行连接
3) Modbus通过串行链路连接存在两个变种:
a. RTU模式:紧凑的、采用二进制表示数据;消息格式命令和数据带有循环冗余校验的检验和
b. ASCII模式:人类可读的、冗长的表示方式;消息格式命令和数据带有纵向冗余校验的检验和
4) Modbus通过TCP/IP物理层连接:存在多个Modbus/TCP变种,不需要校验和计算
6.通信设备
1) Modbus协议是C/S架构(主/从 Master/Slave)
2) 一个Master节点,多个Slave节点,每一个Slave设备都有一个唯一的地址
3) 线路上所有设备都会收到命令,但只有指定地址的设备会执行并回应指定(地址0例外,指定地址0的指令是广播指令,所有收到指令的设备都会运行,不过不用回应指令)
所有Modbus传输报文都包含了错误校验码以确定到达的命令是否完整
4)许多网关支持设备Modbus协议,Modbus协议简单且容易复制
7.事务处理
1)协议允许在各种网络体系结构内进行简单通信,每种设备(PLC 可编程逻辑控制器、HMI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用Modbus协议启动远程操作;在基于串行链路和以太网(TCP/IP)的Modbus上可以进行相同通信
2)协议属于请求/应答协议,提供统一的功能码用于数据传输服务,该功能码是Modbus请求/应答PDU-协议数据单元 的元素之一(该PDU与基础通信层无关的简单协议数据单元);特定总线或网络上,Modbus协议通过ADU-应用数据单元 引入附加于以实现完整准确的数据传输
3)Modbus事物处理过程:
其中,功能码占用1个字节,指明将执行何种操作;
正确接受的Modbus ADU中,不出现与请求Modbus功能有关差错,则返回正常的响应报文,否则响应报文的功能码域将包括一个异常码,而功能码与原来相同但最高有效位为1,接受响应的设备可以根据异常码确定下一个操作;