[PLC]如何通过USS协议实现S7-1200 与G120变频器的通信

Posted shenxiang_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PLC]如何通过USS协议实现S7-1200 与G120变频器的通信相关的知识,希望对你有一定的参考价值。

如何通过USS协议实现S7-1200 G120变频器的通信

推荐文档: 西门子工程师推荐本文档!

· 文档

 

· 涉及产品

西门子S7-1200 紧凑型PLC在当前的市场中有着广泛的应用,作为经常与SINAMICS G120系列变频器共同使用的PLC,其USS通信协议的使用一直在市场上有着非常广泛的应用。本文将主要介绍如何使用USS通信协议来实现S7-1200G120变频器的通信。


1.控制系统原理和接线图

下图是本例中所使用的原理和接线图。


1:控制系统原理和接线图


2.硬件需求
S7-1200 PLC目前有3种类型的CPU
1S7-1211C CPU
2S7-1212C CPU
3S7-1214C CPU
这三种类型的CPU都可以使用USS通信协议通过通信模块CM1241 RS485来实现S7-1200G120变频器的通信。

本例中使用的PLC硬件为:
1PM1207电源 ( 6EP1 332-1SH71 )
2S7-1214C ( 6ES7 214 -1BE30 -0XB0 )
3) CM1241 RS485 ( 6ES7 241 -1CH30 -0XB0 )
4) 模拟器 ( 6ES7 274 -1XH30 -0XA0 )

本例中使用的G120变频器硬件为:
1SINAMICS G120 PM240 6SL3244-0BA20-1BA0
2SINAMICS G120 CU240S6SL3224-0BE13-7UA0
3SIEMENS MOTOR (1LA7060-4AB10)
4) 操作面板 ( XAU221-001469)
5USS 通信电缆 ( 6XV1830-0EH10)


3.软件需求

1) 编程软件 Step7 Basic V10.5 ( 6ES7 822-0AA0-0YA0)


4.组态

我们通过下述的实际操作来介绍如何在Step7 Basic V10.5 中组态S7-1214C G120变频器的USS通信。

4. 1 PLC 硬件组态

首先在Step7 Basic V10.5中建立一个项目,如图1所示。


2: 新建S7 1200项目

在硬件配置中,添加CPU1214C和通信模块CM1241 RS485模块,如图2所示。



3S7 1200硬件配置

CPU的属性中,设置以太网的IP地址,建立PGPLC的连接,如下图所示。


4S7 1200 IP地址的设置

4. 2 G120参数设置

变频器的参数设置如下表所示。

序号

功能

参数

设定值

1

工厂设置复位

P0010

30

2

工厂设置复位

P970

1

3

快速启动设置

P0010

1

4

电机额定电压

P0304

380V

5

电机额定功率

P0307

5.5KW

6

电机额定频率

P0310

50Hz

7

电机额定转速

P0311

1350r/min

8

USS命令源

P0700

5

9

频率设定源

P01000

5

10

最小电机频率

P1080

0.0Hz

11

最大电机频率

P1081

50.0Hz

12

启动斜坡时间

P1120

10.0S

13

延迟斜坡时间

P1121

10.0S

14

结束快速启动设置

P3900

1

15

 激活专家模式

P0003

3

16

参考频率

P2000

50.0Hz

17

USS数据传输速度

P2010

9

18

USS从站地址

P2011

1

19

USS PZD长度

P2012

2

20

USS PKW长度

P2013

4

21

 通信监控

P2014

0

22

E2PROM 保存数据

P0971

1

23

激活专家模式

P0003

3

24

激活参数模式

P0010

30

25

G120中传输参数到BOP

P0802

1

1 G120变频器的参数设置

注意:表1中的17181920 这四项参数值的设置必须使PLC的参数值与变频器的参数值相一致。而1920这两个参数值必须设置成如表1中的值,否则有可能变频器与S7-1200通信有如下问题:可能不能读出从变频器反馈回来的参数值。


5USS通信原理与编程的实现

5. 1 S7 1200 PLCG120 通过USS通信的基本原理

S7 1200提供了专用的USS库进行USS通信,如下图所示:



