我现在有个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