问题:请阅读下列例子
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大侠的,他提供的已经很全了