※在正式開始前先確定是否已具備OMRON PLC的硬體及編輯軟體相關知識,接下來的內容一些基本操作的部分會略過
在實際要與OMRON PLC通訊控制前須先設定好PLC內的通訊參數,當然也可以直接使用內定值,不過若同時監控多台PLC時就有必要修改通訊參數
首先準備通訊參數設定的文件資料,這部分可在操作手冊中找到,如下圖:
系統設定區使用的是DM通道,OMRON的所有參數全是以16進制設定的,要注意1個字元代表4個位元
通道DM6650:設定通訊是使用內定值還是自訂值,注意之後通訊要用的是上位連結,所以這一通道的08~15位元是0不要更改,00~07位元若是使用內定值則設定為00,若是要使用自訂值則設定為01。也就是用內定值時設定成0000,用自定值時設定成0001
通道DM6651:在DM6650設定為01時才有作用。00~07位元改的是通訊速率,內定通訊速率是9600,不過實際使用時習慣都改成最高速19200,所以這裡會設定為04。08~15位元習慣上是用內定值,保持不變設定為00。這通道設為最高速的值為0004
通道DM6652:設定的是訊號延遲發送時間,因為大部分狀況下並不需等待系統回應,這裡維持內定值0000即可
通道DM6653:設定的是PLC的機號,設定範圍是00~31的BCD數值,要注意的是BCD是10進制,除了0~9以外的輸入都是錯誤的。因為只有1台PLC所以用內定值0000即可,若有2台以上PLC這裡的號碼一定要錯開不能重複
要如何更改PLC內的系統設定?
首先要有PLC(這裡用TPM1A),專用連接線CQM1-CIF02,PLC電源都接好並連上電腦的RS232埠,然後打開PLC電源
※CQM1-CIF02主要是寫程式用的,也是可以用來通訊控制用,不過大多會另外用RS232模組來通訊
打開OMRON的程式編輯軟體CX-Programmer,在功能表點選Auto Online這一項,電腦會自動搜尋PLC機種通道和參數,成功後會把目前PLC內程式讀出,並成為監控狀態
連點程式畫面左邊Memory這一項,進入PLC記憶體暫存器的設定畫面
在設定畫面連點DM那一項打開DM通道
切換到2進制顯示可以看到每一通道是由00~15個位元組成
在設定畫面找到Transfer From PLC這個功能按鈕,點下去以讀取PLC目前內部設定值
※這個按鈕只有在電腦和PLC有連線時才能點,其餘時候是灰色不能動作狀態
依照通訊參數設定文件修改成自己需要的設定值,修改完畢後在設定畫面找到Transfer to PLC這個功能按鈕,點下去把設定值寫入PLC內
到此PLC通訊參數的系統設定完成,在來就是通訊硬體的連接,這範例要用RS232通訊模組CPM1A-CIF01
拆下CQM1-CIF02連接線,裝上RS232通訊模組CPM1A-CIF01,模組上的指撥開關切換到HOST那一邊,模組上的連接線接到PLC上
再來把跳過線的RS232線連接到電腦和PLC通訊模組上,這條線可以找廠商買,不過我是自己接,價錢差太多了
不知道怎麼接可參考下圖:
※這條線和三菱PLC接法不同,會這樣叮嚀是因為曾有人這樣做,然後才問我為何訊號不會通?
※線頭是一公一母,電腦這邊是母頭,PLC那邊是公頭。跳線要注意的是電腦端的第5腳要接到PLC端的第9腳,接錯的話是可以通訊但不會有回應
線都連好後硬體的準備到此全部完成。在來是實際看能不能通訊成功,因此還要在準備可用指令對照表,對照表可在操作手冊內找到。如下圖:
在接下來的系列文章中有幾條指令排除不做說明:
1.R#、R$、R%讀取設定值,W#、W$、W%變更設定值,這6個指令執行時等待回應時間太久,在實用上是0效率指令,所以排除不用
2.RP讀取程式、WP寫入程式,這個動作交給程式編輯軟體CX-Programmer處理就好,而且現在懂得機械碼程式的人也少,學校大多是只教階梯圖(至少遇到的學校都是如此),加上執行時間太久,也排除不用
3.QQ複合指令,可以讀取或寫入多種類型多個點,看似很好用,但因為要在PLC內先宣告好目標,設定上很複雜。不是PLC的老手根本無法操作,所以也排除不用
4.XZ放棄、**初期狀態、IC指令未定義錯誤,相關說明太少,且用到的機率是接近0,所以也排除不用
這次就用通訊測試專用指令TS來測試,為了方便有些不想改參數的人,以下程式都用PLC內定值。TS通訊測試指令格式如下:
起始碼+機號+指令+寫入字串+偵誤碼+結束碼
偵誤碼的計算範圍是:起始碼+機號+指令+寫入字串
起始碼固定都為@
機號沒改過的話是00
指令當然是TS
寫入字串任意填寫,不過不要試輸入中文,主要是ASCII碼的字元。最多可輸入122個字元,除了(ASCII碼13)外都可輸入
偵誤碼就調用上一篇偵誤碼計算程式來處理
結束碼固定是*+(ASCII碼13)
首先控制面板設置了機號、指令、寫入字串等3個字串輸入元件,還有偵誤碼、PLC回應字串等2個字串輸出元件。這樣的配置是為了以後可在其他程式使用
程式書寫部分同三菱PLC用Flat Sequence Structure元件來控制流程,一樣分為3格來進行
通訊參數和關閉通訊埠同樣寫到元件格子外
第1格先將起始碼+機號+指令+寫入字串合成單一字串,調用偵誤碼計算程式算出偵誤碼。然後把合成的單一字串和偵誤碼及結束碼合成命令字串寫入PLC
若硬體連接線2和3腳接錯在這一階段就會有錯誤產生
第2格同樣要有延遲等待PLC回應的時間,這一邊OMRON做的好,時間比三菱少很多
第3格一樣先用Property Node元件設定為Bytes at Port接收判定PLC回應字串長度。若硬體連接線5和9腳接錯則回應字串長度一定是0,若最前面通訊參數下錯回應字串長度也是0
確定回應字串長度後就可讀出PLC回應的內容
注意TS指令回應的字串等於寫入的字串,也就是回應的字串等於起始碼+機號+指令+寫入字串+偵誤碼+結束碼,結束碼的(ASCII碼13)是看不到的,只會看到*,所以整個字串的結尾是*
若PLC回應字串沒有文字跑出來就可確定通訊失敗,要檢查是否參數下錯。若參數都對那就是硬體出錯,要檢查硬體設定和接線。USB轉RS232那條線是最常出現問題的主因
留言列表