热门搜索:
西门子EMDT08
西门子MM4系列变频器都集成了串行接口,支持USS通信协议,通过USS协议可以对变频器进行控制和读写变频器参数。使用S7-300PLC有以下两种通讯方案:
1. 按照USS协议要求编写通讯报文,计算BCC校验,适用于从站数量比较少,较简单的应用;
本文主要介绍通过**种方案实现CPU314-2PtP与MM440的USS通讯。使用S7-300编写USS通讯程序分为以下几个步骤:
1. 依据USS协议编写报文;
本文根据这4个步骤编写了如下内容:*1节简单介绍USS协议内容,了解USS协议报文格式;*2节根据USS协议列举了4条报文;*3节介绍PLC和变频器USS通讯的硬件组态;*4节介绍通过调用PLC中的发送和接收功能块实现USS协议报文的发送和接收。
1 USS协议介绍
USS字符帧结构
USS协议的报文由一连串的字符组成,协议中定义了它们的功能,如下表所示:
USS报文结构
? STX:长度1个字节,总是为02(Hex),表示一条信息的开始;
USS有效数据区
PKW区用于主站读写从站变频器参数:
PKW结构
变频器参数号<2000时,基本参数号PNU=变频器参数号,例如P700的基本参数号PNU=2BC(Hex)(700(Dec)=2BC(Hex))。
? IND:长度一个字,结构如下表。
IND结构
变频器参数号<2000时,PNU扩展=0(Hex)。
根据传输的数据类型和驱动装置的不同,PKW和PZD区的数据长度不是固定的,可以通过P2012、P2013 设置。本例采用4PKW,2PZD报文格式。
2 USS协议报文定义
报文解释:
注:黄色标记表示应答报文中的内容
例2.读取参数P0700[0]的数值
报文解释:
注:黄色标记表示应答报文中的内容
例3.不需要读写参数只发送停止变频器报文
例4.不需要读写参数只送启动变频器、设定频率50Hz报文
例3、4报文比较简单只需要定义PZD中的内容,PKW区内容可以设置为0。
3 硬件组态
1. 采用带有集成RS485接口的CPU例如CPU31X-2PtP;
以上三种模块都可以通过下表中的接线方式与MM4变频器连接,本文中采用1台CPU314-2PtP与1台MM440通讯。
S7-300 RS485接口与MM440 USS接线
3.1 PLC硬件组态
2) 双击CPU314-2PtP的X2端口PtP,打开PTP属性对话框General栏,Protocol复选框中选择“ASCII”协议。
3) Addresses栏中记录起始地址“1023”,在后面的编程中使用。
4) Transfer栏中设置通讯速率“9600bps”,报文格式:“8”位数据位,“1”位停止位,“Even”偶校验,数据流控制选择“None”。
5) End Delimiter栏中设置接收报文结束方式“After character delay time elapses”利用两个报文的间隔时间来判断报文是否结束,并设置字符延时时间“4ms”(该时间可使用默认设置,默认设置时间随通讯速率不同时间也不同)。
6) Signal Assignment栏中设置串行通信接口信号模式为“Half Duplex(RS-485)Two-wire Mode”半双工两线制RS485模式,空闲状态信号状态“R(A)0v、R(B)5V”。
通过以上步骤完成对CPU314-2PtP串行接口的基本设置,如需更详细的信息请参照CPU314-2PtP手册。
3.2 变频器参数设置
以上参数只对与变频器USS通讯相关的参数进行介绍,变频器其他参数设置请参照《MM440使用大全》。
4 USS通讯编程
4.1 CPU314-2PtP串行接口发送和接收程序
在SFB60发送通信块中需要对下列参数进行赋值:
分配DB61为SFB61的背景数据块,在OB1中调用程序:
在SFB61接收通信块中需要对下列参数进行赋值:
4.2 通过发送程序发送定义好的USS报文
4.3使用S7-300 PLC编写BCC校验程序
15字节的BCC校验程序
1. 概述
如果只需要对V2O变频器做简单的运行控制和变量监视,那么上述配置中PLC的作用仅为数据中转。这种情况下,触摸屏直接和V20变频器通讯,不仅能够实现监控功能,而且可以少用一个PLC,节省成本。采用西门子的SMART LINE系列触摸屏能够实现与V20变频器直接通讯的功能。通讯电缆连接如图2所示。SMART LINE触摸屏作为MODBUS主站,V20为从站。
2. 硬件设备及其安装
表1 示例主要硬件设备
硬件安装步骤如下:
3. V20变频器参数设置
表2 Cn011对应参数设置
3)修改MODBUS通讯参数,其它参数为Cn011连接宏默认参数:
4. 触摸屏组态
选择触摸屏设备为Smart 1000 IE,如图4所示。
2)设置连接。
3)添加变量。
表3 变量列表
变量地址参照V20变频器操作手册,添加完成后的变量画面如图6所示。
速度设定值变量SetPoint是由-16384(-4000H)到+16384(+4000H)来表示-50Hz到+50Hz的转速,此处采用变量的线性转换属性,将-16384对应-1500,+16384对应+1500,如图7所示。再采用变量的限制值属性,将变量的输入值限制在-1600和+1600之间,如果**出该限制值的范围,则输入不起作用。如图8所示。
速度反馈值变量Feedback也是由-16384(-4000H)到+16384(+4000H)来表示-50Hz到+50Hz的转速,此处也采用变量的线性转换属性,将-16384对应-1500,+16384对应+1500,如图9所示。注意,图9和图7所示的线性转换是一致的。
4)添加画面。
5)编辑模板。
然后在按钮的事件属性中添加函数。在按钮STOP RT事件属性的单击事件下添加StopRuntime函数,如图12所示。
6)编辑画面。
2. 采用DriveES SIMATIC软件提供的S7-300库程序,自动生成从站轮询表程序,适用于从站数量比较多,较复杂的应用。
2. 使用S7-300提供的串口数据发送程序发送USS报文;
3. 使用S7-300提供的串口数据接收程序接收USS报文;
4. 依据USS协议分析接收到的报文。
USS协议是西门子专为驱动装置开发的通信协议。USS的工作机制是,通信是由主站发起,USS主站不断循环轮询各个从站,从站根据收到的指令,决定是否响应主站。从站不会主动发送数据。从站在以下条件满足时应答主站:接收到主站报文没有错误,并且本从站在接收到主站的报文中被寻址,上述条件不满足或者主站发出的是广播报文,从站不会做任何响应。USS的字符传输格式为11位,其中1位起始位、8位数据位、1偶校验、1位停止位。如下表所示:
起始位
数据位
校验位
停止位
1
0
1
2
3
4
5
6
7
偶X1
1
LSB
MSB
STX
LGE
ADR
有效据区
BCC
1
2
3
…
n
? LGE:长度1个字节,表明在LGE后字节的数量,上表中黄色区域长度;
? ADR:长度1个字节,表明从站地址;
? BCC:长度1个字节,异或校验和,USS报文中BCC前面所有字节异或运算的结果;
? 有效数据区:由PKW区和PZD区组成,如下表所示。
PKW区
PZD区
PKE
IND
PWE1
PWE2
…
PWEm
PZD1
PZD2
PZD1
PZDn
? PKE:长度一个字,结构如下表,任务或应答ID请参考《MM440使用大全》*13章。
Bit15- Bit 12 Bit 11 Bit 10-Bit 0
Bit15- Bit 12
Bit 11
Bit 10-Bit 0
任务或应答ID
0
基本参数号PNU
变频器参数号>=2000时,基本参数号PNU=变频器参数号-2000(Dec),例如P2155的基本参数号PNU=9B(Hex)(2155-2000=155(Dec)=9B(Hex))。
Bit15- Bit 12
Bit 11- Bit 8
Bit 7 - Bit 0
PNU扩展
0(Hex)
参数下标
变频器参数号>=2000时,PNU扩展=8(Hex)。
参数下标,例如P2155[2]中括号中的2表示参数下标为2。
? PWE:读取或写入参数的数值
PZD区用于主站与从站交换过程值数据:
? PZD1: 主站?从站 控制字
主站?从站 状态字
? PZD2: 主站?从站 速度设定值
主站?从站 速度反馈值
? PZDn: MM430/440支持较多8个PZD,MM420支持较多4个PZD
本文通过发送4个不同功能的报文来演示自定义USS报文的方法,USS协议详细说明请参照《MM440使用大全》*13章。
例1.把参数P2155[2]的数值修改为40.00Hz
字节数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
发送报文
2
0E
1
30
9B
80
2
42
20
0
0
4
7E
0
0
3C
应答报文
2
0E
1
20
9B
80
2
42
20
0
0
FB
31
0
0
9C
STX
Byte1
起始字符
LGE
Byte2
报文长度(字节3到字节16共14个字节)
ADR
Byte3
从站地址
PKW
Byte4-5
PKE内容:
Bit15- Bit 12(任务ID) =3(Hex),修改参数数值双字
Bit15- Bit 12(应答ID) =2(Hex),传送参数数值双字
Bit10- Bit 0(基本参数号PUN)=2155-2000(Dec)=9B(Hex)
Byte6-7
IND内容:
Bit15- Bit 12(PNU扩展) =8(Hex),参数号大于2000
Bit7- Bit 0(参数下标)=2(Hex),P2155[2]
Byte8-11
参数值,42 20 00 00(Hex)=40.0(浮点数)
PZD
Byte12-13
PZD1
Byte14-15
PZD2
BCC
Byte16
异或校验和
字节数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
发送报文
2
0E
1
12
BC
0
0
0
0
0
0
4
7E
0
0
D9
应答报文
2
0E
1
12
BC
0
0
0
0
0
5
FB
31
0
0
6C
STX
Byte1
起始字符
LGE
Byte2
报文长度(字节3到字节16共14个字节)
ADR
Byte3
从站地址
PKW
Byte4-5
PKE内容:
Bit15- Bit 12(任务ID) =1(Hex),读取参数数值
Bit15- Bit 12(应答ID) =1(Hex),传送参数数值单字
Bit10- Bit 0(基本参数号PUN)=700(Dec)=2BC(Hex)
Byte6-7
IND内容:
Bit15- Bit 12(PNU扩展) =0(Hex),参数号小于2000
Bit7- Bit 0(参数下标)=0(Hex),P700[0]
Byte8-11
参数值,5(Hex)=5(Dec)
PZD
Byte12-13
PZD1
Byte14-15
PZD2
BCC
Byte16
异或校验和
字节数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
发送报文
2
0E
1
0
0
0
0
0
0
0
0
4
7E
0
0
77
应答报文
2
0E
1
0
0
0
0
0
0
0
0
FB
31
0
0
C7
字节数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
发送报文
2
0E
1
0
0
0
0
0
0
0
0
4
7F
40
0
36
应答报文
2
0E
1
0
0
0
0
0
0
0
0
FF
34
3F
FF
6
请注意:如果按照以上4个例子发送报文可能会收到与例子中不一样的应答报文,这并不代表报文存在问题,可能由于变频器状态不同或参数设置不同造成。例子报文中已经计算了BCC校验的值,如果使用其他的报文需要自己计算BCC校验。
MM4系列变频器提供的串行接口为RS485接口,S7-300 PLC有3种通讯模块支持RS485接口:
2. RS485接口的CP340通讯模块;
3. RS485接口的CP341通讯模块;
信号
CPU314-2PtP
MM430/MM440
MM420
RS485接口针脚
端子
端子
P+
11
29
14
N-
4
30
15
1) 首先打开STEP7新建项目并插入CPU314-2PtP。
与通信有关的变频参数:
参数
设置值
功能说明
P0700
5
命令源选择:com链路USS通讯
P1000
5
频率设定源选择:com链路USS通讯
P2009
0
USS规格化:不规格化
P2010
6
USS波特率:9600bps
P2011
1
USS地址:1
P2012
2
PZD长度:2个字
P2013
4
PKW长度:4个字
r2024~r2031
只读
USS诊断数据
CPU314-2PtP调用系统功能块SFB60和SFB61进行串行通讯接口数据的发送和接收,SFB60与SFB61系统功能块已经包含在CPU中,只需在OB1中直接调用并分配背景数据块即可。在本例中分配DB60为SFB60的背景数据块,在OB1中调用程序:
REQ:
发送请求,每个上升沿发送一帧数据。
R:
终止发送。
LADDR:
PtP串口的起始地址,请查看PLC硬件配置中,PtP属性对话框Addresses栏址中显示的数值,本例中为“1023”,转化为16进制数为W#16#3FF。
DONE:
发送完成输出一个脉冲。
ERROR:
发送错误输出1。西门子EMDT08
STATUS:
发送块状态字。
SD_1:
发送数据区起始地址,发送数据区定义为DB1.DBB0开始的n个字节。
LEN:
发送字节的长度。
EN_R:
接收使能。
R:
终止接收。
LADDR:
PtP串口的起始地址,请查看PLC硬件配置中,PtP属性对话框Addresses栏址中显示的数值,本例中为“1023”,转化为16进制数为W#16#3FF。
NDR:
接收到新数据输出一个脉冲。
ERROR:
接收错误输出1。
STATUS:
接收块状态字。
RD_1:
接收数据区起始地址,接收数据区定义为DB2.DBB0开始的n个字节。
LEN:
接收到数据的长度。
将例子中的报文按字节顺序传送到从DB1.DBB0开始的16个字节中,设置MW104=16,当M100.0上升沿时PLC即发送一帧USS报文。如果变频器接收到的报文无误就会返回一条响应报文,需要将M200.0置1 PLC就会接收到响应报文,并把报文存储到从DB2.DBB0开始的16个字节中。
在USS通讯中变频器在收到主站发送的报文后会重新计算报文的BCC校验,如果计算结果与报文传送的BCC校验不一致,那么表明变频器接收到的信息是无效的,变频器将丢弃这一信息,并且不向主站发出应答信号。所以正确计算BCC校验尤为重要。前面提到的4个例子报文中已经计算好了BCC校验,下面给出利用S7-300 PLC编程计算15个字节的BCC校验的程序。
程序中将DB1.DBB0到DB1.DBB14中的内容依次进行异或计算,并把计算结果保存到DB1.DBB15中。
通常情况下,要实现HMI设备与V20变频器的通讯,需要一个支持USS通讯或MODBUS通讯的PLC,比如S7-200系列PLC。其通讯电缆连接如图1所示。PLC的一个通讯端口与触摸屏连接,可以采用PPI协议通讯。PLC的另一个通讯端口与V20的RS485通讯端口连接,采用MODBUS协议通讯,PLC上编写MODBUS主站程序,V20为从站。
图1 触摸屏通过PLC与V20变频器通讯
图2 触摸屏直接与V20变频器通讯
下面用一个实例来介绍Smart Line触摸屏与一台V20变频器通过MODBUS通讯的实现方法。该例子中用到的主要硬件设备如表1所示,触摸屏组态软件为WinCC Flexible 2008 SP4 China。
名称
订货号
数量
说明
触摸屏
6AV6648-0BE11-3AX0
1
Smart 1000 IE
24V电源
6EP1332-1SH51
1
DC24V/4A
变频器
6SL3210-5BE17-5UV0
1
V20 变频器 0.75kW
电机
1LA9060-4KA10-Z
1
1LA9 电机 0.12kW
1)将变频器、电机、触摸屏固定在安装工位上。
2)连接变频器到电机的动力电缆和接地电缆。
3)连接供电电源到变频器的动力电缆和接地电缆。
4)连接变频器和触摸屏的RS485通讯电缆。触摸屏RS485的9针接口与 V20端子对应关系:3对应P+,8对应N-。
5)连接24V直流电源的交流进线电缆和到触摸屏的直流供电电缆。
V20变频器要采用MODBUS通讯,可以做如下设置:
1)变频器恢复出厂参数:
P0010=30
P0970=21
2)变频器快速调试,选择Cn011-MODBUS通讯连接宏:
a)设置电网频率和功率单位
b)输入电机铭牌参数
c)选择连接宏Cn011-MODBUS通讯
d)选择应用宏AP000
Cn011连接宏对应参数如表2所示。
参数
描述
工厂缺省值
Cn011默认值
备注
P0700[0]
选择命令源
1
5
RS485为命令源
P1000[0]
选择速度给定
1
5
RS485为速度设定值
P2023[0]
RS485协议选择
1
2
MODBUS RTU协议
P2010[0]
USS/MODBUS波特率
8
6
波特率为9600bps
P2021[0]
MODBUS地址
1
1
变频器MODBUS地址为1
P2022[0]
MODBUS应答**时时间
1000
1000
向主站发回应答的较大时间
P2014[0]
USS/MODBUS报文间断时间
2000
100
监控报文间断时间
P2014[0]=0 不监控报文间隔时间,否则可能会报F72故障
P2021[0]=3 MODBUS设备地址为3(与触摸屏组态软件中设置的从站地址一致)
在WinCC Flexible 2008 SP4 China软件中组态Smart 1000 IE触摸屏。详细步骤如下:
1)创建项目。
创建一个空项目,如图3所示。
图3 创建空项目
图4 选择Smart 1000 IE触摸屏
在连接画面中新建一个连接,相关参数设置如下:
通讯驱动程序:Modicon MODBUS
类型:RS485
波特率:9600
奇偶校验:偶
数据位:8
停止位:1
组帧:RTU Standard
CPU类型:984
从站地址:3
连接设置如图5所示。
图5 连接设置
添加与变频器监控相关的10个变量,如表3所示。
变量名
MODBUS寄存器地址
说明
CtrlWord1
40100
控制字1
SetPoint
40101
速度设定值
StsWord1
40110
状态字1
Feedback
40111
速度实际值
ActFreq
40342
频率实际值
OutpVoltage
40343
输出电压
DCVol
40344
直流电压
OutpCurrent
40345
输出电流
OutpTorque
40346
输出转矩
OutpPower
40347
输出功率
图6 添加变量
图7 速度设定值变量线性转换
图8 速度设定值变量限制值
图9 速度反馈值变量线性转换
项目生成时已经有一个模板和一个画面,此例仅用到一个画面。修改画面的名字为V20_Monitor,如图10所示。
图10 编辑之前的画面V20_Monitor
模板中的对象在选择使用模板的画面中会显示出来,此处把西门子的LOGO和退出Runtime的按钮放置在模板中,如图11所示。
图11 编辑模板
图12 退出运行画面按钮事件设置
在V20_Monitor画面中放置IO域、文本域、按钮、棒图、圆形等对象。在文本域中输入相应的文本,设置字号、颜色等,将相关对象分类排列整齐,完成后的V20_Monitor画面如图13所示。
图13编辑完成的画面V20_Monitor
西门子EMDT08