Changes for page Water Quality Sensors
Last modified by Karry Zhuang on 2025/07/25 09:38
From version 72.19
edited by Karry Zhuang
on 2025/07/16 09:58
on 2025/07/16 09:58
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (1 modified, 0 added, 4 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. karry1 +XWiki.Xiaoling - Content
-
... ... @@ -5,7 +5,7 @@ 5 5 6 6 7 7 8 -= 1. DR-EC Water EC Probe = 8 += 1. DR-ECK Water EC Probe = 9 9 10 10 == 1.1 Specification: == 11 11 ... ... @@ -17,25 +17,19 @@ 17 17 * **Interface**: RS485. 9600 Baud Rate 18 18 19 19 * **EC Range & Resolution:** 20 -** **ECK1.0 :** 0 ~~ 2,000 μS/cm Resolution: 1 μS/cm 21 -** **ECK10.0 : **10 ~~ 20,000 μS/cm Resolution: 10 μS/cm 22 -** **EC200 : **1 ~~ 200,000 μS/cm Resolution: 1 μS/cm 20 +** **ECK0.01** : 0.02 ~~ 20 μS/cm 21 +** **ECK0.1**: 0.2 ~~ 200.0 μS/cm 22 +** **ECK1.0** : 2 ~~ 2,000 μS/cm Resolution: 1 μS/cm 23 +** **ECK10.0** : 20 ~~ 20,000 μS/cm Resolution: 10 μS/cm 24 + 23 23 * **EC Accuracy**: ±1% FS 24 -* **Salinity measurement range** 25 -** **EC200 :**0~~70PSU Resolution: 0.1PSU 26 -* **Temperature measurement range** 27 -** **ECK1/ECK10:**-20~~+60℃; Resolution: 0.1℃ 28 -** **EC200 :**-5~~+80℃; Resolution: 0.1℃ 26 + 27 +* **Temperature Measure Range**: -20 ~~ 60 °C 28 + 29 29 * **Temperature Accuracy: **±0.5 °C 30 -* **Temperature compensation range** 31 -** **ECK1/ECK10:**0~~+60℃ (default compensation temperature 25℃) 32 -** **EC200:**-5~~+80℃ (default compensation temperature 25℃) 33 -* **Temperature compensation coefficient:**Default 0.2 34 -* **Working environment:** 35 -** Ambient Temperature: 0–60°C 36 -** Relative Humidity: <85% RH(Specifically refers to the cable male and female) 37 -** ECK200 Continuous monitoring of cross-section water quality, aquaculture, sewage treatment, environmental protection, pharmaceuticals, food, tap water, seawater and other high conductivity environments 30 + 38 38 * **IP Rated**: IP68 32 + 39 39 * **Max Pressure**: 0.6MPa 40 40 41 41 == 1.2 Application for Different Range == ... ... @@ -47,17 +47,15 @@ 47 47 == 1.3 Wiring == 48 48 49 49 50 -[[image:image-2024 1129142314-1.png||height="352" width="1108"]]44 +[[image:image-20240720172533-1.png||height="347" width="569"]] 51 51 52 52 53 53 == 1.4 Mechinical Drawing == 54 54 55 - ECK1 and ECK10 EC200 56 56 50 +[[image:image-20240714174241-2.png]] 57 57 58 -[[image:image-20240714174241-2.png]] [[image:1752564223905-283.png||height="399" width="160"]] 59 59 60 - 61 61 == 1.5 Installation == 62 62 63 63 ... ... @@ -114,8 +114,6 @@ 114 114 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 115 115 116 116 117 -(% style="color:red" %)**ery.** 118 - 119 119 === 1.7.1 Query address === 120 120 121 121 ... ... @@ -134,8 +134,6 @@ 134 134 |=(% style="width: 100px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 110px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 106px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 93px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 104px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 135 135 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 136 136 137 - 138 - 139 139 === 1.7.2 Change address === 140 140 141 141 ... ... @@ -214,35 +214,8 @@ 214 214 **For example**, the returned data is 12 03 04 (% style="color:red" %)**02 AE**(%%) 01 64 B8 D0. 02 AE is converted to decimal 686, K=1, EC: 686uS/cm,temperature: 35.6℃ Convert the returned data to decimal and divide by 10. 215 215 216 216 217 -EC200 218 - 219 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 220 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 74px; background-color: rgb(79, 129, 189); color: white;" %)Register Address|=(% style="width: 94px; background-color: rgb(79, 129, 189); color: white;" %)Register length|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 77px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 221 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:74px" %)0X00 0X00|(% style="width:94px" %)0X00 0X04|(% style="width:72px" %)((( 222 -0XC5 223 -)))|(% style="width:77px" %)0XC8 224 - 225 -**response:** 226 - 227 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 228 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 74px; background-color: rgb(79, 129, 189); color: white;" %)Number of valid bytes|=(% style="width: 94px; background-color: rgb(79, 129, 189); color: white;" %)Register contents|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 77px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 229 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:74px" %)0X08|(% style="width:94px" %)((( 230 -0X00 0X00 0X1E 0XEF 0X01 0X14 0X00 0X2B 231 -)))|(% style="width:72px" %)((( 232 -0X42 233 -)))|(% style="width:77px" %)0X59 234 - 235 -Conductivity calculation: 0X1EEF=7919=>Conductivity=7919μS/cm 236 -Temperature calculation: 0X0114=276=>Temperature=27.6℃ 237 -Salinity calculation: 0X002b=43=>Salinity=4.3PSU 238 - 239 - 240 - 241 - 242 - 243 243 === 1.7.5 Calibration Method === 244 244 245 -ECK1 and ECK10.0 246 246 247 247 This device uses one-point calibration, and you need to prepare a known E standard solution. When mileage K=1, 1~~2000 uses 1413μS/cm standard solution, and when mileage K=10, 10~~20000 uses 12.88mS/cm standard solution. 248 248 ... ... @@ -286,62 +286,6 @@ 286 286 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high 287 287 |(% style="width:99px" %)0X11|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0XEB|(% style="width:1px" %)0X50 288 288 289 - 290 - 291 -EC200 292 - 293 -For the device with address 01, use 1413uS/cm standard solution to calibrate the first point. Send frame: 1413. Convert hexadecimal to 585. Write 0001, 00 00, 0585 to 0x0120, 0x0121, 0x0122 respectively. 294 - 295 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 296 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Register contents|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 high 297 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X10|(% style="width:135px" %)0X01 0X20|(% style="width:126px" %)0X00 0X03|(% style="width:85px" %)0X06|(% style="width:1px" %)((( 298 -0X00 299 -0X01 300 -0X00 301 -0X00 302 -0X05 303 -0X85 304 -)))|(% style="width:1px" %)0X1c|(% style="width:1px" %)((( 305 -((( 306 -0X25 307 -))) 308 -))) 309 - 310 -**response:** 311 - 312 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 313 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 60px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 314 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X10|(% style="width:135px" %)0X01 0X02|(% style="width:126px" %)0X00 0X03|(% style="width:85px" %)0X06|(% style="width:1px" %)((( 315 -0X80 316 -)))|(% style="width:60px" %)0X3e((( 317 - 318 -))) 319 - 320 -Use 111310uS/cm standard solution to calibrate the second point and send the frame: 111310 is converted into hexadecimal 1b2ce, and 0002, 0001,b2 ce are written to 0x0120, 0x0121, and 0x0122 respectively. 321 - 322 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 323 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Register contents|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 high 324 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X10|(% style="width:135px" %)0X01 0X20|(% style="width:126px" %)0X00 0X03|(% style="width:85px" %)0X06|(% style="width:1px" %)((( 325 -0X00 326 -0X02 327 -0X00 328 -0X01 329 -0Xb2 330 -0Xce 331 -)))|(% style="width:1px" %)0X3e|(% style="width:1px" %)((( 332 -((( 333 -0X22 334 -))) 335 -))) 336 - 337 -**response:** 338 - 339 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 340 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Register length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 60px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 341 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X10|(% style="width:135px" %)0X01 0X02|(% style="width:126px" %)0X00 0X03|(% style="width:85px" %)0X06|(% style="width:1px" %)((( 342 -0X80 343 -)))|(% style="width:60px" %)0X3e 344 - 345 345 = 2. DR-PH01 Water PH Sensor = 346 346 347 347 == 2.1 Specification == ... ... @@ -363,9 +363,7 @@ 363 363 364 364 * **Temperature measurement error**: ±0.5°C 365 365 366 -* **Working environment:** 367 -** Ambient Temperature: 0–60°C 368 -** Relative Humidity: <85% RH(Specifically refers to the cable male and female) 271 +* **Temperature Measure Range**: -20 ~~ 60 °C 369 369 370 370 * **Temperature Accuracy: **±0.5 °C 371 371 ... ... @@ -499,8 +499,8 @@ 499 499 Query the data (PH) of the sensor (address 10), host → slave 500 500 501 501 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 502 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 74px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:75px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high503 -|(% style="width:99px" %)0X10|(% style="width:7 4px" %)0X03|(% style="width:75px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X4B405 +|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 406 +|(% style="width:99px" %)0X10|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X4B 504 504 505 505 If the sensor receives correctly, the following data will be returned, slave → host 506 506 ... ... @@ -572,14 +572,14 @@ 572 572 573 573 * **Stability**: ≤2mv/24 hours 574 574 575 -* **Working environment:** 576 -** Ambient Temperature: 0–60°C 577 -** Relative Humidity: <85% RH(Specifically refers to the cable male and female) 478 +* **Equipment working conditions**: Ambient temperature: 0-60°C Relative humidity: <85%RH 578 578 579 579 * **IP Rated**: IP68 580 580 581 581 * **Max Pressure**: 0.6MPa 582 582 484 + 485 + 583 583 == 3.2 Wiring == 584 584 585 585 ... ... @@ -650,6 +650,7 @@ 650 650 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 high 651 651 |(% style="width:99px" %)0XFE |(% style="width:112px" %)0X03|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X00|(% style="width:1px" %)0X51|(% style="width:1px" %)0XD4 652 652 556 + 653 653 **response:** 654 654 655 655 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) ... ... @@ -656,6 +656,7 @@ 656 656 |=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 657 657 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 658 658 563 + 659 659 === 3.6.2 Change address === 660 660 661 661 ... ... @@ -693,6 +693,7 @@ 693 693 0X96 694 694 ))) 695 695 601 + 696 696 === 3.6.4 Query data === 697 697 698 698 ... ... @@ -740,16 +740,19 @@ 740 740 0XC3 741 741 ))) 742 742 649 + 650 + 651 + 743 743 = 4. DR-DO1 Dissolved Oxygen Sensor = 744 744 745 745 == 4.1 Specification == 746 746 747 747 748 -* **Measuring range**: 0-20mg/L, 0 –50℃657 +* **Measuring range**: 0-20mg/L, 0-50°C 749 749 750 -* **Accuracy**: 3%, ±0.5 ℃659 +* **Accuracy**: 3%, ±0.5°C 751 751 752 -* **Resolution**: 0.01 mg/L, 0.01 ℃661 +* **Resolution**: 0.01 mg/L, 0.01°C 753 753 754 754 * **Maximum operating pressure**: 6 bar 755 755 ... ... @@ -757,12 +757,11 @@ 757 757 758 758 * **Power supply voltage**: 5-24V DC 759 759 760 -* **Working environment:** 761 -** Ambient Temperature: 0–60°C 762 -** Relative Humidity: <85% RH(Specifically refers to the cable male and female) 669 +* **Working environment**: temperature 0-60°C; humidity <95%RH 763 763 764 764 * **Power consumption**: ≤0.5W 765 765 673 + 766 766 == 4.2 wiring == 767 767 768 768 ... ... @@ -772,10 +772,9 @@ 772 772 == 4.3 Impedance requirements for current signals == 773 773 774 774 775 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %) 776 -|(% style="width:132px" %)**Supply Voltage**|(% style="width:67px" %)**9V**|(% style="width:67px" %)**12V**|(% style="width:67px" %)**20V**|(% style="width:67px" %)**24V** 777 -|(% style="width:132px" %)**Max Impedance**|(% style="width:65px" %)**<250Ω**|(% style="width:67px" %)**<400Ω**|(% style="width:67px" %)**<500Ω**|(% style="width:65px" %)**<900Ω** 683 +[[image:image-20240718195414-8.png||height="100" width="575"]] 778 778 685 + 779 779 == 4.4 Mechinical Drawing == 780 780 781 781 ... ... @@ -789,6 +789,7 @@ 789 789 790 790 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 791 791 699 + 792 792 == 4.6 RS485 Commands == 793 793 794 794 ... ... @@ -805,6 +805,7 @@ 805 805 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register address low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 806 806 |(% style="width:99px" %)0XFF|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XF1|(% style="width:56px" %)0XD7 807 807 716 + 808 808 If you forget the original address of the sensor, you can use the broadcast address 0XFF instead. When using 0XFE, the host can only connect to one slave, which can be used as a method of address query. 809 809 810 810 ... ... @@ -814,9 +814,10 @@ 814 814 Register 1 data high and register 1 data low indicate the sensor version 815 815 816 816 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 817 -|=(% style="width: 40px;background-color:#4F81BD;color:white" %)Address|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width:59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high726 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 818 818 |(% style="width:99px" %)0XFF|(% style="width:72px" %)0X03|(% style="width:64px" %)0X04|(% style="width:68px" %)0X00|(% style="width:70px" %)0X01|(% style="width:72px" %)0X00|(% style="width:56px" %)0X00|(% style="width:56px" %)0XB4|(% style="width:56px" %)0X3C 819 819 729 + 820 820 === 4.6.2 Change address === 821 821 822 822 ... ... @@ -823,15 +823,16 @@ 823 823 For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave 824 824 825 825 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 826 -|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Start address high|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Start address low|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width:40px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width:39px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high|=(% style="width:39px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low736 +|=(% style="width: 67px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 71px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 65px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 65px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Start address high|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Start address low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low 827 827 |(% style="width:67px" %)0X01|(% style="width:71px" %)0X10|(% style="width:65px" %)0X00|(% style="width:65px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:53px" %)0X04|(% style="width:53px" %)0X00|(% style="width:72px" %)0X02|(% style="width:53px" %)0X00|(% style="width:53px" %)0X00|(% style="width:56px" %)0XD2|(% style="width:53px" %)0X10 828 828 829 829 **response:** 830 830 831 831 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 832 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high742 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 833 833 |(% style="width:99px" %)0X01|(% style="width:72px" %)0X10|(% style="width:64px" %)0X00|(% style="width:68px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0X61|(% style="width:56px" %)0XCA 834 834 745 + 835 835 === 4.6.3 Query data === 836 836 837 837 ... ... @@ -838,13 +838,14 @@ 838 838 Query the data (dissolved oxygen) of the sensor (address 14), host → slave 839 839 840 840 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 841 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high752 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 842 842 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X14|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0XC6|(% style="width:56px" %)0XCB 843 843 755 + 844 844 If the sensor receives correctly, the following data will be returned, slave → host 845 845 846 846 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 847 -|=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high759 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 848 848 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X03|(% style="width:72px" %)0X78|(% style="width:56px" %)0XB5|(% style="width:56px" %)0X55 849 849 850 850 After the query, 7 bytes will be returned. For example, the returned data is 14 03 02 (% style="color:red" %)**03 78**(%%) B5 55. 03 78 is the value of dissolved oxygen. ... ... @@ -855,15 +855,17 @@ 855 855 Query the data (temperature) of the sensor (address 14), host → slave 856 856 857 857 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 858 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high770 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 859 859 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X11|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0XD6|(% style="width:56px" %)0XCA 860 860 773 + 861 861 If the sensor receives correctly, the following data will be returned, slave → host 862 862 863 863 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 864 -|=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high777 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 865 865 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X09|(% style="width:72px" %)0XA4|(% style="width:56px" %)0XB2|(% style="width:56px" %)0X6C 866 866 780 + 867 867 After the query, 7 bytes will be returned. For example, the returned data is 14 03 02 (% style="color:red" %)**09 A4**(%%) B2 6C. 03 78 is the value of dissolved oxygen temperature. 868 868 869 869 Converted to decimal, it is 2468. Add two decimal places to get the actual value. 09 A4 means the current dissolved oxygen temperature is 24.68°C ... ... @@ -874,7 +874,7 @@ 874 874 == 5.1 Specification == 875 875 876 876 877 -* **Measuring range**: 0.1~ ~1000.0NTU791 +* **Measuring range**: 0.1~1000.0NTU 878 878 879 879 * **Accuracy**: ±5% 880 880 ... ... @@ -882,16 +882,15 @@ 882 882 883 883 * **Stability**: ≤3mV/24 hours 884 884 885 -* **Output signal**: RS485 (standard Modbus-RTU protocol, device default address: 01) 799 +* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 886 886 887 -* **Power supply voltage**: 5~ ~24V DC (when output signal is RS485),12~~24V DC (when output signal is 4~~20mA)801 +* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 888 888 889 -* **Working environment:** 890 -** Ambient Temperature: 0–60°C 891 -** Relative Humidity: <85% RH(Specifically refers to the cable male and female) 803 +* **Working environment**: temperature 0~60°C; humidity ≤ 95%RH 892 892 893 893 * **Power consumption**: ≤ 0.5W 894 894 807 + 895 895 == 5.2 wiring == 896 896 897 897 ... ... @@ -901,10 +901,9 @@ 901 901 == 5.3 Impedance requirements for current signals == 902 902 903 903 904 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %) 905 -|(% style="width:132px" %)**Supply Voltage**|(% style="width:67px" %)**9V**|(% style="width:67px" %)**12V**|(% style="width:67px" %)**20V**|(% style="width:67px" %)**24V** 906 -|(% style="width:132px" %)**Max Impedance**|(% style="width:65px" %)**<250Ω**|(% style="width:67px" %)**<400Ω**|(% style="width:67px" %)**<500Ω**|(% style="width:65px" %)**<900Ω** 817 +[[image:image-20240718195414-8.png||height="100" width="575"]] 907 907 819 + 908 908 == 5.4 Mechinical Drawing == 909 909 910 910 ... ... @@ -918,6 +918,7 @@ 918 918 919 919 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 920 920 833 + 921 921 == 5.6 RS485 Commands == 922 922 923 923 ... ... @@ -931,8 +931,8 @@ 931 931 **send:** 932 932 933 933 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 934 -|=(% style="width: 80.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width:64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width:64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width:64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 54.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 58.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high935 -|(% style="width:99px" %)0XFE |(% style="width: 64.75px" %)0X03|(% style="width:64px" %)0X00|(% style="width:64.75px" %)0X50|(% style="width:70px" %)0X00|(% style="width:72px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4847 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 848 +|(% style="width:99px" %)0XFE |(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X50|(% style="width:70px" %)0X00|(% style="width:72px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4 936 936 937 937 If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, which can be used as a method of address query. 938 938 ... ... @@ -940,23 +940,23 @@ 940 940 **response:** 941 941 942 942 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 943 -|=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)New address|=(% style="width:103.6px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high856 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 106px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 93px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 104px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 944 944 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 945 945 859 + 946 946 === 5.6.2 Change address === 947 947 948 - 949 949 For example: Change the address of the sensor with address 1 to 2, master → slave 950 950 951 951 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 952 -|=(% style="width: 80.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width:64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width:64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width:64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width:64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width:64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 54.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 58.75px;background-color:#4F81BD;color:white" %)CRC16 high865 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high 953 953 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X08|(% style="width:1px" %)0X1A 954 954 868 + 955 955 If the sensor receives correctly, the data is returned along the original path. 956 956 957 957 (% style="color:red" %)**Note: If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, and the return address is still the original address, which can be used as a method of address query.** 958 958 959 - 960 960 === 5.6.3 Query data === 961 961 962 962 ... ... @@ -963,121 +963,19 @@ 963 963 Query the data (turbidity) of the sensor (address 15), host → slave 964 964 965 965 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 966 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high879 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 967 967 |(% style="width:99px" %)0X15|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X1E 968 968 882 + 969 969 If the sensor receives correctly, the following data will be returned, slave → host 970 970 971 971 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 972 -|=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high886 +|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 973 973 |(% style="width:99px" %)0X15|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0X9A|(% style="width:56px" %)0X09|(% style="width:56px" %)0X4C 974 974 889 + 975 975 The query data command is 15 03 00 00 00 01 87 1E 976 976 977 977 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C 978 978 979 979 02 9A is the turbidity value, converted to decimal, it is 666, and then divided by 10, the actual value is 66.6, 02 9A means the current turbidity value is 66.6 NTU 980 - 981 - 982 -= 6. DR-CL Water CL Probe = 983 - 984 -== 6.1 Specification: == 985 - 986 -* **Power Input**: DC7~~30 987 - 988 -* **Power Consumption** : 0.19W 989 - 990 -* **Interface**: RS485. 9600 Baud Rate 991 - 992 -* **CL Range & Resolution:** 993 -** **CL2ML:**0-2mg/L 994 -** **CL10ML:**0-10mg/L 995 -** **Resolution:**0.01mg/L 996 - 997 -* **CL Accuracy**: ±5% FS 998 -* **Temperature Accuracy: **±0.5 °C 999 -* **Working environment:** 1000 -** Ambient Temperature: 0–50°C 1001 -** pH:4-9 1002 -** Flow rate: 30L/h~~60L/h (flow tank installation) 1003 -* **IP Rated**: IP68 1004 - 1005 -* **Max Pressure**: 0.6MPa 1006 - 1007 -== 6.2 Wiring == 1008 - 1009 -[[image:image-20240720172548-2.png||height="348" width="571"]] 1010 - 1011 -== 6.3 Mechinical Drawing == 1012 - 1013 -[[image:1752573238705-910.png||height="694" width="278"]] 1014 - 1015 -== 6.4 Installation == 1016 - 1017 -Flow-through installation: Use the matching flow slot for installation. The device and the flow slot are installed tightly. 1018 - 1019 -The measuring end is completely immersed in the measured liquid to ensure a steady flow rate without bubbles. 1020 - 1021 -It is recommended that the flow rate be controlled at 30-60Lh to ensure the accuracy of the test. 1022 - 1023 -[[image:1752573643879-991.png||height="360" width="343"]] 1024 - 1025 -== 6.5 Maintenance == 1026 - 1027 -* The device itself generally does not require daily maintenance. When an obvious fault occurs, please do not open it and repair it yourself, and contact us as soon as possible! 1028 -* After using the electrode, please clean the electrode head with clean water and cover it with a protective cover. 1029 -* When measuring the device, the measured liquid should flow and the flow rate should be uniform, and there should be no bubbles attached to the measuring end of the device. 1030 -* If the electrode diaphragm is attached with dirt and mineral components, the sensitivity will be reduced, and it may not be possible to perform sufficient measurement. Please ensure that the platinum ring is clean. 1031 -* The platinum induction ring of a good residual chlorine electrode should always be kept clean and bright. If the platinum ring of the electrode becomes rough or covered with pollutants after measurement, please clean it according to the following method: (For reference) Inorganic pollution: immerse the electrode in 0.1mol/L dilute hydrochloric acid for 15 minutes, gently wipe the platinum ring of the residual chlorine electrode with a cotton swab, and then wash it with tap water. 1032 -* Organic or oil pollution: immerse the electrode in tap water with a small amount of detergent, such as dishwashing liquid, and thoroughly clean the sensing surface of the electrode sensor. Gently wipe the platinum ring of the electrode with a cotton swab, then rinse with tap water, and the cleaning is complete. If the platinum ring of the electrode has formed an oxide film, please use toothpaste or 1000-grit fine sandpaper to properly polish the sensing surface, and then clean it with tap water. The platinum ring is connected to the glass, so please handle it carefully when polishing. 1033 -The electrode has a service life of about one year, and a new electrode should be replaced in time after aging. 1034 -* Before the cable plug and the device plug are locked, do not put the plug part into water. 1035 - 1036 - 1037 - 1038 -== 6.6 RS485 Commands == 1039 - 1040 -RS485 signal 1041 -Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 1042 - 1043 - 1044 -== 6.7 Query data == 1045 - 1046 -Example 1: Read the current residual chlorine concentration of the device with address 01 1047 - 1048 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 1049 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 74px; background-color: rgb(79, 129, 189); color: white;" %)Register Address|=(% style="width: 94px; background-color: rgb(79, 129, 189); color: white;" %)Register length|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 77px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 1050 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:74px" %)0X00 0X00|(% style="width:94px" %)0X00 0X01|(% style="width:72px" %)((( 1051 -0X84 1052 -)))|(% style="width:77px" %)0X0A 1053 - 1054 -**response:** 1055 - 1056 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 1057 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 83px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 110px; background-color: rgb(79, 129, 189); color: white;" %)Valid Bytes|=(% style="width: 94px; background-color: rgb(79, 129, 189); color: white;" %)Register contents|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 77px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 1058 -|(% style="width:99px" %)0X01|(% style="width:83px" %)0X03|(% style="width:110px" %)0X02|(% style="width:94px" %)0X03 0X16|(% style="width:72px" %)((( 1059 -0X39 1060 -)))|(% style="width:77px" %)0X7A 1061 - 1062 -Calculation of residual chlorine concentration: 316H (hexadecimal) = 790 => residual chlorine = 7.90 1063 - 1064 - 1065 -Example 2: Set the deviation value for the current residual chlorine value of the device with address 01 to correct the value and send the frame: (If the current residual gas value output by the device is 7.90, the value needs to be corrected to 8.00, the difference is 8.00-7.90-0.100.1*100=10=>41200000 (floating point number), write 41200000 to the contents of the two registers) 1066 - 1067 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 1068 -|=(% style="width: 80.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Register address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Register number|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Byte number|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register content|=(% style="width: 54.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 58.75px;background-color:#4F81BD;color:white" %)CRC16 high 1069 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X10|(% style="width:135px" %)0X01 0X12|(% style="width:126px" %)0X00 0X02|(% style="width:85px" %)0X04|(% style="width:1px" %)0X4120 0X0000|(% style="width:1px" %)0X08|(% style="width:1px" %)0X1A 1070 - 1071 -**response:** 1072 - 1073 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:534.333px" %) 1074 -|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 83px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 110px; background-color: rgb(79, 129, 189); color: white;" %)Register address|=(% style="width: 94px; background-color: rgb(79, 129, 189); color: white;" %)Register number|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 77px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 1075 -|(% style="width:99px" %)0X01|(% style="width:83px" %)0X10|(% style="width:110px" %)0X01 0X12|(% style="width:94px" %)0X00 0X02|(% style="width:72px" %)((( 1076 -0XE5 1077 -)))|(% style="width:77px" %)0X0D 1078 - 1079 - 1080 - 1081 -= 7. Water Quality Sensor Datasheet = 1082 - 1083 -* **[[Water Quality Sensor Transmitter Datasheet>>https://www.dropbox.com/scl/fi/9tofocmgapkbddshznumn/Datasheet_WQS-xB-WQS-xS_Water-Quality-Sensor-Transmitter.pdf?rlkey=wxua12ur9swk30rkqnh2boo9z&st=axga6epf&dl=0]]**
- 1752564223905-283.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.karry - Size
-
... ... @@ -1,1 +1,0 @@ 1 -144.4 KB - Content
- 1752573238705-910.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.karry - Size
-
... ... @@ -1,1 +1,0 @@ 1 -111.3 KB - Content
- 1752573643879-991.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.karry - Size
-
... ... @@ -1,1 +1,0 @@ 1 -163.2 KB - Content
- image-20240720172548-2.png
-
- Size
-
... ... @@ -1,1 +1,1 @@ 1 - 262.2KB1 +1.5 MB - Content
- image-20241129142314-1.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.karry - Size
-
... ... @@ -1,1 +1,0 @@ 1 -1.2 MB - Content