对施耐德产品而言,PLC 与 PLC 之间的通信方式有 Modbus TCP、EtherNet/IP 等;采用 Unity Pro 编程的 PLC 与施耐德驱动产品的通信方式还有 Modbus、CANopen(主要是 Premium 和 M340)、Modbus Plus、Profibus-DP 等。
Modbus 网络是施耐德设备最常用的通信方式之一。下面介绍 Modbus 的协议与内容,并对常用概念作细致说明,包括 Modbus RTU 的概念、总线极性偏置、CRC 循环冗余校验码的计算方法、Modbus 总线长度、从站数量、功能码和广播方式等。最后通过 Premium PLC 与 ATV32 的 Modbus 通信实例,说明不同组合模式下二者的接线、程序编写和变频器参数设置方法,并介绍通过 I/O Scanner input/output 参数提高 ATV32 Modbus 通信效率的方法。
Modbus 是 OSI 模型第 7 层(应用层)的报文传输协议,在连接至不同类型总线或网络的设备之间提供主/从通信,Modbus 协议和 ISO/OSI 模型如图 9-1 所示。
图 9-1 Modbus 协议和 ISO/OSI 模型

Modbus 是一个请求/应答协议,提供由功能码规定的服务,功能码是 Modbus 请求/应答 PDU 的元素。目前互联网组织使 TCP/IP 栈上的保留系统端口 502 也能访问 Modbus,Modbus 通信栈如图 9-2 所示。
图 9-2 Modbus 通信栈

1. Modbus 主站/从站协议原理
Modbus 串行链路协议为主-从协议,同一时刻只有一个主节点连接于总线,一个或多个子节点(最大编号 247)连接于同一串行总线。Modbus 通信总是由主节点发起,子节点在未收到主节点请求时不发送数据,子节点之间也不相互通信;主节点同一时刻只发起一个 Modbus 请求。主节点可采用单播和广播两种模式对子节点发出请求。
(1) 单播模式:主节点以特定地址访问某个子节点,子节点处理完请求后向主节点返回应答。一个 Modbus 事务处理包含两个报文——主节点的请求和子节点的应答。每个子节点必须具有唯一地址(1~247),以便独立寻址。
(2) 广播模式:主节点向所有子节点发送请求。地址 0 专门用于广播,从节点不回答主节点的广播请求;广播模式的请求一般用于对从站的写请求。
2. Modbus 帧描述
Modbus 应用协议定义了独立于下层通信层的协议数据单元(Protocol Data Unit,PDU),Modbus 协议数据单元如图 9-3 所示。施耐德变频器的 Modbus 协议在 PDU 之外引入一些附加域,客户端构造 Modbus PDU 后再添加附加域以构造适当的通信 PDU。串行链路上的 Modbus 帧如图 9-4 所示。
图 9-3 Modbus 协议数据单元

图 9-4 串行链路上的 Modbus 帧

3. 两种串行传输模式
Modbus 有 RTU 模式和 ASCII 模式两种串行传输模式。串行链路上所有设备的通信设置必须相同,包括波特率和数据校验方式等。
(1) Modbus 的 RTU 传输模式:施耐德 ATV32 变频器只支持 Modbus RTU 模式。设备使用 RTU(Remote Terminal Unit)模式在串行链路通信时,报文中每个 8 位字节含有两个 4 位十六进制字符。该模式的主要优点是较高的数据密度,在相同波特率下比 ASCII 模式有更高吞吐率,且每个报文必须以连续的字符流传送。