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