OMRON PLC有3種動作模式:PROGRAM(程式書寫模式)、MONITOR(監看模式)、RUN(運轉模式)


正常狀態下新買的PLC開機時都是PROGRAM模式,除非在系統記憶體DM通道改過設定


要先解說動作模式的控制及讀取方式的原因是:有些指令只在特定模式下才有作用,在沒有書寫器或程式編輯軟體時,只有這種方法才能切換動作模式

 


首先是動作模式控制指令SC,指令的構成如下圖:

20080915-01  

 

控制動作模式命令字串組成:起始碼+機號+指令+寫入字串+偵誤碼+結束碼


寫入字串才是這個指令的重點,手冊上是把2個16進制數值拆開成8個位元來說明,寫入命令時要轉換為16進制數值。PROGRAM(程式書寫模式)要寫入00、MONITOR(監看模式)要寫入02、RUN(運轉模式)要寫入03


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


在這範例中,只要控制成功回應的字串一定都是@00SC0050*(ASCII碼13),其中藍字標示的字若不是00就是控制失敗

 


動作模式讀取指令MS,指令構成如下圖:

20080915-08  

 

動作模式讀取命令字串組成:起始碼+機號+指令+偵誤碼+結束碼


而PLC回應字串的組成理論上是:起始碼+機號+指令+結束字串+運轉狀態代碼+註記+偵誤碼+結束碼,其中理論上該有的16個字組成的註記多數時候不會出現,因此實際組成的字串是:起始碼+機號+指令+結束字串+運轉狀態代碼+偵誤碼+結束碼

 

 

在這範例中成功讀取後回應的字串是固定相同的


PROGRAM(程式書寫模式):@00MS0000A827*(ASCII碼13)


MONITOR(監看模式):@00MS0003A824*(ASCII碼13)


RUN(運轉模式):@00MS0002A825*(ASCII碼13)


其中藍字標示的字就是運轉狀態代碼,可以注意到後面沒有註記,直接就是偵誤碼。運轉狀態代碼同樣是16進制數值,重要的是前2碼,所以程式的判讀也是只取前2碼


運轉狀態代碼前2碼中,第1個數值一定要是0,若不是0表示有錯誤發生,PLC是當機狀態。第2個數值才是表示運轉狀態

 

 

 

程式書寫部份:這次把2個指令寫在一起,先控制PLC的運轉模式,然後再讀取PLC的運轉模式

 


程式控制面板如下:

20080915-02  

 

控制動作模式命令中的寫入字串用選單元件(Text Ring)製作,操作時可以用選擇的方式選擇動作模式


動作模式讀取命令讀出的狀態則再轉換為LED元件顯示

 

 

 

完成的程式架構如下:

20080915-03  

 

同樣用流程控制元件(Flat Sequence Structure)來完成,通訊參數和關閉通訊埠一樣寫到格子外


流程分為6格,每個指令佔3格。控制流程的組成:控制PLC命令→延遲→PLC回應→讀取PLC命令→延遲→PLC回應

 


第1格控制命令跟之前文章相同的結構,偵誤碼同樣用偵誤碼計算程式算出,重點是把選單元件(Text Ring)傳來的數值轉換成寫入字串

20080915-04  

 

 

第2格延遲時間這裡設定為200~500間,因為這是要寫入PLC的系統記憶體DM通道中,時間不要太短

 

 

第3格回應字串可以不用顯示到面板上,但這一格一定要做,不然這邊回應的字串會和下一道命令回應字串混在一起,造成下一道命令讀取錯誤

20080915-05  

 

 

第4格讀取命令結構也是和之前文章相同,沒有要特別說明的重點

20080915-06  

 

 

第5格延遲時間這裡設定為200

 

 

第6格同上一篇文章略過前面起始碼+機號+指令+結束代碼幾碼,直接擷取運轉狀態代碼前2碼,比對代碼後轉換成相對應的LED燈號顯示


本來這裡應該再加個PLC錯誤當機的燈號,也就是第1碼不是0的時候亮紅燈,不過不是這是說明的重點,予以略過

20080915-07  

, ,

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