久久免费少妇,欧美大屌在线看,少妇自慰冒白浆久久久精品一区,嫩草乱码一区三区四区红桃

歡迎來到江蘇凌恒環(huán)境科技有限公司網(wǎng)站!
咨詢熱線

18963623876

當(dāng)前位置:首頁  >  技術(shù)文章  >  在線PH/ORP檢測儀RS-485接口及MODBUS協(xié)議

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

更新時(shí)間:2024-07-26      點(diǎn)擊次數(shù):1314

串口調(diào)試助手


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

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

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

命令格式:

定義

地址

功能碼

起始地址

寄存器個(gè)數(shù)

CRC校驗(yàn)

數(shù)據(jù)

ADDR

0x03

0x 0000

0x 0006

CRC 16

字節(jié)數(shù)

1

1

2

2

2

返回格式:

定義

地址

功能碼

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

數(shù)據(jù)

CRC校驗(yàn)

數(shù)據(jù)

ADDR

0x 03

0x 0C

Data

CRC 16

字節(jié)數(shù)

1

1

1

12

2


注釋:  

(1) 數(shù)據(jù)字節(jié)長度:為返回?cái)?shù)據(jù)的實(shí)際字節(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é)

高點(diǎn)報(bào)警值高8位字節(jié)

高點(diǎn)報(bào)警值低8位字節(jié)

7

8

9

低點(diǎn)報(bào)警值高8位字節(jié)

低點(diǎn)報(bào)警值低8位字節(jié)

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

10

11

12

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

報(bào)警狀態(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進(jìn)制為7055PH值為7.055,2位整數(shù),3位小數(shù),整數(shù)前面的零省去。

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

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

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

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

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

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é)

高點(diǎn)報(bào)警值高8位字節(jié)

高點(diǎn)報(bào)警值低8位字節(jié)

7

8

9

低點(diǎn)報(bào)警值高8位字節(jié)

低點(diǎn)報(bào)警值低8位字節(jié)

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

10

11

12

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

報(bào)警狀態(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í),數(shù)據(jù)以補(bǔ)碼形式運(yùn)算,0xFFFF-0xFF30+1=0x00D0,轉(zhuǎn)化成10進(jìn)制為208,ORP值為-208mV。ORP若為0x011E,轉(zhuǎn)化成10進(jìn)制為286,ORP值為286mV

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

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

低點(diǎn)報(bào)警值:0x FC18,數(shù)據(jù)以補(bǔ)碼形式運(yùn)算,值為-1000 mV。

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

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

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

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

命令格式:

定義

地址

功能碼

起始地址

寄存器個(gè)數(shù)

CRC校驗(yàn)

數(shù)據(jù)

ADDR

0x03

0x 0000-0x 0004

0x 0001

CRC 16

字節(jié)數(shù)

1

1

2

2

2

返回格式:

定義

地址

功能碼

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

數(shù)據(jù)

CRC校驗(yàn)

數(shù)據(jù)

ADDR

0x 03

0x 02

Data

CRC 16

字節(jié)數(shù)

1

1

1

2

2


注釋:  

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

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

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

1.3.錯(cuò)誤響應(yīng)

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

定義

地址

功能碼

CODE

CRC校驗(yàn)

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

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

COM:    接收到的功能碼

CRC校驗(yàn),低8位在前,高8位在后。  

例如:

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

         返回:01 81 01 81 90    說明功能碼錯(cuò)誤

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

         返回:01 83 02 C0 F1    起始地址錯(cuò)

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

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

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

命令格式:


定義

地址

功能碼

起始地址

寄存器數(shù)量

字節(jié)數(shù)

數(shù)據(jù)

ADDR

0x10

0x 0000

0x 0003

0x 06

字節(jié)數(shù)

1

1

2

2

1

高報(bào)高8

高報(bào)低8

低報(bào)高8

低報(bào)低8

滯后高8

滯后低8

CRC校驗(yàn)

自定義

自定義

自定義

自定義

自定義

自定義

CRC 16

1

1

1

1

1

1

2

返回格式:

定義

地址

功能碼

起始地址

寄存器數(shù)量

CRC校驗(yàn)

