PLC維修時,如果能夠排除PLC外圍故障,確定從連接到傳感器或執行機構都可以工作,那么就可以檢查PLC內部狀態或PLC程序的問題了。
由于PLC是由人來進行安裝、組態和編程的,所以可能會發生很多人為的使用過程中的錯誤。PLC制造商通常都提供了很多工具來找出這些錯誤。PLC維修時,我們將這些錯誤分為以下幾類:
一、PLC維修中的致命錯誤
這些錯誤將導致PLC離開運行模式而進入故障模式(類似于硬件故障所導致的情形)。致命錯誤通常發生在PLC開機自檢時或程序執行時的部件失敗。有的編程和組態問題(如看門狗定時器超時,試圖運行一個不存在的程序)也會導致致命錯誤。
PLC維修時, 當PLC進入故障模式時,它將故障LED打開,并將所有的輸出關閉為OFF(或者凍結在它們的上一個狀態),PLC也會在內存中保存一個故障代碼,PLC維修時,編程人員可以讀取該故障代碼確定故障的原因,解決問題后,清除故障狀態,將PLC電源關掉再打開,重新進入運行模式。
現在的PLC通常都會保存對幾個最近的故障的詳細描述,并允許編程人員編寫在致命故障發生時可以運行的故障程序。所以,在PLC維修時,如何找到和使用故障代碼非常重要。
二、PLC維修中的非致命故障
非致命故障是PLC可以探測到,但不至于使PLC離開運行模式的故障。有些可探測的硬件問題,如內存的后備電池電壓低,只導致非致命故障。PLC維修時我們發現,非致命故障也可以由組態和編程錯誤引起,如一個定時中斷程序的執行被一個更高優先級的程序的運行而延遲,或者一個算術操作產生了一個太大以致無法存入指定目標內存的數,等等。
PLC維修時,非致命故障導致PLC設定相關的狀態位或者將相關的錯誤代碼寫到內存中。當結果太大或太小以致無法保存時,數據字處理指令將把內存中的算術標志位設置為1。用戶程序應當檢查這些狀態位或代碼,并作出響應,因為PLC將像沒有錯誤發生一樣繼續執行程序。
三、PLC維修中的編程或組態邏輯錯誤
PLC維修中的編程或組態邏輯錯誤是PLC不能自動檢查出來的,但可以用程序中的故障檢測指令或者編程單元的程序監視功能來檢查。
PLC維修中邏輯錯誤的例子:用戶將一位設為OFF而不是ON,兩段用戶程序試圖控制同一個輸出,或者結構化編程旁路了一段需要的程序等等。
在長期的PLC維修工作中我們發現,早期的PLC設計為不允許邏輯錯誤,如兩個橫檔控制一個輸出,或者跳轉指令向程序前面進行跳轉,等,但用戶需要更大的靈活性,因此,即使這些安全措施都取消了,有些編程單元在編程人員寫出上述具有潛在錯誤的邏輯語句時,會提供警示信息,但編程者可以忽略它們。
編程語言都包括簡單的調試工具:提前終止掃描循環的指令,這樣程序可以一段一段來檢查;導致致命或非致命的錯誤,使PLC在某些情況下立即停止;以及其它特別為調試程序中的某一個問題的指令。標準指令比如,計數器,可以臨時插入程序中,記錄事件發生的次數。編程軟件也包括調試工具,如在用戶程序執行時,監視和改變數據內存,強迫I/O映射位開或者關,以觀察程序如何響應;記錄某個特別位或特別字的短時間的變化,然后用歷史趨勢圖顯示這些變化;當某個特別位在使用時,生成一個程序中所有地方的交叉參考清單;還有搜索工具,可以找到程序中某個特別地址或指令在程序中的位置。










