通信與診斷——黑盒跑通就算完,故障時(shí)兩眼一抹黑
錯(cuò)誤現(xiàn)象
兩臺(tái)S7-1200之間用Put/Get通信,配置完連接后測(cè)試能傳數(shù)據(jù),項(xiàng)目就封包發(fā)貨了。半年后客戶報(bào)修:設(shè)備隨機(jī)丟包,有時(shí)數(shù)據(jù)幾個(gè)小時(shí)不更新,F(xiàn)場(chǎng)工程師打開(kāi)程序,沒(méi)有通信狀態(tài)監(jiān)控,沒(méi)有故障代碼輸出,不知道是網(wǎng)絡(luò)閃斷還是CPU停機(jī)。
錯(cuò)誤后果
故障定位耗時(shí)占整個(gè)維修時(shí)間的80%。
非專業(yè)人員反復(fù)斷電重啟,損壞設(shè)備。
客戶對(duì)品牌技術(shù)能力產(chǎn)生質(zhì)疑。
根本原因
通信編程只關(guān)注數(shù)據(jù)收發(fā),不關(guān)注通信質(zhì)量。
不知道系統(tǒng)數(shù)據(jù)類型(如TCON、TSEND、TRCV)的狀態(tài)字含義。
缺乏工業(yè)網(wǎng)絡(luò)基礎(chǔ)知識(shí),混淆TCP、PROFINET、ISO-on-TCP。
避免方法
強(qiáng)制加入通信狀態(tài)監(jiān)控
使用TCON、TSEND、TRCV指令時(shí),必須將狀態(tài)輸出字(STATUS/ERROR)存入DB,并在HMI上顯示。一旦通信失敗,立即輸出“通信故障_線體A”而非“數(shù)據(jù)為0”。
利用系統(tǒng)診斷緩沖區(qū)
編程習(xí)慣:發(fā)生嚴(yán)重故障時(shí),觸發(fā)RDREC讀取CPU診斷緩沖區(qū),將近十條故障存入歸檔DB。維護(hù)人員可通過(guò)HMI查看PLC歷史停機(jī)原因。
定期心跳檢測(cè)
主從站約定一個(gè)DWord作為心跳計(jì)數(shù)器,從站每周期加1,主站監(jiān)控。若心跳停止超時(shí),主動(dòng)報(bào)警并進(jìn)入安全狀態(tài)。
標(biāo)準(zhǔn)化通信模板
不要每次重寫通信程序。建立封裝好的FB_Client、FB_Server,參數(shù)化IP地址、數(shù)據(jù)長(zhǎng)度、超時(shí)時(shí)間。確保每次調(diào)用都包含錯(cuò)誤處理邏輯。
小結(jié)
通信程序?qū)懲曛煌瓿闪艘话耄硪话胧亲尮收稀翱梢?jiàn)”。
plc編程培訓(xùn)之通信與診斷