200和300MPI通讯200地址是3 300地址是2 我想把200中的 i0.0-i0.7发到300的m20.0-m20.7 把300中的m30.0-m30.7发到200中的q0.0-q0.7 请问sfc67 和 sfc68 的参数如何填写
最佳答案
1、S7-300或S7-400与S7-200通信时必须保证这个S7-200 CPU不能再作PPI主站,Micro/WIN也不能通过MPI协议访问作为PPI主站的S7-200CPU。S7-200CPU只能做MPI从站。
2、S7-300和S7-400 CPU可以作为MPI主站用XGET(SFC67)和XPUT(SFC68)指令读取S7-200数据,S7-300的通信数据包最大为76个字节,S7-400的通信数据包最大为84个字节。S7200 CPU中不需要编写任何与通信有关的程序,只需要将要交换的数据整理到一个连续的V 存储区当中即可。例如将i0.0-i0.7整理到VB0。
3、调用SFC67和SFC68时VAR_ADDR参数填写S7-200的数据地址区,这里需填写P#DB1.××× BYTE n 对应的就是S7200 V存储区当中VB××到VB(××+n)的数据区。例如,S7-300的P#DB1.DB0 BYTE 1,则对应S7200 V存储区当中VB0。
4、例题:
CALL "X_PUT"
REQ :=TRUE
CONT :=TRUE
DEST_ID :=W#16#3 //S7-200的MPI地址
VAR_ADDR:=P#DB1.DBX100.0 BYTE 76 //S7-200要写入数据的VB100~VB175
SD :=P#DB1.DBX0.0 BYTE 76 //存放本站要发送的数据的地址区
RET_VAL :=MW2
BUSY :=M0.1
程序段 2:读取CPU 224的V区的数据,保存到本站的DB 2
CALL "X_GET"
REQ :=TRUE
CONT :=TRUE
DEST_ID :=W#16#3
VAR_ADDR:= P#DB1.DBX200.0 BYTE 76 //要读取S7-200的VB200~VB275
RET_VAL :=MW4
BUSY :=M0.3
RD := P#DB2.DBX0.0 BYTE 76 //保存读取的数据的地址区
提问者对于答案的评价:
谢谢 了
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234278.html