发表于:2011-11-04 11:13:18
1楼
工控网曾有过关于主题的文章,很精华,没找到链接,抱歉!下面给您一篇我曾摘自工控网的技术文章:
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.