這篇文章要討論的是多點ON/OFF控制技術
要注意的重點:OMRON PLC所有的寫入指令不能在RUN(運轉模式)的狀態下使用,只能在PROGRAM(程式書寫模式)或MONITOR(監看模式)下使用。若要在機器運轉時控制ON/OFF,則只能在MONITOR(監看模式)下使用
多點多點ON/OFF控制的命令WR,其命令說明如下:
控制命令的字串組成:起始碼+機號+指令+開始通道編號+第1通道資料+...+第n通道資料+偵誤碼+結束碼
※通道編號同樣是BCD碼的10進制數值字串,通道的可使用範圍要查各PLC的手冊,超出範圍的輸入無效
※每一通道的資料由4個16進制的數值字串組成,編排順序是由高位元往低位元排,不可弄錯順序
※寫入的通道資料超過30組以上會切割輸入
※注意輸出入接點是硬體接點,通常依不同系列每個通道只會用到6、8、12個點,超出範圍的部份,除非有挪用做輔助接點,否則也是無效輸入
PLC回應的字串組成:起始碼+機號+指令+結束字串+偵誤碼+結束碼
其中結束字串若為00則表示控制成功
程式面板配置如下:
多點ON/OFF狀態不可能由使用者去換算,所以面板上以2D的開關陣列讓使用者去輸入,因為每個通道是16位元,所以2D的陣列組成是16×n
面板上的寫入資料文字顯示是為了方便檢查轉換是否正確,實際使用時可以刪除不用
完成的程式架構如下圖,程式中寫入資料的編碼較複雜
還是基本的3格動作流程控制結構,通訊參數和關閉通訊埠同樣寫到格子外
第1格分成兩個部份:
左半邊先將控制開關的2D陣列編碼轉換為寫入資料的單一字串
編碼的重點是先分開每個通道的資料,再將每個通道的資料每4個拆成1組,每組先轉成數值再轉成16進制數值文字,然後以高位元在左低位元在右的順序重組成字串,最後依通道順序合併所有字串成為單一字串
以上編碼法實做時我用2個For Loop迴圈:外圈是分開每個通道的資料,執行次數就是寫入通道的組數。內圈執行次數是4次,就是要把每個通道分成4組拆開處理。這個寫法算是直觀式做法,初學者應該比較容易了解
另外一種編碼方法是只用1個For Loop迴圈,先把每個通道的資料轉成10進制數值,再轉換為4位數的16進制字元,最後合併所有通道資料成單一字串
右半邊同樣是把所有命令字串合成再寫入PLC內
第2格延遲時間要長一點,這範例控制2組通道,所以設定為200
第3格純粹只是讀取PLC回應的字串,用來判定是否控制成功
這個範例傳回的字串是@00WR0045*(ASCII碼13),其中藍字的結束字串為00,表示控制成功
以上程式還可以應用到以下2個指令:
1.WL寫入連接接點LR通道
2.WH寫入保持接點HR通道
除了指令不同外,寫入的資料處理方法是相同的
留言列表