发布时间:2019-08-24 来源:众智博远
1 系统配置
1.1软硬件配置
(1)配备支持USS通信功能控制单元G120变频器,异步电机。本例中,使用的控制单元是CU240E-2,固件版本V4.5。
(2)S7-200 PLC,与PC的连接电缆。本例中,使用的是CPU224 XP CN,连接电缆使用CP5512。
(3)安装了Step7 Micro-Win V4.0软件和USS协议库的PC机。本例中,使用的是Step7 Micro-Win V4.0 SP6,USS协议库为2.3版本。
在进行PLC编程之前,请确认USS协议库已经安装,如图1-1。
图1-1
2.2 S7-200与控制单元间的接线
图1-2
CU240E-2的控制端子排如图1-2,从控制单元底部看,共有5个接线端子,其中2号端子为RS485P,3号端子为RS485N,用于通信数据的发送和接收。
图1-3
S7-200作为USS通信主站,其通信端口和变频器从站的接线如图1-3。在通信网络的首、末端需要使用终端电阻。
对于S7-200,需要在通信端口端子3和8之间,连接一阻值为120欧姆的电阻。
对于变频器,把通信网络末端的CU240E-2终端电阻拨码开关拨到ON位置即可(位置在图1-1中,标号⑨);中间位置的CU240E-2,终端电阻拨码开关必须拨到OFF位置。
本例中,S7-200(CPU224 XP CN)使用通信端口Port 0和变频器进行通信。
2 变频器设置
2.1 地址设置
变频器的USS通信地址可以通过控制单元上的总线地址拨码开关(位置在图1-1中,标号⑤)进行设置。当地址拨码开关的位置都为OFF时,也可用过参数P2021进行设置。
2.2 参数设置
除了设置地址之外,还需要对变频器一些基本的通信参数进行设置,才可以进行USS通信,如表2-1所示:
表2-1
参数 | 描述 |
P0015 = 21 | 变频器宏程序。 15:通过现场总线控制 设置方法:P10=1 → P15=21 → P10=0 |
p2030 = 1 | 现场总线协议选择 1:USS协议 |
p2020 | 现场总线波特率 设置范围是 4800 bit/s … 187500 bit/s,出厂为 19200 bit/s 本例使用:6(9600) |
P2021 | USS地址(在地址拨码开关都为OFF时,才有效) 本例使用:3 |
p2040 | 过程数据监控时间 指没有收到过程数据时发出报警的延时。 注:必须根据从站数量、总线波特率加以调整,出厂设置为 100 ms。 |
3 PLC编程
3.1使用USS协议的初始化模块初始化S7-200的PORT0端口
图3-1
功能块说明:
注: 此处以及下文的“功能块说明”仅介绍了功能块内的主要管脚
功能,未说明的管脚功能,请参考Step7 Micro-Win V4.0软件的
帮助文件。
输入:
EN:使能。每次改变通讯状态都应该执行一次初始化指令,EN信号应该通过脉冲激活。本例中,Port 0端口一直作为USS通信端口使用,因此使用SM0.1初始化一次即可。
Mode:1——为端口0指定USS协议,并启用该协议。
Baud:波特率,应与变频器定义的波特率一致。本例中,使用9600。
Active:激活驱动器地址,参考图3-2。本例中,使用2#1000,即激活驱动器地址3。
图3-2 激活驱动器地址3和5
3.2 使用USS_CTRL功能块控制变频器的运行
3.2.1 USS_CTRL功能块编程
图3-3
功能块说明:
输入:
EN:通常情况总是激活。
RUN:启动变频器。0-停止;1-启动。
OFF2:自由停车。0-正常;1-自由停车。
OFF3:快速停止。0-正常;1-快速停止。
F _ACK:故障复位。通过上升沿对变频器进行故障复位。
DIR:运行方向。0-正转;1-反转
Drive:变频器USS地址,0-31。本例使用3。
Speed~:速度设定值,通过百分比进行设定,范围 -200.0~~200.0%。
输出:
Error:错误代码。有关错误代码说明,请参考表3-1。
Status:变频器返回的状态字。有关G120变频器状态字,请参考《参数手册》有关r52参数的说明。
Speed:变频器返回的速度实际值的百分比。
Run_EN:变频器运行状态。0-停止;1-运行。
D_Dir:变频器运行方向。0-正转;1-反转。
Inhibit:变频器禁止位状态。0-正常;1-禁止。
Fault:变频器故障状态。0-正常;1-故障。
表3-1
错误代码 | 说明 |
0 | 无错。 |
1 | 驱动器不应答。 |
2 | 检测到来自驱动器的应答中检验和错误。 |
3 | 检测到来自驱动器的应答中校验错误。 |
4 | 来自用户程序的干扰造成错误。 |
5 | 尝试非法命令。 |
6 | 提供非法驱动器地址。 |
7 | 未为USS协议设置通讯端口。 |
8 | 通讯端口正在忙于处理指令。 |
9 | 驱动器速度输入超出范围。 |
10 | 驱动器应答长度不正确。 |
11 | 驱动器应答第一个字符不正确。 |
12 | 驱动器应答中的字符长度不受USS指令支持。 |
13 | 错误的驱动器应答。 |
14 | 提供的DB_Ptr地址不正确。 |
15 | 提供的参数号不正确。 |
16 | 选择了无效协议。 |
17 | USS激活,不允许改动。 |
18 | 指定了非法波特率。 |
19 | 无通讯:驱动器未设为激活。 |
20 | 驱动器应答中的参数或数值不正确或包含错误代码。 |
21 | 返回一个双字数值,而不是请求的字数值。 |
22 | 返回一个字数值,而不是请求的双字数值。 |
3.2.2 分配库存储区,编译,下载。
在编译程序之前,选择 “程序块” ->“ 库”, 右键点击,选择“库存储区”。在弹出的对话框中点击 “建议地址” 选择V存储区的地址后点击 “OK”退出。如图3-4。
图3-4
分配库存储区之后,编译并下载。
3.2.3 控制变频器运行。
此时,即可通过USS通信,控制变频器的运行。
例,
打开状态表监控,如图3-5。
M1.0为变频器的启停控制位,初始值为0,从0强制为1后,变频器即可运行。
VD30为变频器的速度设定值,强制为20.0后,变频器将以20%的速度运行。
VW20,VD22分别为变频器返回的状态字和速度实际值。
图3-5
3.3 读写参数
根据参数的不同数据类型,需要使用不同的功能块进行变频器参数的读写。下文中,将通过举例进行介绍。
注:目前,USS协议库的参数读写功能块,仅适用于读写参数号在3999以下的参数。对于参数号在4000以上的参数,如果要进行读写,可参考《操作说明》,7.4.2.4节,使用自由口编程的方式进行读写,在此不作介绍。
3.3.1 使用USS_RPM_R功能块读取浮点型参数
图3-6
功能块说明:
输入:
EN:需要读取参数时激活。
XMT_~:操作请求。使用上升沿激活。
Drive:变频器USS地址。本例中,使用3。
Param:要读取的参数号。本例中,读取参数r27(输出电流实际值)。
Index:参数下标。本例中,r27无下标,必须定义为下标0。
输出:
Value:返回的参数值。
编译、下载之后,打开状态表监控,如图3-7。把M6.0,从0强制为1后,VD560返回值为0.33。即r27=0.33。
图3-7
3.3.2 使用USS_WPM_R功能块修改浮点型参数
图3-8
功能块说明:
输入:
EN:需要修改参数时激活。
XMT_~:操作请求。使用上升沿激活。
EEPR~:写入EEPROM存储器。(注:对CU240B/E-2无效)
Drive:变频器USS地址。本例中,使用3。
Param:要修改的参数号。本例中,修改参数P1120(斜坡上升时间)。
Index:参数下标。本例中,修改下标0。
Value:要写入的参数值。
编译、下载之后,打开状态表监控,如图3-9。把M7.0,从0强制为1后,VD630的当前值15.0将会写入参数P1120的下标0中,即P1120.0=15.0。
图3-9
3.3.3 使用USS_RPM_W功能块读取U16(无符号16位)类型参数
图3-10
功能块说明:
输入:
EN:需要读取参数时激活。
XMT_~:操作请求。使用上升沿激活。
Drive:变频器USS地址。本例中,使用3。
Param:要读取的参数号。本例中,读取参数P210(电源电压)。
Index:参数下标。本例中,P210无下标,必须定义为下标0。
输出:
Value:返回的参数值。
编译、下载之后,打开状态表监控,如图3-11。把M2.0,从0强制为1后,VDW160返回值为440。即P210=440。
图3-11
3.3.4 使用USS_WPM_W功能块修改U16(无符号16位)类型参数
图3-12
功能块说明:
输入:
EN:需要修改参数时激活。
XMT_~:操作请求。使用上升沿激活。
EEPR~:写入EEPROM存储器。(注:对CU240B/E-2无效)
Drive:变频器USS地址。本例中,使用3。
Param:要修改的参数号。本例中,修改参数P1211(自动重启尝试次数)。
Index:参数下标。P1211无下标,必须定义为下标0。
Value:要写入的参数值。
编译、下载之后,打开状态表监控,如图3-13。把M3.0,从0强制为1后,VW230的当前值2将会写入参数P1211的下标0中,即P1211=2。
图3-13
3.3.5 使用USS_RPM_D功能块读取U32(无符号32位)类型参数
图3-14
功能块说明:
输入:
EN:需要读取参数时激活。
XMT_~:操作请求。使用上升沿激活。
Drive:变频器USS地址。本例中,使用3。
Param:要读取的参数号。本例中,读取参数P730(DO0功能)。
Index:参数下标。本例中,P730无下标,必须定义为下标0。
输出:
Value:返回的参数值。
编译、下载之后,打开状态表监控,如图3-15。把M4.0,从0强制为1后,VD360返回值为16#0034FC03。即P730=52.3。
图3-15
注:16#0034FC03到52.3的转换说明
当使用读写参数的功能块时,类似于P730=52.3这样的BICO连接参数,需要经过如下转换:
高字,0034(16进制)= 52(十进制);
低字中的高字节,对于CU240B/E-2,规定为FC(16进制);
低字中的低字节,03(16进制)= 3(十进制)。
所以, 0034FC03(16进制)= 52.3(十进制)
3.3.6 使用USS_WPM_D功能块修改U32(无符号32位)类型参数
图3-16
功能块说明:
输入:
EN:需要修改参数时激活。
XMT_~:操作请求。使用上升沿激活。
EEPR~:写入EEPROM存储器。(注:对CU240B/E-2无效)
Drive:变频器USS地址。本例中,使用3。
Param:要修改的参数号。本例中,修改参数P731(DO1功能)。
Index:参数下标。本例中,P731无下标,必须定义为下标0。
Value:要写入的参数值。
编译、下载之后,打开状态表监控,如图3-17。把M5.0,从0强制为1后,VD430的当前值16#0034FC0C将会写入参数P731中,即P731=52.12。有关0034FC0C(16进制)到52.12的转换,请参考3.5.1节中的注释。