您现在的位置是:首页 > PLC技术 > PLC技术
Modbus通信协议和相关知识点
来源:艾特贸易2017-06-04
简介对施耐德产品而言, PLC 与 PLC 之间的通信有 Modbus TCP 、 Ethernet IP 等方式。另外,采用 Unity Pro 编程的 PLC 与施耐德驱动产品的通信方式还有 Modbus 、 Canopen( 主要是 Premium 和 M340) 、 Modb
对施耐德产品而言,PLC与PLC之间的通信有Modbus TCP、Ethernet IP等方式。另外,采用Unity Pro编程的PLC与施耐德驱动产品的通信方式还有Modbus、Canopen(主要是Premium和M340)、Modbus Plus、Profibus-DP等通信方式。
Modbus网络是施耐德设备最常使用的通信方式之一,这里首先介绍了Modbus的协议和内容,对Modbus通信常用到的概念也作了细致的解释,例如Modbus RTU的概念、总线的极性偏置、CRC循环冗余校验码的计算方法、Modbus总线的长度、从站的数量、Modbus的功能码和广播方式等。
最后通过Premium PLC与ATV32的Modbus通信的实例,全面说明了在不同组合模式下,Premium PLC与变频器进行Modbus通信时的接线、程序编写和变频器的参数设置方法。另外,本文还介绍了通过IO Scanner input/output参数来提高ATV32 Modbus通信效率的方法。
Modbus是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供主/从通信。Modbus协议和ISO/OSI模型如图9-1所示。
图9-1 Modbus协议和ISO/OSI模型
Modbus是一个请求/应答协议,并且提供功能码规定的服务,Modbus功能码是Modbus请求/应答PDU的元素。目前,互联网组织能够使TCP/IP栈上的保留系统端口502也能访问Modbus,Modbus通信栈如图9-2所示。
图9-2 Modbus通信栈
1.Modbus主站/从站协议原理
Modbus串行链路协议是一个主一从协议。在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为247)连接于同一个串行总线。Modbus通信总是由主节点发起,而子节点在没有收到来自主节点的请求时,是不会发送数据的,另外,子节点之间也不会互相通信。同时,主节点在同一时刻是只会发起一个Modbus请求的。
主节点可以采用单播模式和广播模式两种模式对子节点发出Modbus请求。
(1)单播模式
主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个应答)。
一个Modbus事务处理包含两个报文,即一个来自主节点的请求,一个来自子节点的应答。
每个子节点必须有唯一的地址(1~247),这样才能区别于其他节点被独立的寻址。
(2)广播模式
主节点向所有的子节点发送请求。
地址0专门用于广播数据。对于主节点广播的请求从节点不会应答此请求。广播模式的请求一般是用于对从站的写请求。
2.Modbus帧描述
Modbus应用协议定义了简单的独立于其下面通信层的协议数据单元( Protocol Data Unit,PDU),Modbus协议数据单元如图9-3所示。
图9-3 Modbus协议数据单元
施耐德变频器的Modbus协议映射在协议数据单元之外引入了一些附加的域。发起Modbus事务处理的客户端构造Modbus PDU,然后添加附加的域以构造适当的通信PDU。串行链路上的Modbus帧如图9-4所示。
图9-4 串行链路L的Modbus帧
3.两种串行传输模式
Modbus有RTU模式和ASCII模式两种串行传输模式。
Modbus串行链路上所有设备的通信设置必须相同,包括波特率和数据校验方式等。
(1) Modbus的RTU传输模式
施耐德ATV32变频器只支持Modbus RTU模式。
当设备使用RTU(Remote Terminal Unit)模式在Modbus串行链路通信时,报文中每个8位字节含有两个4位十六进制字符。这种模式的主要优点是较高的数据密度,在相同的波特率下比ASCII模式有更高的吞吐率。同时,每个报文必须以连续的字符流传送。