国产精品成人网站,日韩视频二区,亚洲成人手机电影,怡红院国产

您好, 歡迎來到儀表網(wǎng)

| 注冊| 產(chǎn)品展廳| 收藏該商鋪

18963623876

technology

首頁   >>   技術(shù)文章   >>   在線PH/ORP檢測儀RS-485接口及MODBUS協(xié)議

江蘇凌恒環(huán)境科技有限公司

立即詢價

您提交后,專屬客服將第一時間為您服務(wù)

在線PH/ORP檢測儀RS-485接口及MODBUS協(xié)議

閱讀:820      發(fā)布時間:2024-7-26
分享:

串口調(diào)試助手


在線PH/ORP檢測儀RS-485接口及MODBUS協(xié)議

PH儀與上位機之間采用MODBUS協(xié)議進行通信,波特率固定為9600bps。具體協(xié)議如下:

1.1讀取測量信息和狀態(tài)(讀多個寄存器) 功能碼(0x03

命令格式:

定義

地址

功能碼

起始地址

寄存器個數(shù)

CRC校驗

數(shù)據(jù)

ADDR

0x03

0x 0000

0x 0006

CRC 16

字節(jié)數(shù)

1

1

2

2

2

返回格式:

定義

地址

功能碼

數(shù)據(jù)個數(shù)

數(shù)據(jù)

CRC校驗

數(shù)據(jù)

ADDR

0x 03

0x 0C

Data

CRC 16

字節(jié)數(shù)

1

1

1

12

2


注釋:  

(1) 數(shù)據(jù)字節(jié)長度:為返回數(shù)據(jù)的實際字節(jié)長度。

(2) CRC 16,8位在前,高8位在后。

(3) DATA數(shù)據(jù)格式如下:

PH模式的DATA數(shù)據(jù)

1

2

3

PH值高8位字節(jié)

PH值低8位字節(jié)

溫度值高8位字節(jié)

4

5

6

溫度值低8位字節(jié)

高點報警值高8位字節(jié)

高點報警值低8位字節(jié)

7

8

9

低點報警值高8位字節(jié)

低點報警值低8位字節(jié)

滯后值高8位字節(jié)

10

11

12

滯后值低8位字節(jié)

報警狀態(tài)

PH/ORP模式

例,發(fā)送命令:01 03 00 00 00 06 C5 C8

       返回:01 03 0C 1B 8F 00 FA 03 E8 01 90 00 32 00 00 1C 3E

則數(shù)據(jù)部分為:1B 8F 00 FA 03 E8 01 90 00 32 00 00

PH值:由整數(shù)部分和小數(shù)部分組成,整數(shù)的有效數(shù)字是2位,小數(shù)有效數(shù)字是3位。比如PH值的高8位字節(jié)為0x1BPH值的低8位字節(jié)為0x8F,則PH值為0x1B8F,轉(zhuǎn)化成10進制為7055,PH值為7.055,2位整數(shù),3位小數(shù),整數(shù)前面的零省去。

溫度值:0x09C4,轉(zhuǎn)化成10進制為2500,溫度值為25.00,保留兩位小數(shù)。

高點報警值:0x03E8,轉(zhuǎn)化成10進制為1000,值為10.00,保留兩位小數(shù)。

低點報警值:0x0190,轉(zhuǎn)化成10進制為400,值為4.00,保留兩位小數(shù)。

滯后值:0x0032,轉(zhuǎn)化成10進制為50,值為0.50,保留兩位小數(shù)。

報警狀態(tài):0x00,無報警。(注:0x00為無報警,0x01為低點報警,0x02為高點報警)

PH/ORP模式:0x00,PH模式。(注:0x00PH模式, 0x01ORP模式)

ORP模式的DATA數(shù)據(jù)

1

2

3

ORP值高8位字節(jié)

ORP值低8位字節(jié)

溫度值高8位字節(jié)

4

5

6

溫度值低8位字節(jié)

高點報警值高8位字節(jié)

高點報警值低8位字節(jié)

7

8

9

低點報警值高8位字節(jié)

低點報警值低8位字節(jié)

滯后值高8位字節(jié)

10

11

12

滯后值低8位字節(jié)

報警狀態(tài)

PH/ORP模式

例,發(fā)送命令:01 03 00 00 00 06 C5 C8

       返回:01 03 0C FF 30 00 FA 03 E8 FC 18 00 0A 00 01 BC 26

則數(shù)據(jù)部分為:FF 30 00 FA 03 E8 FC 18 00 0A 00 01

ORP值:0xFF30,當(dāng)ORP值為負(fù)數(shù)時,數(shù)據(jù)以補碼形式運算,0xFFFF-0xFF30+1=0x00D0,轉(zhuǎn)化成10進制為208,ORP值為-208mVORP若為0x011E,轉(zhuǎn)化成10進制為286,ORP值為286mV

溫度值:0x00FA,轉(zhuǎn)化成10進制為250,溫度值為25.0,保留一位小數(shù)。

高點報警值:0x03E8,轉(zhuǎn)化成10進制為1000,值為1000 mV。

低點報警值:0x FC18,數(shù)據(jù)以補碼形式運算,值為-1000 mV

滯后值:0x000A,轉(zhuǎn)化成10進制為10,值為10 mV。

報警狀態(tài):0x00,無報警。(注:0x00為無報警,0x01為低點報警,0x02為高點報警)

PH/ORP模式:0x01ORP模式。(注:0x00PH模式, 0x01ORP模式)

1.2讀取測量信息和狀態(tài)(讀1個寄存器) 功能碼(0x03

命令格式:

定義

地址

功能碼

起始地址

寄存器個數(shù)

CRC校驗

數(shù)據(jù)

ADDR

0x03

0x 0000-0x 0004

0x 0001

CRC 16

字節(jié)數(shù)

1

1

2

2

2

返回格式:

定義

地址

功能碼

數(shù)據(jù)個數(shù)

數(shù)據(jù)

CRC校驗

數(shù)據(jù)

ADDR

0x 03

0x 02

Data

CRC 16

字節(jié)數(shù)

1

1

1

2

2


注釋:  

(1) 數(shù)據(jù)字節(jié)長度:為返回數(shù)據(jù)的實際字節(jié)長度。

(2) CRC 16,8位在前,高8位在后。

數(shù)據(jù)處理同1.1節(jié)一樣。

1.3.錯誤響應(yīng)

如果監(jiān)測器不能正確執(zhí)行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

             03 寄存器數(shù)量異常

COM:    接收到的功能碼

CRC校驗,低8位在前,高8位在后。  

例如:

  1、發(fā)送命令:01 01 00 00 00 06 BC 08

         返回:01 81 01 81 90    說明功能碼錯誤

2、發(fā)送命令:01 03 00 06 00 06 25 C9

         返回:01 83 02 C0 F1    起始地址錯

3、發(fā)送命令:01 03 00 00 00 08 44 0C

         返回:01 83 03 01 31    數(shù)據(jù)錯(數(shù)據(jù)個數(shù)錯)

2.1.寫數(shù)據(jù)寄存器(寫多個寄存器) 功能碼(0x10

命令格式:


定義

地址

功能碼

起始地址

寄存器數(shù)量

字節(jié)數(shù)

數(shù)據(jù)

ADDR

0x10

0x 0000

0x 0003

0x 06

字節(jié)數(shù)

1

1

2

2

1

高報高8

高報低8

低報高8

低報低8

滯后高8

滯后低8

CRC校驗

自定義

自定義

自定義

自定義

自定義

自定義

CRC 16

1

1

1

1

1

1

2

返回格式:

定義

地址

功能碼

起始地址

寄存器數(shù)量

CRC校驗

數(shù)據(jù)

ADDR

0x 10

0x 0000

0x 0003

CRC 16

字節(jié)數(shù)

1

1

2

2

2

例,發(fā)送命令:01 10 00 00 00 03 06 03 E8 01 90 00 32 06 A0  

返回:    01 10 00 00 00 03 80 08

附:PH:高點報警(范圍0~14.00)、低點報警(范圍0~14.00)、滯后值(范圍0~9.90)數(shù)據(jù)格式同上。

ORP:高點報警(范圍-1999~1999)、低點報警(范圍-1999~1999)、滯后值(范圍0~1000)數(shù)據(jù)格式同上。

2.2.錯誤響應(yīng)

如果監(jiān)測器不能正確執(zhí)行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

             03 寄存器數(shù)量異常

             04 寫多個寄存器異常

COM:    接收到的功能碼

CRC校驗,低8位在前,高8位在后。  

例如:

  1、發(fā)送命令:01 16 00 00 00 03 06 03 E8 02 70 00 32 0F1A

         返回:01 96 01 8E 60    功能碼異常

2、發(fā)送命令:01 10 00 01 00 03 06 03 E8 01 90 00 32 57 65

         返回:01 90 02 CD C1    起始地址異常

3、發(fā)送命令:01 10 00 00 00 05 06 03 E8 01 90 00 32 86 8A

         返回:01 90 03 0C 01    寄存器數(shù)量異常

2.3.寫數(shù)據(jù)寄存器(寫單個寄存器) 功能碼(0x06

命令格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗

數(shù)據(jù)

ADDR

0x06

自定義

自定義

CRC 16

字節(jié)數(shù)

1

1

2

2

2



返回格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗

數(shù)據(jù)

ADDR

0x06

自定義

自定義

CRC 16

字節(jié)數(shù)

1

1

2

2

2

例,發(fā)送命令:01 06 00 0A 03 E9 68 B6  

返回:    01 06 00 0A 03 E9 68 B6

高點報警值:0x03E9,轉(zhuǎn)化成10進制為1001,值為10.01,保留兩位小數(shù)。CRC 16 校驗值因輸入地址和值的不同也不同,校驗值對才能寫入數(shù)據(jù)。

PH高點報警點寄存器地址:0X000A

PH低點報警點寄存器地址:0X000C

PH滯后量寄存器地址:    0X000E  

ORP高點報警點寄存器地址:0X0014

ORP低點報警點寄存器地址:0X0016

ORP滯后量寄存器地址:    0X0018

附:PH:高點報警(范圍0~14.00)、低點報警(范圍0~14.00)、滯后值(范圍0~9.90)數(shù)據(jù)格式同上。

ORP:高點報警(范圍-1999~1999)、低點報警(范圍-1999~1999)、滯后值(范圍0~1000)數(shù)據(jù)格式同上。

注:PH模式時只能寫PH相關(guān)的寄存器(PH的高低點等寄存器),ORP模式時只能寫ORP相關(guān)的寄存器(ORP的高低點等寄存器)。

2.4.錯誤響應(yīng)

如果監(jiān)測器不能正確執(zhí)行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 寄存器地址異常

             03 寄存器值異常

             04 寫單個寄存器異常

COM:    接收到的功能碼

CRC校驗,低8位在前,高8位在后。  

例如:

  1、發(fā)送命令:01 07 00 0A 03 E9 55 76

         返回:01 87 01 82 30    說明功能碼異常

2、發(fā)送命令:01 06 00 02 03 E9 E9 74

         返回:01 86 02 C3 A1    寄存器地址異常

3、發(fā)送命令:01 06 00 0A XX D0 3C 05

         返回:01 86 03 02 61    寄存器值異常(超限)

4、發(fā)送命令:01 06 00 0A 07 D0 AA 64

         返回:01 86 04 43 A3    寫單個寄存器異常

CRC校驗:低位在前,高位在后,各個地址效驗碼如下:

01地址:01 03 00 00 00 06 C5 C8

02地址:02 03 00 00 00 06 C5 FB

03地址:03 03 00 00 00 06 C4 2A

04地址:04 03 00 00 00 06 C5 9D

05地址:05 03 00 00 00 06 C4 4C

06地址:06 03 00 00 00 06 C4 7F

07地址:07 03 00 00 00 06 C5 AE

08地址:08 03 00 00 00 06 C5 51

09地址:09 03 00 00 00 06 C4 80

10地址:10 03 00 00 00 06 C6 89

3.CRC檢測

CRC添加到命令中時,低字節(jié)先加入,然后高字節(jié)?!?/span>

CRC簡單函數(shù)如下: 

unsigned short CRC16(puchMsg, usDataLen)

unsigned char *puchMsg ; /* 要進行CRC校驗的消息 */

unsigned short usDataLen ; /* 消息中字節(jié)數(shù) */

{

unsigned char uchCRCHi = 0xFF ; /* CRC字節(jié)初始化 */

unsigned char uchCRCLo = 0xFF ; /* CRC 字節(jié)初始化 */

unsigned uIndex ; /* CRC循環(huán)中的索引 */

while (usDataLen--) /* 傳輸消息緩沖區(qū) */

{

uIndex = uchCRCHi ^ *puchMsgg++ ; /* 計算CRC */

uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;

uchCRCLo = auchCRCLo[uIndex] ;

}

return (uchCRCHi << 8 | uchCRCLo) ;

}

 

/* CRC 高位字節(jié)值表 */

static unsigned char auchCRCHi[] = {

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,

0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,

0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,

0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,

0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,

0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,

0x80, 0x41, 0x00, 0xC1, 0x81, 0x40

} ;

/* CRC低位字節(jié)值表*/

static char auchCRCLo[] = {

0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06,

0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,

0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09,

0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A,

0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4,

0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3,

0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3,

0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4,

0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A,

0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29,

0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED,

0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26,

0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60,

0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67,

0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6 F,

0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68,

0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E,

0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5,

0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71,

0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92,

0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C,

0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B,

0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B,

0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C,

0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42,

0x43, 0x83, 0x41, 0x81, 0x80, 0x40

} ;

會員登錄

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

標(biāo)簽:
保存成功

(空格分隔,最多3個,單個標(biāo)簽最多10個字符)

常用:

提示

您的留言已提交成功!我們將在第一時間回復(fù)您~
在線留言