6ES72882QR160AA0可编程控制器
PLC在工业自动化控制领域中占有很大的比例,些大型的控制系统中控制点数量达到上万,采用常规的通道测量方法来对PLC通道测量往往需要花费不少的时间,而且效率低。本文针对施耐德电气的Quantum系列PLC,通过引入Modbus-TCP协议实现普通计算机与PLC通信,用普通计算机取代编程器去进行通道测量试验。操作人员不需要对PLC和计算机的通信很熟悉就能够很快地完成通道检测,提高了工作效率。
2Modbus通信原理
2.1Modbus应用层协议
Modbus应用层协议位于ISO/OSI参考模型中的七层,它是通过请求-响应机制实现不同设备间按客户/服务器方式通信。首先客户发送请求报文到服务器,服务器接收到报文后进行差错校验,若报文无误则执行操作,并返回响应报文到客户端,若传输出现错误则返回异常响应报文,从而完成次通信周期。Modbus协议定义了个与传输层无关报文格式,该报文称之为协议数据元(PDU),协议数据元由占用个字节的功能码和长252个字节的数据域组成,其组成形式如下图1所示:
图1ModbusPDU结构
功能码的有效取值范围是1~255,功能码分类分为三类:公用功能码、用户自定义功能码和保留功能码。由客户端发送到服务器的报文中的功能码指示服务器所要执行的操作,些功能码还带有子功能码,用于执行多步操作。如果服务器接收到的报文正确并执行,由服务器返回的报文中的功能码告诉客户端设备该信息为按照该功能码执行的结果。Modbus网络通信中常用到的是公用功能码,它们在不同公司产品之间的通信中具有统的定义。表给出了部分公用功能码的定义。欢迎转载,本文来自电子发烧友网
数据域内存放着Modbus设备能够识别的数据信息。由客户发送到服务器的数据域含有功能码操作的附加信息,在某些请求报文中数据域的长度为零。
6ES72882QR160AA0可编程控制器
由表1中可看出Modbus协议中依据数据属性的区别定义了四种数据类型:离散输入、线圈、输入寄存器和输出寄存器。这四种数据类型的组合构成了Modbus数据模型。它们在不同的设备内存中分配的方式是由生产厂家预先制定的,可以是在同区域,也可以是有各自的独立区域或其他方式。
PDU的寻址方式也在Modbus应用层协议中作出了具体的定义。在ModbusPDU中每个数据都赋予从0~65535中的个值作为该数据的地址。而在Modbus数据模型中,每种数据类型块中的数据单元都定义了个从1到n(设备容量决定)的值作为其地址。
Modbus数据模型要与符合IEC-61131标准的实际设备内存或者其他模型对应起来,这方面的映射关系是由设备生产厂家制定的。图二给出了Modbus寻址模型,设备内存中的四种数据模式的组织方式是由厂家决定的。由图2可知,个ModbusPDU地址所对应的Modbus数据模型地址为该PDU地址加1。