5S7 1200 专用的USS

        USS_DRV 功能块是S7-1200 USS通信的主体功能块,接受变频器的信息和控制变频器的指令都是通过这个功能快来完成的。必须在主 OB中调用,不能在循环中断OB中调用。
        USS_PORT功能块是S7-1200与变频器USS通信的接口,主要设置通信的接口参数。可在主OB或中断OB中调用。
        USS_RPM功能块是通过USS通信读取变频器的参数。必须在主 OB中调用,不能在循环中断OB中调用。
        USS_WPM功能块是通过USS通信设置变频器的参数。必须在主 OB中调用,
不能在循环中断OB中调用。

这些专用功能块与变频器之间的控制关系如下图所示:


6USS 通信功能块与变频器的控制关系

        USS_DRV功能块通过USS_DRV_DB数据块实现与USS_PORT功能块的数据接收与传送,而USS_PORT功能块是S7-1200 PLC CM1241 RS485模块与变频器之间的通信接口。USS_RPM功能块和USS_WPM功能块与变频器的通信与USS_DRV功能块的通信方式是相同的。

        每个S7-1200 CPU最多可带3个通信模块,而每个CM1241 RS485通信模块最多支持16个变频器。因此用户在一个S7-1200 CPU中最多可建立3USS网络,而每个USS网络最多支持16个变频器,总共最多支持48USS变频器。

5. 2 S7 1200 PLC进行USS通信的编程

1USS通信接口参数功能块的编程
USS通信接口参数功能块的编程如下图所示。


7USS通信接口参数功能块的编程

USS_PORT功能块用来处理USS网络上的通信,它是S71200 CPU与变频器的通信借口。每个CM1241 RS485模块有且必须有一个USS_PORT功能块。

PORT:指的是通过哪个通信模块进行USS通信。
BAUD:指的是和变频器进行通行的速率。 变频器的参数P2010种进行设置。
USS_DB:指的是和变频器通信时的USS数据块。每个通信模块最多可以有16USS数据块,每个CPU最多可以有48USS数据块,具体的通信情况要和现场实际情况相联系。每个变频器与S7-1200进行通信的数据块是唯一的。
ERROR:输出错误。
STATUS:扫描或初始化的状态。
S7-1200 PLC与变频器的通信是与它本身的扫描周期不同步的,在完成一次与变频器的通信事件之前,S7-1200通常完成了多个扫描。
USS_PORT通信的时间间隔是S7-1200与变频器通信所需要的时间,不同的通信波特率对应的不同的USS_PORT通信间隔时间。下图列出了不同的波特率对应的USS_PORT最小通信间隔时间。


8:不同的波特率对应的USS_PORT最小通信间隔时间

        USS_PORT在发生通信错误时,通常进行3次尝试来完成通信事件,那么S7-1200与变频器通信的时间就是USS_PORT发生通信超时的时间间隔。例如:如果通信波特率是57600,那么USS_PORT与变频器通信的时间间隔应当大于最小的调用时间间隔,即大于36.1Ms而小于109MsS7-1200 USS 协议库默认的通信错误超时尝试次数是2次。
        基于以上的USS_PORT通信时间的处理,我们建议在循环中断OB块中调用USS_PORT通信功能块。在建立循环中断OB块时,我们可以设置循环中断OB块的扫描时间,以满足通信的要求。循环中断OB块的扫描时间的设置如下图所示:


9:循环中断OB块的扫描时间的设置 

2USS_DRV功能块的编程
USS_DRV功能块的编程如下图所示。


10USS_DRV功能块的编程

USS_DRV功能块用来与变频器进行交换数据,从而读取变频器的状态以及控制变频器的运行。每个变频器使用唯一的一个USS_DRV功能块,但是同一个CM1241 RS485模块的USS网络的所有变频器(最多16个)都使用同一个USS_DRV_DB

USS_DRV_DB:指定变频器进行USS通信的数据块。
RUN                 指定DB块的变频器启动指令。
OFF2                 紧急停止,自由停车。 该位为0时停车。
OFF3                 快速停车,带制动停车。 该位为0时停车。
F_ACK             变频器故障确认。
DIR                  变频器控制电机的转向。
SPEED_SP
       变频器的速度设定值。

