MPI(多点接口)是西门子内部运用的通讯协议,物理层为RS-485。经过MPI网络的S7根本通讯,S7-300能够用体系功用X_GET和X_PUT来读、写S7-200的存储区,最多可读、写76字节的数据,S7-200不需要编写通讯程序。其长处是运用plc自带的RS-485通讯接口,不需要添加通讯用的硬件,编程简略,简单完成。
1.通讯参数的设置
用体系块设置CPU 224在MPI网络中的站地址为3。为了便利下载和监控,将S7-200、S7-300和计算机的通讯速率均设置为19.2 kbit/s。需要将体系块下载到CPU,设置的参数才会起作用。
组态时将CPU 315-2DP连接到MPI网络上,设置MPI站地址为2。将设置的参数下载到CPU 315-2DP。
在CPU 315-2DP的OB35中调用SFC 68“X_PUT”,将本站的DB 1的76字节数据发送到通讯同伴的DB 1的DBB100~DBB175,即CPU 224的VB100~VB175。调用SFC 67“X_GET”,读取CPU 224的VB200~VB275(即DB 1的DBB200~DBB275)中的数据,将它们寄存到DB 2。履行OB35的时刻距离为默许的100ms。
下面是CPU 315-2DP的循环中止安排块OB35的程序:
程序段 1:将本站的DB1中的数据写入CPU 224的#p#分页标题#e#V区
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
#p#分页标题#e# 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 //保存读取的数据的地址区
为了验证通讯是否完成,在初始化程序OB100将数据块DB 1的76字节数据发送区的字预置为W#16#3333,将DB 2的76字节数据接纳区复位为0。
为了验证通讯是否完成,在CPU 224的OB1中,在第一个扫描周期将发送数据区VW204~VW274预置为16#2222,将接纳数据区VW100~VW174清零。
LD SM0.1
FILL #p#分页标题#e#16#2222, VW204, 38
FILL 16#0, VW100, 38
能够用CPU 315-2DP的变量表和CPU 224的状态表来监督参加通讯的存储区。
我第1次做试验的时分,很顺畅地一下就成功了。总的感觉是只需组态和编程没问题,通讯很简单完成。