V20变频器USS报文解析实例
西门子V20, G120等变频器支持USS通信协议。在小型自动化系统中,USS协议仍然被广泛采用。如果使用西门子S7-200 SMART或者S7-1200等PLC与变频器进行USS通信,通过使用库程序,无需了解USS报文细节即可编程实现通信连接。如果需要使用客户自定义的上位机(单片机系统或者PC程序)与西门子变频器进行USS通信,或者使用串口调试助手来诊断变频器的USS通信接口时,则需要了解USS的报文细节。
本文通过读写参数的实例来详细解析V20变频器的USS报文。
USS 协议是一个主从式的异步串行数据通信协议。主要特点如下:
支持多点通信RS485底层,也支持点对点通信RS232底层
主从访问模式
单主站系统
多31个从站
报文长度固定或可变
与Profibus总线数据传输模式相同
简单、可靠的报文,轻松应用于用户的系统
USS通信主站可以是一台 PLC (例如:SIMATIC S7-200 SMART)、一台 PC或者一个单片机系统。此时,变频器始终是从站。主站发送报文,相应的从站响应报文。从站之间不能直接通信。
USS通信报文结构如下图所示。
下面通过读写V20变频器参数的实例来解析USS通信报文。实例包含两部分:
1. 通过USS通信读取V20变频器参数p3984
2. 通过USS通信修改V20变频器参数p3984
1
V20变频器USS通信参数设置
该实例中V20变频器USS通信相关的参数设置如下表所示:
2
通过USS通信读取V20变频器参数
PZD长度2,PKW长度可变. 读p3984(客户端报文间断时间)。
2.1 请求报文
上位机发送请求报文如下:
STX:帧起始,USS协议中固定为02
LGE:帧长度,从ADR到BCC的总字节数为14
ADR:变频器的USS地址,与参数p2011一致
PKE:
IND:
PWE1:读参数时可为任意值
PWE2:读参数时可为任意值
PZD1:过程数据,STW控制字
PZD1:过程数据,HSW主设定值
BCC:异或校验码,从STX开始到BCC之前的后一个字节,逐字节按位异或计算得到。
2.2 响应报文
变频器返回响应报文如下:
PKE:
PWE1:读取到的参数值,0x03E8=1000
PZD1:过程数据,ZSW状态字
PZD2:过程数据,HIW实际输出频率
3
3通过USS通信修改V20变频器参数
PZD长度2,PKW长度可变. 写P3984(客户端报文间断时间)=2000ms。
3.1 请求报文
STX:帧起始,USS协议中固定为02
LGE:帧长度,从ADR到BCC的总字节数为14
ADR:变频器的USS地址,与参数p2011一致
PKE:
IND:
PWE1:0x07D0,参数值为2000
PWE2:写U16时,PKW长度为127时可为任意值;写U16时,PKW长度为4时为写入值
PZD1:过程数据,STW控制字
PZD1:过程数据,HSW主设定值
BCC:异或校验码
3.2 响应报文
PKE:
PWE1:传送单字参数,0x07D0=2000
PZD1:过程数据,ZSW状态字
PZD2:过程数据,HIW实际输出频率
4
USS通信读写浮点数类型的参数
变频器部分参数为32位浮点数类型,USS通信同样可以访问这种类型的参数。例如:读取某浮点数类型参数,当参数值为时,USS通信返回值为42C80000,转换为二进制:0 0 ,转换为浮点数表示形式如下(IEEE754标准):
实际值可以用以下公式计算:
尾数的权重从左到右依次为2的-1,-2,-3……次方。
所以42C80000表示如下:
其中M=0.5+0.0625=0.5625