如何基于PPI協(xié)議實(shí)現(xiàn)兩個(gè)plc之間通信
第一、硬件連接
下圖是S7-200通信端口端口定義入下圖所示,PPI通信建立在485的硬件基礎(chǔ)上,因此需要制作一根至少包含一對(duì)雙絞線的屏蔽線,兩端分別接DB9頭子的3腳和8腳,屏蔽層接DB9頭子的金屬外殼。如果實(shí)在找不到雙絞線自己也可以找兩根單根線,自己絞一下,但是只限于臨時(shí)用正式產(chǎn)品不建議用。
兩個(gè)PLC之間距離不能太遠(yuǎn),最好不要超過50米,如果超過的話最好使用中繼器,可以采購200配套的中繼器,也可以自己從某寶上買。
第二、合理分配CPU地址
PPI通信要求PPI網(wǎng)絡(luò)內(nèi)每個(gè)CPU具有不同地址,Micro/WIN默認(rèn)為0,CPU默認(rèn)為2,因此建議主PLC的地址設(shè)置為2,從PLC地址依次設(shè)置為11、12、13……依次類推。
第三、正確初始化
通過初始化特殊寄存器SMB30,將主CPU端口0配置為PPI主站模式,同時(shí)將數(shù)據(jù)緩存區(qū)清零。
配置時(shí)只需要關(guān)心最低兩位即可,即mm,其他的都配置成零就行了。2就是PPI主站模式。
從站配置成PPI從站模式,即配置成2。
第四、正確準(zhǔn)備數(shù)據(jù)
數(shù)據(jù)必須按照規(guī)定將相應(yīng)的數(shù)據(jù)填入緩沖區(qū),數(shù)據(jù)格式如下所示。例如數(shù)據(jù)發(fā)送緩沖區(qū)為VB200,那么VB200就是狀態(tài)字,不需要填寫,用于讀取指令執(zhí)行的狀態(tài)。VB201為目標(biāo)從站的地址,VB202到VB205時(shí)從站目標(biāo)地址,VB206為數(shù)據(jù)長(zhǎng)度,如果是寫指令就是希望寫的字節(jié)數(shù),如果是讀指令就是希望讀回來數(shù)據(jù)的長(zhǎng)度。VB207及以后是數(shù)據(jù)區(qū)。對(duì)NETR,執(zhí)行NETR指令后,從遠(yuǎn)程站讀到的數(shù)據(jù)放在這個(gè)數(shù)據(jù)區(qū)。對(duì)NETW,執(zhí)行NETW指令前,要發(fā)送到遠(yuǎn)程站的數(shù)據(jù)放在這個(gè)數(shù)據(jù)區(qū)。
第五、適時(shí)調(diào)用收發(fā)指令
PPI通信指令只有兩條,分別是:網(wǎng)絡(luò)讀和網(wǎng)絡(luò)寫,調(diào)用也很簡(jiǎn)單,只需要指定本次讀寫己方的端口和數(shù)據(jù)緩沖區(qū)地址。
為了減少數(shù)據(jù)交換造成CPU資源的過度浪費(fèi),不建議每個(gè)循環(huán)周期都調(diào)用通信指令。可以根據(jù)需要進(jìn)行指令調(diào)用,進(jìn)行數(shù)據(jù)交換,如果無法找到合適的指令觸發(fā)條件,可以使用定時(shí)器進(jìn)行周期調(diào)用。
為了保證數(shù)據(jù)的實(shí)時(shí)性,建議采用定時(shí)中斷,在中斷事件中調(diào)用通信指令。
第六,正確進(jìn)行指令調(diào)用
使用PPI通信注意事項(xiàng)
1、硬件接線時(shí),DB9頭子,3腳對(duì)3腳,8腳對(duì)8腳。線纜采用雙絞線,盡量使用屏蔽線,長(zhǎng)度不要超過50m,超過50m需要使用中繼器。
2、千萬不要每個(gè)CPU掃描周期調(diào)用讀寫指令,否則會(huì)對(duì)過多占用CPU資源。