分享

USS通讯是“神马”? 看完你就懂。

 爱因思念l5j0t8 2017-11-30


主要内容:

  • S7-200 PLC USS通讯概述

  • S7-200 PLC USS通讯指令

  • S7-200 PLC USS通讯常问问题


(1)USS通讯

S7-200 PLC 的USS通讯主要用于PLC与西门子系列变频器之间的通讯:

  • PLC与驱动装置连接配合,主要实现的任务是:

  • 控制驱动装置的启动、停止等运行状态

  • 控制驱动装置的转速等参数

  • 获取驱动装置的状态和参数

  • USS协议的基本特点如下:

  • 支持多点通信(因而可以应用在RS 485等网络上)

  • 一个网络上最多可以有32个节点(最多31个从站)

  • 获取驱动装置的状态和参数

  • USS支持的通讯对象目前包括:

  • Micromaster 3/Micromaster 4系列

  • SINAMICS G110

  • MaterDrive 6SE70/6RA70


(2)USS通讯规约

S7-200的USS通讯

  • USS的字符帧格式:


字符帧格式包括1个起始位,8位数据位,1位偶校验位和1位停止位。

  • USS的报文帧格式:


报文帧格式中起始字符固定为02H,1个字节的报文长度,之后是数据区,最后付上一个字节的BCC校验。

  • 上表中间的净数据区由PKW区和PZD区组成:

PKW:此区域用于读写参数值、参数定义或参数描述文本,并可修改和报告参数的改变。

PZD:此区域用于在主站和从站之间传递控制和过程数据。控制参数按设定好的固定格式在主、从站之间对应往返。


(3)USS通讯轮询从站过程



通常USS有一个主站和若干个从站,也就是一台PLC控制若干台变频器,轮询的过程中,首先变频器的从站地址会被分别赋予不同的值,从0到n,中间可以不连续,轮询的过程是PLC发送数据给0号站,0号站应答,接下来又发送给1号站,1号站再应答,一直到发送给n号站,n号站应答。对于某一个特定的站点,如果PLC发送完数据以后,接不到该站点的应答,则再发送一包数据,如果仍然接收不到,则放弃该站,开始对下一站号进行发送。


上面的表格体现的是传输的波特率和主站轮询从站的时间间隔之间的关系,举个例子,比如说当传输的波特率是2400bit/s的时候,访问单个从站大概需要130ms的时间,如果波特率越来越大,那么主站轮询从站所需要的时间间隔就会相应地减少。


(4)USS库的安装和调用



在使用USS库之前,我们首先要为Micro WIN软件安装名为Toolbox_V32-STEP 7-Micro WIN的软件包,该软件包解压并安装之后即可以在Micro WIN下看到它并使用,出现了两个文件夹,分别是USS Port0库指令和USS Port1库指令。



打开这些库指令,直接把里面的指令拖拽到程序中即可完成对USS库指令的调用。



在使用这个库的时候切记一定要为该库分配库存储区,具体的方法是:右键点击库,选择库存储区,在建议地址一栏输入一个地址区间,这个地址区间将作为USS指令库的背景数据区,切记该数据区不得与程序当中其它的地址区冲突,否则会导致USS库文件的使用不正常。

(5)USS库文件的使用

1)USS_INIT指令




上图中的指令叫做USS_INIT,它是USS从站初始化指令,调用时应使用沿出发。一旦触发,PLC立刻开始轮询驱动装置。USS_INIT引脚定义如下图所示:



Mode=1的时候启动USS;Baud为波特率的设置;Active表示参与通讯的从站地址,确切地讲,它表示的是所有参与通讯的从站的地址,它是如何来定义的呢?来看下面的一张表格:



首先Active这个变量的数据类型是一个双整型,也就是32位,在这里我们把32位由低到高逐次地列举出来,那么它所对应的从站的地址0号位对应的就是0号站地址,1号位对应就是1号站的站地址,以此类推,非常好识别。从站激活的标志只有0和1两个状态,0表示未激活,1表示激活,那么在表格第三行的例子中表达的是1、2号位被激活,其它的所有位都是0,没有被激活,那么这个时候实际上Active=16#00 00 00 06,这个数表达的是1号站和2号站将被激活,所以USS轮询从站的时候轮询的就是1号站和2号站。

引脚定义中的Done位和Error位分别是初始化完成标志和错误代码。

2)USS_CTRL指令



