1、USS协议的简单介绍
USS(UniversalSerialInter,即通用串行通信接口)是西门子专为驱动装置开发的通信协议。USS用于对驱动装置进行参数化操作,即更多地面向参数设置。在驱动装置和操作面板、调试软件(如DriveES/STARTER)的连接中得到广泛的应用。USS因其协议简单、硬件要求较低,也越来越多地用于和控制器(如PLC)的通信,实现通信控制。
注意:USS提供了一种低成本的,比较简易的通信控制途径,由于其本身的设计,USS不能用在对通信速率和数据传输量有较高要求的场合。在进行系统设计时,必须考虑到USS的这一局限性。
2、USS协议的基本特点
2.1、支持多点通信(因而可以应用在RS485等网络上)
2.2、采用单主站的“主-从”访问机制
2.3、一个网络上最多可以有32个节点(最多31个从站)
2.4、简单可靠的报文格式,使数据传输灵活高效容易实现,成本较低
USS的工作机制是,通信总是由主站发起,USS主站不断循环轮询各个从站,从站根据收到的指令,决定是否、以及如何响应。从站永远不会主动发送数据。
从站在以下条件满足时应答:接收到的主站报文没有错误,并且本从站在接收到主站报文中被寻址
上述条件不满足,或者主站发出的是广播报文,从站不会做任何响应。对于主站来说,从站必须在接收到主站报文之后的一定时间内发回响应。否则主站将视为出错。
3、S7-200CPU通信接口引脚分配
以西门子S7-200和西门子变频器MM440之间的连接为例。将MM440的通信端子为P+(29)和N-(30)分别接至S7-200通信口的3号与8号针即可。
4、USS协议专用指令
使用USS指令,首先要安装指令库,正确安装结束后,打开指令树中的“库”项,出现多个USS协议指令,如图所示,且会自动添加一个或几个相关的子程序。
4.1、USS_INT指令
(1)仅限为通信状态的每次改动执行一次USS_INIT指令。使用边缘检测指令,以脉冲方式打开EN输入。欲改动初始化参数,执行一条新的USS_INIT指令。
(2)“Mode”输入数值选择通信协议:输入值1将端口分配给USS协议,并启用该协议;输入值0将端口分配给PPI,并禁止USS协议。
(3)“Baud”将波特率设为1200、2400、4800、9600、19 200、38 400、57 600或115 200。
(4)“Active”表示激活驱动器。某些驱动器仅支持地址0~31。每一位对应一台变频器,如图22-3所示。如第0位为1表示激活0号变频器,激活的变频器自动地被轮询,以控制其运行和采集其状态。
4.2、USS_CTRL指令
USS_CTRL指令用于控制处于激活状态的变频器,每台变频器只能使用一条该指令。
指令说明:
(1)USS_CTRL(端口0)或USS_CTRL_P1(端口1)指令被用于控制ACTIVE(激活)驱动器。USS_CTRL指令将选择的命令放在通信缓冲区中,然后送至编址的驱动器DRIVE(驱动器)参数,条件是已在USS_INIT指令的ACTIVE(激活)参数中选择该驱动器。
(2)仅限为每台驱动器指定一条USS_CTRL指令。
(3)某些驱动器仅将速度作为正值报告。如果速度为负值,驱动器将速度作为正值报告,但逆转D_Dir(方向)位。
(4)EN位必须为ON,才能启用USS_CTRL指令。该指令应当始终启用。
(5)RUN表示驱动器是ON还是OFF。当RUN(运行)位为ON时,驱动器收到一条命令,按指定的速度和方向开始运行。为了使驱动器运行,必须符合以下条件:
1)DRIVE(驱动器)在USS_INIT中必须被选为ACTIVE
( 激活)。
2)OFF2和OFF3必须被设为0。
3)Fault(故障)和Inhibit(禁止)必须为0。
(6)当RUN为OFF时,会向驱动器发出一条命令,将速度降低,直至电动机停止。OFF2位被用于允许驱动器自由降速至停止。OFF2被用于命令驱动器迅速停止。
(7)Resp_R(收到应答)位确认从驱动器收到应答。对所有的激活驱动器进行轮询,查找最新驱动器状态信息。每次S7-200从驱动器收到应答时,Resp_R位均会打开,进行一次扫描,所有数值均被更新。
(8)F_ACK(故障确认)位被用于确认驱动器中的故障。当F_ACK从0转为1时,驱动器清除故障
(9)DIR(方向)位用来控制电动机转动方向。
(10)Drive(驱动器地址)输入是MicroMaster驱动器的地址,向该地址发送USS_CTRL命令。有效地址:0~31。
(11)Type(驱动器类型)输入选择驱动器的类型。将MicroMaster 3(或更早版本)驱动器的类型设为0,将MicroMaster 4驱动器的类型设为1。
(12)Speed_SP(速度设定值)是作为全速百分比的驱动器速度。Speed_SP的负值会使驱动器反向旋转方向,其范围为-200.0%~200.0%。
(13)“Fault”表示故障位的状态(0—无错误,1—有错误),驱动器显示故障代码(有关驱动器信息,请参阅用户手册)。欲清除故障位,纠正引起故障的原因,并打开F_ACK位。
(14)Inhibit表示驱动器上的禁止位状态(0—不禁止,1—禁止)。欲清除禁止位,故障位必须为OFF,运行、OFF2和OFF3输入也必须为OFF。
(15)D_Dir表示驱动器的旋转方向。
(16)Run_EN(运行启用)表示驱动器是在运行(1)还是停止(0)。
(17)Speed是以全速百分比表示的驱动器速度,其范围为:-200.0%~200.0%。
(18)Staus是驱动器返回的状态字原始数值。
(19)Error是一个包含对驱动器最新通信请求结果的错误字节。USS指令执行错误主题定义了可能因执行指令而导致的错误条件。
(20)Resp_R(收到的响应)位确认来自驱动器的响应。对所有的激活驱动器都要轮询最新的驱动器状态信息。每次S7-200接收到来自驱动器的响应时,每扫描一次,Resp_R位就会接通一次并更新所有相应的值。
4.3、USS_RPM
USS_RPM指令用于读取变频器的参数,USS协议有3条读指令:
(1)USS_RPM_W指令读取一个无符号字类型的参数。
(2)USS_RPM_D指令读取一个无符号双字类型的参数。
(3)USS_RPM_R指令读取一个浮点数类型的参数。
指令说明:
(1)一次仅限将一条读取(USS_RPM_x)或写入(USS_WPM_x)指令设为激活。
(2)EN位必须为ON,才能启用请求传送,并应当保持ON,直至设置“完成”位,表示进程完成。例如,当XMT_REQ输入为ON,在每次扫描时向MicroMaster传送一条USS_RPM_x请求。因此,XMT_REQ输入应当通过一个脉冲方式打开。
(3)“Drive”输入是MicroMaster驱动器的地址,USS_RPM_x指令被发送至该地址。单台驱动器的有效地址是0~31。
(4)“Param”是参数号码。“Index”是需要读取参数的索引值。“数值”是返回的参数值。必须向DB_Ptr输入提供16个字节的缓冲区地址。该缓冲区被USS_RPM_x指令用于存储向MicroMaster驱动器发出的命令结果。
(5)当USS_RPM_x指令完成时,“Done”输出ON,“Error”输出字节和“Value”输出包含执行指令的结果。 “Error”和“Value”输出在“Done”输出打开之前无效。
4.4、USS_WPM
USS_WPM指令用于写入变频器的参数,USS协议共有3种写入指令:
(1)USS_WPM_W(端口0)或USS_WPM_W_P1(端口1)指令写入不带符号的字参数。
(2)USS_WPM_D(端口0)或USS_WPM_D_P1(端口1)指令写入不带符号的双字参数。
(3)USS_WPM_R(端口0)或USS_WPM_R_P1(端口1)指令写入浮点。
指令说明:
(1)一次仅限将一条读取(USS_RPM_x)或写入(USS_WPM_x)指令设为激活。
(2)当MicroMaster驱动器确认收到命令或发送一则错误条件时,USS_WPM_x事项完成。当该进程等待应答时,逻辑扫描继续执行。
(3)EN位必须为ON,才能启用请求传送,并应当保持打开,直至设置“Done”位,表示进程完成。例如,当XMT_REQ输入为ON,在每次扫描时向MicroMaster传送一条USS_WPM_x请求。因此,XMT_REQ输入应当通过一个脉冲方式打开。
(4)当驱动器打开时,EEPROM输入启用对驱动器的RAM和EEPROM的写入,当驱动器关闭时,仅启用对RAM的写入。请注意,该功能不受MM3驱动器支持,因此该输入必须关闭。
(5)其他参数的含义及使用方法参考USS_RPM指令。
5、实际举例
5.1、USS初始指令
5.2、USS控制命令
5.3、USS读指令
5.4、USS写指令