西门子变频器440与S7 300PLC的DP通讯要怎样设置参数 点击:14410 | 回复:8



lzwlyh

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:16帖 | 178回
  • 年度积分:0
  • 历史总积分:188
  • 注册:2008年4月12日
发表于:2011-10-14 16:00:32
楼主
西门子变频器440与S7 300PLC的DP通讯要怎样设置参数,我公司有一台西门子变频器440与S7 300PLC做的DP通讯,电机的启停和调速都是靠通讯来完成,没有接控制线,PLC的程序里做的DB块在变频器里的参数应该怎样去设置,要不要设置呢,程序里只调用了SFC51,本来应该调用的是SFC14和SFC15的,但是程序里没用这两个系统功能块,我现在想改个大的变频器,不知道换了变频器后,变频器的参数该怎样去设置,是不是改好P918(PROFIBUS地址)跟硬件组态上的一致就,还有把电机的参数设好就可以了



深水渔

  • 精华:0帖
  • 求助:1帖
  • 帖子:32帖 | 1660回
  • 年度积分:0
  • 历史总积分:1915
  • 注册:2007年12月17日
发表于: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.

quster

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2012年9月12日
发表于:2013-03-12 09:40:39
2楼
P#DB100.DBX12.0 BYTE 12  为什么要12个byte呢?  还有"DB100".DBW0  和DB100".DBW2  是怎么来的?

千山独步--王者之师

  • 精华:0帖
  • 求助:0帖
  • 帖子:159帖 | 3098回
  • 年度积分:4
  • 历史总积分:21261
  • 注册:2007年2月02日
发表于:2013-03-12 11:27:57
3楼
去自助资料库中下载 PLC-440通迅实例,有参考价值的

chenzhiliang20

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 21回
  • 年度积分:0
  • 历史总积分:61
  • 注册:2011年10月08日
发表于:2013-03-15 09:27:02
4楼
学习了。。。。。。。

lz6b425

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 60回
  • 年度积分:0
  • 历史总积分:55
  • 注册:2008年10月12日
发表于:2014-01-25 20:07:27
5楼

我想“深海鱼”说不应该是440,应该是装机装柜型的才对,楼主问的是440,参数是不一样的。

lzm7787

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 74回
  • 年度积分:38
  • 历史总积分:88
  • 注册:2010年2月28日
发表于:2015-08-11 13:12:40
6楼

2222222222222222222

chenbangxue

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 6回
  • 年度积分:0
  • 历史总积分:46
  • 注册:2012年4月09日
发表于:2015-08-30 15:00:37
7楼

我的理解是根据所选择的ppo来决定的,例如选择ppo3的话就用byte 4就够了,相当于两个字。db100.dbw0是指所建立的数据块db100里第一个字,其它的照此推算

回复内容:

对: quster P#DB100.DBX12.0 BYTE 12  为什... 内容的回复!


无名英雄

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 31回
  • 年度积分:0
  • 历史总积分:0
  • 注册:2015年3月03日
发表于:2016-01-22 16:18:13
8楼

ggggggggggggggggg


热门招聘
相关主题

官方公众号

智造工程师