您现在的位置是:首页 > PLC技术 > PLC技术

Schneider PLC的Modbus TCP/IP

来源:艾特贸易2017-06-05

简介1996 年, Modicon 推出基于以太网和 Modbus 的 Modbus TCP/IP 工业以太网协议。这是最流行、成本低廉、适应于各种工业应用的协议,可以覆盖大多数工业应用的实际需求,已经成为工业应用的

    1996年,Modicon推出基于以太网和ModbusModbus TCP/IP工业以太网协议。这是最流行、成本低廉、适应于各种工业应用的协议,可以覆盖大多数工业应用的实际需求,已经成为工业应用的标准之一。使用TCP/IP以太网的5层结构:   物理层:提供设备的物理接口;    数据链路层:格式化源/目的硬件地址的数据帧;    网络层:实现带有32lP地址的IP报文包;    传输层:实现可靠性连接、传输、查错、重发、端口服务、传输调度;    应用层:实现Modbus协议报文。    TCP/IP以太网上传输,支持Ethernet II802.32种帧格式。如图6-16所示,Modbus TCP数据帧包含报文头、功能代码和数据3部分。
Modbus TCP数据帧格式
    6-16    Modbus TCP数据帧格式    其中:MBAP报文头(MBAPModbus Application ProtocolModbus应用协议)分4个域,共7个字节,如图6-17所示。
MBAP报文头结构
    6-17    MBAP报文头结构    Modbus功能代码共分为3种类型:    (1)公共功能代码:已定义好的功能码,具有唯一性。如表6-2所示。    (2)用户自定义功能代码有两组,分别为6572100110,无须认可,但不保证代码使用的唯一性。    (3)保留的功能代码,由一些公司使用在某些传统设备的代码,不可作为公共用途。    6-2    Modbus常用公共功能代码
Modbus常用公共功能代码
    按应用程度的深浅,功能代码通常可分为以下3个类别:    (1)类别0,对于主站和从站来说,这是最简单的有用功能:读寄存器(03)、写寄存器(16)    (2)类别1,可用于基本操作的常用成套代码:读线圈(01)、读开关量输入(02)、读输入寄存器(04)、写线圈(05)、写单一寄存器(06)    (3)类别2,用于监控系统、人机界面的操作和数据传送功能:强制写多个线圈(15)、读文件记录(20)、写文件记录(21)、屏蔽写寄存器(22)、读/写多个寄存器(23)    Modbus TCP/IP数据的最大长度:读为125个字或寄存器;写为100个字或寄存器。    如果应用程序对设备的交换需要超过这些限制,则可使用多个“I/O扫描行”。当一个Modbus TCP/IP交换的长度超过允许的限制,则可将该长度分成2个或多个数据交换,为各个Modbus TCP/IP交换创建新行。    当使用具有2个或多个字的变量时,必须调整读长度和写长度以避免变量的一部分在一个“I/O扫描行”上,而另一部分在下一行上。冈为2个新创建的行导致了两个独立的Modbus TCP/IP交换,因此它们可非同步发送至设备。如果在不同时间接收变量的两个部分,变量可能接收错误的值。可为某些已扫描的行使用一个小于125的读长度和一个小于100的写长度,以便使每个变量仅在一个交换行上。    Modbus TCPModbus串行总线、Modbus Plus使用了同样的应用层协议。因此,可以使用网桥,让信息从一个网络传入另一个网络,而无须改变协议。考虑到Modbus应用层位于比TCP/IP更高的级别,还可以从IP路由中扩大选择的空间,这种路由选择使得世界上任何地方的设备之间都可以进行通信,而无须考虑它们之间的实际物理距离。