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

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

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


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

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

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

本例中使用的G120变频器硬件为:
1) SINAMICS G120 PM240 (6SL3244-0BA20-1BA0)
2) SINAMICS G120 CU240S(6SL3224-0BE13-7UA0)
3) SIEMENS MOTOR (1LA7060-4AB10)
4) 操作面板 ( XAU221-001469)
5) USS 通信电缆 ( 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所示。

图3: S7 1200硬件配置

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


图4: S7 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中的17,18,19,20 这四项参数值的设置必须使PLC的参数值与变频器的参数值相一致。而19,20这两个参数值必须设置成如表1中的值,否则有可能变频器与S7-1200通信有如下问题:可能不能读出从变频器反馈回来的参数值。

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

5. 1 S7 1200 PLC与G120 通过USS通信的基本原理

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

图5: S7 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中调用。

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


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

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中最多可建立3个USS网络,而每个USS网络最多支持16个变频器,总共最多支持48个USS变频器。

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

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


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

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

PORT:指的是通过哪个通信模块进行USS通信。
BAUD:指的是和变频器进行通行的速率。 变频器的参数P2010种进行设置。
USS_DB:指的是和变频器通信时的USS数据块。每个通信模块最多可以有16个USS数据块,每个CPU最多可以有48个USS数据块,具体的通信情况要和现场实际情况相联系。每个变频器与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而小于109Ms。S7-1200 USS 协议库默认的通信错误超时尝试次数是2次。
        基于以上的USS_PORT通信时间的处理,我们建议在循环中断OB块中调用USS_PORT通信功能块。在建立循环中断OB块时,我们可以设置循环中断OB块的扫描时间,以满足通信的要求。循环中断OB块的扫描时间的设置如下图所示:


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

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


图10: USS_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都将不能读取反馈回来的过程值。

3.USS_RPM功能块的编程

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


图11:USS_RPM功能块的编程

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

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

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

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

4.USS_WPM功能块的编程

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


图12:USS_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_RPM和USS_WPM的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。

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

西门子S7-1200与 G120系列变频器USS通信的更多相关文章

  1. 西门子S7系列PLC的主要种类及应用软件

    德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用也相当广泛,在冶金.化工.印刷生产线等领域都有应用.西门子(SIEMENS)公司的PLC产品包括LOGO,S7-200,S7-300,S ...

  2. Modbus转Profinet网关案例 | 三菱FR-A700系列变频器配置方法

    本案例是利用小疆智控Modbus转Profinet网关GW-PN5001把三菱FR-A700变频器接入到西门子1200PLC.实现Profinet转Modbus的通讯协议的互转. 用到设备有:三菱FR ...

  3. 开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7

    一.   引子 首先感谢博客园:第一篇文章.第一个开源项目,算是旗开得胜.可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^. 园友给了我很多支持,并提出了很好的改进意见.现加入屏幕分辨率自 ...

  4. 西门子S7系列以太网通讯处理器安装调式操作

    北京华科远创科技有限研发的远创智控ETH-YC模块,PLC转以太网型号有MPI-ETH-YC01和MPI-ETH-YC01,适用于西门子S7-200/S7-300/S7-400.SMART S7-20 ...

  5. 西门子S7系列以太网通讯处理器功能介绍

    北京华科远创科技有限研发的远创智控型号ETH-YC模块适用于西门子S7-200/S7-300/S7-400.SMART S7-200.西门子数控840D.840DSL.合信.亿维PLC的PPI/MPI ...

  6. (转载)一张表搞清楚西门子S7系列标准DB块与优化DB块

    在TIA Portal中为S7-1200/S7-1500 CPU 添加一个 DB 块时,其缺省属性为优化的 DB ,优化的 DB 块与标准的 DB 块整体对比如下表所示: 项 标准 DB 优化 DB ...

  7. 工控随笔_09_西门子_S7-200 Smart与V20 USS通信USS_RPM_R利用轮询的方式通讯异常

    前两天处理过一个故障,是S7-200 Smart与V20的USS通讯,设备厂家在程序里面利 用USS_RPM _R程序循环轮询5个V20设备读取频率和电流值等信息. 图 USS_RPM_R读取信息 上 ...

  8. 西门子S7报文解析

    1.报文的基本格式 1.1 第1和第2个字节是:固定报文头03 00,这里我们就用到三种报文: a.初始化 b. 读 c.写,都是这种格式: 1.2 第3和第4个字节是:整个报文的长度: 其它部分就是 ...

  9. 项目操作案例丨西门子PLC通过网关连接ACS800变频器

    本案例控制对象为炉条机.以及蒸汽的控制以及现场数据参数的显示以及报警. PLC 选用西门子 CPU,通过 ET200 IO 模块控制现场设备并监控数据.变频器采用ABB ACS800变频器,将ABB ...

随机推荐

  1. sql like N'%...%' 在C#里的写法

    StringBuilder sb = new StringBuilder(); List<SqlParameter> parameters =new List<SqlParamete ...

  2. WPF 柱状图显示数据

    <Window x:Class="Wpf180706.Window9"        xmlns="http://schemas.microsoft.com/win ...

  3. ASP.NET Core 2 学习笔记(一)开始

    原文:ASP.NET Core 2 学习笔记(一)开始 来势汹汹的.NET Core似乎要取代.NET Framework,ASP.NET也随之发布.NET Core版本.虽然名称沿用ASP.NET, ...

  4. 【Linux】samba服务

    samba是一个实现不同操作系统之间文件共享和打印机共享的一种SMB协议的免费软件. ①Samba软件包的安装 使用源安装,在终端中输入如下命令: #sudo apt-get install samb ...

  5. window下golang生成静态库给C语言调用

    buidmod为c-archive能在window下生成 ,c-shared则不行 1.golang生成c-archive静态库 main.go package main import "C ...

  6. C、C++笔记

    2017年6月 阅读书籍<C和指针> #if 0 #endif 比注释掉代码好.(<C和指针>2017.06.07) 全局变量和全局静态变量的区别 1)全局变量是不显式用sta ...

  7. 【Windows10 IoT开发系列】Powershell命令行实用程序

    原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Admin ...

  8. 在Windows IoT上生成和识别二维码

    在Windows IoT生成和识别二维码,实际上由于是UWP上实现,所以,理论上,这些生成和识别二维码的方法也可以在其它平台上运行. 关于二维码的生成有很多库可以实现,比如QRCoder,这个库可以在 ...

  9. Qt 使用 Google Breakpad 捕获程序崩溃报告(dump文件) good

    http://blog.csdn.net/GoForwardToStep/article/details/56685810

  10. 修改Maven的本地仓库地址

    已经配置好的设定文件: 1.创建一个本地仓库的地址 2.修改Maven中conf目录下的settings.xml文件 在此处添加修改后的本地仓库的地址   3.打开cmd 输入mvn help:sys ...