一、前言
变频器广泛应用于各行各业。但变频器显示简单、硬件连接控制的缺点一定程度上影响了其在复杂控制系统中的应用。控制方法主要有3种:第一种是操作面板控制,先设置参数,再通过面板上的运行停止按键控制;第二种是变频器的功能端子控制,如控制段速和启动停止;第三种是模拟量输入端口控制,外接0~10V或4~20mA信号进行调速。
以上这三种方法都只能控制变频器的部分功能,如模拟量控制还存在控制精度和干扰问题,使用外接电位器由于需要频繁调整,故障率较高,因此不能对整个系统进行精确控制,尤其是对于有多台变频器的控制系统。这样就在一定程度上影响了变频器在复杂控制系统中的应用。
通过变频器本身的基于485总线的通讯接口的通讯控制方式,可以满足变频器在复杂系统中的各种要求。可以实现远程网络化、数字化的精确控制。本文以MX系列PLC为例,介绍如何利用PLC对16台变频器通过MODBUS协议进行控制,使得电机转速、方向、转矩以及变频器运行参数等控制变得十分容易和精确。
二、MODBUS简介
Modbus通讯协议,是一种串行的、非同步的主从通讯协议,网络中只有一个设备能够建立协议,其它的设备只能通过提供数据响应主机的查询,或根据查询做出相应的动作。Modbus协议定义了主机查询的格式,其包括:主从机的编址方法(或广播),要求动作的功能代码,传输数据和错误校验等,或不能完成主机要求的动作,它将组织一个故障作为响应。Modbus协议不需要特别的接口,典型的物理接口是RS485。在Modbus通讯网络中,一般提供中ASCII和RTU两种通讯模式。本文中采用的通讯协议为MODBUS-RTU通讯协议。
三、系统架构及硬件配置
控制系统由PLC+变频器组成,PLC采用麦科电气(MIKOM)生产的MX2H-1616MT型PLC,变频器采用麦科电气(MIKOM)生产的MV300系列变频器。PLC通过485通讯接口用屏蔽双绞线连接到各个变频器内置RS-485接口上,构成Modbus-RTU协议通信的传输通道。系统结构如下图:
图1 系统架构图
四、MODBUS协议的设置
在MXProgrammer软件中,在工程管理器下双击系统组态→硬件设置→MX2H-1616M,在PLC通讯口(PORT1)参数设置中,选择Modbus协议,单击Modbus设置,进行Modbus参数设置,如下图:
图2 Modbus参数设置
本文中选用的MODBUS的波特率为38400,8,N,2,RTU模式。PLC为主站地址设为17(注意:主站不能向自己的地址发送数据,所以主站的地址要和从站的地址设成不同),各个变频器为从站,地址为1~16,波特率设为与主站相同。
变频器的设置:因为本设计中主要是实时控制变频器的频率,所以需要将F00.01(主设定方式)设置为2,即Modbus通讯给定。
通过变频器的F52(通讯参数)菜单,可以对变频器的通讯参数进行设置。如下表:
将P52.00设置为0x03,P52.01设置为1~16,PF52.02设置为0.0,P52.03设置为5ms。
同样,Modbus实时调节变频器的转矩需将P03.02(转矩给定选择)设为6(Modbus通讯给定),再通过Modbus写指令更改转矩所对应地址中的数据。MV系列变频器的大部分参数都可以通过Modbus协议进行远程改写和读取,这样控制系统和变频器之间的联系更加灵活、智能。
五、程序设计
在MX2H系列PLC中,进行Modbus通讯有两种方式,一种采用Modbus指令,要求使用者对Modbus协议的指令格式有一定了解;另一种MODRD/MODWR指令,这条指令为集成指令,不要求使用者对Modbus指令了解,更适用于初次使用的用户。现分别概述如下:
1.使用Modbus指令与变频器通讯
Modbus指令为主站通讯指令,指令格式如下:
S1:指定通讯通道(范围1~3)S2:发送数据起始地址?? D:接收数据起始地址
(1)作为主站,调用该指令,把从S2开始保存的数据发送出去,然后接收数据,并保存到D开始的地址单元中。
(2)作为从站,接收和发送数据不需要指令控制。
使用Modbus指令需要分配数据缓冲区并对其赋值。写字节设置程序如下图:
图3 写字节设置
在此例中对写指令的字节解释如下:
第1字节为Modbus地址;
第2字节为Modbus功能码,此处为16即16#10,为写字节命令;
第3字节为Modbus写命令的起始地址高位,此处为59;
第4字节为Modbus写命令的起始地址低位,此处为01;与3字节合成一个地址,此处为59.01即为功能码的F59.01,就是主频率给定。如果想要对其他的功能码对应的数据进行修改,需要将第3、第4字节的数据更改为相应的功能码地址。
第5、6字节为Modbus写数据的保存数据数(WORD);
第7字节为Modbus写数据的字节长度(byte);
第8字节、第9字节为Modbus的保存数据1;在本例中如果想要更改变频器的频率,只要在这2个字节中写入相应的频率即可。
第10、11字节为Modbus的CRC校验和。
读字节设置程序如下图:
图4 读字节设置程序
在此例中对读指令的字节解释如下:
第1字节为Modbus地址;
第2字节为Modbus功能码,此处为03即16#03,为读字节命令;
第3字节为Modbus写命令的起始地址高位,此处为59;
第4字节为Modbus写命令的起始地址低位,此处为01;与3字节合成一个地址,地址可以根据自己的实际需求自行设定。
第5、6字节为Modbus读数据的数据长度(WORD);
第7、8字节为Modbus的CRC校验和。
本例中,Modbus通道采第一通道,即PORT1。为了保证快速、实时的控制变频器,定时中断采用轮流发送Modbus指令的方式。在应用程序中MX系列PLC的SM124(PORT1空闲标志)作为轮发的计数器,使整个系统能够在发送成功的第一时间发送下一站数据,缩短了整个系统Modbus的通讯扫描时间。定时中断时间设为2ms,中断程序如下:
图5 中断程序
以1站为例,写数据时发送Modbus指令存于D1000开始的发送缓冲区中,变频器回应的数据存于D1060开始的缓冲区中;读数据时发送Modbus指令存于D1120开始的发送缓冲区中,接收数据存于D1180开始的缓冲区中。用户可根据需要,按照Modbus读指令回应的格式,找到相应数据后进行处理。
2.使用MODRD/MODWR指令与变频器通讯
MODRD/MODWR指令为集成化Modbus指令,使用简单方便,具体格式如下:
MODRD指令格式如下:
S1:指定通讯通道(范围1~3) S2:从站站号(范围1~31) S3:MODBUS起始地址
S4:要读取的元件个数D:接收数据起始地址
(1)作为主站,调用该指令,将从站站号为S2,起始协议地址为S3开始的S4个数据读取过来,保存到D开始的地址单元序列中。
(2)读取的元件类型由接收数据的起始地址决定,若接收数据的起始地址为M元件,则读取的元件类型为位元件;若接收数据起始地址为D元件,则读取的元件类型为字元件。
3.作为从站,被读取数据不需要指令控制
MODWR指令格式如下:
S1:指定通讯通道(范围1~3)� S2:从站站号(范围1~31)S3:MODBUS起始地址
S4:要写入的元件个数D:写数据的起始地址
(1)作为主站,调用该指令,将D开始的S4个单元中的数据写入到站号为S2,起始协议地址为S3的元件中。
(2)写入的元件类型由写数据起始地址决定,若写数据起始地址设为M元件,则要写入的元件类型为位元件;若写数据起始地址为D元件,则要写入的元件类型为字元件。
(3)作为从站,被写入数据不需指令控制。
从指令介绍中可以看出,MODRD和MODWR指令集成度更高、程序更简单、使用更加方便。用户不需对Modbus指令十分了解,只需设定好通讯通道、站号、指令起始地址、元件个数和数据起始地址即可,减少了用户的工作量,方便用户使用。MX系列PLC的MODRD和MODWR指令的操作数据可以为D或M,这样使Modbus指令更灵活。
使用MODRD和MODWR指令不需要对缓冲区进行初始化,简单、高效,减少程序量。程序同样使用定时中断来发送Modbus数据,定时程序部分如下:
图6 定时程序
从程序中可以看出,本例中使用的是PORT1,变频器地址分别为1、2、3,读写均为1个字节。如果需要对1号站的变频器的频率进行改写,则D100中的数据应为16#3B01,即高字节为10进制“59”,低字节为10进制的“01”,若想对其他地址进行操作,则在D100中写入对应功能码地址即可。
六、结束语
实践应用中Modbus控制变频器取得了很好的效果。整个系统的自动化程度有很大提高、连线简单、相对于传统的电位器调节模式和PLC+DA的调节模式,有成本低、精度高等优势。采用现场总线技术进行自动化控制,已经是工业控制领域的潮流。本方案在印刷行业得到了广泛的应用。
/ 下载附件利用MX系列PLC的MODBUS功能控制多台MIKOM变频器的系统设计
鲁ICP备17036186号-1 版权所有:555000a公海会员中心