這篇文章要討論的是多點ON/OFF控制技術


要注意的重點:OMRON PLC所有的寫入指令不能在RUN(運轉模式)的狀態下使用,只能在PROGRAM(程式書寫模式)或MONITOR(監看模式)下使用。若要在機器運轉時控制ON/OFF,則只能在MONITOR(監看模式)下使用

 


多點多點ON/OFF控制的命令WR,其命令說明如下:

20080921-06  

 

控制命令的字串組成:起始碼+機號+指令+開始通道編號+第1通道資料+...+第n通道資料+偵誤碼+結束碼


※通道編號同樣是BCD碼的10進制數值字串,通道的可使用範圍要查各PLC的手冊,超出範圍的輸入無效


※每一通道的資料由4個16進制的數值字串組成,編排順序是由高位元往低位元排,不可弄錯順序


※寫入的通道資料超過30組以上會切割輸入


※注意輸出入接點是硬體接點,通常依不同系列每個通道只會用到6、8、12個點,超出範圍的部份,除非有挪用做輔助接點,否則也是無效輸入

 


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


其中結束字串若為00則表示控制成功

 

 

程式面板配置如下:

20080921-01  

 

多點ON/OFF狀態不可能由使用者去換算,所以面板上以2D的開關陣列讓使用者去輸入,因為每個通道是16位元,所以2D的陣列組成是16×n


面板上的寫入資料文字顯示是為了方便檢查轉換是否正確,實際使用時可以刪除不用

 

 


完成的程式架構如下圖,程式中寫入資料的編碼較複雜

20080921-02  

 

還是基本的3格動作流程控制結構,通訊參數和關閉通訊埠同樣寫到格子外

 


第1格分成兩個部份:

20080921-03  

 

左半邊先將控制開關的2D陣列編碼轉換為寫入資料的單一字串


編碼的重點是先分開每個通道的資料,再將每個通道的資料每4個拆成1組,每組先轉成數值再轉成16進制數值文字,然後以高位元在左低位元在右的順序重組成字串,最後依通道順序合併所有字串成為單一字串


以上編碼法實做時我用2個For Loop迴圈:外圈是分開每個通道的資料,執行次數就是寫入通道的組數。內圈執行次數是4次,就是要把每個通道分成4組拆開處理。這個寫法算是直觀式做法,初學者應該比較容易了解

 

 

另外一種編碼方法是只用1個For Loop迴圈,先把每個通道的資料轉成10進制數值,再轉換為4位數的16進制字元,最後合併所有通道資料成單一字串

20080921-05    

 

 

右半邊同樣是把所有命令字串合成再寫入PLC內

20080921-04  

 

 

第2格延遲時間要長一點,這範例控制2組通道,所以設定為200

 


第3格純粹只是讀取PLC回應的字串,用來判定是否控制成功


這個範例傳回的字串是@00WR0045*(ASCII碼13),其中藍字的結束字串為00,表示控制成功

20080915-05  

 

 

以上程式還可以應用到以下2個指令:

 

1.WL寫入連接接點LR通道


2.WH寫入保持接點HR通道


除了指令不同外,寫入的資料處理方法是相同的

, ,

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