400plc和300plc的单向s7通讯问题

我现在有个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中继器 可以吗?

最佳答案

1、P#DB1.DBX0.0 BYTE 20应该是DB1的从0.0位开始的连续20个字节数据吗?  是的
如果我想读取DB1.DBD20这个变量,我是不是应该在其中一个引脚ADDR写:P#DB1.DBX20.0 BYTE 4呢?   是的
如果这样写是正确的 但我现在一个300站至少有6个变量要读取,但是我只有四个引脚ADDR1--4,这个怎么解决呢? 你可以把这6个变量放在一个连续的存储区,如db,md等,然后就可以用这个方式来交换了
2、可以。
3、信号有衰减,加了中继器后有延时,建议通过以太网用光纤来传输数据。

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

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月2日 下午4:35
下一篇 2018年12月2日 下午4:35

相关推荐