MPI(多點(diǎn)接口)是西門子內(nèi)部運(yùn)用的通訊協(xié)議,物理層為RS-485。經(jīng)過MPI網(wǎng)絡(luò)的S7根本通訊,S7-300能夠用體系功用X_GET和X_PUT來讀、寫S7-200的存儲(chǔ)區(qū),最多可讀、寫76字節(jié)的數(shù)據(jù),S7-200不需要編寫通訊程序。其長(zhǎng)處是運(yùn)用plc自帶的RS-485通訊接口,不需要添加通訊用的硬件,編程簡(jiǎn)略,簡(jiǎn)單完成。
1.通訊參數(shù)的設(shè)置
用體系塊設(shè)置CPU 224在MPI網(wǎng)絡(luò)中的站地址為3。為了便利下載和監(jiān)控,將S7-200、S7-300和計(jì)算機(jī)的通訊速率均設(shè)置為19.2 kbit/s。需要將體系塊下載到CPU,設(shè)置的參數(shù)才會(huì)起作用。
組態(tài)時(shí)將CPU 315-2DP連接到MPI網(wǎng)絡(luò)上,設(shè)置MPI站地址為2。將設(shè)置的參數(shù)下載到CPU 315-2DP。
在CPU 315-2DP的OB35中調(diào)用SFC 68“X_PUT”,將本站的DB 1的76字節(jié)數(shù)據(jù)發(fā)送到通訊同伴的DB 1的DBB100~DBB175,即CPU 224的VB100~VB175。調(diào)用SFC 67“X_GET”,讀取CPU 224的VB200~VB275(即DB 1的DBB200~DBB275)中的數(shù)據(jù),將它們寄存到DB 2。履行OB35的時(shí)刻距離為默許的100ms。
下面是CPU 315-2DP的循環(huán)中止安排塊OB35的程序:
程序段 1:將本站的DB1中的數(shù)據(jù)寫入CPU 224的#p#分頁標(biāo)題#e#V區(qū)
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要寫入數(shù)據(jù)的VB100~VB175
SD :=P#DB1.DBX0.0 BYTE 76 //寄存本站要發(fā)送的數(shù)據(jù)的地址區(qū)
RET_VAL :=MW2
BUSY :=M0.1
程序段 2:讀取CPU 224的V區(qū)的數(shù)據(jù),保存到本站的DB 2
CALL "X_GET"
REQ :=TRUE
CONT :=TRUE
DEST_ID :=W#16#3
#p#分頁標(biāo)題#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 //保存讀取的數(shù)據(jù)的地址區(qū)
為了驗(yàn)證通訊是否完成,在初始化程序OB100將數(shù)據(jù)塊DB 1的76字節(jié)數(shù)據(jù)發(fā)送區(qū)的字預(yù)置為W#16#3333,將DB 2的76字節(jié)數(shù)據(jù)接納區(qū)復(fù)位為0。
為了驗(yàn)證通訊是否完成,在CPU 224的OB1中,在第一個(gè)掃描周期將發(fā)送數(shù)據(jù)區(qū)VW204~VW274預(yù)置為16#2222,將接納數(shù)據(jù)區(qū)VW100~VW174清零。
LD SM0.1
FILL #p#分頁標(biāo)題#e#16#2222, VW204, 38
FILL 16#0, VW100, 38
能夠用CPU 315-2DP的變量表和CPU 224的狀態(tài)表來監(jiān)督參加通訊的存儲(chǔ)區(qū)。
我第1次做試驗(yàn)的時(shí)分,很順暢地一下就成功了。總的感覺是只需組態(tài)和編程沒問題,通訊很簡(jiǎn)單完成。