项目11S7-200与变频器的USS通信11.1学习目标通过本项目的学习与训练,使学生在了解自由口通信模式、USS协议、自由口通信指令、USS指令库的基础上,通过简单的实例训练,最终能够独立完成S7-200与MM4系列变频器的USS通信连接、参数设置、系统调试、故障诊断等任务,并达到以下目标。11.1.1知识目标了解S7-200PLC自由口通信模式,掌握USS通信协议的特点及应用情况,知道西门子有哪些设备支持USS通信协议;理解S7-200PLC的自由口通信协议控制字(SMB30和SMB130)各位的意义,知道如何将S7-200PLC的通信端口设置为USS方式;知道如何设置MM4系列变频器的相关参数,使其能够通过USS协议与S7-200PLC建立通信连接;理解USS通信指令的功能,掌握USS通信指令的使用步骤。11.1.2技能目标能够熟练使用S7-200PLC的发送指令(XMT)、接收指令(RCV)或USS指令(USS_INT、USS_CTRL、USS_RPM_x、USS_WPM_x),通过合理设置通信端口的自由口通信模式,建立S7-200PLC与西门子变频器之间的通信连接,编写设备调试程序,最终能够实现用S7-200PLC的通信端口控制变频器的运行、停止、改变输出频率等目的。11.2知识准备11.2.1USS通信概述1.USS协议简介USS(UniversalSerialInterfaceProtocol,通用串行接口协议)协议是西门子公司为其变频器所开发的通用通信协议,可以支持变频器与PC或PLC之间的通信连接,是一种基于串行总线进行数据通信的协议。S7-200PLC可以将其通信端口设置为自由口模式的USS协议,以便实现PLC对变频器的控制。USS协议是主-从结构协议,规定了在USS总线上可以有一个主站(PLC)和最多31个从站(变频器);总线上的每个从站都有唯一的标识码(即站地址,在从站参数中设定),主站依靠标识码识别各个从站;每个从站也只对主站发来的报文做出响应并回送报文,从站之间不能直接进行数据通信。另外,还有一种广播通信方式,主站可以同时给所有从站发送报文,从站在接收到报文并做出相应的响应后可不回送报文。1USS协议的波特率最高可达187.5kbps,通信字符格式为1位起始位、1位停止位、1位偶校验位和8位数据位。USS通信的刷新周期与PLC的扫描周期是不同步的,一般完成一次USS通信需要几个PLC扫描周期,通信时间和链路上变频器的台数、波特率和扫描周期有关。例如,如果通信的波特率设定为19.2kbps,3台变频器,经实际调试检测通信时间大约为50ms。2.USS协议的数据报文结构USS协议中每一报文都是以字符STX(=02hex)开始,接着是长度的说明(LGE)和地址字节(ADR),随后是数据字符1~n,报文以数据块的检验符(BCC)结束,其报文结构如图11-1所示。STXLGEADR12……nBCC数据字符图11-1USS协议数据报文结构STX区为1个字节的ASCII字符,固定为02hex,表示一条信息的开始。LGE区为1个字节,指明这一条信息中后跟的字节数目。报文的长度是可以变化的,其长度必须在报文的第2个字节(即LGE)中说明。总线上的各个从站节点可以采用不同长度的报文。一条报文的最大长度是256个字节。LGE是根据所采用的数据字符数(数量n)、地址字节(ADR)和数据块检验字符(BCC)确定。显然,实际的报文总长度比LGE要多2个字节,因为字节STX和LGE没有计算在LGE以内。ADR区为一个字节,标志从站地址。Bit0-Bit4表示变频器的地址,从站地址可以是0-31。Bit5是广播位标志位,如果这一位设置为1,该报文就是广播报文,对串行链路上的所有节点都有效。Bit6表示镜像报文,如果这一位设置为1,节点号需要判定,被寻址的从站将未加更改的报文返回给主站。其余不用的位应设置为0。BCC区是长度为一个字节的校验和,用于检查该报文是否有效。它是该报文中BCC前面所有字节“异或”运算的结果。数据区由参数标志值域(PKW)和过程数据域(PZD)组成,典型USS报文的数据区结构如图11-2所示。PKEINDPWEPZD1……PZDmPKWPZD数据区图11-2USS报文的数据区结构PKW域由参数标志(PKE)、参数标号(IND)和参数值(PWE)3部分构成。PKE为参数标志码,1字长,PNU(bit0~10)表示参数号;SP(bit11)为参数改变标志,由从站设置;AK(Bit12~15)为报文类型,主站-从站和从站-主站各有16种不同的报文类型。IND为参数标号,1字长,用来指定某些数组型设备参数的子参数号。PWE为参数值,1字长或2字长,是PKE区域中所指定参数的IND指定子参数的值。每个报文中只能有一个参数值被传送。PZD区是为控制和监测变频器而设计的。在主站和从站中收到的PZD总是以最高的优先级加以处理,处理PZD的优先级高于处理PKW的优先级,而且,总是传送接口上当前最2新的有效数据。PZD区域的长度是由PZD元素的数量和它们的大小(单字或双字)决定的。每个报文中的最大PZD数量限制为16个字,最小为0个字。PZD1在传送方向为主站至从站时为控制字,传送方向为从站至主站时为状态字。3.使用USS协议的优点传统的PLC与变频器之间多采用端口进行控制,依靠PLC的数字量输出来控制变频器的启停,依靠PLC的模拟输出来控制变频器的速度给定,这样做存在以下问题:①在设计控制系统时需采用很多硬件,价格昂贵;②现场的布线复杂,容易引起躁声和干扰;③PLC与变频器之间传输的信息受硬件的限制,交换的信息量很少;④在变频器的启停控制中由于继电器、接触器等硬件的动作时间有延时,影响控制精度;⑤通常变频器的故障状态由一个接点输出,PLC能得到变频器的故障状态,但不能准确判断当故障发生时,变频器是何种故障。如果使用USS协议,所有型号的西门子变频器均可通过网络方式与PLC或PC机进行信息交换,数字化的信息传递,提高了系统的自动化水平及运行的可靠性,解决了模拟信号传输所引起的干扰及漂移问题。USS协议通信介质采用RS-485屏蔽双绞线,最远可达1000m,因此可有效地减少电缆的数量,从而可以大大减少开发和工程费用,并极大地降低客户的启动和维护成本。另外,通过网络,可以连续地对多台变频器进行监视和控制,实现多台变频器之间的联动控制和同步控制,通过网络还可以实时调整变频器的参数。4.常用USS设备西门子变频器都带有一个RS485通信接口,PLC作为主站,最多允许31个变频器作为通信链路中的从站。USS主站设备包括:S7-200、S7-1200、CPU31xC-PtP、CP340、CP341、CP440、CP441等。常用USS主站设备性能对比如表11-1所列。表11-1常用USS主站设备的性能对比主站设备通信接口最大通信波特率CPU22x9芯D型插头115.2kbpsCPU31xC-PtP15芯D型插头19.2kbpsCP340-C15芯D型插头9.6kbpsCP341-C15芯D型插头19.2kbpsUSS从站设备包括:MM3、MM4、G110、G120、6RA70、6SE70等变频驱动装置及其他第三方支持USS协议的设备。常用USS从站设备的性能对比如表11-2所列表11-2常用USS从站设备的性能对比从站设备PKW区PZD区Bico终端电阻通信接口最大通信波特率MM3/ECO3固定2固定NONO9芯D型插头或端子19.2kbpsMM410/4200,3,4,1270-4YESNO端子57.6kbpsMM430/4400,3,4,1270-8YESNO端子115.2kbpsSimoreg6RA700,3,4,1270-16YESYES9芯D型插头或端子115.2kbpsSimovert6SE700,3,4,1270-16YESYES9芯D型插头或端子115.2kbps311.2.2自由口模式的通信指令S7-200PLC为自由口通信模式提供了专用的通信指令:XMT(发送)和RCV(接收)指令。通过这两条指令,在自由口通信模式下可以实现数据的发送和接收。当然也适合于自由口通信模式的USS协议。1.XMT指令发送指令(XMT)用于在自由口模式下,将数据缓冲区的数据从指定的通信端口发送出去。用XMT指令一次可发送1~255字节数据,指令格式如图11-3a所示。XMT指令的待发送数据缓冲区在指令中由“TBL”参数指定,其中的第一个字节说明要发送的字节数,其他字节为要发送的消息(Message),发送数据缓冲区字符格式如图11-3b所示;通信端口由“Port”参数指定。ab图11-3发送指令格式及发送缓冲区格式2.RCV指令接收指令(RCV)用于在自由口模式下,从指定的通信端口启动或者终止接收消息,并将接收到的消息存储在数据缓冲区中。用RCV指令一次可接收1~255个数据,指令格式如图11-4a所示。RCV指令的接收数据缓冲区在指令中由“TBL”参数指定,并由数据缓冲区的第一个数据指明接收到的字节数,其他字节为所接收到的消息(Message);通信端口由“Port”参数指定,指令格式如图11-4b所示。ab图11-4接收指令格式及接收缓冲区格式接收指令允许选择消息的启始和结束条件。使用SMB86至SMB94对端口0进行设置,使用SMB186至SMB194对端口1进行设置。详细情况请参阅在线帮助或《SIMATICS7-200可变程序控制器系统手册》。11.2.3USS指令库为简化S7-200PLC一些高级功能的使用,西门子公司的工程师为用户编写了多种应用子程序,并以指令库的形式提供给用户。如USS协议指令库(USSProtocol)、Modbus协议指令库(ModbusMaster、ModbusSlave)、时钟读写指令库(Clock_Integer)、EEPROM操作指令库(EEPROM)、运算指令库(Scaling)等。其中的USS协议指令库是使用USS协议进行通信编程的方便指令,使用该指令用户不需要详细了解USS协议格式,通过简单的调用即可4实现USS协议通信。在使用USS协议之前,需要先安装西门子的指令库“Toolbox_V32-STEP7-MicroWIN32InstructionLibrary”,其下载地址为“”。安装USS指令库以后,在STEP7-Micro/win指令树的“/指令/库/USSProtoolPort0”和“/指令/库/USSProtoolPort1”文件夹中分别出现8条指令,如图11-5所示。PLC将用这些指令来控制变频器的运行和参数的读写操作。图11-5USS指令库USS协议需占用PLC的通信端口0或1,使用USS_INIT指令可以选择PLC的端口是使用USS协议还是PPI协议,选择USS协议后PLC的相应端口不能在做其它用途,包括与STEP7-Wicro/WIN的通信,只有通过执行另外一条USS指令或将CPU的模式开关拨到STOP状态,才能重新再进行PPI通信,当PLC与变频器通信中断时,变频器将停止运行,所以一般建议选择CPU226。因为它有2个通信端口,当第一个口用于USS通信时,第二个端口可以用于程序监控。1.初始化指令USS_NIT初始化指令USS_INIT用于使能或禁止PLC和变频器之间的通信,在执行其他USS协议前,必须先成功执行一次USS_INIT指令。只有当该指令成功执行且其完成位(DONE)置位后,才能继续执行下面的指令。USS_INIT指令格式及参数的意义如表11-3所列。表11-3USS_INIT指令的参数说明指令格式端口名称数据格式说明ENBOOL该位为1时USS_INIT指令被执行,通常采用脉冲指令ModeBYTE用于选择PLC通信端口的通信协议,1-选择USS;0-选择PPIBaudINT指定通信波特率Active