發(fā)布時(shí)間:2019-08-24 來(lái)源:眾智博遠
功能代碼的讀寫(xiě)訪(fǎng)問(wèn)
在 Modbus 通訊中,主站和從站之間的數據交換采用的是預定義的功能碼。
控制單元使用以下 Modbus 功能代碼:
FC 03:Holding Register,用于從變頻器讀取數據
FC 06:Write Single Register,用于單個(gè)寄存器的寫(xiě)入
FC 16:Write Multiple Registers,用于多個(gè)寄存器的寫(xiě)入
每個(gè)的寄存器地址都可以作為起始地址。
控制器通過(guò) FC 03 發(fā)出讀任務(wù)時(shí),可能不止一個(gè)寄存器響應。響應的寄存器的數量包含在讀任務(wù)的字節 4 和 5 中。
列表: 讀任務(wù)的結構,從站號 17,示例
值 | 字節 | 描述 |
---|---|---|
11 h | 0 | 從站地址 |
03 h00 h6D h00 h02 h | 12345 | 功能代碼寄存器起始地址“高”(寄存器 40110)寄存器起始地址“低”寄存器“高”的數量(2 個(gè)寄存器:40110;40111)寄存器“低”的數量 |
xx hxx h | 67 | CRC “低”CRC “高” |
應答返回了對應的數據組:
列表: 從站對讀任務(wù)的應答,示例
值 | 字節 | 描述 |
---|---|---|
11 h | 0 | 從站地址 |
03 h04 h11 h22 h33 h44 h | 123456 | 功能碼字節數量(返回 4 個(gè)字節)一個(gè)寄存器“高”的數據一個(gè)寄存器“低”的數據二個(gè)寄存器“高”的數據二個(gè)寄存器“低”的數據 |
xx hxx h | 78 | CRC “低”CRC “高” |
列表: 無(wú)效讀任務(wù)
讀任務(wù) | 變頻器的響應 |
---|---|
寄存器地址無(wú)效 | 異常碼 02(數據地址無(wú)效) |
讀取一個(gè)“只寫(xiě)寄存器” | 所有值都置 0 的報文。 |
讀取一個(gè)預留的寄存器 | |
不止 125 個(gè)寄存器被控制器尋址 | 異常碼 03(數據值無(wú)效) |
起始地址加上寄存器數量的總和超出定義的寄存器范圍 | 異常碼 02(數據地址無(wú)效) |
起始地址是保持寄存器的地址。
通過(guò) FC 06 發(fā)出寫(xiě)任務(wù)時(shí),始終只有一個(gè)寄存器響應。在寫(xiě)任務(wù)的字節 4 和 5 中包含了需要被寫(xiě)入該寄存器的數值。
列表: 寫(xiě)任務(wù)的結構,從站號 17,示例
值 | 字節 | 描述 |
---|---|---|
11 h | 0 | 從站地址 |
06 h 00 h 63 h 55 h 66 h | 12345 | 功能碼寄存器起始地址“高”(寫(xiě)寄存器 40100)寄存器起始地址“低”寄存器數據“高”寄存器數據“低” |
xx hxx h | 67 | CRC “低”CRC “高” |
應答返回了寄存器地址(字節 2 和 3)和上級控制器寫(xiě)入該寄存器的數值(字節 4 和 5)。
列表: 從站對寫(xiě)任務(wù)的應答
值 | 字節 | 描述 |
---|---|---|
11 h | 0 | 從站地址 |
06 h 00 h 63 h 55 h 66 h | 12345 | 功能碼寄存器起始地址“高”寄存器起始地址“低”寄存器數據“高”寄存器數據“低” |
xx hxx h | 67 | CRC “低”CRC “高” |
列表: 無(wú)效寫(xiě)任務(wù)
寫(xiě)任務(wù) | 變頻器的響應 |
---|---|
地址錯誤(無(wú)保持寄存器地址) | 異常碼 02 - 數據地址無(wú)效 |
向一個(gè)“只讀”寄存器寫(xiě)數據 | 異常碼 04 - 設備故障 |
向一個(gè)預留的寄存器寫(xiě)數據 |
出現異常碼 4 時(shí),您可以通過(guò)保持寄存器 40499 讀出驅動(dòng)內部的故障代碼,其在上次參數訪(fǎng)問(wèn)時(shí)通過(guò)保持寄存器顯示。