-
您的位置:
- 網(wǎng)站首頁
- > 物聯(lián)百科
- > 行業(yè)動態(tài)
您的位置:
我們用電腦作為Modbus主站來對Modbus從站來進行讀寫調(diào)試。首先需要對設備的工作參數(shù)進行配置,下面重點講解一下如何配置CAN數(shù)據(jù)ID和寄存器首地址的映射表來具體實現(xiàn)CAN數(shù)據(jù)和Modbus總線數(shù)據(jù)相互轉換。
1.將設備斷電后拆開,將撥碼開關2撥到on如下圖,之后將模塊上電。
2.然后用RS485轉CAN線連接設備,如下圖所示。
3.進入配置軟件,如下圖所示。
4.選擇正確的com端口,點擊“連接”,如下圖所示。
5.點擊“讀參數(shù)”,顯示“UPload Date Success”,點擊確定,如下圖。
6.進入“Recieve CAN”進入接收CAN總線數(shù)據(jù)映射表,點擊“添加”按鈕添加一條空數(shù)據(jù),如下圖所示。
7.之后對新添加的數(shù)據(jù)進行修改,本經(jīng)驗中的設置是:COB-ID 18F00401、擴展幀、數(shù)據(jù)幀、modbus寄存器首地址01、數(shù)據(jù)長度8。設置好后點擊“設置參數(shù)”按鈕如下圖所示。
設置成功后,將設備撥碼開關2撥下來,重新上電后,設置生效。這時設備就可以連接CAN設備和Modbus主站,進行通信了。注意:映射關系可以按需要配置。
在串行鏈路中,我們(Modbus)使用一種簡單的主從協(xié)議(客戶機/服務器協(xié)議)進行通信。客戶機作為主站,向服務器發(fā)送請求;服務器(從站)接到請求后,對請求進行分析并作出應答。我和小伙伴的通信幀被稱為應用數(shù)據(jù)單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數(shù)據(jù)段和校驗段,如下圖:
其中,功能代碼段和數(shù)據(jù)段組合稱為協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)。功能代碼段占用一個字節(jié),取值范圍為1~255,其中128~255為保留值,用于異常消息應答報文。1~127為功能代碼編號,其中65~72和100~110為用戶自定義編碼,具體請看下面這張圖片:
通用功能編碼(Public function code)是已經(jīng)公布的功能代碼,有確定的功能,用戶不能修改。比如:0x01表示讀取線圈,0x02表示讀取離散量的輸入等等。下圖是一些常用的功能代碼的描述:
早期在RS485串行通信中規(guī)定ADU的最大長度為256個字節(jié),其中:通信地址占用1個字節(jié),校驗段占用2個字節(jié),所以協(xié)議數(shù)據(jù)單元(PDU)的最大長度為256-1-2=253 字節(jié)。而我三弟(Modbus TCP)因為要增加一個7個字節(jié)的MBAP(MODBUS Application Protocol)的報文頭,所以他的ADU的長度=253+7=260 字節(jié)。