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