一、什么是Modbus?
MODBUS是一种简单的主/从通信协议,最初由Modicon(现在的施耐德电气)于1979年发布,用于其可编程逻辑控制器。它已经成为事实上的标准通信协议,现在它是连接工业电子设备的常用手段。
二、Modbus 协议:
1、通过EIA/TIA-485-A (RS485)进行异步串行传输,modbus TCP/IP over Ethernet;下面该图为Modbus的数据链路图;
2、Modbus串行线通讯模型
MODBUS允许一个主设备(例如自动化控制器或SCADA系统)和多个(最多247个)连接到同一网络的从设备之间进行客户端/服务器通信。
MODBUS主节点向其中一个从节点发出显式命令并处理响应。如果没有主节点的请求,从节点不会传输数据,也不会与其他从节点通信。每个从属节点由主节点通过一个定义明确的节点地址来寻址。
3、Modbus串行线概述
MODBUS串行线协议是一个单一的主/从协议。协议层1、2和7支持客户端/服务器在不同的串行数据链路上通信。 MODBUS串行线协议图如下:
MODBUS应用层消息协议,位于OSI模型的第7级,在总线或网络上连接的设备之间提供客户端/服务器通信。在MODBUS串行线上,客户端角色由串行总线的主节点提供,从节点充当服务器。
MODBUS通信总是由主机发起的。如果没有从主节点接收到请求,从节点将永远不会传输数据。从节点之间永远不会通信。主节点同时只启动一个MODBUS事务。
4、Data signaling rates(数据信令速率)
a、波特率设置:
modbus定义的波特率范围为300,600,1200bps…115.2Kbps
最流行的波特率是9600,19200和115200bps
ba设备应支持所有标准波特率之间的300…115200bps
根据MODBUS规范,MODBUS串口线上所有设备的波特率必须相同。
随着目前BT MODBUS集成,这一规则被大多数市场领域强制执行,在绝大多数应用中,通用波特率是标准解决方案。
然而,当前的TX OPEN解决方案提供了一种可能性,可以定义每个奴隶的波特率,并在同一网络上混合波特率。该特性在某些情况下用于遗留集成。
5、Communication modes(通信模式)
MODBUS定义了两种串行传输方式:
•rtu模式(Remote Terminal Unit), LPDU帧采用二进制编码。每个LPDU字节用1个串行字符编码。
*高达19200bps的MODBOD主机有效的帧间最小等待时间取决于配置的波特率。但是对于波特率> 19200bps,建议使用固定值1.750ms作为最小等待时间。
•带有LPDU帧文本编码的ascii模式。每个LPDU字节用2个ASCII十六进制字符' 0 '…“9”和““…“F”
与RTU模式相比,在相同波特率的情况下,ASCII模式的吞吐量不到RTU模式的一半。
6、MODBUS Slave addressing(Modbus -slave 地址)
单播模式:单个从站是主站在单播模式下的地址。每个Slave必须有一个唯一的节点地址(从1到247),这样才能独立于其他节点进行地址分配。在单播模式下,一个MODBUS事务由两条消息组成:Master的请求和Slave的响应。从站接收并处理请求后,应向主站返回响应消息。
7、MODBUS TCP消息格式
MODBUS TCP支持MODBUS消息在IP数据链路上的隧道传输。该协议允许MODBUS TCP client和许多MODBUS TCP server设备之间的客户端/服务器通信。
MODBUS TCP Client首先与MODBUS TCP Server建立连接。一旦建立连接,服务器将处理来自客户端的请求,直到客户端关闭连接。
建议BA-Device作为一个MODBUS TCP Client保持与远端设备的TCP连接打开,而不是为每个MODBUS TCP事务打开和关闭它。然而,MODBUS TCP客户端必须能够接受来自服务器的关闭请求并关闭连接。当需要时,可以重新打开连接。
作为MODBUS TCP Client的BA-Device应该将与远程MODBUS服务器(具有相同的IP地址)打开的TCP连接的数量限制到最少,通常一个连接就足够了。
MODBUS TCP的默认TCP端口号为502。按照约定,MODBUS TCP服务器将监听端口502。然而,一些市场或应用程序可能要求MODBUS TCP在备用端口号上运行,前提是参与通信的所有服务器都可以配置为使用备用端口。由于这个原因,作为客户端或服务器的ba设备必须提供配置MODBUS TCP端口号的可能性。
除了串行线和TCP/IP连接之间的基本区别之外,通过TCP/IP隧道传输的MODBUS消息内容也有一些区别。
8、MODBUS Master Network Interfaces(Modbus-master 网络接口)
设备可以支持板上MODBUS接口和/或模块化的MODBUS扩展com - module;com -模块通过本地接口协议(如串口扩展端口协议SEP。
9、 MODBUS Slave Network Interfaces(Modbus - slave 网络接口)