PLC通过现场总线控制变频器的运行
设计一个实际工程中用过的PLC通过现场总线控制变频器的例子(如:西门子PLC通过Profibus现场总线控制MM440变频器或6se70系列变频器;再如罗克韦尔的PLC通过DeviceNet总线控制其SSc160系列变频器或PowerFlex4,40,400,PowerFlex70,700,700s,700L等类型的变频器),需要把PLC型号、相应的变频器型号、各种参数及情况、控制系统实现的功能等说明清楚,贴出程序并加以说明。
一、先说说配置情况吧;
1、硬件配置:
1.1 PLC,使用的是ABB AC500系列的CPU+CM578扩展模块。任何一款AC500的CPU都可支持,只需额外增加一块通讯模块即可实现现场总线的方式。目前我介绍的是CM578通讯模块,该模块是支持CANopen现场总线的。
1.2 变频器,邦飞利ACT401系列变频器+CM-CAN通讯模块。ACT401系列变频器是邦飞利公司应用当今先进的电机磁场定向控制理论,采用高性能的功率模块,利用德国先进的变频器制造工艺,制造出的新一代变频器。CM-CAN通讯模块是ACT401系列变频器通讯子板,用于将变频器扩展到CANopen网络中。
2、拓扑结构
使用SyCon软件实现网络拓扑以及PDO的配置。
从上图可以看出,CM578作为CANopen主站,ACT401系列变频器作为CANopen从站。地址分别设置为4和90。通信波特率为:500kbit/s.
通过SyCon配置的基本情况是:PLC对变频器的控制字和给定频率(PDO1(rx)),以及变频器的状态字与变频器实际输出频率(PDO2(tx))。控制字是指PLC对变频器发出的控制字以及故障复位指令;状态字是指变频器当前的状态机以及故障位的状态。
二、控制情况
1、PLC根据变频器状态机的状态,通过送给变频器相应的控制字来实现对变频器的控制,PLC送给变频器的控制字是通过PDO来实现的。具体控制逻辑图如下。
2、基本控制程序:
变频器远程控制
IF OConVerter
THEN
(*OConVerter 为PLC发出的控制指令*)
CASE UINT_TO_BYTE(IConVerter_control)
OF (*IConVerter_control为变频器的状态字*)
16#40:
OConVerter_control:=16#06;
(*OConVerter_control为PLC发出的控制字*)
16#21:
OConVerter_control:=16#07;
16#23:
OConVerter_control:=16#000F;
(*变频器运行*)
ELSE
;
END_CASE
ELSIF NOT IConVerterErrBit
THEN (*IConVert erErrBit 为变频器状态字中的故障位*)
OConVerter_control:=0;
ELSE
;
END_IF
以上就是根据二.1中的逻辑图编写的最基本的控制。
三、变频器参数设置
1、电机参数的设置,包括额定电压、额定电流、额定速度等电机固有参数,这些参数根据实际电机情况做不同修改。
2、V/f特性设置。根据频率控制连接的三相电机的电压设定V/f特性。对于电机在相应工作点输出的转矩,也需要成比例地控制频率与电压的关系。当变频器输出电压/输出频率比例为常数时,三相电机在额定工作范围的磁通量也保持恒定。
3、电流限制。为了避免连接的负载突变导致变频器故障,设置限流功能,可对变频器的过载预留值进行优化处理。
4、频率斜坡(Fequency Ramps)设置,以下参数是针对8.8KW做的设置,其他根据不同功率做调整
0-100Hz 加速时间:4s;
0-100Hz 减速时间:4s;
S曲线加速时间:0.5s;
S曲线减速时间:0.5s。
5、CAN总线通信波特率、总线ID设置。与PLC那边设置一样,变频器地址为90。通信波特率为:500kbit/s.
基于PROFIBUS现场总线的PLC与传动变频器间的通讯
1、profibus-dp的数据通讯格式
传动装置通过profibus-dp网与主站plc的接口是经过通讯模块cbp板来实现的,带有dp口的s7-300和400 plc也可以通过cpu上的dp口来实现。采用rs485接口及支持(9.6k~12m)bps波特率数据传输(数据传输的结构如图1所示),其中数据的报文头尾主要是来规定数据的功能码、传输长度、奇偶校验、发送应答等内容,主从站之间的数据读写的过程(如图2所示)核心的部分是参数接口(简称pkw)和过程数据(简称pzd),pkw和pzd共有五种结构形式即:ppo1、ppo2、ppo3、ppo4、ppo5,其传输的字节长度及结构形式各不相同。在plc和变频器通讯方式配置时要对ppo进行选择,每一种类型的结构形式如下。
数据传输的结构
主从站间数据读写过程
ppo1 4 pkw + 2 pzd (共有6个字组成)
ppo2 4 pkw + 6 pzd (共有10个字组成)
ppo3 2 pzd (共有2个字组成)
ppo4 6 pzd (共有6个字组成)
ppo5 4 pkw+10 pzd (共有14个字组成)
参数接口(pkw):参数id号(pke)、变址数(ind)、参数值(pwe)三部分组成。过程数据接口(pzd):控制字(stw)、状态字(zsw)、主给定(main setpoint ),实际反馈值(main actual value)等组成,另外要了解掌握控制字和状态字每一位的具体含义,并熟悉西门子变频器参数的具体应用,在通讯参数设置时需要具体定义。
2、实现通讯的软硬件要求和参数设置
(1)硬件要求
?133mhz以上且内存不小于16mb的编程器。
?西门子s7-300/400系列plc,ram不小于12kb,并带有profibus-dp接口,或是s7-400(ram不小于12kb)配cp443-5的通讯板。
?带有cbp通讯模块和带有cu2/sc的vc板的变频器
(2)软件要求
?win 95或win nt(v4.0以上)
?step7(v3.0以上)
?安装dva-s7-sps7
(3)通讯设置基本步骤
?设置传动参数
? plc硬件配置
?创建数据块
?编写通讯程序
? 系统调试
(4)传动参数的设置
?p053 = 3 参数使能
?p090 = 1 cbp板在2#槽
?p918 = 3 从站地址
?p554.1=3001 控制字pzd1
?p443.1=3002 主给定pzd2
?p694.1=968 状态子pzd1
?p694.2=218 实际值pzd2
3、plc与传动变频器通讯程序
要实现通讯功能,正确的程序编写是非常重要的,下面将以西门子的s7-416 plc和6se70变频器为例来介绍通讯的程序编写。
(1)基本配置和定义
基本配置如所示:
基本配置界面
主站master为cpu-416-2dp
从站slave为6se70传动装置,profibus地址是3
输入地址: iw 256 ( 2 words pzd);
输出地址: qw256 (2 words pzd );
ppo类型: 3; 总线接口: rs485。
(2)使用的功能块
ob1 main cycle 主循环
sfc14 dprd-dat 读数据系统功能块
sfc 15 dpwr-dat 写数据系统功能块
db100 数据存取(dbw0 –dbw4是读出,
dbw5-dbw8是写入)
mw200 mw210 通讯状态显示
(3)简单程序编写(如图)
程序编写界面
ob1
network1: 读出数据
call sfc 14
laddr w#16#100
ret-val mw200
record p#db100.dbx0.0 byte 4
network2: 显示数据
l db100.dbw 0
t mw50
nop 0
network3: 写入数据
l w#16#efff
t db100.dbw 5
network4: 发送数据
call sfc 15
laddr w#16#100
record p#db100.dbx5.0 byte 4
ret-val mw210
把程序存储编译下装,检查传动装置的参数设置后,即可上电进行调试。
| 2011-03-26 20:30:51 5楼
飘在半途中
支持下国产:
用汇川的PLC和汇川MD320变频器用CAN BUS 通讯
模拟量通过人机写入:
部分程序如下:
变频器参数设置:
F0-02=2
F0-03=9
运行正常!
| 2011-03-28 17:20:42 6楼
玻璃的心
看来门前比较冷落呀!!!!!| 2011-03-28 19:43:07 7楼
广州啊四
呵呵,总线的没用过,来此看看,充下电!!!大家支持下!让我们不懂的学习学习!!!
| 2011-03-28 20:30:32 8楼
漂泊的风云
谢谢,分享。让我们不懂的学习学习!!!
| 2011-03-29 10:12:25 9楼
Override
菜鸟来学习。。。。。。
555555怎么才能进入工控领域搞PLC呐?
| 2011-03-29 11:00:00 10楼
玻璃的心
回复内容:
对:Override 关于
内容的回复:
从打擂台开始撒,从找网络找资料开始。
| 2011-03-29 21:38:39 11楼
ligang12310
回复:zxjjynl zxjjynl
程序编写界面
ob1
network1: 读出数据
call sfc 14
laddr w#16#100
ret-val mw200
record p#db100.dbx0.0 byte 4
network2: 显示数据
l db100.dbw 0
t mw50
nop 0
network3: 写入数据
l w#16#efff
t db100.dbw 5
network4: 发送数据
call sfc 15
laddr w#16#100
record p#db100.dbx5.0 byte 4
ret-val mw210