200与300mpi通讯问题

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

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

相关推荐