這篇文要研究的是讀取故障代碼指令MF

20080918-05  

 

讀取的命令字串組成:起始碼+機號+指令+異常處理字串+偵誤碼+結束碼


其中異常處理字串只有2種設定值,設定為00表示不做任何處理,設定為01表示自動解除異常信號。不過大多數情況就算解除異常信號故障還是存在,所以設定為00就好,免得不好找故障原因

 


PLC回應的字串組成:起始碼+機號+指令+結束字串+故障代碼1+故障代碼2+偵誤碼+結束碼


其中故障代碼1和故障代碼2為這次處理的重點,這2組代碼佔2個word共32位元(8個字元)。這8個字元的前6個(共24位元)有個別意義,代表不同的故障狀態。最後2個字元是錯誤代碼,字元的數值範圍是00~FF。關於這個錯誤代碼有何意義手冊中沒有詳細交代,所以想要查表找出故障是不可能的,手冊還好心的留個表格要用戶自己紀錄呢!

 

 

手冊中能找到的錯誤代碼資料如下:


00→沒有錯誤


F0→無END指令異常,PLC的程式中沒有END指令,補寫進去就可解除


C0→I/O接點的動作異常,這需要檢查問題是出在硬體或是軟體上


F1→記憶體異常,可能需要檢查系統設定值


F7→電池異常,通常是沒電了


E1→I/O接點損毀,只能更換接點來處理


F8→週期時間過長?正確的說是掃描時間太長沒動作,要檢查程式找出原因

 

 

控制面板的配置如下圖:

20080908-01  

 

幾個常用故障狀態用LED燈號顯示,少見的故障狀態就只好看錯誤代碼自己紀錄了

 

 

整體完成的程式結構如下圖:

20080918-02  

 

同樣是用Flat Sequence Structure元件做3格控制動作流程,通訊參數及關閉通訊埠寫到格子外

 


第1格同樣是把命令所需字串和偵誤碼合成,然後寫入PLC

20080918-03  

 

 

第2格同樣設定延遲時間

 


第3格讀到的字串若沒有故障應該是@00MF00000000004B*(ASCII碼13),其中藍字標示的部份就是故障代碼

20080918-04  

 

讀回字串一開始先取出故障代碼的最後2個字串,連接到錯誤代碼的文字顯示元件


其次取出故障代碼前6個字串,用For Loop把每個字分離,分離的字再轉成數值,最後用Number To Boolean Array元件轉換成Boolean狀態。轉換後的Boolean狀態只取前4個,反轉後再依序重組成單一陣列。對照手冊取出陣列中有效位址,連接到對應的顯示LED燈號上

, ,

未出師的小工程師 發表在 痞客邦 PIXNET 留言(0) 人氣()