- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
Modbus技术在变频调速系统上的应用
1 引言
预缩机是印染行业中织物后整理的最后一道工序,它是将织物经过机械物理预缩(橡胶毯)的方法,使其预缩率降低,手感改善。基本配置由四个单元组成:给湿单元、橡胶毯预缩单元、呢毯整理单元和出布单元。给湿单元完成预缩前的给湿准备,以使织物拥有一定的含湿量,便于织物预缩。其拖动部分为一只糙皮辊。由一个2.2kw电机拖动。橡胶毯预缩单元是本机的核心,主要是通过橡胶毯挤压以使织物经向产生收缩。挤压由一个φ616mm的辊筒和另一个辊筒的相对运动完成,拖动由一个15kw的电机完成。呢毯整理单元主要用以烘干织物和改善手感,由一个3kw的电机拖动一个φ2000mm的大滚筒完成。出布单元由一个1.5kw的电机拖动摆布斗完成。
其工艺流程:进布单元→橡胶毯预缩单元→呢毯整理单元→落布单元。
2 系统配置方案
在本方案中,触摸屏采用日本proface公司生产的gp系列,plc采用西门子公司s7-226系列,变频器采用丹佛斯vlt2900系列,由于该系列变频器内已经内置了rs485接口且支持modbus协议,故这使该系统性价比非常高。s7-226系列的cpu内置了两个通信口,这两个通信口都为rs485接口,均可在三种方式下工作,即ppi方式、mpi方式及自由通信口方式。ppi是point-to-point的缩写,即点对点方式,是西门子公司专为s7-200系列开发的一个通信协议,在本案中,笔者可把其中的一个通信口设置为该方式,用以连接hmi,进而做人机交换信息用。而第二个通信口我们把它设置成自由口通信方式。自由口通信方式是s7-200系列非常有特色的功能。在该方式下,依据和他通信的其他设备的公开的通信协议来编程s7-200的通信。笔者在本方案中用它连接变频器以实现它们之间的相互通信。相关系统框图如图1所示(基于本文阐述的重点,其它的如变频器和电机组成的自反馈系统不再画出和赘述)。
3 自由口通信和modbus协议
自由口通信和modbus协议在s7-226和丹佛斯vlt2900系列变频器的应用过程如下:
3.1通讯协议及其在plc和变频器上的基本设置
既然双方控制器要建立通信,它们必将共同遵循一定的规约,这即称之为协议。本系统中,plc建立的通讯规约将依从于变频器的规约,即modbus协议,这是因为s7-200支持自由口通信模式。
(1)自由口通信模式
cpu串行通信口可由用户程序控制,这种操作模式称作自由口通信模式。在该模式下,用户程序可以使用接受中断、发送中断、发送指令(xmt)和接受指令(rcv)来进行通信操作。利用该模式,plc可以和任意第三方串口进行通信。smb30(用于端口0)和smb130(用于端口1)用于选择波特率、奇偶校验、数据位数和通信协议。
(2)modbus通信协议
modbus通信是一种被用于在智能设备间建立主从方式的通信,它可以通过如rs232c、rs485等多种传输方式进行传播。它分为两种串行传输方式:ascii和rtu(remoteterminalunit,远程测控中断)。它们定义了数据如何打包、解码的不同方式。丹佛斯vlt2900系列支持的是rtu方式,其格式是:
其中奇偶校验和停止位可以是0,即可以没有。
modbus由一个主站(plc)和最多31个从站(本系统中为4个)组成。主站负责发送指令,从站则是响应指令。在某一时刻,只能有一个从站能和主站进行连接。
丹佛斯vlt2900系列变频器内置了rs485物理接口,且同时支持modbus协议。其相关的参数如站地址、波特率、校验等在561#、500#、570#及501#参数组内设置。
3.2 plc和变频器通信的信号格式
(1)丹佛斯vlt2900系列变频器支持标准的modbus-rtu信号,其格式如下:
驱动器地址:本文为变频器地址。值为0~32,若设定为0,即为广播方式,则从plc同时向所有的变频器传送指令信号,而变频器不反馈响应信号。
功能码:丹佛斯vlt2900系列支持以下几种功能码(16进制)。
数据:存储寄存器地址和数据组合构成一组数据。因指令的内容不同数据长度不同。
故障检查:对于rtu方式,一般采用crc-16的方式进行,后面将做进一步的说明
(2)丹佛斯vlt2900系列变频器编址
既然plc与变频器通信时操作对象是存储器,故变频器内部必须有plc能识别的存储器地址相对应。变频器生产厂家不同会导致其编址方法的不同。丹佛斯vlt2900系列变频器编址和你在其说明书上看到的参数号是遵从一等式的,即
参数地址(hex)=[(参数号×10)-1](dec)。
(3)modbus信号举例
通过重写控制字与参考值的方式,启动电机并使之运行在50%的转速下:
指令信号:[01] [0f] [00] [00] [00] [20] [04] [7c] [04] [00] [20] [9d][01]
该指令中:
[01]为驱动器地址
[0f]为功能码,是指本命令为写多个位存储器指令;
[00] [00]指出将要写入数据的起始地址为位存储器的首地址。
[00][20]为写入长度,20hx=32dec位数据。
[04]为要写入位的总字节数为4个。
[7c] [04] 047c是启动电机的控制字内容,在实际传输中为低位前置。
[00] [20]为电机运行的参考值,在实际传输中低位前置。
[9d] [01]为计算出的crc-16值
正常时其响应信号应为:
[01] [0f] [00] [00] [00] [20] [54] [13]
按频率指令60.0hz传送到1#变频器(地址为01),
指令信号:[01][06][04][0f][00][3c][b8][e8]
正常时响应信号为: [01][06][04][0f][00][3c][b8][e8]
3.3信号的发送和接受指令
当信号格式被确定后,笔者所要做的是从plc如何把它们发送出去和如何接收变频器的响应信号了,在自由口模式当中,信号可以用xmt命令发送,用rcv命令接收,另外,还可以利用smb2(接收缓冲字节)配合其它如mov指令等来实现字符的接收。在s7-200系统中,设计了诸如发送完成、接收完成等中断事件,则将很方便的通过它们来控制整个程序的运行。
4 plc程序的设计
(1)数学模型
由于各个单元间是采用线性比例同步的,所以构建其数学模型非常简单,只要使某单元的转速和其相邻上一级单元遵循数学公式v1=k×v2即可。为了调节两单元之间的张力,只需调节两单元间比例k即可。这里需提醒注意的是:某一单元的转速必须以上一级为基础进行比例调节,这样才不至于在调节单元的速度时,影响其它单元间的张力。
(2)程序框图及其说明
程序框图如图2所示。
(3)程序结构说明
程序结构包括主程序、初始化子程序、停车子程序、开车子程序、比例设定子程序和速度计算子程序。其中与通信有关的程序有crc-16校验程序、发送中断程序、接收中断程序等。下面主要介绍一下crc-16校验程序。
crc是 “cyclical rendundancy check” (循环冗余码校验)的英文简称。
crc码为2个字节,16位的二进制值。故又叫crc-16。由发送设备计算crc值,并把它附到信息中去。接收设备在接收信息过程中再次计算crc值并与crc的实际值进行比较,若二者不一致,亦产生一个错误,校验开始时,把16位寄存器的各位都置为“1”,然后把信息中的相邻2个8位字节数据放到当前寄存器中处理,只有每个字符的8位数据用于crc处理。起始位,停止位和校验位不参与crc计算。
crc校验时,每个8位数据与该寄存器的低位内容进行异或运算,然后向最低有效位(lsb)方向移位,同时用零填入最高有效位(msb)后,再对lsb检查,若lsb=1,则寄存器与生成多项式(16#a001)异或,若lsb=0,不作异或运算。
重复上述处理过程,直至移位8次,最后一次(第8次)移位后,下一个8位字节数据与寄存器的当前值异或,再重复上述过程。全部处理完信息中的数据字节后,最终得到的寄存器值为crc值。
在程序编制时,可以使用for/next指令,并使用一次嵌套。在发送时,crc值附加到信息时,低位在先,高位在后。
5 结束语
通过实践证明,该方案使得系统布线变得简单,使系统的抗干扰性明显增强。为该设备的系统升级作出了应有的贡献。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...