新闻中心

EEPW首页>手机与无线通信>设计应用> Modbus通信在PLC通道检测中的应用

Modbus通信在PLC通道检测中的应用

作者: 时间:2010-06-21 来源:网络 收藏



-TCP实现了在TCP/IP以太网上以客户/服务器方式的报文。这种模型是将协议作为层协议嵌入到低层TCP/IP协议中构成的。与标准Modbus帧相比,Modbus-TCP帧中的寻址与校验交由TCP/IP协议完成。如图3所示,使用封装的方法将Modbus PDU嵌入到TCP报文中形成Modbus-TCP帧,该帧在PDU之前形成了一个占用7个字节大小的MBAP帧头,帧头可以划分为四部分,如表3所示。


交易标识符用于交易校验,服务器端节收到由客户发来的请求交易标识符并复制到响应中。协议标识符用于系统内多路复用传输,取0值时代表Modbus协议传输。长度域记录了该域后续报文的字节长度(包括设备识别符和数据域),用于服务器识别报文的传输结束。设备标识符用于系统内路由,当需要与通过以太网网关连接的Modbus串行链路或Modbus-Plus网络上的设备进行通信时,该标识符域的值由Modbus-TCP客户在请求帧中设置,服务器接收到后,在响应帧中复制该值。

3 Modbus-TCP


针对施奈德电气旗下的Quantum系列,为了加快完成这方面的工作,采用自编写的程序实现计算机对的四种数据类型直接操作。硬件方面,Quantum系列有能提供以太网接口的网络模块,通过底板与CPU通信,它作为Modbus-TCP通信的服务器,不需要我们做其他编程工作。PLC为上文所陈述的四种数据类型定义了四个独立的内存区,其中离散输入为1区,线圈为0区,输入寄存器为3区,输出寄存器为4区,寻址方式为区号加上5位的十进制地址,当输入地址不足6位时,系统将自动认为最高位数值为内存分区号,其后数值为该区域内的地址编号。由于操作的目的在于检验PLC系统中IO的正确性,所需要使用的功能码有:读线圈01、读离散输入02、读保持寄存器03、读输入寄存器04、写多线圈15和写多个寄存器16。


一次完整的Modbus-TCP通信在时间上可以划分为三个步骤:连接的建立、Modbus数据传输和连接的释放。在进行Modbus数据传输之前首先要建立起一个连接,设备是通过在502端口提供一个监听口(socket)来允许与其它设备建立新连接和进行数据传输。当某一设备需要与远方的服务器进行数据交换时,必须通过自身大于1024的端口与服务器的502端口建立连接。TCP连接建立后,客户端设备便可以发送Modbus请求帧到服务器,服务器接收到请求后作出响应,向连接客户的端口发送响应报文。传输结束时,客户端负责进行释放通信连接的初始化工作。


程序在DOS模式下运行,提供有以下运行参数:
-ip: 即目标服务器的IP地址;
-p: PLC的Modbus通信端口,默认值为502;
-c: 服务器执行功能码的操作对象数量;
-r: 操作的起始地址;
-w: 写操作参数;
-a: 自动操作模式;
-t: 自动操作的时间间隔;
-b: 线圈写操作的布尔值。

4 结束语


通过以太网来实现计算机直接读写PLC数据,使得厂级监控网络能够直接与现场设备通信,监控人员能够在熟悉的计算机画面上对PLC进行,与依靠人为施加信号来进行相比,前者明显地降低了操作人员的工作量,而且当需要的IO点数量越大时,效率越高。本程序只是Modbus与TCP/IP协议结合的一个简单,虽然以太网的实时性、稳定性和抗干扰性已得到很大的发展,但要把以太网真正应用到实际的控制中还有很多技术难题,这还要走很长一段路。不过以太网进入自动控制领域已是必然趋势,它将使控制变得更加简单和清楚。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