MODBUS-RTU RS485數(shù)據(jù)通信協(xié)議(通用型壓力、液位、溫度傳感器/變送器,供電24(12-30VDC))
一.概述:
本協(xié)議遵守MODBUS通信協(xié)議,采用了MODBUS協(xié)議中的子集中RTU方式.RS485半雙工工作方式。
二.串行數(shù)據(jù)格式:
串口設置:無校驗,8位數(shù)據(jù),1位停止位。
舉例:9600,N,8,1 含義:9600bps,無校驗,8位數(shù)據(jù)位,1位停位。
本變送器支持的串口波特率為:
1200,2400,4800,9600,19200,38400,57600,115200
CRC校驗的多項式:0xA001.
數(shù)據(jù)通信過程中的數(shù)據(jù)全部是按照雙字節(jié)整形數(shù)據(jù)來處理,如果數(shù)據(jù)標識的是浮點數(shù),寫需要讀取小數(shù)點來確定數(shù)據(jù)的大小.
三.通信格式:
1.讀命令格式(03功能碼)舉例
A.發(fā)送讀命令格式:
地址 |
功能碼 |
數(shù)據(jù)起始(H) |
數(shù)據(jù)起始(L) |
數(shù)據(jù)個數(shù)(H) |
數(shù)據(jù)個數(shù)(L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X00 |
0X00 |
0X00 |
0X01 |
0X84 |
0X0A |
B.返回讀數(shù)據(jù)格式:舉例
地址 |
功能碼 |
數(shù)據(jù)長度 |
數(shù)據(jù) (H) |
數(shù)據(jù) (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X03 |
0X02 |
0X00 |
0X01 |
0X79 |
0X84 |
2.寫命令格式(06功能碼)舉例
地址 |
功能碼 |
數(shù)據(jù)起始(H) |
數(shù)據(jù)起始(L) |
數(shù)據(jù) (H) |
數(shù)據(jù) (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
B.返回讀數(shù)據(jù)格式:舉例
地址 |
功能碼 |
數(shù)據(jù)起始(H) |
數(shù)據(jù)起始(L) |
數(shù)據(jù) (H) |
數(shù)據(jù) (L) |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X06 |
0X00 |
0X00 |
0X00 |
0X02 |
0X08 |
0X0B |
3.異常應答返回
地址 |
功能碼 |
異常碼 |
CRC16 (L) |
CRC16 (H) |
0X01 |
0X80+功能碼 |
0x01(非法功能) 0x02( 非法數(shù)據(jù)地址) 0x03(非法數(shù)據(jù) |
|
|
四.支持的命令及命令和數(shù)據(jù)意義:
MODBUS-RTU協(xié)議命令列表如下:
功能碼 |
數(shù)據(jù)起始地址 |
數(shù)據(jù)個數(shù) |
數(shù)據(jù)字節(jié) |
數(shù)據(jù)范圍 |
指令意義 |
0x03功能碼讀取數(shù)據(jù) |
|||||
0x03 |
0x0000 |
1 |
2 |
1-255 |
讀取從機地址 |
0x03 |
0x0001 |
1 |
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
波特率讀取 |
0x03 |
0x0003 |
1 |
2 |
0-#### 1-###.# 2-##.## 3-#.### |
小數(shù)點分別代表0-3位小數(shù)點 |
0x03 |
0x0002 |
1 |
2 |
0- Mpa 1- Kpa 2- Pa 3- Bar 4- Mbar 5- kg/cm2 6- psi 7- mh2o 8- mmh2o |
壓力單位 |
0x03 |
0x0004 |
1 |
2 |
-32768-32767 |
測量輸出值 |
0x03 |
0x0005 |
1 |
2 |
-32768-32767 |
變送器量程零點 |
0x03 |
0x0006 |
1 |
2 |
-32768-32767 |
變送器量程滿點 |
0x03 |
0x000c |
1 |
2 |
-32768-32767 |
零位偏移值,出廠一般為0 |
0x06功能碼寫數(shù)據(jù) |
|||||
0x06 |
0x0000 |
|
2 |
1-255 |
改寫從機地址 |
0x06 |
0x0001 |
|
2 |
0-1200 1-2400 2-4800 3-9600 4-19200 5-38400 6-57600 7-115200 |
修改波特率 |
0x06 |
0x000c |
|
2 |
-32768-32767 |
零位偏移值.壓力輸出值=校準測量值+零位偏移值 |
保存和恢復工廠 |
|||||
0x06 |
0x000F |
|
2 |
0- 保存到用戶區(qū) |
|
0X06 |
0x0010 |
|
2 |
1-返回工廠參數(shù) |
|
說明:
1. 修改波特率時變送器會以主機發(fā)送的波特率回復修改數(shù)據(jù),回復完以后變送器波特率會變?yōu)樾薷暮蟮哪繕酥?
2. 修改地址時也是以修改前的地址回復數(shù)據(jù),回復完以后會自動修改變送器地址.
3. 保存和回復工廠命令會原值返回,表示變送器已經(jīng)接受了主機的命令.
4. 恢復工廠數(shù)據(jù)時要注意,可能工廠保存的參數(shù)和用戶保存的不一致,所以其中地址,波特率和校準數(shù)據(jù)可能都不一致,所以恢復完工廠參數(shù)以后必須重新搜索變送器.
5. 用戶允許修改的數(shù)據(jù)只有3個,分別是地址,地址,波特率,零位偏移值.
6. 一般用戶不允許修改變送器的校準數(shù)據(jù),如需校準和更改,請聯(lián)系本公司索取變送器校準軟件.用戶自己發(fā)送修改校準數(shù)據(jù)命令會導致變送器輸出命令異常代碼。如需修改校準數(shù)據(jù),請使用本公司的校準軟件。
7. 如果需要讀取的數(shù)據(jù)時浮點數(shù)標識的,比如6.000.但是本協(xié)議規(guī)定了數(shù)據(jù)都是以整形數(shù)據(jù)來通信的,所以讀取到的數(shù)據(jù)是6000,然后要根據(jù)小數(shù)點的位置來做運算,才能得到6.000,比如小數(shù)點是3,則就是說6000/10(3),就是6000除以10的三次方,得到6.000這個數(shù)據(jù).