基本上有支援MODBUS通訊協定的PLC或控制器使用的通訊方法大同小異

 

通訊流程幾乎相同:寫入控制命令→等待回應→讀取回傳字串

 

差別是命令格式的差異,主要是5個部分:

 

1.設定通訊參數:這部分一定要查通訊手冊,大部分的儀器通訊參數是不能改的,所以照手冊設定即可。通訊埠用的如果是RS232,依現在的電腦配備應該都是COM1。若是USB轉RS232還要查一下電腦抓到的設定

 

2.控制命令字串:有分成控制用命令和讀取命令。控制命令各廠牌有不同功能,讀取命令主要都是讀取現在溫度值,少數廠牌還能讀取控制參數

 

*.這裡要注意的是查清楚手冊上的命令字串格式,一定要寫對否則溫控器是不會有反應的


*.大部分儀器的命令字串起始和結束碼用的是ASCII碼(不可見字元),設定方法可參考我的程式


*.最重要的重點是偵誤碼,這是用來確認通訊是否成功用的,各廠牌的算法都不同,只要這裡出錯程式就會失敗

 

3.等待:下達命令之後要等待一段時間,讓溫控器先處理命令,之後才讀取溫控器傳回來的資料。下的如果是控制命令,時間要設定稍長一點

 

4.讀取溫控器回應字串:這裡可以直接使用VISA讀取元件,但我都先用其他元件先確認傳回多少字串再讀取,這樣可以確保程式不會讀取錯誤當機

 

*.各廠牌回應的字串都不同,要如何從字串中取出所要的資料?一定要先了解手冊中所寫的回應字串格式

 

5.關閉通訊埠:這個部分一定要寫,不然通訊埠會成為永久開啟佔用狀態,直到電腦關機

 

以上5大步驟,若要連續執行,只需將2~4的部分寫到迴圈內即可,1和5一定要在迴圈外

 

 

 

以上述方法寫成的程式如下圖:

20090925-05  

 

最左邊通訊參數完全按照E5EZ溫度控制器的通訊手冊

20090925-01  

 

 

第1格控制命令字串用的是讀取命令,命令的每個字串都有定義不能亂設定。重點的偵誤碼還是OMRON慣用的位元相斥法

   20090925-03  

 

 

第2格延遲時間設定為100ms

20090925-02  

 

 

第3格讀取溫控器回應字串,以字串處理元件將代表溫度的16進制數值文字取出,再轉成10進制數值顯示

20090925-04  

arrow
arrow

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