手机版av在线_96精品国产aⅴ在线观看_中文字幕35页_国产亚洲成AV人片在线观黄桃_全黄性色大片_免费视频h

產品推薦:水表|流量計|壓力變送器|熱電偶|液位計|冷熱沖擊試驗箱|水質分析|光譜儀|試驗機|試驗箱


儀表網>技術中心>技術交流>正文

歡迎聯系我

有什么可以幫您? 在線咨詢

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

來源:江蘇凌恒環境科技有限公司   2024年07月26日 15:49  

串口調試助手


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

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

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

命令格式:

定義

地址

功能碼

起始地址

寄存器個數

CRC校驗

數據

ADDR

0x03

0x 0000

0x 0006

CRC 16

字節數

1

1

2

2

2

返回格式:

定義

地址

功能碼

數據個數

數據

CRC校驗

數據

ADDR

0x 03

0x 0C

Data

CRC 16

字節數

1

1

1

12

2


注釋:  

(1) 數據字節長度:為返回數據的實際字節長度。

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

(3) DATA數據格式如下:

PH模式的DATA數據

1

2

3

PH值高8位字節

PH值低8位字節

溫度值高8位字節

4

5

6

溫度值低8位字節

高點報警值高8位字節

高點報警值低8位字節

7

8

9

低點報警值高8位字節

低點報警值低8位字節

滯后值高8位字節

10

11

12

滯后值低8位字節

報警狀態

PH/ORP模式

例,發送命令: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

則數據部分為:1B 8F 00 FA 03 E8 01 90 00 32 00 00

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

溫度值:0x09C4,轉化成10進制為2500,溫度值為25.00,保留兩位小數。

高點報警值:0x03E8,轉化成10進制為1000,值為10.00,保留兩位小數。

低點報警值:0x0190,轉化成10進制為400,值為4.00,保留兩位小數。

滯后值:0x0032,轉化成10進制為50,值為0.50,保留兩位小數。

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

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

ORP模式的DATA數據

1

2

3

ORP值高8位字節

ORP值低8位字節

溫度值高8位字節

4

5

6

溫度值低8位字節

高點報警值高8位字節

高點報警值低8位字節

7

8

9

低點報警值高8位字節

低點報警值低8位字節

滯后值高8位字節

10

11

12

滯后值低8位字節

報警狀態

PH/ORP模式

例,發送命令: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

則數據部分為:FF 30 00 FA 03 E8 FC 18 00 0A 00 01

ORP值:0xFF30,當ORP值為負數時,數據以補碼形式運算,0xFFFF-0xFF30+1=0x00D0,轉化成10進制為208ORP值為-208mVORP若為0x011E,轉化成10進制為286ORP值為286mV

溫度值:0x00FA,轉化成10進制為250,溫度值為25.0,保留一位小數。

高點報警值:0x03E8,轉化成10進制為1000,值為1000 mV

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

滯后值:0x000A,轉化成10進制為10,值為10 mV

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

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

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

命令格式:

定義

地址

功能碼

起始地址

寄存器個數

CRC校驗

數據

ADDR

0x03

0x 0000-0x 0004

0x 0001

CRC 16

字節數

1

1

2

2

2

返回格式:

定義

地址

功能碼

數據個數

數據

CRC校驗

數據

ADDR

0x 03

0x 02

Data

CRC 16

字節數

1

1

1

2

2


注釋:  

(1) 數據字節長度:為返回數據的實際字節長度。

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

數據處理同1.1一樣。

1.3.錯誤響應

如果監測器不能正確執行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數據

ADDR

COM+80H

1

CRC 16

字節數

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

             03 寄存器數量異常

COM:    接收到的功能碼

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

例如:

  1、發送命令:01 01 00 00 00 06 BC 08

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

2、發送命令:01 03 00 06 00 06 25 C9

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

3、發送命令:01 03 00 00 00 08 44 0C

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

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

命令格式:


定義

地址

功能碼

起始地址

寄存器數量

字節數

數據

ADDR

0x10

0x 0000

0x 0003

0x 06

字節數

1

1

2

2

1

高報高8

高報低8

低報高8

低報低8

滯后高8

滯后低8

CRC校驗

自定義

自定義

自定義

自定義

自定義

自定義

CRC 16

1

1

1

1

1

1

2

返回格式:

定義

地址

功能碼

起始地址

寄存器數量

CRC校驗

數據

ADDR

0x 10

0x 0000

0x 0003

CRC 16

字節數

1

1

