USS通信协议.docx
《USS通信协议.docx》由会员分享,可在线阅读,更多相关《USS通信协议.docx(17页珍藏版)》请在冰豆网上搜索。
USS通信协议
西门子S7-1200紧凑型PLC在当前的市场中有着广泛的应用,作为经常与SINAMICSG120系列变频器共同使用的PLC,其USS通信协议的使用一直在市场上有着非常广泛的应用。
本文将主要介绍如何使用USS通信协议
来实现S7-1200与G120变频器的通信。
1.控制系统原理和接线图
下图是本例中所使用的原理和接线图
图1:
控制系统原理和接线图
2•硬件需求
S7-1200PLC目前有3种类型的CPU:
1)S7-1211CCPU。
2)S7-1212CCPU。
3)S7-1214CCPU。
这三种类型的CPU都可以使用USS通信协议通过通信模块CM1241RS485来实现S7-1200与G120变频器的
通信。
本例中使用的PLC硬件为:
1)PM1207电源(6EP1332-1SH71)
2)S7-1214C(6ES7214-1BE30-0XB0)
3)CM1241RS485(6ES7241-1CH30-0XB0)
4)模拟器(6ES7274-1XH30-0XA0)
本例中使用的G120变频器硬件为:
1)SINAMICSG120PM240(6SL3244-0BA20-1BA0)
2)SINAMICSG120CU240S(6SL3224-0BE13-7UA0)
3)SIEMENSMOTOR(1LA7060-4AB10)
4)操作面板(XAU221-001469)
5)USS通信电缆(6XV1830-0EH10)
3.软件需求
1)编程软件Step7BasicV10.5(6ES7822-0AA0-0YA0)
4.组态
我们通过下述的实际操作来介绍如何在Step7BasicV10.5中组态S7-1214C和G120变频器的USS通信。
4.1PLC硬件组态
首先在Step7BasicV10.5中建立一个项目,如图1所示
Projecttree
Devices
琲CI
WriUSSG120
Addnewdevice
图2:
新建S71200项目
在硬件配置中,添加CPU1214C和通信模块CM1241RS485模块,如图2所示
I11
I11
图3:
S71200硬件配置
在CPU的属性中,设置以太网的IP地址,建立PG与PLC的连接,如下图所示。
图4:
S71200IP地址的设置
4.2G120参数设置
变频器的参数设置如下表所示。
序号
功能
参数
设定值
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
USSPZD长度
P2012
2
20
USSPKW长度
P2013
4
21
通信监控
P2014
0
22
在E2PR0M保存数据
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.1S71200PLC与G120通过USS通信的基本原理
S71200提供了专用的USS库进行USS通信,如下图所示:
LibFEUrito的
鬧-nltnlguttinll#-财TeMrls'g-身TAlcftlf
Libraries
▼Projectlibrary
□51=1All-
Projectlibraiy
心®电I包21
►LJJMlIIButtons&jv.
bLJIIODEUS
苗uL®
_^USS_DF.[ILi]_1lJS5_POkT[I0]
U"」Fhl[丨0]
USS.'/PM[Iu)
▼Parts(Projectlibrary)
rHmv
图5:
S71200专用的USS库
USS_DRV功能块是S7-1200USS通信的主体功能块,接受变频器的信息和控制变频器的指令都是通过这个功能快来完成的。
必须在主OB中调用,不能在循环中断OB中调用。
USS_PORT功能块是S7-1200与变频器USS通信的接口,主要设置通信的接口参数。
可在主OB或中断
OB中调用。
USS_RPM功能块是通过USS通信读取变频器的参数。
必须在主OB中调用,不能在循环中断OB中调
用。
USS_WPM功能块是通过USS通信设置变频器的参数。
必须在主OB中调用,不能在循环中断OB中调
用。
这些专用功能块与变频器之间的控制关系如下图所示:
RnMr乱
ri™
—
她
niu
-anti
WMH.K・厂
rm
PRil
mu
■算』*
网邮ih>iwjln™
■MJi!
冲列.押P■-*TTWSJP_LrWUibbtt
"州AJviy
Sn>~L1'I
♦WHIM-=4"iwm-
U41AI■
1UIVI*
廳、LfrW
U阳編HFWDB
一
t
?
3
J
F
4
y
«
9
10
卅
12
13
u
IS
1fl
pmfrir
IM
th
Wtl5-
O"-3pF>
in
*1fcMIl
图6:
USS通信功能块与变频器的控制关系
USS_DRV功能块通过USS_DRV_DB数据块实现与USS_PORT功能块的数据接收与传送,而USS_PORT功能块是S7-1200PLCCM1241RS485模块与变频器之间的通信接口。
USS_RPM功能块和
USS_WPM功能块与变频器的通信与USS_DRV功能块的通信方式是相同的。
【TOJF
rRK
每个S7-1200CPU最多可带3个通信模块,而每个CM1241RS485通信模块最多支持16个变频器。
因此用户在一个S7-1200CPU中最多可建立3个USS网络,而每个USS网络最多支持16个变频器,总共最多支持48个USS变频器。
5.2S71200PLC进行USS通信的编程
1.USS通信接口参数功能块的编程
USS通信接口参数功能块的编程如下图所示。
11
HRS4S5_1[CM]"
PORT
57600-
baud]
ERROR
%DB2DBX6□OBla_block_rerror
VC107Q
■us5_raKT'
ENO
%D02DBW4
W01
STATU5
Daia_tlocfc_1-
status
图7:
USS通信接口参数功能块的编程
USS_PORT功能块用来处理USS网络上的通信,它是S71200CPU与变频器的通信借口。
每个CM1241RS485模块有且必须有一个USS_PORT功能块。
PORT:
指的是通过哪个通信模块进行USS通信。
BAUD:
指的是和变频器进行通行的速率。
变频器的参数P2010种进行设置。
USS_DB:
指的是和变频器通信时的USS数据块。
每个通信模块最多可以有16个USS数据块,每个CPU最
多可以有48个USS数据块,具体的通信情况要和现场实际情况相联系。
每个变频器与S7-1200进行通信的数
据块是唯一的。
ERROR:
输出错误。
STATUS:
扫描或初始化的状态。
S7-1200PLC与变频器的通信是与它本身的扫描周期不同步的,在完成一次与变频器的通信事件之前,S7-1200
通常完成了多个扫描。
USS_PORT通信的时间间隔是S7-1200与变频器通信所需要的时间,不同的通信波特率对应的不同的USS_PORT通信间隔时间。
下图列出了不同的波特率对应的USS_PORT最小通信间隔时间。
Baudrate
CakulaiedminimumUSS.PORTcallIntMV訓(milik电8rv找)
Driv$messageintervaltimeoutperd和直(nnllis€ccnds)
1200
790
2370
2400
405
1215
4»00
212&
633
9600
116.5
349
19200
20^
30400
44.1
133J
67600
36J
109:
115200
2fl.1
85
图8:
不同的波特率对应的USS_PORT最小通信间隔时间
USS_PORT在发生通信错误时,通常进行3次尝试来完成通信事件,那么S7-1200与变频器通信的时间
就是USS_PORT发生通信超时的时间间隔。
例如:
如果通信波特率是57600,那么USS_PORT与变频器通信
的时间间隔应当大于最小的调用时间间隔,即大于36.1MS而小于109MS。
S7-1200USS协议库默认的通信错
误超时尝试次数是2次
基于以上的USS_PORT通信时间的处理,我们建议在循环中断0B块中调用USS_PORT通信功能块。
在建立循环中断0B块时,我们可以设置循环中断0B块的扫描时间,以满足通信的要求。
循环中断0B块的扫描
时间的设置如下图所示:
hlanne
Ficqr^irt.cle
■tmiip
Organc«tion
block
(OB)
Function
block
d*l\int*rnipt
icinterrupl
Hdr^vdremteirupt
Timneerrorinterrupt
IL・figu^ge.LAD_
Numbur
Menu«l
*Automatic
(^巴3/師制圧总o
**Symibolic起only
Descriplian-
■;hckiitenupt1"OBwillinterruptcyclic
pf住giAm色・Muitrdtlih^diM环alls
Theinter,sicanbedefinedintlirJialogorintilepropcrtiejc-ldieOB
Lcli■:
int^rripr
Function
(FO
block
rrwrE二
图9:
循环中断0B块的扫描时间的设置
2.USS_DRV功能块的编程
USS_DRV功能块的编程如下图所示。
[%D01
'U5SDRVDB'
%IO0
□PSTAFT
%wo.a
"M?
START'
―II—
1%10.1T-STOP^-
□阡2
l■IDH"FASTSIDF-
0FF3
1%IO.3'FAULTACC・
F_ACK
1
□IRECnDNp-
□IR
DRIVE
h
P2D_LEIM
jj
END
■
HI…
NDR
ERROR
STATU吁
0
»M12h'ERROR
RUM.E討
1
%M2a0.1
■1"DRIVERUNNING"
D_DIR
1
%M200.2
■INHIBIT
0
4"DRIVEINHIBIT1
fault
Q
\M1.1■iFAULT
SPEED
30.0
■tf'actruilspeed1-8
"US5DRV
WB2.DHDE
”血悒blQCk_1"
'SETTINGSPEED'JSPEEDSP
图10:
USS_DRV功能块的编程
USS_DRV功能块用来与变频器进行交换数据,从而读取变频器的状态以及控制变频器的运行。
每个变频器使用
唯一的一个USS_DRV功能块,但是同一个CM1241RS485模块的USS网络的所有变频器(最多16个)都使
用同一个uss_
_DRV_DB。
USS_DRV_DB
:
指定变频器进行USS通信的数据块。
RUN:
指定DB块的变频器启动指令。
0FF2:
紧急停止,自由停车。
该位为0时停车。
0FF3:
快速停车,带制动停车。
该位为0时停车。
F_ACK:
变频器故障确认。
DIR:
变频器控制电机的转向。
SPEED_SP:
变频器的速度设定值。
ERROR:
程序输出错误。
RUN_EN:
变频器运行状态指示。
D_DIR:
变频器运行方向状态指示。
INHIBIT:
变频器是否被禁止的状态指示。
DRIVE:
变频器的USS站地址。
变频器参数P2011设置。
PZD_LEN:
变频器的循环过程字。
变频器参数P2012设置。
注意:
变频器的PKW的长度在这里是特殊需要注意的,在使用USS通信时必须是4,如果改成3或者127都将不能读取反馈回来的过程值。
3.USS_RPM功能块的编程
USS_RPM功能块的编程如下图所示。
INDEX
■'Dau_block_1".
WB1
_US5DR7DB"-
VALUE
RPW_Psr8fneter
YllUE
图11:
USS_RPM功能块的编程
USS_RPM功能块用于通过USS通信从变频器读取参数
REQ:
读取参数请求。
DRIVE:
变频器的USS站地址。
PARAM:
变频器的参数代码。
INDEX:
变频器的参数索引代码
USS_DB:
指定变频器进行USS通信的数据块。
DONE:
读取参数完成。
ERROR:
读取参数错误。
STATUS:
读取参数状态代码。
VALUE:
所读取的参数的值。
注意:
进行读取参数功能块编程时,各个数据的数据类型一定要正确对应。
如果需要设置变量读取参数时,注意该参数变量的初始值不能为0,否则容易产生通信错误。
4.USS_WPM功能块的编程
USS_WPM功能块的编程如下图所示。
%10.7
■'WPM_en'
"U5S_WPM"
1I
EN
ENO
11
||
o
%M11.0
WM_rcqueit'-
號。
CONE
r"WPM_done"
1-
DRIVE
0
11
ERROR
-"WPM_errar
3
%DB2.DBW26
'Daia_blockJH,
W02.DaW20
VPM^parameter■
PARA.M
“DEW-tdodU”
STATUS
lWPM_Statu5
0-
INDEX
EEPROM
o
W02.DBW3O
Datablock:
1"
训PIJ」nput_
values-
VALLE
1DB1
■USSDR7DB"
USS05
图12:
USS_WPM功能块的编程
USS_WPM
功能块用于通过USS通信设置变频器的参数。
REQ:
读取参数请求。
DRIVE:
变频器的USS站地址。
PARAM:
变频器的参数代码。
INDEX:
变频器的参数索引代码。
EEPROM:
把参数存储到变频器的EEPROM。
VALUE:
设置参数的值。
USS_DB:
指定变频器进行USS通信的数据块。
DONE:
读取参数完成。
ERROR:
读取参数错误状态。
STATUS:
读取参数状态代码。
注意:
对写入参数功能块编程时,各个数据的数据类型一定要正确对应。
如果需要设置变量进行写入参数值时,
注意该参数变量的初始值不能为0,否则容易产生通信错误。
5.3S71200PLC进行USS通信的调试
S7-1200PLC通过CM1241RS485模块与变频器进行USS通信时,需要注意如下几点:
1.当同一个CM1241RS485模块带有多个(最多16个)USS变频器时,这个时候通信的USS_DB是同一个,USS_DRV功能块调用多次,每个USS_DRV功能块调用时,相对应的USS站地址与实际的变频器要一致,而其它的控制参数也要一致。
2.当同一个S7-1200PLC带有多个CM1241RS485模块(最多3个)时,这个时候通信的USS_DB相对应的是3个,每个CM1241RS485模块的USS网络使用相同的USS_DB,不同的USS网络使用不同的USS_DB。
3.当对变频器的参数进行读写操作时,注意不能同时进行USS_RPM和USS_WPM的操作,并且同一时间只能进行一个参数的读或者写操作,而不能进行多个参数的读或者写操作。
在S7-1200PLC与变频器的USS通信的实际使用过程中,需要根据网络的现场情况,对问题进行具体的解决。