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

ABB变频器与三菱PLC间的Modbus-RTU的协议通信

来源:艾特贸易网 www.aitmy.com2018-04-20

简介Modbus 协议是由美国 MODICON (莫迪康)公司于 20 世纪 80 年代末开发,有 Modbus-RTU 、 Modbus-ASCII 和 Modbus-TCP 三种通信方式,其中 Modbus-RTU 、 Modbus-ASCII 使用 RS-232 、 RS-422 和 RS-485 串行接口进

    Modbus协议是由美国MODICON(莫迪康)公司于20世纪80年代末开发,有Modbus-RTUModbus-ASCIIModbus-TCP三种通信方式,其中Modbus-RTUModbus-ASCII使用RS-232RS-422RS-485串行接口进行传输。Modbus协议具有良好的兼容性和开放性,为各厂商生产的工业控制器(如工控机、PLC、变频器和各种智能仪器仪表等)所采用,用于控制器相互之间、控制器(经网络)与其他设备之间的通信。常用的变频器品牌如ABB、三菱、海利普、东芝、LS、台达和安邦信等都兼容Modbus-RTU通信协议,这为变频器使用功能的扩展提供了空间,也为以电动机为重要执行元件的工业自动化控制系统的进一步发展提供了有力支持。

    1Modbus-RTU协议信息帧

   (1) Modbus-RTU协议信息帧格式

   Modbus-RTU协议常用功能信息帧格式如下:

    读取保持寄存器数据(H33

    查询信息

    响应信息

    向保持寄存器写入数据(H66

    查询信息

    响应信息

    向连续多个保持寄存器写入数据(H1016

    查询信息

    响应信息

   Modbus协议通信采用主从通信技术,允许主机与一台或多台从机通信。每次通信均由主机通过信息帧发出请求信息,从机收到正确无误的请求信息后,通过响应信息帧返回相应的数据或状态信息以响应主机请求。信息帧是主机与从机之间进行Modbus-RTU协议通信的基础,由地址信息、功能信息、数据信息和错误校验信息4个部分按一定顺序组成,各信息数据分别存放在8位十六进制字节中。从机地址是从机唯一的通信地址,可设定值为1~2470为主机对全部从机进行广播,从机不响应。功能代码是主机对从机的要求,从机根据要求执行相关动作。在Modbus-RTU协议支持技术规范中,规定从零开始寻址空间,所以在设定从机Modbus-RTU协议分配的保持寄存器开始地址时,实际的地址是设定开始地址的数值加上1

   (2)出错校验CRC

   Modbus-RTU协议为保证主机和从机之间的通信信息完整正确,在信息帧中加入出错校验CRC码。出错校验CRC码使用16位循环冗余的方法,占用2个字节,包含了一个16位的二进制值。CRC值由主机计算出来附加到信息帧上,从机在接收信息时重新计算CRC值,然后与接收到的CRC值进行比较,如果这两个值不相等,说明信息帧有错误。在自动控制系统中,各种通信信息在传输中经常受到电噪声、电磁干扰以及其他干扰,数据和控制指令可能会发生一些改变,使控制系统产生异常。Modbus-RTU通信协议在信息帧中加入出错校验CRC码,能够保证从机不去响应或执行在传输过程中发生改变的数据和指令信息,大大提高了系统的安全性和效率。生成16位循环冗余出错校验CRC码的步骤如下:

   1)设置一个值为HOFFFF(即全部位均为1)的16位寄存器,称之为CRC寄存器。

   2)把第一个8位字节与CRC寄存器低位进行异或运算,将运算结果储存在CRC寄存器中。

   3)CRC寄存器中的位向右(低位方向)移一位,最高位用0填补,检查最低位的值。

   4)如果最低位的值是0,则重复第3)步;如果最低位的值是1,则将CRC寄存器与多项式HA001 (1010000000000001)进行异或运算。

    5)重复上述第3)步和第4)步,直至CRC寄存器共向右移8位,这时一个8位字节的数据处理完成。

   6)重复上述第2)步到第5)步,进行下一个8位字节的处理。

   7)重复上述第2)步到第6)步,直到将信息帧所有字节均与这个CRC寄存器进行过异或运算。

   8)最后这个16CRC寄存器中的值即为2个字节CRC校验码。

    2Modbus协议通信系统组成

    变频器与PLC基于Modbus-RTU协议通信系统由ABBACS510系列变频器、三菱FXIN系列PLC和三菱FXIN-485-BD通信板组成,如图4-36所示。PLC通过RS-485通信板用屏蔽双绞线连接到变频器内置RS-485接口上,构成Modbus-RTU协议通信的传输通道。根据控制系统的作用和目的,在变频器上设定好Modbus-RTU协议通信参数和其他相关参数,并向PLC中输入已编写好的包含Modbus-RTU协议通信程序在内的控制程序后,PLC和变频器之间就可以进行Modbus-RTU协议通信。Modbus-RTU协议通信使用专用的信息帧,在主机PLC与从机变频器之间进行串行通信。PLC发出查询信息帧,变频器接收到正确的查询信息后向PLC返回发送响应信息帧,并执行查询信息帧所要求的功能。当变频器接收到异常的查询信息时,就返回错误响应信息帧或者不返回响应信息帧,同时不执行查询信息要求的功能。信息帧具有读取数据和写入数据的功能,使PLC不仅能够写入或读取变频器的参数,还可以对变频器发出控制指令并确认其运行状态,这样PLC就可以全方位监控变频器的运行。

