發表於 2018-02-07 15:44:44
Modbus協議包括ASCII、RTU、TCP等,並沒有規定物理層。此協議定義了控制器能夠認識和使用的消息結構,而不管它們是經過何種網絡進行通信的。標準的Modicon控制器使用RS232C實現串行的Modbus。Modbus的ASCII、RTU協議規定了消息、數據的結構、命令和就答的方式,數據通訊採用Maser/Slave方式,Master端發出數據請求消息,Slave端接收到正確消息後就可以發送數據到Master端以響應請求;Master端也可以直接發消息修改Slave端的數據,實現雙向讀寫。
Modbus具有以下幾個特點:
(1)標準、開放,用戶可以免費、放心地使用Modbus協議,不需要交納許可證費,也不會侵犯智慧財產權。目前,支持Modbus的廠家超過400家,支持Modbus的產品超過600種。
(2)Modbus可以支持多種電氣接口,如RS-232、RS-485等,還可以在各種介質上傳送,如雙絞線、光纖、無線等。
(3)Modbus的幀格式簡單、緊湊,通俗易懂。用戶使用容易,廠商開發簡單。
例如:主機要讀取地址為01,開關量DI1—DI4的輸入狀態。
從機(PDM)數據寄存器的地址和數據為:
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
例如:主機要讀取地址為01,開關量DO1,DO2的輸出狀態。
從機(PDM)數據寄存器的地址和數據為:
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
例如:主機要讀取地址為01,起始地址為0116的3個從機寄存器數據。
從機(PDM)數據寄存器的地址和數據為:
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
例1:開關量輸出點DO1,其當前狀態為「分」,主機要控制該路繼電器「合」。
控制命令為:
「FF00」為控制繼電器「合」;
「0000」為控制繼電器「分」;
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
與主機發送的報文格式及數據內容完全相同。
例2:開關量輸出點DO2,其當前狀態為「合」,主機要控制該路繼電器「分」。
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
與主機發送的報文格式及數據內容完全相同。
5 功能碼「06」:寫單路寄存器
例如:主機要把數據07D0,保存到地址為002C的從機寄存器中去(從機地址碼為01)。通訊數據保存結束後,地址為002C的PDM表原存儲信息為:
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
與主機發送的報文格式及數據內容完全相同。
主機利用這個功能碼把多個數據保存到PDM表的數據存儲器中去。Modbus通訊規約中的寄存器指的是16位(即2位元組),並且高位在前。這樣PDM的存儲器都是二個字節。由於Modbus通訊規約允許每次最多保存60個寄存器,因此PDM一次也最多允許保存60個數據寄存器。
例如:主機要把0064,0010保存到地址為002C,002D的從機寄存器中去(從機地址碼為01)。通訊數據保存結束後,地址為002C/002D的PDM表內存儲信息為:
主機發送的報文格式:
從機(PDM)響應返回的報文格式:
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