当前位置: 主页 > PLC控制

单向的S7MPI通讯

我现在有个414CPU要跟6块314-2PTPPLC通讯(我查了下资料这款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.0BYTE20
ADDR_2:=P#DB1.DBX30.0BYTE20
ADDR_3:=
ADDR_4:=
RD_1:=P#DB1.DBX0.0BYTE20
RD_2:=P#DB1.DBX30.0BYTE20
RD_3:=
RD_4:=
NOP0
介绍说最多可以读取4组数据ADDR1–ADDR4.
P#DB1.DBX0.0BYTE20应该是DB1的从0.0位开始的连续20个字节数据吗?
如果我想读取DB1.DBD20这个变量,我是不是应该在其中一个引脚ADDR写:P#DB1.DBX20.0BYTE4呢?
如果这样写是正确的但我现在一个300站至少有6个变量要读取,但是我只有四个引脚ADDR1–4,这个怎么解决呢?

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

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

最佳答案

你这种方法无法实现一个CPU414同时与6个CPU314PTP通信,再加上你这种方法不叫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.pdf2007

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

  • 关注微信

猜你喜欢

微信公众号