1.通讯方式的设定:PPO 4,这种方式为0 PKW/6 PZD,输入输出都为6个PZD,(只需要在STEP7里设置,变频器不需要设置);
PROFIBUS的通讯频率在变频器里也不需要设置,PLC方面默认为1.5MB.
在P60=7设置下,设置P53=3,允许CBP(PROFIBUS)操作.
P918.1设置变频器的PROFIBUS地址.
2.设置第一与第二个输入的PZD为PLC给变频器的控制字,其余四个输入PZD这里没有用到.
设置第一与第二个输出的PZD为变频器给PLC的状态字,设置第三个为变频器反馈给PLC的实际输出频率的百分比值,
第四个为变频器反馈给PLC的实际输出电流的百分比值,其余两个输出PZD这里没有用到.
3.PLC给变频器的第一个PZD存储在变频器里的K3001字里.
K3001有16位,从高到底为3115到3100(不是3001.15到3001.00).
变频器的参数P554为1时变频器启动为0时停止,P571控制正转,P572控制反转.
如果把P554设置等于3100,那么K3001的位3100就控制变频器的启动与停止,P571设置等于3101则3101就控制正转,
P572设置等于3102则3102就控制反转.(变频器默认P571与P572都为1时正转,都为0时为停止).
经过这些设置后K3001就是PLC给变频器的第一个控制字.
此时K3001的3100到3115共16位除了位3110控制用途都不是固定的,所以当设置P554设置等于3101时则3101可以控制启动与停止,
P571等于3111时则3111控制正转,等等.
K3001的位3110固定为“控制请求”,这位必须为1变频器才能接受PLC的控制讯号,所以变频器里没有用一个参数对应到这个位,
必须保证PLC发过来第一个字的BIT 10为1.
这里设置为:P554=3100,P571=3101,P572=3102,当PLC发送W#16#0403时(既0000,0100,0000,0011)变频器正转.
4.PLC给变频器的第二个PZD存储在变频器里的K3002字里.
变频器的参数P443存放给定值.
如果把参数P443设置等于K3002,那么整个字K3002就是PLC给变频器的主给定控制字.
PLC发送过来的第二个字的大小为0到16384(十进制),(对应变频器输出的0到100%),当为8192时,变频器输出频率为25Hz.
5.变频器的输出给PLC的第一个PZD字是P734.1,第二个PZD字是P734.2,等等.
要想把PLC接收的第一个PZD用作第一个状态字,需要在变频器里把P734.1=0032(既字K0032),
要想把PLC接收的第二个PZD用作第二个状态字,需要在变频器里把P734.2=0033(既字K0032).
(K0032的BIT 1为1时
示变频器准备好,BIT 2表示变频器运行中,等等.)
(变频器里存贮状态的字为K0032,K0033等字,而变频器发送给PLC的PZD是P734.1,P734.2等)
在变频器里把P734.3=0148,在变频器里把P734.4=0022,则第三个和第四个变频器PZD分别包含实际输出频率的百分比值
和实际输出电流的百分比值
6.程序:(建立DB100,调用SFC14,SFC15,6SE7的地址为512既W#16#200)
A. 读出数据
CALL "DPRD_DAT"
LADDR :=W#16#200
RET_VAL:=MW200
RECORD :=P#DB100.DBX0.0 BYTE 12(读取12个BYTE)
NOP 0
B. 发送数据
CALL "DPWR_DAT"
LADDR :=W#16#200
RECORD :=P#DB100.DBX12.0 BYTE 12(写入12个BYTE)
RET_VAL:=MW210
NOP 0
C. L "DB100".DBW0
T "MW20"
NOP 0
D. L "DB100".DBW2
T "MW22"
NOP 0
则:DB100.DBX 13.0 控制启动与停止;
DB100.DBX 13.1 控制正转;
DB100.DBX 13.2 控制反转;
M21.1 变频器READY;
M21.3 变频器FAULT.
西门子控制字和状态字都是32位,实际上用的位数不多,控制字用到的有合闸、急停、运行允许、故障复位、点动、PLC控制等,状态字用到的有开机准备、运行准备、运行信号、故障、报警等。这是比较简单的控制,如果要在线参数变更就比较复杂了。
最简单的学习方法就是看看PLC和变频器的接口配置,运行中用那些位有用,停止时那些位有用,启动和停止过程中那些位在变化,相信这样去学会比看大全理解的要快PLC与变频用DP通讯
硬件组态
1. 将MASTERDRIVES CBPCBP2 加入组态
2. Profibus 地址
1. 将MICROMASTER 4 加入组态
2. Profibus 地址
Top
选择数据格式
1. MASTERDRIVE中可供选择的PP0类型
2. IQ address
1. MICROMASTER 4 中可供选择的数据格式
2. IQ address
Top
Step 7 中的编程
创建数据块DB1
说明
1.在Step7 中对PKW (参数区)读写参数时调用SFC14和 SFC15
2. SFC14(“DPRD_DAT”)用于读Profibus 从站的数据
3. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站
4. W#16#100(即256)是硬件组态时PKW的起始地址
Top
程序举例1
1. 读参数r015
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 .将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
更多内容下载请登陆: 电邮件:plc808@163.COM
程序举例2 (读参数数组的数值)
2. 读参数P401.2
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
程序举例3 (读须置位参数页的参数)
3. 读参数U001.2
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
程序举例4(写参数)
4. 写参数P401.1 (将W#16#1000 写入P401.1中)
1.将W#16# 8191 写入DB1.DBW28 (PWE)
注PKW ,IND 的详细说明见附录
1. W#16#100(即256)是硬件组态时PKW的起始地址
2 .将从站数据读入DB1.DBX0.0 开始的8个字节(P#DB1.DBX0.0 BYTE 8)
PKE - DB1.DBW0
IND - DB1.DBW2
PWE1 - DB1.DBW4 参数值的高字位
PWE2 - DB1.DBW6 参数值的低字位
3 . 将DB1.DBX28.0 开始的8个字节写入从站(P#DB1.DBX28.0 BYTE 8)
DB1.DBW28 - PKE
DB1.DBW30 - IND
参数值的高字位 DB1.DBW32 - PWE1
参数值的低字位 DB1.DBW34 - PWE2
注PKW ,IND 的详细说明见附录
Top
对PZD (过程数据)的读写
说明
1. 在Step7 中对PZD (过程数据)读写参数时调用SFC14和SFC15
2. SFC14(“DPRD_DAT”)用于读Profibus 从站的数据
3. SFC15(“DPWR_DAT”)用于将数据写入Profibus 从站
4. W#16#108(即264)是硬件组态时PZD的起始地址
5. 对特殊结构的PZD 可用PQW , PIW 进行读写
Top
程序举例5 对PPO5 中10PZD的读写
DB1中与PZD相对应的数据字
1.在P918 中设置Profibus 地址,必须与Step 7 中设置相同.地址不能重复.
2. 控制字第十位置“1”. PZD1 = W#16#X4XX
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进行选择,每一种类型的结构形式如下。
图1 数据传输的结构
图2 主从站间数据读写过程
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) 等组成,另外要了解掌握控制字和状态字每一位的具体含义,并熟悉西门子变频器参数的具体应用,在通讯参数设置时需要具体定义。
4 实现通讯的软硬件要求和参数设置
(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
5 plc与传动变频器通讯程序
要实现通讯功能,正确的程序编写是非常重要的,下面将以西门子的s7-416 plc和6se70变频器为例来介绍通讯的程序编写。
(1) 基本配置和定义
基本配置如图3所示:
图3 基本配置界面
主站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) 简单程序编写(如图4)
图4 程序编写界面
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
把程序存储编译下装,检查传动装置的参数设置后,即可上电进行调试。
6 结束语
通过上述介绍,我们可以以profibus-dp总线为基础通过网络配置和参数设定来建立plc和传动装置之间的通讯,并通过参数的变化来实现对装置的启停控制,快慢调速等功能。借助于编程器可plc在线查看从装置读取上来的状态和实际反馈值,在装置pmu上也可查看主给定。通讯技术的实现了自动化的更加广泛应用。