Modbus-RTU經常使用功能碼03,06,16介紹

組態王軟件是工業自動化行業應用的界面軟件,主要面向現場應用適合現場工程人員、FAE等編程,內置經常使用的通信模塊、經常使用的界面組件等。 經過RS232接口、RS485接口和以太網口能夠和其餘設備完成數據通訊。

Modbus協議主要有兩個版本RTU和TCP/IP,RTU能夠經過RS485接口實現,TCP/IP能夠經過以太網口實現,這兩種協議都是工控行業、自動化行業經常使用的。下面以RS485接口、Modbu-RTU來介紹數據通訊的過程。編程

圖片Modub-RTU協議的具體內容數據結構

該協議是主從方式的通信方式,有一個主機能夠掛接多個從機,每一個從機具備惟一的地址用來辨識身份,並經過不通的功能碼來實現所要讀取/寫入的內容。做爲簡單的應用,主要涉及到0x03讀保持寄存器功能碼、0x06預置單個寄存器功能碼、0x10預置多個寄存器功能碼等。讀保持寄存器功能碼0x03當主機發送03功能碼時,代表主要想要獲取從機某個寄存器裏的內容,一條完成的命令包括主機發送的數據和從機回覆的數據,分別舉例以下:主機發送: 01 03 00 32 00 02 xx xx主機回覆: 01 03 04 a5 d4 1812 xx xx數據和字節含義以下圖所示。ide

主機所發送的命令表示,想要讀取1號從機從0x32開始的2個寄存器的內容,而從機回覆0x32和0x33寄存器內的數據,總共4個字節。最後兩個字節是校驗碼。預置單個寄存器功能碼0x0606功能碼是主機用來向從機的某個寄存器寫數據的,一次智能操做一個寄存器。主機所發送的數據舉例以下:主機發送:01 06 00 32 12 32 xx xx主機發送的數據和字節含義以下圖所示。spa

圖片

該功能碼,從機所回覆的數據和主機下發的數據是一致的。該條指令的含義爲:主機想給1號從機的0x32寄存器中寫入0x1232數據,最後所跟的是校驗碼。預置多個寄存器功能碼0x1016功能碼也是寫寄存器可是與06所不一樣的是,該功能碼能夠連續寫多個寄存器,主機下發的數據結構爲:地址、功能碼、寄存器起始地址、寄存器個數、要寫入數據的字節數、數據、校驗碼等。從機回覆的數據格式爲:地址、功能碼、寄存器起始地址、寄存器個數、校驗碼等。數據格式舉例和字節含義以下圖所示。3d

圖片

所表示的含義是,從0x0034開始連續寫入四個字節的數據到2個寄存器中,最後兩個字節是校驗碼。以上三個功能碼都是很是經常使用的,除此以外,還有不少個功能碼,每一個功能碼都表明不通的含義,以上數據都是須要編程來實現的。blog

相關文章
相關標籤/搜索