一台S7-300和2台S7-200通讯疑问,有请大虾解答

已锁定

日尧

  • 帖子

    363
  • 精华

    3
  • 被关注

    15

论坛等级:侠士

注册时间:2005-02-02

白金 白金 如何晋级?

一台S7-300和2台S7-200通讯疑问,有请大虾解答

1056

4

2012-09-19 00:01:17

我用的是SFC67,SFC68,无组态单边编程通信方式,即200为服务器,300为客户机。
参考例子如下:
CALL "X_GET" //调用SFC 67
REQ :=M8.1 //激活读取请求(BOOL 1有效)
CONT :=TRUE //接收完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#B //对方(B站)的MPI地址(WORD)
VAR_ADDR:=P#DB1.DBX2100.0 BYTE 10 //要读取的对方的数据接收区(ANY)
RET_VAL :=LW4 //返回的故障信息(WORD)
BUSY :=M8.2 //接收状态(ANY 1为接收中)
RD :=P#M 210.0 BYTE 10 //本地的数据接收区(ANY)

CALL "X_PUT" //调用SFC 68
REQ :=M8.3 //激活发送请求(BOOL 1有效)
CONT :=TRUE //发送完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#B //接收方的MPI地址(WORD)
VAR_ADDR:=P#DB1.DBX2200.0 BYTE 10 //对方的数据接收区(ANY)
SD :=P#M220.0 BYTE 10 //本地的数据发送区(ANY)
RET_VAL :=LW2 //返回的故障信息(WORD)
BUSY :=M8.4 //发送状态(ANY 1为发送中)

CALL "X_GET" //调用SFC 67
REQ :=M8.1 //激活读取请求(BOOL 1有效)
CONT :=TRUE //接收完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#C //对方(B站)的MPI地址(WORD)
VAR_ADDR:=P#DB1.DBX2300.0 BYTE 10 //要读取的对方的数据接收区(ANY)
RET_VAL :=LW4 //返回的故障信息(WORD)
BUSY :=M8.2 //接收状态(ANY 1为接收中)
RD :=P#M 230.0 BYTE 10 //本地的数据接收区(ANY)

CALL "X_PUT" //调用SFC 68
REQ :=M8.3 //激活发送请求(BOOL 1有效)
CONT :=TRUE //发送完成后保持连接(BOOL 1连续)
DEST_ID :=W#16#C //接收方的MPI地址(WORD)
VAR_ADDR:=P#DB1.DBX2400.0 BYTE 10 //对方的数据接收区(ANY)
SD :=P#M240.0 BYTE 10 //本地的数据发送区(ANY)
RET_VAL :=LW2 //返回的故障信息(WORD)
BUSY :=M8.4 //发送状态(ANY 1为发送中)
=================================================================
目前对REQ、CONT、BUSY该什么时候置位,什么时候复位不太明白,从实际结果来看,300读取200的数据基本上没问题,但是300-->200的数据有时候200能接收到,很多时候接收不到,不知是为什么?
一台S7-300和2台S7-200通讯疑问,有请大虾解答 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。