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