本篇就MODBUS的設定來說明,
其他原理來類的,就請GOOGLE吧!
或參考這篇:MODBUS介紹
----正文開始-----
第一步:選定硬體通訊方式,RS232/RS485/MODBUS
第二步:設定通訊參數,通訊鮑率/位元數/
第三步:選擇要讀\寫的參數
正常應該完成了。
如果出問題:
第四步:檢查錯誤碼
第五步:用電腦來收/發的資料。
第六步:用示波器來量傳輸訊號。
==================
第一步:選定硬體通訊方式:
依外部裝置跟主控裝置,選定硬體通訊方式。
要注意的事:
RS232通訊只能一站。
RS485跟ETHERNET能多站。
例:
主站(PLC)硬體及接線腳位:COM2/RS485/PIN2 D+/PIN3 D-
從站(外部裝置):RS485/D+ D-
注:通訊方式一定要一致,不可RS232跟RS485通訊。
==============
第二步:設定通訊參數
相關通訊參數:
站號:(主站不需要)
通訊鮑率:9600/19200/38400
資料位元:7/8 位元
同位元檢查:O/E/N
停止位元:1/1.5/2
資料格式:ASCII/RTU (選擇RTU資料位元只能選8位元)
例:
主站(PLC):
通訊鮑率:9600
資料位元:8 位元
同位元檢查:O
停止位元:1
資料格式:RTU
從站(溫控器)
站號:1 (站號不可重覆)
通訊鮑率:9600
資料位元:8 位元
同位元檢查:O
停止位元:1
資料格式:RTU
*通訊參數要一致,不然無法通訊,最好將上敘參數記錄下來,一一設定。
=====================
第三步:選擇要讀\寫的參數
選定我們要讀取的參數,在手冊內查是否有對應的通訊位址:
下圖為台達溫控的手冊:
就在參數旁,直接顯示通訊位址,在紅線內也有提到通訊的功能碼03(重要)
如果是Modicom Format的位址呢?
Modicom Format就已經內含功能碼
4XXXX 是功能碼03,將該值減40001可以得到通訊位址
3XXXX 是功能碼04,將該值減30001可以得到通訊位址。(一般支援03功能碼較多04要另外設定)
參數要注意的地方:
**有些參數只能讀OR寫,如果對該參數執行錯誤的動作,會錯誤。或沒有回應。
====
一般來說到這邊就完成了,大部份不會有問題。
如果出問題了。
====
第四步:檢查錯誤碼
通訊錯誤,通常會回覆通訊錯誤碼。
一般來說:外部設備如果對通訊命令有問題。
1.會將功能碼的最高位元設"1"
例:
如果PLC發的是功能碼03
設備錯誤時,會回傳83,就表示通訊有問題。
2.會將錯誤碼,接在功能碼之後。
除了將功能碼最高位元設"1"
後面也會接錯誤碼,讓使用者方便查詢。
通常在手冊當中可以查到通訊錯誤碼。
*通訊錯誤碼,跟一般的錯誤碼不同,不可搞混。
=========
第五步:用電腦來收發出的資料。
如果PLC發出MODBUS指令,但沒有回傳。
通常是設定有問題,可以先將通訊參數全部確認一次。
有些參數修改,需要重新開關機。(**注意)
都確認過了,那就要用電腦來收PLC的資料,看PLC是否有真的將命令發出。
可以參考這影片:
Rs485檢測工具程式
除了可以收 PLC發出的資料外,
也可以模擬PLC發出的命令,對外部裝置通訊,看是否會回應。
如果電腦發出都不會回應,不是通訊設定有問題,就是通訊硬體錯了。
===========
第六步:用示波器來量傳輸訊號
如果前面的部份都正常,或是PC可以通訊,PLC無法通訊,
最後都可以用示波器來量波型。
MODBUS的指令,最底層,還是利用010101二進制碼在傳送,
所以利用示波器可以查到波型是否正常,有無被干擾。
或是訊號的衰減。
類似:
示波器抓通訊資料
沒有留言:
張貼留言