西门子PLC 7288 SMART 200 系列大量现货 13922952859
siemens西门子PLC专注西门子PLC 7288系列 SMART 200系列现货销售
全国咨询热线:13922952859

两台PLC之间的通讯问题

时间:2021-07-16 16:38:35 作者:admin 点击:

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

标签: 两台 PLC 通讯 问题 阅读