USS_CTRL这个功能块是我们真正用来控制个别从站时候所用到的指令,这个指令的引脚定义如上图右表所示,其中RUN=1的时候表示的是运行,就是让电机转起来,0的话就表示让电机停止;OFF2表示的是以OFF2的方式进行停车,OFF3表示的是以OFF3的方式停车,这是什么意思呢?通常在西门子的变频器里面停车方式有三种,分别为OFF1、OFF2和OFF3,OFF1是我们通常所讲的正常的停车,它的停车时间在变频器里面是有一个参数去设置的,OFF2叫做自由停车或者是惯性停车,它在得到OFF2的停车命令的时候,电机会以自然的、惯性的方式自由停车,OFF3我们通常称之为快速停车,它的停车时间也是可以通过改变变频器里面的参数去设置的,那么通常OFF3的停车时间要小于OFF1的停车时间,所以我们称之为快速停车,对于我们这样一个USS_CTRL功能块而言,OFF2和OFF3分别用这两个引脚来控制,而OFF1就是RUN=0的情况下就是OFF1的停车;F_ACK是故障确认;DIR是方向选择,电机正转还是反转;Drive表示的是被控电机的站号,在前面的例子当中,一个1号一个2号是我们被控的电机,那么到底是这一条USS_CTRL指令控制的是哪一台电机呢?那么通过Drive来设定;Type选择驱动器的类型,0的话是MM3系列的变频器,1是其他系列的变频器;Speed_SP是速度的设定值,可以通过百分比的形式或者是频率的0-50Hz的范围来设定,具体是以'%'为单位还是以'Hz'为单位,可以在变频器里面有参数进行选择。功能块右边的这些引脚是变频器反馈回来的一些数据,包括从站应答确认信号以及通讯错误代码、状态字等等。

3)参数读写指令




参数读写指令有6条,如上表所示,前面三条是读指令,后面三条是写指令,每个指令最后一位表达的是读或者写的数据类型,W表示的是字或整型,D表示的是双整型,R表示浮点型,在变频器的手册里面通常用U16、U32以及Float的方式来表达。

上图中的指令是USS_RPM_R指令,这是一个读实数类型参数的指令,它的引脚定义说明如下表所示:



XMT_REQ是读请求,必须用沿触发;Drive表示驱动装置的站地址;Param表示要读取的参数号,我们知道变频器里的参数都有它的参数号;Index表示参数组的标识,变频器里面的参数往往是分了组的,有分成两个组也有分成四个组的,这个时候我们需要在Index里面指定我们这一次修改或者读取具体操作的是哪一组的参数;DB Ptr是读参数,读回来的数据会放在本地的哪个位置;Done、Error、Value分别是读命令完成位、错误代码和读出的数据值。


(6)设置驱动装置参数


在使用PLC和变频器进行USS通讯之前,我们首先要对变频器进行一些设置,如上图所示列举出了一些基本参数,我们的例子是基于MM440,首先看P700=5,表示的是控制源来自于通信线路上的USS通信;P1000=5表示的是设定源来自于USS通信;P2009表示的是对USS通信设定值进行规格化,即设定值为绝对的频率数值;P2010=6表示的是设置通讯线路上的USS通信速率为9600波特率;P2011=3表示的是驱动装置USS通信口在网络上的从站地址,一定要把同一个USS上的不同的变频器设置为不同的站地址;最后通过P971=1将上述已经设置好的参数保存到MM440的EEPROM中。

(7)USS FAQ

Q1:USS能和第三方的变频设备通讯吗?

A1:不能,USS协议是专为西门子变频器而设计的通讯协议,只能支持特定的产品,其中常见的有标准变频传动装置MicroMaster系列、高性能驱动装置MasterDrive系列,以及新产品SINAMICS系列等。

Q2:项目编译后为何出现很多错误?

A2:使用指令库后,若编译后出现很多错误,一般是因为未指定库指令数据存储区。

Q3:看USS通信主站轮询的时间表,访问一个从站只需要几十毫秒,为何发出运行指令后感觉经过了数百毫秒电机才转动?这是否正常?

A3:从用户发出运行控制信号,到电动机发生人眼可见的转动,中间经过了很多环节。控制信号进入PLC数字量输入端,经过主站中的程序运行,通信循环周期,以及从站中的程序处理,特别是驱动装置启动运行还需要很多准备环节,如电容预充电、建立磁场,建立转矩等。等到电机的转动可见,要经过一段时间。这是正常的现象。


来源:A-PLC工程师

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多