s7-400通信个人见解! 点击:1186 | 回复:7



ewen

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 51回
  • 年度积分:0
  • 历史总积分:596
  • 注册:2005年9月12日
发表于:2006-12-15 11:20:00
楼主
在siemens的通信中,相信很多人都用过以太网通信,那么,一般都是调用库中的FC5_AG send 和FC6 AG_receiv或者是FC50 AG_send,FC60 AG_receiv,这是SIEMENS公司的标准功能块。AG5_send to other plc ,AG6_receiv other plc station ,他们的通信量不能大于240个字节,而AG50和AG60是可以大于240个字节的通信量。下面如何使用AG50和AG60做如下分析:
1、在FC50中,第一个形参是ACT ,这是当ACT为1时,激活FC50,发送数据。如果常为“1”,发送速度太快,这样会导致整个网络崩溃,可以选用500ms,发送一次。
2、在一个程序,先调用FC60,AG_RECEIV,再调用AG_SEND,这样可以避免数据的不一致性;
3 检查通信有问题时,可以自己编一个看门狗,在SEND程序中,增加一个计数程序,第一秒加一数,加到100又从1开始,把这个地址同时发送给加一个PLC,在另一PLC中,即RECEIV程序中,把对应的接收地址调出来,用于监控是否在计数,或者也可以编一个监控程序用于通信故障报警.



彩云之滇东北

  • 精华:20帖
  • 求助:5帖
  • 帖子:107帖 | 2725回
  • 年度积分:0
  • 历史总积分:21121
  • 注册:2005年6月14日
发表于:2006-12-15 12:02:00
1楼
学习学习

wincc.5591

  • 精华:0帖
  • 求助:1帖
  • 帖子:23帖 | 240回
  • 年度积分:0
  • 历史总积分:397
  • 注册:2005年10月22日
发表于:2006-12-15 12:40:00
2楼
还能不能再具体点啊

飞云

  • 精华:0帖
  • 求助:0帖
  • 帖子:26帖 | 494回
  • 年度积分:0
  • 历史总积分:787
  • 注册:2002年8月03日
发表于:2006-12-15 12:46:00
3楼
“500ms发送一次”,这样的通讯还有用吗?

supman

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 444回
  • 年度积分:0
  • 历史总积分:525
  • 注册:2006年11月16日
发表于:2006-12-16 09:21:00
4楼
学习中

ewen

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 51回
  • 年度积分:0
  • 历史总积分:596
  • 注册:2005年9月12日
发表于:2007-01-24 20:34:00
5楼
500MS这个速度完全可以了,如果觉得慢,你还可以在FC50形参中,ACT设置成100MS发送一次.

亚星

  • 精华:1帖
  • 求助:0帖
  • 帖子:14帖 | 340回
  • 年度积分:0
  • 历史总积分:394
  • 注册:2001年1月08日
发表于:2007-01-26 19:31:00
6楼
为了快速通讯可以检测AG_SEND的DONE信号,只要DONE完就再次发送.
为了降低网络负担而又及时的传送数据,可以检测数据是否变化,只要变化了而且AG)SEND不忙就发送.

ewen

  • 精华:0帖
  • 求助:0帖
  • 帖子:8帖 | 51回
  • 年度积分:0
  • 历史总积分:596
  • 注册:2005年9月12日
发表于:2007-01-27 18:53:00
7楼
楼上的人说的也对,那程序如何编呢,我们可以FC50在帮助中的说明,根据说明,程序编定如下:
ACT:= M100.0,
ID:= 1,
LADDR:= W#16#100,
LEND:= P#DB100.dbx0.0 BYTE 240,
LEN:= 240,
DONE:= M100.1,
ERROR:= M100.2,
STATUS:= MW102 ;

R M100.0;
SET;
A M100.1;
JC done;
SET;
A M100.2;
JC err;

done:s m100.0
err: s m100.0

热门招聘
相关主题

官方公众号

智造工程师