兩個300的PLC如何通過mpi方式進行數(shù)據(jù)交換
林慧玲
發(fā)布于2014-03-24 17:51
1
0
標簽:
兩個300的plc如何通過mpi方式進行數(shù)據(jù)交換
佳答案
通過mpi接口在cpu間循環(huán)地交換少量數(shù)據(jù),當過程映像被刷新時,在循環(huán)掃描檢測點上進行數(shù)據(jù)交換;而無組態(tài)的連接的mpi通信(編程通信)通過調用sfc67和sfc68來實現(xiàn),mpi無組態(tài)連接就是mpi通信時,不需要組態(tài),只要編寫通信程序即可實現(xiàn)通信,plc之間可以采用雙邊編程通信和單邊編程通信方式,這里應該是采用單邊編程通信方式,因為cpu313c需要從老系統(tǒng)上用mpi通訊讀取一個模擬量和16個數(shù)字量的數(shù)據(jù),只要在cpu313c上進行編程就可以實現(xiàn)數(shù)據(jù)交換,編程通信要比全局數(shù)據(jù)傳輸?shù)臄?shù)據(jù)量要大,速度更快;
首先必須把兩個plc之間的mpi端口連接起來,設定主站cpu313c的mpi通信參數(shù)(波特率187.5kbit/s)和主站的mp地址如“3”,不能與老的plc的mpi地址重復,把兩個站的波特率設定一樣,各自下載到plc中;因為只想老系統(tǒng)上用mpi通訊讀取一個模擬量和16個數(shù)字量的數(shù)據(jù),在cpu313c中單邊編程,在讀取數(shù)據(jù)區(qū)只要指定對方的plc的mpi地址和數(shù)據(jù)區(qū)就可以了。
x_put(sfc68)為發(fā)送數(shù)據(jù)的指令,通過此指令將數(shù)據(jù)寫入不在同一個本地s7站中的通信伙伴,其中dest_id為對方的mpi地址(這里指老系統(tǒng)plc的mpi地址)和var_addr為對方的數(shù)據(jù)區(qū),sd為本地數(shù)據(jù)區(qū),必須保證sd參數(shù)定義的數(shù)據(jù)長度和數(shù)據(jù)類型與通信伙伴上var_addr一致;
x_get(sfc67)為接收數(shù)據(jù)的指令,可以從本地站s7站以外的通信伙伴(這里指老系統(tǒng)上plc站)中讀取數(shù)據(jù),其中參數(shù)dest_id和var_addr分別指對方的mpi地址和對方的數(shù)據(jù)區(qū),rd為本機的數(shù)據(jù)區(qū)必須保證rd參數(shù)定義的接收區(qū)(cpu313c)至少和由var_addr參數(shù)定義的要讀取的區(qū)域一樣大,而且類型必須相匹配。