单向的S7MPI通讯

我现在有个414CPU要跟6块314-2PTP PLC通讯(我查了下资料这款PLC只支持MPI和485协议)  400读写300侧的数据,初步定为MPI链接S7的单向通讯,300侧不要编写程序(400做客户机300做服务器),用PROFIBUS接头和电缆连接,像profibus-dp主从那种方式接线   我现在遇到的问题是MPI通讯方式最远支持50M,现在现场的实际距离大概300米,我准备在400侧和300plc侧分别个加一台中继器(中间无节点课最远1000米)我现在有3个问题想请教前辈们:
 1.程序上的:我网上找到了点程序(调用S7功能块读和存数据),
        CALL  "GET" , DB14
       REQ   :=M0.0
       ID    :=W#16#1
       NDR   :=M0.1
       ERROR :=M0.2
       STATUS:=MW2
       ADDR_1:=P#DB1.DBX0.0 BYTE 20
       ADDR_2:=P#DB1.DBX30.0 BYTE 20
       ADDR_3:=
       ADDR_4:=
       RD_1  :=P#DB1.DBX0.0 BYTE 20
       RD_2  :=P#DB1.DBX30.0 BYTE 20
       RD_3  :=
       RD_4  :=
      NOP   0
介绍说最多可以读取4组数据ADDR1--ADDR4.
P#DB1.DBX0.0 BYTE 20应该是DB1的从0.0位开始的连续20个字节数据吗?
如果我想读取DB1.DBD20这个变量,我是不是应该在其中一个引脚ADDR写:P#DB1.DBX20.0 BYTE 4呢?
如果这样写是正确的 但我现在一个300站至少有6个变量要读取,但是我只有四个引脚ADDR1--4,这个怎么解决呢?

2.按照这种通讯方式,能实现MPI通讯吗

3.网路连接方式是按照PROFIBUS-DP主从的那种连接方式,如果6个300plc站 各个站点不超过50米,我6个站用一个485中继器 可以吗?

最佳答案

你这种方法无法实现一个CPU414同时与6个CPU314 PTP通信,再加上你这种方法不叫MPI单向编程通信,而叫组态连接通信,适合300/400,400/400通信方式,如果你要实现1个CPU414与6个CPU314进行MPI通信的话,你需要使用MPI全局数据包通信方式,因为这种MPI通信方式在同一个MPI子网中最多有15台S7-300/400和C7之间可以周期性地相互交换少量数据.关于MPI全局数据包通信方式请参照:http://a.gongkong.com/tech/class/file/1234.pdf 2007

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc163431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月9日
下一篇 2017年6月9日

相关推荐