《Modbus通讯在PLC通道检测中的应用.docx》由会员分享,可在线阅读,更多相关《Modbus通讯在PLC通道检测中的应用.docx(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Modbus通讯在PLC通道检测中的应用网络转载导语:PLC在工业自动化控制领域中占有很大的比例,一些大型的控制系统中控制点数目到达上万,采用常规的通道测量方法来对PLC通道测量往往需要花费不少的时间,而且效率低。1引言Modbus应用层协议由美国Modicon公司(现为施耐德电气旗下品牌)于1979年开发的,用于实现其产品与上位机的通讯。在工业自动化控制领域中占有很大的比例,一些大型的控制系统中控制点数目到达上万,采用常规的通道测量方法来对PLC通道测量往往需要花费不少的时间,而且效率低。本文针对施耐德电气的Quantum系列PLC,通过引入Modbus-TCP协议实现普通计算机与PLC通讯
2、,用普通计算机取代编程器去进展通道测量试验。操纵人员不需要对PLC和计算机的通讯很熟悉就可以很快地完成通道检测,进步了工作效率。2Modbus通讯原理2.1Modbus应用层协议Modbus应用层协议位于ISO/OSI参考模型中的第七层,它是通过恳求-响应机制实现不同设备间按客户/效劳器方式通讯。首先客户发送恳求报文到效劳器,效劳器接收到报文后进展过失校验,假设报文无误那么执行操纵,并返回响应报文到客户端,假设传输出现错误那么返回异常响应报文,进而完成一次通讯周期。Modbus协议定义了一个与传输层无关报文格式,该报文称之为协议数据元(PDU),协议数据元由占用一个字节的功能码和最长252个字
3、节的数据域组成,其组成形式如下列图1所示:图1ModbusPDU构造功能码的有效取值范围是1255,功能码分类分为三类:公用功能码、用户自定义功能码和保存功能码。由客户端发送到效劳器的报文中的功能码指示效劳器所要执行的操纵,一些功能码还带有子功能码,用于执行多步操纵。假如效劳器接收到的报文正确并执行,由效劳器返回的报文中的功能码告诉客户端设备该信息为按照该功能码执行的结果。Modbus网络通讯中常用到的是公用功能码,它们在不同公司产品之间的通讯中具有统一的定义。表一给出了局部公用功能码的定义。欢送转载,本文来自电子发热友网(:/elecfans/)数据域内存放着Modbus设备可以识别的数据信
4、息。由客户发送到效劳器的数据域含有功能码操纵的附加信息,在某些恳求报文中数据域的长度为零。表一由表1中可看出Modbus协议中根据数据属性的区别定义了四种数据类型:离散输入、线圈、输入存放器和输出存放器。这四种数据类型的组合构成了Modbus数据模型。它们在不同的设备内存中分配的方式是由消费厂家预先制定的,可以是在同一区域,也可以是有各自的独立区域或者其他方式。图2ModbusPDU寻址方式PDU的寻址方式也在Modbus应用层协议中作出了详细的定义。在ModbusPDU中每一个数据都赋予从065535中的一个值作为该数据的地址。而在Modbus数据模型中,每一种数据类型块中的数据单元都定义了
5、一个从1到n(设备容量决定)的值作为其地址。Modbus数据模型要与符合IEC-61131标准的实际设备内存或其他模型对应起来,这方面的映射关系是由设备消费厂家制定的。图二给出了Modbus寻址模型,设备内存中的四种数据形式的组织方式是由厂家决定的。由图2可知,一个ModbusPDU地址所对应的Modbus数据模型地址为该PDU地址加1。2.2Modbus通讯实现方式要实现设备间的通讯,需要将Modbus应用层协议嵌入到ISO/OSI参考模型中的低层协议中。现行的通讯方式有三种: (1)通过串行链路实现的异步数据传输(Modbus-RTUandModbus-ASCII),又称标准Modbus通
6、讯; (2)高速令牌环网通讯(Modbus-Plus); (3)基于TCP/IP的客户/效劳器构造通讯(Modbus-TCP)。表2给出这三种通讯方式与ISO/OSI参考模型的比拟。在不同的通讯方式中都要对ModbusPDU进展封装,组成不同的Modbus帧,这种帧在Modbus协议中有专有的名词称之为应用数据单元(ADU)。在Modbus-RTU和Modbus-Plus通讯中采用的是标准应用数据单元,它只是在PDU前面加上了占用一个字节的附加地址和在PDU完毕增加了占用两个字节的校验码。在Modbus-TCP/IP网络通讯中需要对Modbus应用层协议进展重新封装,该封装是通过在Modbus
7、PDU前加上了Modbus应用层协议帧头来实现。欢送转载,本文来自电子发热友网(:/elecfans/)图3两种ADU比拟基于串行链路的Modbus通讯网络是一种主从式网络,在串行网络中只允许存在一个主节点和最多247个从节点,在这种网络下,标准ModbusADU中的附加地址域只包含从节点的地址,可寻址范围是0247,地址0作为播送形式地址使用,从节点地址的有效取值范围是1247,并且每个从节点的地址必须是唯一的,主节点不存在详细的地址值。主节点设备将要访问的从节点设备的地址放入到恳求帧的地址域中,当该地址的从节点设备作出响应时,将会把从节点设备的地址复制到响应帧的地址域中,主节点设备通过该地
8、址得知是由哪个从节点设备发来的响应。校验域存放了根据报文内容经过冗余校验算法计算所得到的结果。在基于串行链路的Modbus通讯网络中有两种传输方式:RTU和ASCII,这两种传输方式的冗余校验算法是不同的。采用RTU通讯形式要比ASCII形式在同样波特率下能传输更多信息,在RTU形式底下是以二进制编码方式对传输数据进展编码,报文中每一个字节(8位二进制位)包含了两个十六进制字符,同一报文内的字符必须连续传输。RTU形式字节传输格式由1位起始位,8位数据位,1位奇偶检验位和1位停顿位依次组成,共占用11位二进制位。当不使用奇偶检验时,奇偶校验位也作停顿位使用,此时共有两位停顿位。RTU传输形式下
9、帧的过失校验域内存放的是报文经过循环冗余检验(CRC)算法计算得出的结果。采用ASCII通讯形式时,每一个字节(8位二进制位)用两个ASCII字符表示。由于每个字节都要用两个字符表示,数据域的长度是RTU形式的两倍,显然在该形式下的传输效率要比RTU形式低。该形式的字节传输格式与RTU形式相似,只是数据位置占用7个二进制位。ASCII形式下帧的过失检验算法为纵向冗余校验(LRC)。Modbus-TCP实现了在TCP/IP以太网上以客户/效劳器方式的Modbus报文通讯。这种通讯模型是将Modbus协议作为应用层协议嵌入到低层TCP/IP协议中构成的。与标准Modbus帧相比,Modbus-TC
10、P帧中的寻址与校验交由TCP/IP协议完成。如图3所示,使用封装的方法将ModbusPDU嵌入到TCP报文中形成Modbus-TCP帧,该帧在PDU之前形成了一个占用7个字节大小的MBAP帧头,帧头可以划分为四局部,如表3所示。交易标识符用于交易校验,效劳器端节收到由客户发来的恳求交易标识符并复制到响应中。协议标识符用于系统内多路复用传输,取0值时代表Modbus协议传输。长度域记录了该域后续报文的字节长度(包括设备识别符和数据域),用于效劳器识别报文的传输完毕。设备标识符用于系统内路由,当需要与通过以太网网关连接的Modbus串行链路或者Modbus-Plus通讯网络上的设备进展通讯时,该标
11、识符域的值由Modbus-TCP客户在恳求帧中设置,效劳器接收到后,在响应帧中复制该值。3Modbus-TCP应用针对施奈德电气旗下的Quantum系列PLC,为了加快完成这方面的工作,采用自编写的程序实现计算机对PLC的四种数据类型直接操纵。硬件方面,Quantum系列PLC有能提供以太网接口的网络模块,通过底板与CPU通讯,它作为Modbus-TCP通讯的效劳器,不需要我们做其他编程工作。PLC为上文所陈述的四种数据类型定义了四个独立的内存区,其中离散输入为1区,线圈为0区,输入存放器为3区,输出存放器为4区,寻址方式为区号加上5位的十进制地址,当输入地址缺乏6位时,系统将自动以为最高位数
12、值为内存分区号,其后数值为该区域内的地址编号。由于操纵的目的在于检验PLC系统中IO通道的正确性,所需要使用的功能码有:读线圈01、读离散输入02、读保持存放器03、读输入存放器04、写多线圈15和写多个存放器16。一次完好的Modbus-TCP通讯在时间上可以划分为三个步骤:连接的建立、Modbus数据传输和连接的释放。在进展Modbus数据传输之前首先要建立起一个连接,设备是通过在502端口提供一个监听口(socket)来允许与其它设备建立新连接和进展数据传输。当某一设备需要与远方的效劳器进展数据交换时,必须通过自身大于1024的端口与效劳器的502端口建立连接。TCP连接建立后,客户端设
13、备便可以发送Modbus恳求帧到效劳器,效劳器接收到恳求后作出响应,向连接客户的端口发送响应报文。传输完毕时,客户端负责进展释放通讯连接的初始化工作。欢送转载,本文来自电子发热友网()程序在DOS形式下运行,提供有以下运行参数:-ip:即目的效劳器的IP地址;-p:PLC的Modbus通讯端口,默认值为502;-c:效劳器执行功能码的操纵对象数目;-r:操纵的起始地址;-w:写操纵参数;-a:自动操纵形式;-t:自动操纵的时间间隔;-b:线圈写操纵的布尔值。4完毕语通过以太网来实现计算机直接读写PLC数据,使得厂级监控网络可以直接与现场设备通讯,监控人员可以在熟悉的计算机画面上对PLC通道进展检测,与依靠人为施加信号来进展检测相比,前者明显地降低了操纵人员的工作量,而且当需要检测的IO点数目越大时,效率越高。本程序只是Modbus与TCP/IP协议结合的一个简单应用,固然以太网的实时性、稳定性和抗干扰性已得到很大的开展,但要把以太网真正应用到实际的控制中还有很多技术难题,这还要走很长一段路。不过以太网进入自动控制领域已是必然趋势,它将使控制变得更加简单和清楚。0
限制150内