基于MODBUS 的GCAN PLC 与变频器通讯系统
2022-03-26宋宝宇
宋宝宇,巴 鹏,李 岩
在PLC 与变频器的综合应用中, 比较传统的应用一般使用PLC 的开关量输出驱动中间继电器控制变频器的启动、 停止, 使用多段速度或D/A输出控制变频器的转速变化。 在这种应用方式中,PLC 与变频器通过外部接线完成连接, 不能进行内部数据的传递[1]。 而为了保证电机的稳定运行,减少故障发生, PLC 与变频器的通讯不仅可以控制变频器使电机保持稳定的运转速度, 还可以通过与PLC 通讯获得电机的参数, 减少因电机而产生的故障, 为工业生产提供保障。
1 MODBUS RTU 协议
1.1 MODBUS 简介
Modbus 协议是一种串行通信协议, 其所需的硬件、 软件比较简单, 大部分仪表设备及控制设备都支持M ODBUS 通信协议, 通讯方式主要有ASCLL 码和RTU 两种, RTU 的通讯速度比ASCLL更快, 可以达到115 kps, 其通讯物理接口为RS232/RS485。
1.2 MODBUS RTU 消息结构
MODBUS RTU 消息发送最少是以3.5 个字符间隔时间表示开始和结束, 而消息帧是由设备地址、功能码、 数据与CRC 校验构成, 所有字符位由16进制0-9、 A-F 组成(见表1)。
表1 RTU 消息帧格式 [5]
(1) 设备地址 指定报文的目的地址, 包括8 bit, 单个设备的地址范围是1~247。
(2) 功能代码 当消息从主设备发往从设备时, 功能代码域将告之从设备需要执行哪些行为。
(3) 数据 数据域由两个十六进制数集合构成, 范围00~FF。 从主设备发给从设备消息的数据域包含从机执行主机功能代码中所需的参数。
(4) CRC 校验 CRC 域检测整个消息的内容,包括两个字节, 包含一个16 位的二进制值。
在PLC 与变频器Modbus RTU 通讯时, 使用不同的功能码可以达到对变频器不同的控制效果( 见表2)。
表2 由主到从的控制代码
2 通讯系统设计
2.1 硬件设计
(1) 通讯系统结构
整个通讯系统由计算机、 GCAN PLC、 丹佛斯变频器与电动机构成( 见图1) 。 其中, 变频器通过RS485 串行通讯线与计算机通讯, 设置变频器的参数, 同时将编好的程序下载到PLC 中, PLC根据MODBUS RTU 协议与变频器通讯, 实现对变频器的控制。
图1 通讯系统结构设计图
(2) 通讯硬件介质选取
实验采用GCANPLC, 它是一款集成有总线控制功能的可编程逻辑控制器, 由总线通信模块与供电模块组成。 总线通信模块上集成了一路以太网接口、 一路RS232/485 复用接口、 一路CAN 总线接口, 支持CANOPEN、 MODBUS RTU/TCP 等通信协议[2]。 在PLC、 变频器中, 可使用端子双绞线进行连接, 也可用水晶头RJ45, 由于双绞线及接头制作方便, 通讯效果较好, 所以通讯介质采用双绞线。 在硬件连接时, PLC 侧为RJ45 接口, 采用其中的1 号引脚与8 号引脚( 见图2) , 变频器侧为68、 69 号端子接口( 见图3) , 根据变频器说明书选取通讯介质与接口将通讯设备连接[3]。
图2 PLC RJ485 接口样式
图3 变频器端子接口
2.2 软件设计
GCAN-PLC与变频器通讯采用Open PCS 编程软件进行程序设计, 该软件支持符合IEC-61131-3标准中规定的五种标准编程语言, 程序采用SCL结构化文本语言编写, 将数字量输入模块作为触发信号, 执行读与写的操作。
使用GCAN PLC 通讯时, 执行MODBUS 初始化, 成功后将不再执行初始化步骤。 如果有数字量输入, 执行数字量输入模块8 个通道对应的功能码, 执行MODBUS 执行功能块(见图4)。
图4 程序流程图
以下为PLC 与变频器通讯编程。
(1) 变量声明部分
2.3 通讯设计
(1) 通讯格式设定
在通讯连接前需要设定PLC 与变频器的通讯参数, 确定发送与接收内容, 只要满足准确的通讯速率、 发送方式及通讯接口即可实现通讯控制, 即可在PLC 程序中设定, 变频器可在面板中设定,根据丹佛斯变频器设计指南, 通讯波特率设置为9600 bps, 数位位数为8 位, 偶校验, 1 个停止位。
(2) 确定发送接收内容
PLC 与变频器的通讯要求为: 在不同情况下给定频率启动变频器( 正转) , 同时读取变频器频率及电动机的电压、 电流、 转速等参数, 而要达到通讯要求需要了解变频器的功能码, 以及PLC、 变频器的寄存器地址( 见图5) , 相关参数地址由丹佛斯变频器设计指南查得[3]。
图5 PLC、变频器寄存器地址
2.4 PLC 与变频器通讯调试
PLC、 变频器、 上位机硬件连接后, PLC 为主站, 变频器作为从站, PLC 控制变频器以50 Hz 正转启动操作步骤如下:
(1) 变频面板设置通讯参数: 参数8-30 协议MODBUS RTU、 参数8-31 变频器从站地址01、 参数8-32 波特率9 600、 参数8-33 奇偶校验/停止位为偶校验, 1 个停止位[4]。
(2) 向变频器发送两条指令, 一条为正转启动指令, 一条为总线参考值, 保持寄存器对应控制字的地址为50000, 但写入MOUDBUS RTU 报文值需要减1, 即49999 对应C34FH, 正转启动的控制字047CH, 功能码选取06( 写单个寄存器) , 即发送的报文01 06 C3 4F 04 7C 87 78, 7887 为CRC 校验, 低位在前, 高位在后, 另一条给定频率指令同理, 保持寄存器对应总线参考值的地址为50010,给定频率50 Hz 对应4000H, 即发送报文为01 06 C3 5A 40 00 A4 5D, 分别在PLC 程序输入控制字、总线参数地址, 运行程序后接24 V 电源触发数字量输入模块第7 个通道, 执行06 功能码写单个寄存器(见图6)。
图6 变频器面板显示
在完成PLC 给定频率启动变频器后, 需要进行读取变频器数据的步骤, 具体步骤如下:
(1) 根据丹佛斯变频器设计指南获得变频器频率(1613)、 电动机电压(1612) 等参数地址[4]。
( 2) 将获得的参数乘十转换成16 进制输入PLC 程序地址中, 运行程序后接24 V 电源触发数字量输入模块第3 个通道, 执行03 功能码读保持型寄存器, 触发后得到变频器回复的数据( 见图7)。
图7 变频器数据回复
变频器数据回复数组内的值为1 和244, 变换成01F4 Hex, 转换成500 Dec, 对应频率为50 Hz,而值123 与15 16 进制转换0F7BHex, 10 进制3963, 对应电动机电压为396.3 V。
3 结 语
通过GCAN PLC 与变频器通讯实验证明, 由GCAN PLC 控制变频器给定频率启动并读取变频器参数, 完成读与写的操作, 能够实现PLC 与变频器的正常通讯, 此次通讯系统基于MODBUS 协议,以GCAN PLC 与丹佛斯变频器为研究载体, 对于其他工业自动化设备通讯应用具有一定的参考价值, 以此为基础, 可开发出更多的工业控制系统。