两台PLC之间的通讯问题

西门子plc
西门子plc
西门子plc
1976
文章
127
评论
2018年12月7日21:12:36 评论 1,818 阅读

问题:请阅读下列例子
1.首先要建立一个项目,对两个PLC的MPI网络组态。假设A站和B站的MPI地址分别为2和3。
2.使用 SFC65  “X_SEND” 和 SFC66 “X_RCV” 发送和接收数据。
3.发送程序可以放于循环中断组织块OB35中,接收程序可以放于循环组织块OB1中。

例:

说明1:在A站(2号站)的PLC的定时循环中断组织块OB35中编写发送程序,把A站中的MB20~MB24发送到B站(3号站)中的MB30~MB34中。

说明2:在OB1中编写接收程序,把A站(2号站)发送到的数据存入B站(3号站)的MB30~MB34中。

按题给的能否实际编一下。

还有如果像题一样,是不是B站的MB30~MB34变成了A站的MB20~MB24?不是B站的MB30~MB34了,而A站的MB20~MB24还依旧是A站的MB20~MB24.

佳答案

1、在A站(2号站)的PLC的定时循环中断组织块OB35中编写发送程序,把A站中的MB20~MB24发送到B站(3号站)。程序如下
CALL  "X_SEND"                //SFC65
REQ    :=TRUE                    //使能端
CONT   :=TRUE                  //通讯资源,=TRUE时,完成后保持连接,=FALSE时,不保持
DEST_ID:=W#16#3            //对方 PLC2 的 MPI 地址
REQ_ID :=DW#16#1          //ID号
SD     :=P#M 20.0 BYTE 5 //2号站要发送的数据区指针,MPI通讯一次多可发送76个字节。
RET_VAL:=MW2                //状态返回字
BUSY   :=M1.0                     //当前通讯有没有完成
2、在B站的OB1中编写接收程序,把A站(2号站)发送到的数据存入B站(3号站)的MB30~MB34中。程序如下
CALL  "X_RCV"                   //SFC66
EN_DT  :=TRUE                  //使能接收
RET_VAL:=MW2                 //返回的状态字
REQ_ID :=MD4                    //ID号
NDA    :=M1.1                       //接收完成一次,本位有一个扫描周期的高电平
RD     :=P#M 30.0 BYTE 5  //3号站,将接收到的数据放到这个指定的数据区
3、参考资料可以参考 RENHQ大侠的,他提供的已经很全了

继续阅读
weinxin
plc入门知识问答
所有PLC工程师都会关注的微信公众账号,只需输入您的问题,就会有答案
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: