在現代工業自動化領域中,確保設備間的網絡通信穩定性至關重要。Ping命令作為一種廣泛應用于Windows、Unix、Linux等操作系統的網絡診斷工具,可通過發送ICMP Echo請求報文,檢測目標主機的可達性及網絡狀況(參見圖1)。而在基于LicOS的PLC編程調試過程中,Smart Control軟件提供了集成的Ping命令功能,使得用戶能在PLC調試階段方便地驗證PLC與其他網絡節點的數據可達性。
Smart Control作為LicOS PLC的編程調試軟件,我們可以通過Smart Control在PLC調試階段使用Ping命令,以達到檢測PLC與其它網絡站點的數據可達性。
在PLC實際使用項目中,如遇到現場網絡環境如圖 2所示的情況,即PLC通過LAN1與上層網絡及上位管理平臺進行數據交互通信,PLC通過LAN2與前端執行設備通過現場總線(ModBus TCP、Profinet、EtherNet等)進行數據交互通信。而兩個網絡環境處于不同網段,PLC作為中間介質銜接兩個網絡環境的數據交換。
那么在Smart Control中到底該如何使用呢?我們接著往下看。
SysSockPing功能塊屬于SysSocket功能庫。操作流程如下:
雙擊庫管理器—添加庫—顯示高級庫—搜索SysSocket—確定
SysSockPing函數功能塊如圖 6所示。
SysSockPing函數功能塊引腳定義如圖 7所示。
SysSockPing: 函數返回數據,顯示與其他通信伙伴的通訊建立結果。
szIPAddress:以字符串形式表示的通信伙伴的IP地址。
ulTimeout:等待答復的超時時間,以毫秒為單位。
pulReplyTime:指針以獲取ping請求的平均響應時間,以毫秒為單位。
szIPAddress引腳處輸入的是通訊伙伴的目標IP地址,以字符串的數據類型輸入,例如:'192.168.20.80'。ulTimeout引腳處輸入等待答復的超時時間,需要注意的是這里的時間不可以為0,為0的話就表示沒有時間用于等待通訊答復,因為再怎么快的通信網絡都是需要時間的。ulTimeout也不宜設的太小,應結合現場實際通訊網絡的質量設定等待答復時間。pulReplyTime引腳通過指針獲取ping請求的平均響應時間,其雖然作為輸入引腳,但其實際是反饋出ping請求的平均響應時間,在ulTimeout的值大于通信網絡質量的答復響應時間,如果pulReplyTime反饋出的值等于ulTimeout的設定值說明通訊以斷聯。SysSockPing返回的數據等于0則是通訊伙伴建立正常。
需要注意的是該函數的執行最好單獨用一個Task任務,周期時間建議25ms以上。如圖 8所示。
1.定義相關變量。
PROGRAM PLC_PRG
VAR
str_szIPAddress : STRING ;
udi_ulTimeout : TIME;
udi_pulReplyTime : UDINT;
bTrigger : BOOL;//執行
bResult :UDINT ;//結果
END_VAR
如圖 9所示。
2.函數調用
如圖 10所示。
3.在線測試
例程測試的PLC1的LAN1 IP地址為192.168.20.80/24、LAN2 IP地址為192.168.21.80/24,LAN3 IP地址為192.168.22.80/24,與其建立通訊的PLC2 IP地址為192.168.21.20/24,PLC2與PLC1的LAN2連接,調試PC IP地址為192.168.20.254/24,PC與PLC1的LAN1連接。程序測試如圖 11所示。
可見設定的ulTimeout為10ms,函數執行返回結果為0,平均響應時間pulReplyTime為0ms,所以表明其與通信伙伴建立了通信并且通信網絡質量優。
而如圖 12所示則表明通訊失敗。
可見設定的ulTimeout為10ms,函數執行返回結果為5,平均響應時間pulReplyTime為10ms,所以表明其與通信伙伴建立通信失敗。
1.定義相關變量。
PROGRAM PLC_PRG
VAR
str_szIPAddress : STRING ;
udi_ulTimeout : TIME;
udi_pulReplyTime : UDINT;
bTrigger : BOOL;//執行
bResult : UDINT ;//結果
END_VAR
如圖 13所示。
2.函數調用
如圖 14所示。
3.在線測試
例程測試的PLC1的LAN1 IP地址為192.168.20.80/24、LAN2 IP地址為192.168.21.80/24,LAN3 IP地址為192.168.22.80/24,與其建立通訊的PLC2 IP地址為192.168.21.20/24,PLC2與PLC1的LAN2連接,調試PC IP地址為192.168.20.254/24,PC與PLC1的LAN1連接。程序測試如圖 15所示。
可見設定的ulTimeout為10ms,函數執行返回結果為0,平均響應時間pulReplyTime為0ms,所以表明其與通信伙伴建立了通信并且通信網絡質量優。
而如圖 16所示則表明通訊失敗。
可見設定的ulTimeout為10ms,函數執行返回結果為5,平均響應時間pulReplyTime為10ms,所以表明其與通信伙伴建立通信失敗。
通過本篇教程,讀者能夠了解到如何在Smart Control中正確配置和使用SysSockPing功能塊,從而有效地運用LicOS PLC執行Ping命令,實時監控并診斷網絡通信的狀態。這一實用功能不僅有助于提高工業自動化系統的可靠性,更能協助工程師們迅速定位和解決潛在的網絡故障,保障整個生產環境的順暢運作。