這篇文章要探討的是如何多點強制SET、RESET,及如何解除被強制狀態的接點

 


多強制指令FK,指令說明如下:

20081002-08  

 

每次只能指定一種控制元件,只能控制1組通道中的16個接點,而計時、計數器則一次只能控制1組,使用上反而不如單點強制簡單

 

 

控制命令的字串組成:起始碼+機號+指令+控制元件+通道號碼+接點狀態+偵誤碼+結束碼

 

控制元件的字串部分一定是4個字組成的字串,不足的部分要以空白(按鍵盤空白鍵)取代。另外說明上可控制的接點種類雖多,但實際上有些機種(尤其是小型低階機種)沒有,所以這裡要實做的僅限於各機種都有的部分,控制元件字串種類表示意義如下(空白部分以(S)代表):


CIO(S)→輸出入接點、輔助接點、特殊接點


LR(S)(S)→連接接點


HR(S)(S)→保持接點


AR(S)(S)→補助記憶接點


TIM(S)→計時器


TIMH→高速計時器


CNT(S)→計數器


CNTR→可反向(倒數)計數器

 

 

通道號碼是BCD碼10進制數值,使用範圍要查各機種的手冊

 

 

接點狀態手冊說明這樣寫只會造成混亂,不知道在寫什麼(尤其是中文版手冊錯誤更多)?而實做測試結果:每個接點狀態是用1個16進制數值文字代表,指令中共要用到16個字,內容由高位元排列到低位元

 

16進制數值文字的代表意義:


0→無處理


2→手冊上寫是指定為資料0,其實是接點OFF


3→手冊上寫是指定為資料1,其實是接點ON


4→強制RESET


5→強制SET


8→解除被強制為SET、RESET狀態的接點,成為資料0、1(OFF、ON)的狀態

 

※其中指定為2、3時,接點會受PLC內部程式的影響,也就是PLC程式優先於強制指令。若指定為4、5時則不受影響,也就是強制指令優先於PLC程式


※計時、計數器只能指定為4、5、8的狀態,必須指定在第15接點,其他接點一定要指定為0無處理狀態,否則會錯誤控制失敗。例如要計時、計數器強制為SET,接點狀態必須輸入5000000000000000

 

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

  

 

控制面板程式設計的部份,因為控制元件和接點狀態是固定範圍字串,所以做成選單式,可避免輸入錯誤

 

控制元件的選單直接引用上一篇單點強制中的作法來完成

 

接點狀態選單用同樣方法製作,如下圖:

20081002-01  

 

完成的程式控制面板如下圖:

20081002-02  

 

控制元件已作成選單式


接點狀態選單另外在做成包含16個元件的1D陣列(1個通道16個接點)

 

 

再來是程式書寫部份,完成的程式結構如下圖:20081002-03  

 

同樣是3格流程控制方式,通訊參數和關閉通訊埠照慣例寫到外面

 

 

第1格同樣把所有通訊字串組合寫入PLC中

20081002-04  

 

控制元件選單式元件引用上一篇單點強制的作法來輸出字串


接點狀態選單陣列要用另外的方法:先在程式中建立包含(0、2、3、4、5、8)等文字的1D陣列,再使用For Loop迴圈,把接點狀態選單陣列的內容一一轉換為文字,再把文字依順序組成字串

 

 

第2格延遲同樣要稍長一點,這裡設定是200

 

 

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

20080915-05  

 

 

 

 

接下來說明解除強制指令KC,指令說明如下:

20081002-05  

 

控制命令的字串組成:起始碼+機號+指令+偵誤碼+結束碼


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

 


因為程式簡單,所以大概解說,完成的程式如下圖:

20081002-06  

 

照樣是3格流程控制方式,通訊參數和關閉通訊埠照慣例寫到外面

20081002-07  

 

第1格同樣把所有通訊字串組合寫入PLC中

 

第2格延遲同樣要稍長一點,設太短回應會不正常

 

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

 



強制解除指令是用來解除單點強制指令KS、KR和多點強制指令FK所強制保持住的接點,但只是解除強制狀態而已,並不會恢復原狀,所以在解除後ON的接點還是ON的狀態,OFF的接點還是OFF的狀態

 

因此在PROGRAM(程式書寫模式)下看不出這指令有何變化,因為PLC內程式並未執行,所以不會影響到接點

 

要發揮這指令的功能,PLC必須是在MONITOR(監看模式)狀態

, ,

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