首页 历史故事USS协议通信优化策略分析

USS协议通信优化策略分析

【摘要】:S7-1200 PLC串口通信模块可使用USS协议库来控制支持USS通信协议的SIEMENS变频器。USS协议只能用于CM1241 RS485通信模块,不能用于CM1241 R232通信模块。默认情况下,USS协议库在每次通信中自动重试最多2次。表8-22 通信波特率与最小USS_PORT时间间隔的对应关系2.应用举例本例的通过USS电缆连接MM440变频器和S7-1200 PLC,实现S7-1200 PLC与MM440变频器的USS通信。

S7-1200 PLC串口通信模块可使用USS协议库来控制支持USS通信协议的SIEMENS变频器。USS(Universal Serial Interface,通用串行通信接口)是西门子专为驱动装置开发的通信协议。USS协议的基本特点是:支持多点通信,采用单主站的主从访问机制,每个网络上最多可以有32个节点,报文格式简单可靠,数据传输灵活高效,容易实现,成本较低。

USS的工作机制是:通信总是由主站发起,USS主站不断循环轮询各个从站,从站根据收到的指令,决定是否以及如何响应,从站不会主动发送数据。从站在接收到的主站报文没有错误且本从站在接收到主站报文中被寻址时应答,否则从站不会做任何响应。对于主站来说,从站必须在接收到主站报文之后的一定时间内发回响应,否则主站将视为出错。

USS的字符传输格式符合UART规范,即使用串行异步传输方式。USS在串行数据总线上的字符传输帧为11位长度,如表8-15所示。

表8-15 USS字符帧

978-7-111-34922-8-Chapter08-81.jpg

USS协议的报文简洁可靠,高效灵活。报文由一连串的字符组成,协议中定义了它们的特定功能,如表8-16所示。其中,每小格代表一个字符(字节),STX表示起始字符,总是02h,LGE表示报文长度,ADR表示从站地址及报文类型,BCC表示BCC校验符。

表8-16 USS报文结构

978-7-111-34922-8-Chapter08-82.jpg

净数据区由PKW区和PZD区组成,如表8-17所示。PKW区域用于读写参数值、参数定义或参数描述文本,并可修改和报告参数的改变。其中,PKE为参数ID,包括代表主站指令和从站响应的信息以及参数号等,IND为参数索引,主要用于与PKE配合定位参数,PWEm为参数值数据。PZD区域用于在主站和从站之间传递控制和过程数据,控制参数按设定好的固定格式在主、从站之间对应往返。如PZD1为主站发给从站的控制字/从站返回给主站的状态字,而PZD2为主站发给从站的给定值/从站返回给主站的实际反馈值。

表8-17 USS净数据区

978-7-111-34922-8-Chapter08-83.jpg

根据传输的数据类型和驱动装置的不同,PKW和PZD区的数据长度都不是固定的,它们可以灵活改变以适应具体的需要。但是,在用于与控制器通信的自动控制任务时,网络上的所有节点都要按相同的设定工作,并且在整个工作过程中不能随意改变。PKW可以访问所有对USS通信开放的参数,而PZD仅能访问特定的控制和过程数据。PKW在许多驱动装置中是作为后台任务处理的,因此PZD的实时性要比PKW好。

1.USS指令

S7-1200 PLC提供的USS协议库包含于变频器通信的指令USS_DRV、USS_PORT、USS_RPM和USS_WPM,可以通过这些指令来控制变频器、读写变频器的参数。USS协议只能用于CM1241 RS485通信模块,不能用于CM1241 R232通信模块。每个CM1241 RS485通信模块最多只能与16个变频器通信。

(1)USS_DRV指令

通过创建消息请求和解释从变频器的响应信息来与变频器交换数据。每个变频器要使用一个单独的功能块,但在同一USS网络中必须使用同一个背景数据块。背景数据块中包含一个USS网络中所有变频器的临时存储区和缓冲区。USS_DRV功能块的输入对应变频器的状态,输出对应对变频器的控制。USS_DRV指令块如图8-59所示,其参数含义如表8-18所示。

978-7-111-34922-8-Chapter08-84.jpg

图8-59 USS_DRV指令块

表8-18 USS_DRV参数含义

978-7-111-34922-8-Chapter08-85.jpg

(续)

978-7-111-34922-8-Chapter08-86.jpg

(2)USS_PORT指令

USS_PORT指令用于处理USS网络上的通信。在程序中每个USS网络仅使用一个USS_PORT指令。每次执行USS_PORT指令仅处理与一个变频器的数据交换,所以必须频繁执行USS_PORT指令以防止变频器通信超时。USS_PORT通常在一个延时中断OB中调用以防止变频器通信超时,并给USS_DRV提供新的USS数据。USS_PORT指令如图8-60所示,其参数含义如表8-19所示。

