-
您的位置:
- 網(wǎng)站首頁
- > 物聯(lián)百科
- > 行業(yè)動態(tài)
您的位置:
我們用電腦作為Modbus主站來對Modbus從站來進行讀寫調(diào)試。首先需要對設(shè)備的工作參數(shù)進行配置,下面重點講解一下如何配置CAN數(shù)據(jù)ID和寄存器首地址的映射表來具體實現(xiàn)CAN數(shù)據(jù)和Modbus總線數(shù)據(jù)相互轉(zhuǎn)換。
1.將設(shè)備斷電后拆開,將撥碼開關(guān)2撥到on如下圖,之后將模塊上電。

2.然后用RS485轉(zhuǎn)CAN線連接設(shè)備,如下圖所示。

3.進入配置軟件,如下圖所示。

4.選擇正確的com端口,點擊“連接”,如下圖所示。

5.點擊“讀參數(shù)”,顯示“UPload Date Success”,點擊確定,如下圖。

6.進入“Recieve CAN”進入接收CAN總線數(shù)據(jù)映射表,點擊“添加”按鈕添加一條空數(shù)據(jù),如下圖所示。

7.之后對新添加的數(shù)據(jù)進行修改,本經(jīng)驗中的設(shè)置是:COB-ID 18F00401、擴展幀、數(shù)據(jù)幀、modbus寄存器首地址01、數(shù)據(jù)長度8。設(shè)置好后點擊“設(shè)置參數(shù)”按鈕如下圖所示。

設(shè)置成功后,將設(shè)備撥碼開關(guān)2撥下來,重新上電后,設(shè)置生效。這時設(shè)備就可以連接CAN設(shè)備和Modbus主站,進行通信了。注意:映射關(guān)系可以按需要配置。

在串行鏈路中,我們(Modbus)使用一種簡單的主從協(xié)議(客戶機/服務(wù)器協(xié)議)進行通信。客戶機作為主站,向服務(wù)器發(fā)送請求;服務(wù)器(從站)接到請求后,對請求進行分析并作出應(yīng)答。我和小伙伴的通信幀被稱為應(yīng)用數(shù)據(jù)單元(Application Data Unit,ADU),它包括通信地址段、功能代碼段、數(shù)據(jù)段和校驗段,如下圖:

其中,功能代碼段和數(shù)據(jù)段組合稱為協(xié)議數(shù)據(jù)單元(Protocol Data Unit,PDU)。功能代碼段占用一個字節(jié),取值范圍為1~255,其中128~255為保留值,用于異常消息應(yīng)答報文。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é)。