ERROR          程序输出错误。
RUN_EN        变频器运行状态指示。
D_DIR           变频器运行方向状态指示。
INHIBIT        变频器是否被禁止的状态指示。
FAULT           变频器故障。
SPEED
           变频器的反馈的实际速度值。

DRIVE           变频器的USS站地址。变频器参数P2011设置。
PZD_LEN
      变频器的循环过程字。 变频器参数P2012设置。

注意:变频器的PKW的长度在这里是特殊需要注意的,在使用USS通信时必须是4,如果改成3或者127都将不能读取反馈回来的过程值。


3USS_RPM功能块的编程

USS_RPM功能块的编程 如下图所示。


11USS_RPM功能块的编程

USS_RPM功能块用于通过USS通信从变频器读取参数。

REQ         读取参数请求。
DRIVE     变频器的USS站地址。
PARAM   变频器的参数代码。
INDEX     变频器的参数索引代码
USS_DB
  指定变频器进行USS通信的数据块。

DONE     读取参数完成。
ERROR  读取参数错误。
STATUS 读取参数状态代码。
VALUE
   所读取的参数的值。

注意:进行读取参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量读取参数时,注意该参数变量的初始值不能为0,否则容易产生通信错误。


4USS_WPM功能块的编程

USS_WPM功能块的编程如下图所示。


12USS_WPM功能块的编程

USS_WPM    功能块用于通过USS通信设置变频器的参数。
REQ         读取参数请求。
DRIVE     变频器的USS站地址。
PARAM   变频器的参数代码。
INDEX     变频器的参数索引代码。
EEPROM:把参数存储到变频器的EEPROM
VALUE    设置参数的值。
USS_DB
   指定变频器进行USS通信的数据块。

DONE      读取参数完成。
ERROR   读取参数错误状态。
STATUS
  读取参数状态代码。

注意:对写入参数功能块编程时,各个数据的数据类型一定要正确对应。如果需要设置变量进行写入参数值时,注意该参数变量的初始值不能为0,否则容易产生通信错误。


5. 3 S7 1200 PLC进行USS通信的调试

S7-1200 PLC 通过CM1241 RS485模块与变频器进行USS通信时,需要注意如下几点:

1. 当同一个CM1241 RS485 模块带有多个(最多16个)USS变频器时,这个时候通信的USS_DB是同一个,USS_DRV功能块调用多次,每个USS_DRV功能块调用时,相对应的USS站地址与实际的变频器要一致,而其它的控制参数也要一致。

2. 当同一个S7-1200 PLC 带有多个CM1241 RS485模块(最多3个)时,这个时候通信的USS_DB相对应的是3个,每个CM1241 RS485模块的USS网络使用相同的USS_DB,不同的USS网络使用不同的USS_DB

3. 当对变频器的参数进行读写操作时,注意不能同时进行USS_RPMUSS_WPM的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。

S7-1200 PLC 与变频器的USS通信的实际使用过程中,需要根据网络的现场情况,对问题进行具体的解决。

 

基于S7协议实现与西门子PLC通信

  西门子PLC是目前工控行业市场占有额比较大的一款PLC,而且随着上位机的越来越普及,

有很多人开始考虑自己开发上位机实现与西门子PLC的通信,遇到的第一个问题就是数据通信。

  其实西门子PLC提供的接口还是比较多的,包括串口(200及Smart 200的PPI、Modbus RTU),

网口(开放式TCP、Modbus TCP以及S7),也就意味着我们有很多种方式可以实现与PLC通信,

获取到PLC的数据,下面介绍一种简单的方式,就是S7协议通信方式,可以实现与不同型号的PLC通信,

而且可以读取各种数据类型和数据变量,界面如下,仅供参考:

技术图片

 

以上是关于[PLC]如何通过USS协议实现S7-1200 与G120变频器的通信的主要内容,如果未能解决你的问题,请参考以下文章

西门子以太网(S7协议)通讯

维纶通触摸屏和s7-1200plc的字符串用那个

S7-1200对V90 PN进行速度控制的两种方法

EG 网关串口连接 S7-1200

西门子S7协议数据采集内存读写调试软件工具

西门子S7协议数据采集内存读写调试软件工具