問:我有一個改造項(xiàng)目新系統(tǒng)的313C PLC需要從老系統(tǒng)上用MpI通訊讀取一個模擬量和16個數(shù)字量的數(shù)據(jù),現(xiàn)在問題是用定義全局?jǐn)?shù)據(jù)通訊還是在新系統(tǒng)plc中用sfc67和sfc68通訊,是不是編程通訊比全局?jǐn)?shù)據(jù)通訊速度快更穩(wěn)定?請高手指點(diǎn)。(還要問一句如果用編程通訊的話怎么把定義好的全局?jǐn)?shù)據(jù)給刪除掉)如果不用全局?jǐn)?shù)據(jù)的話,用編程,兩個plc在組態(tài)里用不用連?是不是只用設(shè)置一下地址就行了吧?
答:全局?jǐn)?shù)據(jù)通信是PLC之間進(jìn)行的不需要編程通過MPI接口在CPU間循環(huán)地交換少量數(shù)據(jù),當(dāng)過程映像被刷新時,在循環(huán)掃描檢測點(diǎn)上進(jìn)行數(shù)據(jù)交換;而無組態(tài)的連接的MPI通信(編程通信)通過調(diào)用SFC67和SFC68來實(shí)現(xiàn),MPI無組態(tài)連接就是MPI通信時,不需要組態(tài),只要編寫通信程序即可實(shí)現(xiàn)通信,PLC之間可以采用雙邊編程通信和單邊編程通信方式,你這里應(yīng)該是采用單邊編程通信方式,因?yàn)镃PU313C需要從老系統(tǒng)上用MpI通訊讀取一個模擬量和16個數(shù)字量的數(shù)據(jù),只要在CPU313C上進(jìn)行編程就可以實(shí)現(xiàn)數(shù)據(jù)交換,編程通信要比全局?jǐn)?shù)據(jù)傳輸?shù)臄?shù)據(jù)量要大,速度更快;
你首先必須把兩個PLC之間的MPI端口連接起來,設(shè)定主站CPU313C的MPI通信參數(shù)(波特率187.5kbit/s)和主站的MP地址如“3”,不能與老的PLC的MPI地址重復(fù),把兩個站的波特率設(shè)定一樣,各自下載到PLC中;因?yàn)槟阒幌肜舷到y(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為本地?cái)?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為本機(jī)的數(shù)據(jù)區(qū)必須保證RD參數(shù)定義的接收區(qū)(CPU313C)至少和由VAR_ADDR參數(shù)定義的要讀取的區(qū)域一樣大,而且類型必須相匹配。
如果不想要全局?jǐn)?shù)據(jù)通信,只要在硬件組態(tài)界面中選擇菜單Options(選項(xiàng))/Define Global Data“(定義全局?jǐn)?shù)據(jù))界面中,打開全局變量發(fā)送和接收組態(tài),斷口連接,執(zhí)行保存編譯,下載到PLC就可以了。