mpi(多點接口)是西門子內(nèi)部使用的通信協(xié)議,物理層為rs-485。通過mpi網(wǎng)絡(luò)的s7基本通信,s7-300可以用系統(tǒng)功能x_get和x_put來讀、寫s7-200的存儲區(qū),最多可讀、寫76字節(jié)的數(shù)據(jù),s7-200不需要編寫通信程序。其優(yōu)點是使用自帶的rs-485通信接口,不需要增加通信用的硬件,編程簡單,容易實現(xiàn)。
1.通信參數(shù)的設(shè)置
用系統(tǒng)塊設(shè)置cpu 224在mpi網(wǎng)絡(luò)中的站地址為3。為了方便下載和監(jiān)控,將s7-200、s7-300和計算機(jī)的通信速率均設(shè)置為19.2 kbit/s。需要將系統(tǒng)塊下載到cpu,設(shè)置的參數(shù)才會起作用。
組態(tài)時將cpu 315-2dp連接到mpi網(wǎng)絡(luò)上,設(shè)置mpi站地址為2。將設(shè)置的參數(shù)下載到cpu 315-2dp。
2.cpu 315-2dp讀寫cpu 224的v區(qū)的編程#p#分頁標(biāo)題#e#
在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。執(zhí)行ob35的時間間隔為默認(rèn)的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ū)
為了驗證通信是否實現(xià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。
3.cpu 224的程序
為了驗證通信是否實現(xiàn),在cpu 224的ob1中,在第一個掃描周期將發(fā)送數(shù)據(jù)區(qū)vw204~vw274預(yù)置為16#2222,將接收數(shù)據(jù)區(qū)vw100~vw174清零。
ldsm0.1
fill#p#分頁標(biāo)題#e#16#2222, vw204, 38
fill16#0, vw100, 38
可以用cpu 315-2dp的變量表和cpu 224的狀態(tài)表來監(jiān)視參與通信的存儲區(qū)。
我第1次做實驗的時候,很順利地一下就成功了。總的感覺是只要組態(tài)和編程沒有問題,通信很容易實現(xiàn)。










