RS485通訊作為工業控制中一個非常常見的匯流排協議,以穩定、標準廣泛的應用在各行各業的產品中,如抄表、工業匯流排控制等等。modbus則是其中最出色的標準協議
Modbus是一個基於RS485的工業標準通訊協議,廣泛的應用在工業控制中,最主要的應用還是在PLC等等裝置中。詳細的概念這裡就不做說明,只對使用進行詳細說明
方法/步驟
如圖:我們的USB轉485模組虛擬出的是COM5,波特率9600,無校驗位,資料位是8位,1位停止位,裝置地址假設為1。
(1)、寫暫存器的時候,如果我們要把01寫到一個地址是0000的暫存器地址裡,點一下“寫入”,就會出現傳送指令:01 06 00 00 00 01 48 0A。
(2)、我們來分析一下這幀資料,其中01是裝置地址,06是功能碼,代表寫暫存器這個功能,後邊跟00 00表示的是要寫入的暫存器的地址,00 01就是要寫入的資料,48 0A就是CRC校驗碼,這是軟體自動算出來了。
(3)、而根據Modbus協議,當寫暫存器的時候,從機成功完成該指令的操作後,會把主機發送的指令直接返回,我們的除錯精靈會接收到這樣一幀資料:01 06 00 00 00 01 48 0A。
2、03功能碼
假如我們現在要從暫存器地址0002開始讀取暫存器,並且讀取的數量是2個。如上圖
(1)、點一下“讀出”,就會出現傳送指令:01 03 00 02 00 02 65 CB。
(2)、其中01是裝置地址,03是功能碼,代表寫暫存器這個功能,00 02就是讀暫存器的起始地址,後一個00 02就是要讀取2個暫存器的數值,65 CB就是CRC校驗。
(3)、而接收到的資料是:01 03 04 00 00 00 00 FA 33。其中01是裝置地址,03是功能碼,04代表的是後邊讀到的資料位元組數是4個,00 00 00 00分別是地址為00 02和00 03的暫存器內部的資料,而FA 33就是CRC校驗了。