USS (Universal Serial Interface, 即通用串行通信接口) 是西门子专为驱动装置开发的通信协议,多年来也经历了一个不断发展、完善的过程。最初 USS 用于对驱动装置进行参数化操作,即更多地面向参数设置。在驱动装置和操作面板、调试软件(如DriveES/STARTER)的连接中得到广泛的应用。近来 USS 因其协议简单、硬件要求较低,也越来越多地用于和控制器(如 PLC)的通信,实现一般水平的通信控制。
注意:USS 提供了一种低成本的,比较简易的通信控制途径,由于其本身的设计,USS 不能用在对通信速率和数据传输量有较高要求的场合。在这些对通信要求高的场合,应当选择实时性更好的通信方式,如 PROFIBUS-DP 等。在进行系统设计时,必须考虑到 USS 的这一局限性。
例如,如果在一些速度同步要求比较高的应用场合(如造纸生产线),对十几甚至数十台变频器采用 USS 通信控制,其效果可想而知。
USS 协议的基本特点如下:
支持多点通信(因而可以应用在 RS 485 等网络上)
采用单主站的“主-从”访问机制
一个网络上最多可以有 32 个节点(最多 31 个从站)
简单可靠的报文格式,使数据传输灵活高效
容易实现,成本较低
USS 的工作机制是,通信总是由主站发起,USS 主站不断循环轮询各个从站,从站根据收到的指令,决定是否、以及如何响应。从站永远不会主动发送数据。从站在以下条件满足时应答:
接收到的主站报文没有错误,并且
本从站在接收到主站报文中被寻址
上述条件不满足,或者主站发出的是广播报文,从站不会做任何响应。
对于主站来说,从站必须在接收到主站报文之后的一定时间内发回响应。否则主站将视为出错。
USS 字符帧格式
USS 的字符传输格式符合 UART 规范,即使用串行异步传输方式。USS 在串行数据总线上的字符传输帧为 11 位长度,包括:
连续的字符帧组成 USS 报文。 在一条报文中,字符帧之间的间隔延时要小于两个字符帧的传输时间(当然这个时间取决于传输速率)。
S7-200 CPU 的自由口通信模式正好能够支持上述字符帧格式。把 S7-200 的自由口定义为以上字符传输模式,就能通过编程,实现 USS 协议报文的发送和接收。主站控制器所支持的通信模式必须和所要控制的驱动装置所要求的一致,这是实现 S7-200 和西门子驱动装置通信的基础。
USS 报文帧格式
USS 协议的报文简洁可靠,高效灵活。报文由一连串的字符组成,协议中定义了它们的特定功能:
以上每小格代表一个字符(字节)。其中:
STX:起始字符,总是 02 h
LGE:报文长度
ADR:从站地址及报文类型
BCC:BCC 校验符
在 ADR 和 BCC 之间的数据字节,称为 USS 的净数据。主站和从站交换的数据都包括在每条报文的净数据区域内。
净数据区由 PKW 区和 PZD 区组成:
以上每小格代表一个字(两个字节)。
PKW:此区域用于读写参数值、参数定义或参数描述文本,并可修改和报告参数的改变 。其中:
PKE:参数 ID。包括代表主站指令和从站响应的信息,以及参数号等
IND:参数索引,主要用于与 PKE 配合定位参数
PWEm:参数值数据
PZD:此区域用于在主站和从站之间传递控制和过程数据。控制参数按设定好的固定格式在主、从站之间对应往返。如:
PZD1:主站发给从站的控制字/从站返回主站的状态字
PZD2:主站发给从站的给定/从站返回主站的实际反馈
PZDn:……
根据传输的数据类型和驱动装置的不同,PKW 和 PZD 区的数据长度都不是固定的,它们可以灵活改变以适应具体的需要。但是,在用于与控制器通信的自动控制任务时,网络上的所有节点都要按相同的设定工作,并且在整个工作过程中不能随意改变。