數(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:高點(diǎn)報(bào)警(范圍0~14.00)、低點(diǎn)報(bào)警(范圍0~14.00)、滯后值(范圍0~9.90)數(shù)據(jù)格式同上。

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

2.2.錯(cuò)誤響應(yīng)

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

定義

地址

功能碼

CODE

CRC校驗(yàn)

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

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

             04 寫多個(gè)寄存器異常

COM:    接收到的功能碼

CRC校驗(yàn),低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ù)寄存器(寫單個(gè)寄存器) 功能碼(0x06

命令格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗(yàn)

數(shù)據(jù)

ADDR

0x06

自定義

自定義

CRC 16

字節(jié)數(shù)

1

1

2

2

2



返回格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗(yàn)

數(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

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

PH高點(diǎn)報(bào)警點(diǎn)寄存器地址:0X000A

PH低點(diǎn)報(bào)警點(diǎn)寄存器地址:0X000C

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

ORP高點(diǎn)報(bào)警點(diǎn)寄存器地址:0X0014

ORP低點(diǎn)報(bào)警點(diǎn)寄存器地址:0X0016

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

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

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

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

2.4.錯(cuò)誤響應(yīng)

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

定義

地址

功能碼

CODE

CRC校驗(yàn)

數(shù)據(jù)

ADDR

COM+80H

1

CRC 16

字節(jié)數(shù)

1

1

1

2


CODE 01 功能碼異常

             02 寄存器地址異常

             03 寄存器值異常

             04 寫單個(gè)寄存器異常

COM:    接收到的功能碼

CRC校驗(yàn),低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    寫單個(gè)寄存器異常

CRC校驗(yàn):低位在前,高位在后,各個(gè)地址效驗(yàn)碼如下:

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添加到命令中時(shí),低字節(jié)先加入,然后高字節(jié)?!?/span>

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

unsigned short CRC16(puchMsg, usDataLen)

unsigned char *puchMsg ; /* 要進(jìn)行CRC校驗(yàn)的消息 */

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++ ; /* 計(jì)算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

} ;

江蘇凌恒環(huán)境科技有限公司
  • 聯(lián)系人:銷售部
  • 地址:泗陽縣來安街道辦全民創(chuàng)業(yè)園2號(hào)樓2樓
  • 郵箱:LINGHENG@qq.com
  • 傳真:
關(guān)注我們

歡迎您關(guān)注我們的微信公眾號(hào)了解更多信息

掃一掃
關(guān)注我們
版權(quán)所有©2025江蘇凌恒環(huán)境科技有限公司All Rights Reserved    備案號(hào):蘇ICP備20015375號(hào)-4    sitemap.xml    總流量:177130
管理登陸    技術(shù)支持:儀表網(wǎng)    
hd老熟女bbn老淑女| 亚洲日韩国产精品无码AV| 少妇被粗大的猛进出69影院| 欧美极品少妇xxxooo性护士| 嫩草午夜少妇在线影视| 亚洲一区二区三区无码久久| 99re这里只有国产中文精品国产精品| 天天av天天翘天天综合网| 国产Av无码专区亚洲Av毛网站| 99精品久久| 免费aⅴ| 97精品国产一区二区三区| 国语自产偷拍精品视频偷拍| 国产山东熟女48嗷嗷叫| 精品国精品自拍自在线| av日本| 91久久人澡人人添人人爽爱播网| 日本m码换成中国码是多大| 久热这里只有国产中文精品| 久久精品99无色码中文字幕| 人人妻人人澡人人爽曰本| 中文字幕无线码一区二区| 软萌小仙自慰粉嫩小泬网站| 人人干av| 久久精品人人做人人爽97| 午夜无码无遮挡在线视频| 亚洲国产一区二区三区在线观看| 国产精品99久久久久久| 强乱中文字幕在线播放不卡| 人妻蜜与肉| 青青草综合网| 久久久久免费精品国产,按| 国产又粗又黄又猛又爽高潮视频 | 1000部啪啪未满十八勿入免费| 国产风韵犹存丰满大屁股| 亚洲七久久之综合七久久| 亚洲综合色婷婷六月丁香宅男大增| 欧美hairy多毛pics大全| 欧美日韩麻豆| 夜夜爽久久精品91| 日韩a∨|