变频器与PLC基于Modbus-RTU协议通信系统

    4-36    变频器与PLC基于Modbus-RTU协议通信系统

    3ABB变频器通信参数的设置

    为确保ABB变频器与PLC之间的Modbus-RTU协议通信正常畅通,需要对变频器的相关参数进行设定,见表4-5ABBACS510系列变频器需要设置与Modbus-RTU协议通信的相关参数组有:

    4-5    变频器Modbus-RTU协议通信参数设定值

变频器Modbus-RTU协议通信参数设定值

   1) Group98可选件,激活Modbus-RTU协议RS-485串行传输通信。

   2) Group53内置通信协议,定义内置现场总线(EFB)通信协议的配置。

   3) Group16系统控制,定义系列系统控制参数(如锁定、复位和使能控制等)。

   4) Group14继电器输出,设定每个输出继电器动作条件。

   5) Group13模拟输入,设定模拟输入的限幅值和滤波时间。

   6) Group11给定选择,选择、设定外部给定12的来源和性质。

   7) Group10输入指令,定义控制起动、停止和方向的外部控制源,电动机方向锁定或允许电动机正、反转。

    其他变频器参数根据电动机的工作环境、使用用途等因素进行设定。

    4PLC程序设计

    三菱FX系列PLC通过RS-485串行通信传输方式与变频器进行Modbus-RTU协议通信,其RS串行数据传送功能指令是FX系列PLC进行发送和接收串行数据的功能指令。在RS功能指令驱动前,要对RS功能指令通信数据传送格式的特殊数据寄存器D8120进行设定。设定值是与ABBACS510系列变频器的通信参数设定相对应的HOC99,即RS-485接口,无起始符和终止符,传送速度为19200bit/s2位停止位,无奇偶性,数据长度为8位。

   Modbus-RTU协议通信信息帧中的信息和数据是以8位字节形式传送的,要使PLC中的8位处理模式特殊辅助继电器M8161保持常通。每次用RS功能指令发送数据的同时,要用脉冲指令置位串行通信发送标志特殊辅助继电器M8122,发送结束后M8122将自动复位;在串行通信接收完成标志特殊辅助继电器M8123触点动作前,先要将RS功能指令接收的数据传送到其他的PLC数据寄存器中,再对接收完成标志M8122进行复位。

   PLC通过RS功能指令接收到从变频器返回来的数据,分别存放在高、低位数据寄存器中,因此要对接收到的数据进行合成处理,并将其传送到另外的数据寄存器中存放。ABBA-CS系列变频器还支持H17(或者23)读/写多个保持寄存器功能码指令,即由H17(或者23)读保持寄存器功能码指令和H10(或者16)写多个保持寄存器功能码指令合成的一个复合功能码指令。在编写与ABB变频器的Modbus-RTU协议通信程序时,采用H17(或者23)/写多个保持寄存器功能码指令,可以大大简化通信程序,提高编程效率。

(作者稿费要求:需要高清无水印文章的读者3元每篇,请联系客服,谢谢!在线客服:艾特贸易网客服为您服务