欢迎来到众智博远官网网站!

7*24小时在线咨询电话

010-52873850

新闻资讯

contact us

24小时免费咨询热线

010-52873850

技术资讯

当前位置: 首页 >> 新闻资讯 >> 技术资讯

西门子S7-300/400PLC之间通过MPI网络通讯设置-双向通讯

发布时间:2019-08-24 来源:众智博远

在通信的双方都需要调用通信块,一方调用发送块,另一方就要调用接收块来接收数据。这种通信方式适用S7-300/400 之间通信,发送块是SFC65(X_SEND),接收块是SFC66(X_RCV)。下面以举例的形式说明通信实现的过程:在STEP7 中创建两个站STATION1 CPU 416 MPI 站为2,STATION2 CPU315-2DP MPI 站号为4,2 号站发送2包数据给4 号站,4 号站判断后放在相应的数据区中。在2 号站OB35 中调用SFC65,如果扫描时间太短,发送频率太块,对方没有响应,将加重CPU 的负荷,在OB35 中调用发送块,发送任务将间隔100MS 执行一次。

image.png

参数中REQ 为发送请求为1 时发送。CONT 为1 表示连续占用通信资源,为0 时,通信完成后释放通信资源。DEST_ID 表示对方的MPI 地址。REQ_ID 表示一包数据的标识符,标识符自己定义,例子中两包数据的标识符分别为“1”,“2”。SD 表示发送区,以指针的格式,例子中数据为DB1 中从DBX0.0 (DBB0) 以后76个字节,发送区大为76 个字节。RET_VAL 表示发送的状态BUSY 为1 时发送中止。在这个例子中M1.1,M1.3 为1 时,CPU416 将发送标识符为“1”和“2”的包数据给4号站CPU315-2DP。用户可能会问一个CPU 究竟可以和能几个CPU 通信,这和CPU 的通信资源有关系,这也决定SFC 的调用的次数,在选项手册中,常常可以看到“动态连接”的个数,这个数字与SFC 的调用有关,以上例作说明,M1.1,M1.3 为1 时,与4 号站的连接建立起来,反之4号站发送,2 号站接收同样建立一个连接,也就是说两个站通信,都需要发送和接收的情况下占用两个动态连接。

image.png

M1.1,M1.3 为0 时,建立的连接并没有释放,须调用SFC69 释放连接,在上例中M1.5为1 时,与4 号站建立的连接断开,如图2 所示:

image.png

有的用户编写多个连接时,由于CPU 的资源有限,而不能通信,可以用这种方法检测。在4 号站编写接收程序如下:

image.png

在OB1 中调用SFC66 (X_RCV),参数EN_DT 表示接收使能,RET_VAL 表示接收状态字,REQ_ID 接收数据包的标识符,NDA 为1 时指示有新的数据包,为0 则没有,RD 表示接收区,接收区放在DB1 中从DBB0 以后76 个字节中。例子中,接收块只识别数据的标识符,而不管是哪一个CPU 发送的,接收从2 号站CPU416 发送的两包数据,当标识符为“1” 时,M1.3 为1,复制接收区的数据到DB2 前76 个字节中(调用SFC20),当标识符为“2” 时,M1.4 为1,复制接收区的数据到DB3 前76 个字节中。