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