2

2

2

例,發送命令: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)數據格式同上。

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

2.2.錯誤響應

如果監測器不能正確執行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數據

ADDR

COM+80H

1

CRC 16

字節數

1

1

1

2


CODE 01 功能碼異常

             02 起始地址異常

             03 寄存器數量異常

             04 寫多個寄存器異常

COM:    接收到的功能碼

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

例如:

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

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

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

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

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

         返回:01 90 03 0C 01    寄存器數量異常

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

命令格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗

數據

ADDR

0x06

自定義

自定義

CRC 16

字節數

1

1

2

2

2



返回格式:

定義

地址

功能碼

寄存器地址

寄存器值

CRC校驗

數據

ADDR

0x06

自定義

自定義

CRC 16

字節數

1

1

2

2

2

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

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

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

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

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

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

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

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

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

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

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

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

2.4.錯誤響應

如果監測器不能正確執行上位機命令,返回如下格式:

定義

地址

功能碼

CODE

CRC校驗

數據

ADDR

COM+80H

1

CRC 16

字節數

1

1

1

2


CODE 01 功能碼異常

             02 寄存器地址異常

             03 寄存器值異常

             04 寫單個寄存器異常

COM:    接收到的功能碼

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

例如:

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

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

2、發送命令:01 06 00 02 03 E9 E9 74

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

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

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

4、發送命令: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添加到命令中時,低字節先加入,然后高字節。 

CRC簡單函數如下: 

unsigned short CRC16(puchMsg, usDataLen)

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

unsigned short usDataLen ; /* 消息中字節數 */

{

unsigned char uchCRCHi = 0xFF ; /* CRC字節初始化 */

unsigned char uchCRCLo = 0xFF ; /* CRC 字節初始化 */

unsigned uIndex ; /* CRC循環中的索引 */

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

{

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

uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex] ;

uchCRCLo = auchCRCLo[uIndex] ;

}

return (uchCRCHi << 8 | uchCRCLo) ;

}

 

/* CRC 高位字節值表 */

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低位字節值表*/

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

} ;

免責聲明

  • 凡本網注明“來源:儀表網”的所有作品,均為浙江興旺寶明通網絡有限公司-儀表網合法擁有版權或有權使用的作品,未經本網授權不得轉載、摘編或利用其它方式使用上述作品。已經本網授權使用作品的,應在授權范圍內使用,并注明“來源:儀表網”。違反上述聲明者,本網將追究其相關法律責任。
  • 本網轉載并注明自其它來源(非儀表網)的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或和對其真實性負責,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品第一來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。
聯系我們

客服熱線: 15024464426

加盟熱線: 15024464426

媒體合作: 0571-87759945

投訴熱線: 0571-87759942

關注我們
  • 下載儀表站APP

  • Ybzhan手機版

  • Ybzhan公眾號

  • Ybzhan小程序

企業未開通此功能
詳詢客服 : 0571-87759942
主站蜘蛛池模板: 日韩福利 | 亚洲欧美日韩一区二区在线观看 | 欧美日韩亚洲免费 | 五十度灰2在线观看 | 性色av一区二区三区四区 | 国产亚洲亚洲国产一二区 | 精品无码一区二区三区在线 | 乱人伦人成品精国产在线 | 欧美性猛交XXXX三人 | 狠狠色婷婷久久一区二区三区91 | 亚洲中文久久精品无码软件 | 久久人人槡人妻人人玩夜色AV | 性猛交xxxxx按摩欧美 | 日韩一本在线 | 日本三级午夜在线看激 | 俄罗斯ZOOM与人性ZOOM | 成人国产在线观看 | 精品久久久久久久久久ntr影视 | 国产在线精品一区二区三区 | 精品国产一区二区三区久久久久 | 91麻豆精品国产自产在线观看一区 | 男女超爽视频免费播放 | 91精品久久久久久久久久不卡 | 亚洲夜幕久久日韩精品一区 | 色涩视频在线观看 | 国产福利影院 | 亚洲精品xx | 韩国19禁无遮挡啪啪无码网站 | 亚洲欧美国产日产综合不卡 | 日韩一级黄| 国产一区影院 | 日韩未删减 | 免费人成在线观看成人片 | 新japanesehdxxxx乱 | 青青青青娱乐 | 麻豆人妻少妇精品无码专区 | 特黄一级| 国产偷伦视频片免费视频 | 久99精品久久久 | 一级a毛片免费 | 欧美人与禽猛交乱配视频 |