PPI通信定義
PPI協(xié)議是西門(mén)子S7-200PLC之間交換信息的專(zhuān)用協(xié)議,PPI協(xié)議是一種點(diǎn)對點(diǎn)協(xié)議,它只定義了一次通信中的主從問(wèn)題,西門(mén)子編程軟件與CPU進(jìn)行通信同樣使用PPI協(xié)議,同樣下載時(shí)也要用PPI線(xiàn)纜。今天我們介紹如何基于PPI協(xié)議實(shí)現兩個(gè)CPU之間進(jìn)行數據交換。
基于PPI協(xié)議實(shí)現兩個(gè)PLC的通信
第一步:硬件接線(xiàn)
圖片所示S7-200通信端口的端口定義。PPI通信基于485的硬件。因此,必須需要包含至少一對雙絞線(xiàn)的屏蔽電纜,并且兩端分別連接到DB9頭3腳和8腳。兩臺S7-200PLC距離不建議超過(guò)50米,如遇特殊情況在50米以上,需要使用配套的中繼器進(jìn)行連接。


第二步:CPU地址分配
PPI通信要求PPI網(wǎng)絡(luò )中的每個(gè)CPU都有不同的地址,Micro/WIN默認為0,CPU默認為2,因此,建議將主PLC的地址設置為2,并將PLC地址設置為按順序設置為11,12,13,依此類(lèi)推。
第三步:初始化
通過(guò)初始化特殊寄存器SMB30,將主CPU端口0配置為PPI主站模式,同時(shí)將數據緩存區清零。

配置時(shí)只需要看最低兩位即可,即mm,其他的都配置成零就行了。2就是PPI主站模式。

從站配置成PPI從站模式,即配置成2。

第四步:準備數據
必須根據規定將數據填入緩沖區,數據格式如,如果數據傳輸緩沖區是VB200,則VB200是狀態(tài)字,不需要填寫(xiě),用于讀取指令執行的狀態(tài)。VB201是目標從機的地址,VB202到VB205的時(shí)候是從機目標地址,VB206是數據長(cháng)度,如果是寫(xiě)命令則是你要寫(xiě)的字節數,如果是讀命令,你想要的讀取數據的長(cháng)度。VB207是數據區域。對于NETR,在執行NETR指令后,從遠程站讀取的數據將放在此數據區中。對于NETW,在執行NETW指令之前,要發(fā)送到遠程站的數據放在該數據區中。

第五步、調用收發(fā)指令
PPI通信指令只有兩條,分別是:網(wǎng)絡(luò )讀和網(wǎng)絡(luò )寫(xiě),調用也很簡(jiǎn)單,只需要指定本次讀寫(xiě)己方的端口和數據緩沖區地址。

為了減少由數據交換引起的CPU資源的過(guò)度浪費,不建議每個(gè)周期調用通信命令??梢愿鶕枰{用指令來(lái)交換數據。如果找不到適當的指令觸發(fā)條件,可以使用定時(shí)器進(jìn)行周期調用。為了保證數據的實(shí)時(shí)性,建議采用定時(shí)中斷,在中斷事件中調用通信指令。
第六步,指令調用

使用PPI通信注意事項
1)硬件接線(xiàn)時(shí),DB9頭子,3腳對3腳,8腳對8腳。線(xiàn)纜采用雙絞線(xiàn),盡量使用屏蔽線(xiàn),長(cháng)度不要超過(guò)50m,超過(guò)50m需要使用中繼器。
2)千萬(wàn)不要每個(gè)CPU掃描周期調用讀寫(xiě)指令,否則會(huì )對過(guò)多占用CPU資源。