引 言:
传统的PLC与变频器之间的接口大多采用的是依靠PLC的数字量输出来控制变频器的启停,依靠PLC的模拟输出来控制变频器的速度给定,这样做存在以下问题:
1、需要控制系统在设计时采用很多硬件,价格昂贵
2、现场的布线多容易引起躁声和干扰
3、PLC 和变频器之间传输的信息受硬件的限制,交换的信息量很少。
4、在变频器的启停控制中由于继电器接触器等硬件的动作时间有延时,影响控制精度。
5、通常变频器的故障状态由一个接点输出,PLC能得到变频器的故障状态,但不
能准确的判断当故障发生时,变频器是何种故障。
如果PLC通过与变频器进行通讯来进行信息交换,可以有效地解决上述问题,通讯方式使用的硬件少,传送的信息量大,速度快,等特点可以有效地解决上述问题,另外,通过网络,可以连续地对多台变频器进行监视和控制,实现多台变频器之间的联动控制和同步控制,通过网络还可以实时的调整变频器的参数。
目前各个厂家的变频器都相继的开发出了支持连网的功能,比如,很多变频器都有了支持现场总线(如:DEVICENET、PROFIBUS、AS_I)等的接口协议,可以很方便的与PLC进行数据通信。本文主要介绍西门子S7-200和MicroMaster变频器之间的通讯协议USS,使用USS通讯协议,用户可以通过程序调用的方式实现S7-200和MicroMaster变频器之间的通信,编程的工作量小,通讯网络由PLC和变频器内置的RS485通讯口和双绞线组成,一台S7-200最多可以和31台变频器进行通讯,这是一种费用低、使用方便的通讯方式。
一、USS通讯协议介绍
USS通讯协议的功能,所有的西门子变频器都带有一个RS485通讯口,PLC作为主站,最多允许31个变频器作为通讯连路中的从站,根据各变频器的地址或者采用广播方式,可以访问需要通讯的变频器,只有主站才能发出通讯请求报文,报文中的地址字符指定要传输数据的从站,从站只有在接到主站的请求报文后才可以向从站发送数据,从站之间不能直接进行数据交换。在使用USS协议之前,需要先安装西门子的指令库。USS协议指令在STEP7—MICRO/WIN32指令树的库文件夹中,STEP7—MICRO/WIN32指令库提供14个子程序、3个中断程序和8条指令来支持USS协议。调用一条指令时,将会自动地增加一个或几个子程序。
USS协议使用CPU的下列资源,
1)USS协议占用PLC的通讯端口0或1,使用USS——INIT指令可以选择PLC的端口是使用USS协议还是PPI协议,选择USS协议后PLC的相应端口不能在做其它用途,包括与STEP7-WICRO/WIN32的通讯,只有通过执行另外一条USS指令或将PLC——CPU的模式开关拨到RUN或STOP状态,才能钟新在进行PPI通讯,当PLC和与变频器通讯中断时,变频器将停止运行,所以在本例中选择CPU226 因为它有两个通讯端口,当第一个口用于USS通讯时,第二个端口可以用于程序监控,USS指令要占用2300~3600字节的程序存储空间和400个字节的变量存储区间
2)变频器的通讯与CPU的扫描时异步的,完成一次变频器的通讯通常需要几个CPU的扫描周期,通讯时间和链路上变频器的台数、波特率和扫描周期有关,本例中通讯的波特率设定为19200,变频器的台数为3台,经实际调试检测通讯时间大约为50ms.
二、使用USS协议的步骤:
1)安装指令库后在STEP7-Micro/win32指令树的/指令/库/USS PROTOOL文件夹中将出现8条指令,用它门来控制变频器的运行和变频器参数的读写操作,这些子程序是西门子公司开发的用户不需要关注这些指令的内部结构,只需要在程序中调用即可。
2)调用USS—INIT初始化改变USS的通讯参数,只需要调用一次即可,在用户程序中每一个被激活的变频器只能用一条USS-DRIVE-CTRL指令,可以任意使用USS-RPM-X 或USS-WPM-X指令,但是每次只能激活其中的一条指令。
3)为USS指令库分配V存储区。在用户程序中调用USS指令后,用鼠标点击指令书中的程序块图标,在探出的菜单中执行库内存命令,为USS指令库使用的397个字节的V存储区指定起始地址,
4)用变频器的操作面板设置变频器的通讯参数,使之与用户程序中所用的波特率和从站地址相一致。
5)连接CPU和变频器之间的通讯电缆,为了提高看干扰能力最好采用屏蔽电缆。
三、USS指令说明
1、初始化指令USS-INIT
初始化指令USS-INIT用于允许或禁止PLC和变频器之间的通讯,在执行其他USS协议前,必须先成功的执行一次USS-INIT指令,只有当该指令成滚执行完成后其完成位(DONE)置位后,才能继续执行下面的指令。次USS-INIT指令的参数如表1所示:
表1 USS-INIT指令的参数
序号 |
参数 |
数据类型 |
参数功能 |
1 |
EN |
BOOL |
该位为1时USS-INIT指令被执行,通常采用脉冲指令 |
2 |
MODE |
BYTE |
用于选择PLC通讯端口的通讯协议,1 选择USS, 0选择PPI |
3 |
BAUD |
INT |
指定通讯的波特率, |
4 |
ACTIVE |
DINT |
用于设定链路上的哪个变频器被激活,ACTIVE共32位,0~31分别对应通讯链路上的0到31台变频器。例如:ACTIVE的给定值为
16#0000 0000 0000 0010时,表示链路上的第二台变频器被激活。被激活的变频器自动地与主站PLC进行通讯,以控制其运行和采集其状态。 |
5 |
DONE |
BIT |
当USS-INIT指令正确执行完成后该位置1 |
6 |
ERROR |
BYTE |
在USS-INIT指令执行有错误时该字节包含错误代码 |
2、控制指令USS-CTRL
USS-CTRL指令用于控制已经用USS-INIT激活了的变频器,每台变频器只能使用一条这样的指令,该指令将用户命令放在一个通讯缓冲区内,如果指令的参数DRIVE指定的变频器已经激活,缓冲区内的命令将被发送到指定的变频器,该指令的参数如表2所示:
表2 USS-CTRL指令的参数
序号 |
参数 |
数据类型 |
参数功能 |
1 |
EN |
BOOL |
该位为1时USS-CTRL指令被执行,通常该指令总是处于使能状态。 |
2 |
RUN |
BOOL |
该命令用于控制变频器的启动停止状态, RUN=1 OFF2=0,OFF3=0时变频器启动; RUN=0 变频器停止; |
3 |
OFF2 |
BOOL |
该命令用于控制变频器的停车方式, 当OFF2=1时选择自由停车方式。 |
4 |
OFF3 |
BOOL |
该命令用于控制变频器的停车方式, 当OFF3=1时选择制动停车方式。 |
5 |
F-ACK |
BOOL |
该命令用于复位变频器,当F-ACK=1时变频器复位。 |
6 |
DIR |
BOOL |
该命令用于控制变频器的运行方向,当DIR=1时变频器正转;当DIR=0时变频器反转。 |
7 |
Drive |
BYTE |
该命令用于设定变频器的站地址,指定该CTRL指令的命令要发送到那台变频器 |
8 |
Type |
BYTE |
变频器的类型:Type=1 M440 系列的变频器; Type=0其它系列的变频器。 |
9 |
Speed_SP |
REAL |
该指令用满速的百分比表示变频器速度的设定值(-200.0~200.0%)改制为负数时变频器反转。 |
10 |
Resp_R |
BOOL |
变频器的返回信号,处于激活状态的变频器在收到控制命令后产生一个回馈信号,当CPU从变频器收到一个信号后接通一个扫描周期。 |
11 |
Error |
BYTE |
当变频器产生错误时该字节包含错误代码。 |
12 |
Status |
INT |
变频器返回的状态信号。 |
13 |
Speed |
DINT |
变频器返回的实际运行速度 |
14 |
Run_EN |
BOOL |
变频器返回的运行状态信号 1 代表变频器正在运行,0代表变频已停止 |
15 |
D_Dir |
BOOL |
变频器返回的运行方向信号 1 代表变频器正转,0代表变频反转 |
16 |
Inhibit |
BOOL |
变频器返回的禁止状态信号 1代表变频器禁止,0代表变频器开放。 |
17 |
Fault |
BOOL |
变频器返回的故障状态信号 1代表变频器有故障,0代表变频器五故障。 |
3、读取变频器参数的USS_RPM_X指令
读取变频器参数的指令包括USS_RPM_W; USS_RPM_D; USS_RPM_R三条指令,分别用于读取变频器的一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表3所示:
表3 USS_RPM_X指令的参数
序号 |
参数 |
数据类型 |
参数功能 |
1 |
EN |
BOOL |
该位为1时启动请求的发送,并且要保持该位为1直到Done位为1标志着整个参数读取过程完成。 |
2 |
XMT-REQ |
BOOL |
该位为1时读取参数指令的请求发送给此变频器,该位和EN位通常用一个信号,但该请求通常用脉冲信号。 |
3 |
Drive |
BYTE |
该指令要读的那台变频器的站地址。 |
4 |
Param |
INT |
该指令要读取的变频器参数的编号。 |
5 |
Index |
INT |
该指令要读取的变频器参数的下标。 |
6 |
DB_Ptr |
DINT |
该参数指定16字节的存储空间,用于存放向变频器发送的命令。 |
7 |
Done |
BOOL |
该指令执行完成标志位。 |
8 |
Error |
BYTE |
当指令执行错误时该字节包含错误代码。 |
9 |
Value |
INT |
由变频器返回的参数值。 |
4、写变频器参数的USS_WPM_X指令
写变频器参数的指令包括USS_WPM_W; USS_WPM_D; USS_WPM_R三条指令,分别用于向指定变频器写入一个无符号字,一个无符号双字和一个实数类型的参数,该指令的参数如表4所示:
表4 USS_WPM_X指令的参数
序号 |
参数 |
数据类型 |
参数功能 |
1 |
EN |
BOOL |
该位为1时启动请求的写操作,并且要保持该位为1直到Done位为1标志着整个参数的写操作过程完成。 |
2 |
XMT-REQ |
BOOL |
该位为1时写参数指令的请求发送给比变频器,该位和EN位通常用一个信号,但该请求通常用脉冲信号。 |
3 |
EEPROM |
BOOL |
该参数为1时写入到变频器的参数同时存储在变频器的EEPROM和ROM当中,该参数为0时写入到变频器的参数只存储在变频器的ROM当中。 |
4 |
Drive |
BYTE |
该指令要写的那台变频器的站地址。 |
5 |
Param |
INT |
该指令要写的变频器参数的编号。 |
6 |
Index |
INT |
该指令要写的变频器参数的下标。 |
7 |
Value |
DINT |
写入到变频器中的参数值。 |
8 |
DB_Ptr |
BOOL |
该参数指定16字节的存储空间,用于存放向变频器发送的命令。 |
9 |
Done |
BYTE |
该指令执行完成标志位。 |
10 |
Error |
INT |
当指令执行错误时该字节包含错误代码。 |
四、在使用USS协议时变频器的相关参数设定如下(以MM440为例)
1、P0003=3 允许访问变频器的所有参数。
2、P0970=1 允许变频器通过参数复位。
3、P0700=5 变频器的控制方式选择为通讯方式。
4、P2010[2>=6 变频器的USS波特率选择为9600
5、P2011[0>=11 变频器的USS地址0~31
五、应用实例
1、控制说明
自动化生产线运载小车是工业自动化生产过程中一种非常实用的机械,它主要用在工厂的自动化生产上不同的生产线之间以及不同的工位之间的物料搬运。它的一个完整的动作周期包括:当一个工位需要装配零件时,该工位的操作者在该工位的操作盘上输入需要的零件名称,输入的信号通过MIS(或ERP)系统生成一个作业信息,该作业信息包括所需零件的存放位置,零件的外型尺寸及所需工位的工位号,然后,MIS(或ERP)系统把该作业信息发送到运载小车的控制系统中,如果运载小车正在作上次接收到作业,则本次下发的作业信息存储到运载小车的作业队列中,前面所接收到作业做完后执行该作业,执行该作业的步骤是运行到取料位置,根据零件的外型尺寸,决定取料时升降和左、右的运行位移,取料完成后,带载运行到所需零件的工位.运载小车动作过程可分为前进、后退;上升、下降;向左、向右,三个方向的运动,在控制系统的设计上,前后运行采用一台变频器,上升下降运行采用一台变频器;左右运行采用一台变频器。控制系统采用西门子S7-200系列的CPU226,CPU226和三台变频器之间采用USS协议进行通讯,系统的硬件配置如下图所示:
图1:系统的硬件配置图
2、USS通讯的控制程序:
六、结语
本文主要介绍西门子S7-200和MicroMaster变频器之间的通讯协议USS,使用USS通讯协议,用户可以通过程序调用的方式实现S7-200和MicroMaster变频器之间的通信,编程的工作量小,通讯网络由PLC和变频器内置的RS485通讯口和双绞线组成,一台S7-200最多可以和31台变频器进行通讯,这是一种费用低使用方便的通讯方式。.本系统已多次成功应用。
参考文献:
1、《交流调速系统》刘竞成 上海交大出版社 1998
2、《西门子MM440 变频器用户手册》
3、《S7-200 用户手册》
Liuhongbin
(Automation college of Science & Technology Institute of Taiyuan 030024)
Abstract: Communication between PLC and inventer were been widely used in the various field of industry, and many manufacturer had developed their communication protocol (such as PROFIBUS,DEVICENET CONTROLNET), this paper just give a brief introduction of USS protocol that was developed by Siemens Company, also give a example based on the S7-200 PLC and MM440 Inventor.
Key words: USS protocol、PLC、Inventor