通訊協議
該協議運行在RS485硬件平臺中,可通過485總線實現遠程一對多控制與信號采集。通訊協議按照ModBus RTU標準協議執行。
一、 字符格式

在RTU模式中,兩個字符間隔必須小于1.5個字符時間,否則認為報文幀不完整,接收站丟棄該報文幀。兩個報文幀間隔至少為3.5個字符時間。
二、 通訊規約
1. 從機ID地址
從機ID地址為每個從機的身份標識號碼,本機默認值為0x01,可通過修改寄存器值進行修改,修改范圍0x01-0xFF,其中0x00為廣播接收地址,詳見(二.4)。
2. 讀保持寄存器(功能碼0x03)
主機可通過該功能實現對從機寄存器數據的讀取,可同時讀一個或者多個寄存器。
序列格式:
主機發送讀取請求序列 |
| 從機ID地址 | 功能碼 | 寄存器起始地址 | 讀取寄存器個數 | CRC 低位 | CRC 高位 |
| 8Bit | 8Bit | 16Bit | 16Bit | 8Bit | 8Bit |
代碼舉例 | 0x01 | 0x03 | 0x00 0x01 | 0x00 0x02 | 0x95 | 0xCB |
從機正常應答序列 |
| 從機ID地址 | 功能碼 | 數據字節數n | 數據 | CRC低位 | CRC高位 |
| 8Bit | 8Bit | 8Bit | N * 8Bit | 8Bit | 8Bit |
代碼舉例 | 0x01 | 0x03 | 0x04 | 0x03 0xE8 0x00 0x01 | 0xBB | 0x83 |
從機錯誤應答序列 |
| 從機ID地址 | 錯誤碼 | 異常碼 = 0x02 / 0x03 | CRC低位 | CRC高位 |
| 8Bit | 8bit | 8Bit | 8Bit | 8Bit |
代碼舉例 | 0x01 | 0x83 | 0x02 | 0xC0 | 0xF1 |
3. 寫單個寄存器(功能碼0x06)
主機可通過該功能實現對從機寄存器數據的寫入,只能對單個寄存器進行操作。
序列格式:
主機發送寫單個寄存器序列 |
| 從機ID地址 | 功能碼 = 0x06 | 寄存器地址 | 寫入寄存器值 | CRC 低位 | CRC 高位 |
| 8Bit | 8Bit | 16Bit | 16Bit | 8Bit | 8Bit |
代碼舉例 | 0x01 | 0x06 | 0x00 0x03 | 0x00 0x01 | 0xB8 | 0x0A |
從機正常應答序列 |
| 從機ID地址 | 功能碼 = 0x06 | 寄存器地址 | 寫入寄存器值 | CRC 低位 | CRC 高位 |
| 8Bit | 8Bit | 16Bit | 16Bit | 8Bit | 8Bit |
代碼舉例 | 0x01 | 0x06 | 0x00 0x03 | 0x00 0x01 | 0xB8 | 0x0A |
從機錯誤應答序列 |
| 從機ID地址 | 錯誤碼 = 0x86 | 異常碼 = 0x02 / 0x03 | CRC 低位 | CRC 高位 |
代碼舉例 | 0x01 | 0x86 | 0x02 | 0xC3 | 0xA1 |
4. 廣播寫寄存器(功能碼0x06)
主機可通過該功能對總線上所有從機進行寄存器數據寫入,從機ID地址統一為0x00。從機不做應答。
序列格式:
| 主機發送廣播寫寄存器序列 |
| 從機ID地址 = 0x00 | 功能碼 = 0x06 | 寄存器地址 | 寫入寄存器值 | CRC 低位 | CRC 高位 |
| 8Bit | 8Bit | 16Bit | 16Bit | 8Bit | 8Bit |
代碼舉例 | 0x00 | 0x06 | 0x00 0x05 | 0x00 0x01 | 0x59 | 0xDA |
| 從機無應答 |
注:該功能除了可以對總線上所有從機進行群操作外,還可以在不知道從機ID地址的情況下直接修改從機地址,因此請謹慎使用,以免出現總線上所有從機ID地址被修改為同一地址的情況。
三、 寄存器地址參考表
寄存器地址 | 寄存器定義 | 讀寫方式 | 具體功能描述 |
0x0001 | 壓力值數據 | 只讀 | 1. 壓力輸出范圍-1000~1000Pa、-10000~10000Pa,分辨率為1Pa。 例讀值0x0000 = 0Pa、0x03E8 = 1000Pa; 壓力值為負時 = -(0x10000 - n (讀值)),即讀值0xFFFF = -1Pa、 0xFC18 = -1000Pa 2. 壓力輸出范圍-100~100Pa,分辨率為0.1Pa。 壓力值為正值時 =n(讀值)/10,例讀值0x0001 = 0.1Pa、0x03E8 = 100.0Pa; 壓力值為負值時 = -(0x10000 - n(讀值))/10,例讀值0xFFF= -0.1Pa、0xFC18 = -100. 0Pa |
0x0002 | 單位設置 | 可讀寫 | 1=Pa 2=mmH2O 3=mbar 4=inWG 5-mmHG 6=daPa 7=Kpa 8=hPa ( 帶顯示屏可用) 默認: 1 |
0x0003 | 響應時間設置 | 可讀寫 | 1=0.5s 2=1s 3=2s 4=4s 0=撥碼開關設置 默認: 0 |
0x0004 | 通訊模式設置 | 可讀寫 | 1=9600bps 2=19200bps 默認:1 |
0x0005 | 從機ID地址設置 | 可讀寫 | 可設置0x01~0xFF,0x00為廣播接收地址 默認:0x01 |
0x0006 | 清零操作 | 可讀寫 | 寫入1234(0x04D2)進行清零操作,讀值為壓力值 |
四、 異常碼解析
0x02 | 寄存器地址異?;蝈e誤 |
0x03 | 寫入寄存器的值異常或者錯誤 |