978-7-111-34922-8-Chapter08-87.jpg

图8-60 USS_PORT指令块

表8-19 USS_PORT参数含义

978-7-111-34922-8-Chapter08-88.jpg

(3)USS_RPM指令

USS_RPM指令从变频器读取一个参数的值,必须在OB1中调用。USS_RPM指令如图8-61所示,其参数含义如表8-20所示。

978-7-111-34922-8-Chapter08-89.jpg

图8-61 USS_RPM指令块

表8-20 USS_RPM参数含义

978-7-111-34922-8-Chapter08-90.jpg

(4)USS_WPM指令

USS_WPM指令用于更改变频器某一个参数的值,必须在OB1中调用。USS_WPM指令如图8-62所示,其参数含义如表8-21所示。

978-7-111-34922-8-Chapter08-91.jpg

图8-62 USS_WPM指令块

表8-21 USS_WPM参数含义

978-7-111-34922-8-Chapter08-92.jpg

(续)

978-7-111-34922-8-Chapter08-93.jpg

USS_RPM指令和USS_WPM指令在程序中可多次调用,但同一个时间只能激活一个与同一变频器的读写请求。另外要注意与变频器通信所需时间的计算:USS库与变频器的通信异步于S7-1200 PLC的扫描。在一次与变频器的通信时间内,S7-1200 PLC通常可完成几次扫描。对于主站来说,从站必须在接收到主站报文之后的一定时间内发回响应,否则主站将视为出错。

USS_PORT时间间隔为与每台变频器通信所需要的时间。表8-22给出了通信波特率与最小USS_PORT时间间隔的对应关系。以小于USS_PORT时间间隔的周期来调用USS_PORT功能块并不会增加通信次数。变频器超时间隔是指当通信错误导致3次重试来完成通信时所需要的时间。默认情况下,USS协议库在每次通信中自动重试最多2次。

表8-22 通信波特率与最小USS_PORT时间间隔的对应关系

978-7-111-34922-8-Chapter08-94.jpg

2.应用举例

本例的通过USS电缆连接MM440变频器和S7-1200 PLC,实现S7-1200 PLC与MM440变频器的USS通信。

(1)MM440参数设置

假定已完成了变频器的基本参数设置和调试(如电动机参数辨识等),下面只涉及与USS通信相关的参数。与S7-1200 PLC实现USS通信时,需要设置的主要有“控制源”和“设定源”两组参数。要设置此类参数,需要“专家”级参数访问级别,即要将P0003参数设置为3。

将控制源参数P0700设置为5,表示变频器从端子(COM Link)的USS接口接受控制信号。此参数有分组,此处仅设置第一组,即P0700.0=5。

设定源参数P1000.0=5,表示变频器从端子(COM Link)的USS接口接受设定值。

P2009参数决定是否对COM Link上的USS通信设定值规格化,即设定值是以运转频率的百分比形式表示还是绝对频率值。若设定P2009=0,则对USS通信设定值进行不规格化,即设定为MM440中的频率设定范围的百分比形式;若设定P2009=1,则对USS通信设定值进行规格化,即设定值为绝对的频率数值。

P2010参数用于设置COM Link上的USS波特率。P2010=6表示波特率为9600bit/s。

P2011参数用于设置变频器COM Link上的USS通信口在网络上的从站地址。

P2012设置为2,即USS PZD区长度为2 B。

P2013设置为127,即USS PKW区的长度可变。

P2014参数设置COM Link上的USS通信控制信号中断超时时间,单位为ms,如设置为0,则不进行此端口上的超时检查。

P0971=1将上述参数保存,如MM440的EEPROM中。

(2)编写程序

在S7-1200 PLC的OB1中编写程序如图8-63所示。其中,程序段1用来与MM440进行交换数据,从而读取MM440的状态以及控制MM440的运行;程序段2用于通过USS通信从MM440读取参数;程序段3用于通过USS通信设置MM440的参数。需要注意的是,对读、写参数指令块编程时,各个数据的数据类型一定要正确对应。

978-7-111-34922-8-Chapter08-95.jpg

图8-63 OB1程序

978-7-111-34922-8-Chapter08-96.jpg

图8-63 OB1程序(续)

根据表8-22所示USS_PORT通信时间的处理,新建一个循环时间为150 ms的循环中断组织块,在其中编写程序如图8-64所示,从而防止变频器超时。

978-7-111-34922-8-Chapter08-97.jpg

图8-64 循环中断组织块程序