Changes for page Water Quality Sensors
Last modified by Karry Zhuang on 2025/02/18 15:43
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -11,17 +11,25 @@ 11 11 12 12 13 13 * **Power Input**: DC7~~30 14 + 14 14 * **Power Consumption** : < 0.5W 16 + 15 15 * **Interface**: RS485. 9600 Baud Rate 18 + 16 16 * **EC Range & Resolution:** 17 17 ** **ECK0.01** : 0.02 ~~ 20 μS/cm 18 18 ** **ECK0.1**: 0.2 ~~ 200.0 μS/cm 19 19 ** **ECK1.0** : 2 ~~ 2,000 μS/cm Resolution: 1 μS/cm 20 20 ** **ECK10.0** : 20 ~~ 20,000 μS/cm Resolution: 10 μS/cm 24 + 21 21 * **EC Accuracy**: ±1% FS 26 + 22 22 * **Temperature Measure Range**: -20 ~~ 60 °C 28 + 23 23 * **Temperature Accuracy: **±0.5 °C 30 + 24 24 * **IP Rated**: IP68 32 + 25 25 * **Max Pressure**: 0.6MPa 26 26 27 27 == 1.2 Application for Different Range == ... ... @@ -84,8 +84,11 @@ 84 84 85 85 86 86 * The equipment 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. 95 + 87 87 * If the electrode is not used for a long time, it can generally be stored in a dry place, but it must be placed (stored) in distilled water for several hours before use to activate the electrode. Electrodes that are frequently used can be placed (stored) in distilled water. 97 + 88 88 * Cleaning of conductivity electrodes: Organic stains on the electrode can be cleaned with warm water containing detergent, or with alcohol. Calcium and magnesium precipitates are best cleaned with 10% citric acid. The electrode plate or pole can only be cleaned by chemical methods or by shaking in water. Wiping the electrode plate will damage the coating (platinum black) on the electrode surface. 99 + 89 89 * The equipment should be calibrated before each use. It is recommended to calibrate it every 3 months for long-term use. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). 90 90 91 91 == 1.7 RS485 Commands == ... ... @@ -196,7 +196,8 @@ 196 196 197 197 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. 198 198 199 -**The calibration steps are as follows:** 210 +(% style="color:blue" %)**The calibration steps are as follows:** 211 + 200 200 (1) Place the electrode in distilled water and clean it. When mileage 1~~2000 uses 1413μS/cm standard solution, enter the following calibration command after the data is stable. 201 201 202 202 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) ... ... @@ -235,7 +235,6 @@ 235 235 |=(% 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 236 236 |(% 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 237 237 238 - 239 239 = 2. DR-PH01 Water PH Sensor = 240 240 241 241 == 2.1 Specification == ... ... @@ -242,16 +242,27 @@ 242 242 243 243 244 244 * **Power Input**: DC7~~30 256 + 245 245 * **Power Consumption** : < 0.5W 258 + 246 246 * **Interface**: RS485. 9600 Baud Rate 260 + 247 247 * **pH measurement range**: 0~~14.00pH; resolution: 0.01pH 248 -* **pH measurement error**:±0.15pH 249 -* **Repeatability error**:±0.02pH 250 -* **Temperature measurement range**:0~~60℃; resolution: 0.1℃ (set temperature for manual temperature compensation, default 25℃) 251 -* **Temperature measurement error**: ±0.5℃ 262 + 263 +* **pH measurement error**: ±0.15pH 264 + 265 +* **Repeatability error**: ±0.02pH 266 + 267 +* **Temperature measurement range**:0~~60°C; resolution: 0.1°C (set temperature for manual temperature compensation, default 25°C) 268 + 269 +* **Temperature measurement error**: ±0.5°C 270 + 252 252 * **Temperature Measure Range**: -20 ~~ 60 °C 272 + 253 253 * **Temperature Accuracy: **±0.5 °C 274 + 254 254 * **IP Rated**: IP68 276 + 255 255 * **Max Pressure**: 0.6MPa 256 256 257 257 == 2.2 Wiring == ... ... @@ -260,7 +260,7 @@ 260 260 [[image:image-20240720172548-2.png||height="348" width="571"]] 261 261 262 262 263 -== (% style="color:inherit; font-family:inherit" %)2.3(% style="color:inherit; font-family:inherit; font-size:26px" %)Mechinical Drawing(%%)==285 +== 2.3 Mechinical Drawing == 264 264 265 265 266 266 [[image:image-20240714174241-2.png]] ... ... @@ -298,55 +298,66 @@ 298 298 299 299 300 300 * The equipment itself generally does not require daily maintenance. When an obvious fault occurs, please do not open it and repair it yourself. Contact us as soon as possible! 323 + 301 301 * There is an appropriate amount of soaking solution in the protective bottle at the front end of the electrode. The electrode head is soaked in it to keep the glass bulb and the liquid junction activated. When measuring, loosen the bottle cap, pull out the electrode, and rinse it with pure water before use. 325 + 302 302 * Preparation of electrode soaking solution: Take a packet of PH4.00 buffer, dissolve it in 250 ml of pure water, and soak it in 3M potassium chloride solution. The preparation is as follows: Take 25 grams of analytical pure potassium chloride and dissolve it in 100 ml of pure water. 327 + 303 303 * The glass bulb at the front end of the electrode cannot come into contact with hard objects. Any damage and scratches will make the electrode ineffective. 329 + 304 304 * Before measurement, the bubbles in the electrode glass bulb should be shaken off, otherwise it will affect the measurement. When measuring, the electrode should be stirred in the measured solution and then placed still to accelerate the response. 331 + 305 305 * The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 333 + 306 306 * After long-term use, the pH electrode will become passivated, which is characterized by a decrease in sensitivity gradient, slow response, and inaccurate readings. At this time, the bulb at the bottom of the electrode can be soaked in 0.1M dilute hydrochloric acid for 24 hours (0.1M dilute hydrochloric acid preparation: 9 ml of hydrochloric acid is diluted to 1000 ml with distilled water), and then soaked in 3.3M potassium chloride solution for 24 hours. If the pH electrode is seriously passivated and soaking in 0.1M hydrochloric acid has no effect, the pH electrode bulb can be soaked in 4% HF (hydrofluoric acid) for 3-5 seconds, washed with pure water, and then soaked in 3.3M potassium chloride solution for 24 hours to restore its performance. 335 + 307 307 * Glass bulb contamination or liquid junction blockage can also cause electrode passivation. At this time, it should be cleaned with an appropriate solution according to the nature of the contaminant. 308 -* ((( 309 -The equipment should be calibrated before each use. For long-term use, it is recommended to calibrate once every 3 months. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). After aging, the electrodes should be replaced in time. 310 -))) 311 311 338 +* The equipment should be calibrated before each use. For long-term use, it is recommended to calibrate once every 3 months. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). After aging, the electrodes should be replaced in time. 339 + 312 312 == 2.6 RS485 Commands == 313 313 342 + 314 314 RS485 signaldefault address 0x10 315 315 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 316 316 346 + 317 317 === 2.6.1 Query address === 318 318 319 -send 320 320 321 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 322 -|=(% 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 350 +**send:** 351 + 352 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 353 +|=(% 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 323 323 |(% 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 324 324 325 -response 356 +**response:** 326 326 327 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 61.333px" %)328 -|=(% 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 high358 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 359 +|=(% 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 329 329 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 330 330 331 331 === 2.6.2 Change address === 332 332 364 + 333 333 For example: Change the address of the sensor with address 1 to 2, master → slave 334 334 335 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)336 -|=(% style="width: 5 0px;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 high367 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 368 +|=(% 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 337 337 |(% 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 338 338 339 339 If the sensor receives correctly, the data is returned along the original path. 340 -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. 341 341 373 +(% 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.** 342 342 375 + 343 343 === 2.6.3 Modify intercept === 344 344 345 345 346 -send 379 +**send:** 347 347 348 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 70.333px" %)349 -|=(% style="width: 7 1px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width:74px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 67px; 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: 69px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Register Length low|=(% style="width:57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high381 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 382 +|=(% style="width: 44.75px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 69.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 350 350 |(% style="width:71px" %)0X10|(% style="width:74px" %)0X06|(% style="width:67px" %)0X00|(% style="width:68px" %)0X10|(% style="width:69px" %)0X00|(% style="width:66px" %)0X64|(% style="width:57px" %)0X8A|(% style="width:57px" %)((( 351 351 0XA5 352 352 ))) ... ... @@ -353,10 +353,10 @@ 353 353 354 354 Change the intercept of the sensor at address 10 to 1 (default is 0). You need to pass the intercept 1*100 =100 into the command 0x006. 355 355 356 -response 389 +**response:** 357 357 358 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)359 -|=(% style="width: 50px;background-color:#4F81BD;color:white" %)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 high391 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 392 +|=(% 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 360 360 |(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 361 361 0X00 362 362 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( ... ... @@ -368,14 +368,14 @@ 368 368 369 369 Query the data (PH) of the sensor (address 10), host → slave 370 370 371 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)372 -|=(% 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 high404 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 405 +|=(% 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 373 373 |(% 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 374 374 375 375 If the sensor receives correctly, the following data will be returned, slave → host 376 376 377 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)378 -|=(% 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 high410 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 411 +|=(% 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 high 379 379 |(% style="width:99px" %)0X10|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0XC4|(% style="width:56px" %)0X9B 380 380 381 381 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned. ... ... @@ -389,11 +389,13 @@ 389 389 390 390 391 391 This device uses three-point calibration, and three known pH standard solutions need to be prepared. 392 -The calibration steps are as follows: 425 + 426 +(% style="color:blue" %)**The calibration steps are as follows:** 427 + 393 393 (1) Place the electrode in distilled water to clean it, and then place it in 9.18 standard buffer solution. After the data stabilizes, enter the following calibration command, and the 9.18 calibration is completed. 394 394 395 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)396 -|=(% style="width: 6 4px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high430 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 431 +|=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 397 397 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 398 398 0X00 399 399 )))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)((( ... ... @@ -402,8 +402,8 @@ 402 402 403 403 (2) Wash the electrode in distilled water and place it in 6.86 standard buffer. After the data stabilizes, enter the following calibration command. The 6.86 calibration is completed. 404 404 405 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)406 -|=(% style="width: 6 4px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high440 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 441 +|=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 407 407 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 408 408 0X00 409 409 )))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)((( ... ... @@ -412,8 +412,8 @@ 412 412 413 413 (3) Wash the electrode in distilled water and place it in 4.01 standard buffer. After the data stabilizes, enter the following calibration command, and the 4.00 calibration is completed. 414 414 415 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)416 -|=(% style="width: 6 4px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high450 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 451 +|=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 417 417 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 418 418 0X00 419 419 )))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)((( ... ... @@ -425,41 +425,55 @@ 425 425 426 426 = 3. DR-ORP1 Water ORP Sensor = 427 427 428 - 429 429 == 3.1 Specification == 430 430 465 + 431 431 * **Power Input**: DC7~~30 467 + 432 432 * **Measuring range**:** **-1999~~1999mV 433 -**Resolution**: 1mV 469 + 470 +* **Resolution**: 1mV 471 + 434 434 * **Interface**: RS485. 9600 Baud Rate 473 + 435 435 * **Measurement error**: ±3mV 475 + 436 436 * **Stability**: ≤2mv/24 hours 437 -* **Equipment working conditions**: Ambient temperature: 0-60℃ Relative humidity: <85%RH 477 + 478 +* **Equipment working conditions**: Ambient temperature: 0-60°C Relative humidity: <85%RH 479 + 438 438 * **IP Rated**: IP68 481 + 439 439 * **Max Pressure**: 0.6MPa 440 440 484 + 485 + 441 441 == 3.2 Wiring == 442 442 488 + 443 443 [[image:image-20240720172620-3.png||height="378" width="620"]] 444 444 445 445 446 446 == 3.3 Mechinical Drawing == 447 447 494 + 448 448 [[image:image-20240714174241-2.png]] 449 449 497 + 450 450 == 3.4 Installation Notice == 451 451 500 + 452 452 Do not power on while connect the cables. Double check the wiring before power on. 453 453 454 -Installation Photo as reference: 503 +**Installation Photo as reference:** 455 455 456 -** ~Submerged installation:**505 +(% style="color:blue" %)** Submerged installation:** 457 457 458 458 The lead wire of the equipment passes through the waterproof pipe, and the 3/4 thread on the top of the equipment is connected to the 3/4 thread of the waterproof pipe with raw tape. Ensure that the top of the equipment and the equipment wire are not flooded. 459 459 460 460 [[image:image-20240718191348-6.png]] 461 461 462 -** ~Pipeline installation:**511 +(% style="color:blue" %)** Pipeline installation:** 463 463 464 464 Connect the equipment to the pipeline through the 3/4 thread. 465 465 ... ... @@ -487,6 +487,7 @@ 487 487 488 488 (9) The equipment should be calibrated before each use. It is recommended to calibrate once every 3 months for long-term use. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). After aging, the electrodes should be replaced in time. 489 489 539 + 490 490 == 3.6 RS485 Commands == 491 491 492 492 ... ... @@ -493,38 +493,45 @@ 493 493 RS485 signaldefault address 0x13 494 494 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 495 495 546 + 496 496 === 3.6.1 Query address === 497 497 498 -send 499 499 500 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 501 -|=(% 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 550 +**send:** 551 + 552 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 553 +|=(% 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 502 502 |(% 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 503 503 504 -response 505 505 506 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 507 -|=(% 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 557 +**response:** 558 + 559 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 560 +|=(% 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 508 508 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 509 509 563 + 510 510 === 3.6.2 Change address === 511 511 566 + 512 512 For example: Change the address of the sensor with address 1 to 2, master → slave 513 513 514 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)515 -|=(% style="width: 5 0px;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 high569 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 570 +|=(% 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 516 516 |(% 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 517 517 518 518 If the sensor receives correctly, the data is returned along the original path. 519 -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. 520 520 575 +(% 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.** 521 521 577 + 522 522 === 3.6.3 Modify intercept === 523 523 524 -send 525 525 526 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 527 -|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 67px; 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: 69px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Register Length low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high 581 +**send:** 582 + 583 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 584 +|=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;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:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high 528 528 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( 529 529 0X96 530 530 ))) ... ... @@ -531,10 +531,10 @@ 531 531 532 532 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. 533 533 534 -response 591 +**response:** 535 535 536 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)537 -|=(% style="width: 50px;background-color:#4F81BD;color:white" %)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 high593 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 594 +|=(% 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 538 538 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 539 539 0X00 540 540 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( ... ... @@ -541,19 +541,20 @@ 541 541 0X96 542 542 ))) 543 543 601 + 544 544 === 3.6.4 Query data === 545 545 546 546 547 547 Query the data (ORP) of the sensor (address 13), host → slave 548 548 549 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)550 -|=(% 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 high607 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 608 +|=(% 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 551 551 |(% style="width:99px" %)0X13|(% 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" %)0X78 552 552 553 553 If the sensor receives correctly, the following data will be returned, slave → host 554 554 555 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)556 -|=(% 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 high613 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 614 +|=(% 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 high 557 557 |(% style="width:99px" %)0X13|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X80|(% style="width:56px" %)0X9B 558 558 559 559 The query data command is 13 03 00 00 00 01 87 78 ... ... @@ -565,12 +565,13 @@ 565 565 566 566 === 3.6.5 Calibration Method === 567 567 626 + 568 568 This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows: 569 569 (1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes, 570 570 enter the following calibration command, and the 86mV point calibration is completed; 571 571 572 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)573 -|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width:72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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:72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width:70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width:55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high631 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 632 +|=(% style="width: 42px; background-color: rgb(79, 129, 189); 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;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity 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 574 574 |(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 575 575 0X00 576 576 )))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)((( ... ... @@ -579,9 +579,9 @@ 579 579 580 580 Wash the electrode in distilled water and place it in 256mV standard buffer. After the data is stable, enter the following calibration command to complete the 256mV point calibration. 581 581 582 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)583 -|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width:72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; 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:72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width:70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width:55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width:55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high584 -|(% style="width:6 4px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)(((641 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 642 +|=(% style="width: 42px; background-color: rgb(79, 129, 189); 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;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity 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 643 +|(% style="width:68px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 585 585 0X00 586 586 )))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)((( 587 587 0XC3 ... ... @@ -589,27 +589,35 @@ 589 589 590 590 = 4. DR-DO1 Dissolved Oxygen Sensor = 591 591 651 +== 4.1 Specification == 592 592 593 593 594 - ==4.1 Specification==654 +* **Measuring range**: 0-20mg/L, 0-50°C 595 595 656 +* **Accuracy**: 3%, ±0.5°C 596 596 597 -* **Measuring range**: 0-20mg/L, 0-50℃ 598 -* **Accuracy**: 3%, ±0.5℃ 599 -* **Resolution**: 0.01 mg/L, 0.01℃ 658 +* **Resolution**: 0.01 mg/L, 0.01°C 659 + 600 600 * **Maximum operating pressure**: 6 bar 661 + 601 601 * **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 663 + 602 602 * **Power supply voltage**: 5-24V DC 603 -* **Working environment**: temperature 0-60℃; humidity <95%RH 665 + 666 +* **Working environment**: temperature 0-60°C; humidity <95%RH 667 + 604 604 * **Power consumption**: ≤0.5W 605 605 670 + 606 606 == 4.2 wiring == 607 607 673 + 608 608 [[image:image-20240720172632-4.png||height="390" width="640"]] 609 609 610 610 611 -== (% id="cke_bm_224234S" style="display:none" %) (%%)4.3 Impedance requirements for current signals ==677 +== 4.3 Impedance requirements for current signals == 612 612 679 + 613 613 [[image:image-20240718195414-8.png||height="100" width="575"]] 614 614 615 615 ... ... @@ -621,60 +621,71 @@ 621 621 622 622 == 4.5 Instructions for use and maintenance == 623 623 691 + 624 624 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 693 + 625 625 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 626 626 696 + 627 627 == 4.6 RS485 Commands == 628 628 699 + 629 629 RS485 signaldefault address 0x14 630 630 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 631 631 703 + 632 632 === 4.6.1 Query address === 633 633 634 -send 635 635 636 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 707 +**send:** 708 + 709 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 637 637 |=(% 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;" %)Register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)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 638 638 |(% 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 639 639 713 + 640 640 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. 641 641 642 642 643 -response 717 +**response:** 644 644 645 645 Register 0 data high and register 0 data low indicate the actual address of the sensor: 1 646 646 Register 1 data high and register 1 data low indicate the sensor version 647 647 648 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)722 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 649 649 |=(% 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 650 650 |(% 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 651 651 726 + 652 652 === 4.6.2 Change address === 653 653 729 + 654 654 For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave 655 655 656 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 907.333px" %)732 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 657 657 |=(% 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 658 658 |(% 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 659 659 660 -response 736 +**response:** 661 661 662 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)738 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 663 663 |=(% 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 664 664 |(% 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 665 665 742 + 666 666 === 4.6.3 Query data === 667 667 668 668 669 669 Query the data (dissolved oxygen) of the sensor (address 14), host → slave 670 670 671 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)748 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 672 672 |=(% 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 673 673 |(% 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 674 674 752 + 675 675 If the sensor receives correctly, the following data will be returned, slave → host 676 676 677 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)755 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 678 678 |=(% 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 679 679 |(% 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 680 680 ... ... @@ -685,56 +685,71 @@ 685 685 686 686 Query the data (temperature) of the sensor (address 14), host → slave 687 687 688 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)766 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 689 689 |=(% 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 690 690 |(% 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 691 691 770 + 692 692 If the sensor receives correctly, the following data will be returned, slave → host 693 693 694 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)773 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 695 695 |=(% 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 696 696 |(% 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 697 697 777 + 698 698 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. 699 699 700 -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 ℃780 +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 701 701 702 702 703 703 = 5. DR-TS1 Water Turbidity Sensor = 704 704 785 +== 5.1 Specification == 705 705 706 706 707 - ==(% id="cke_bm_81470S"style="display:none"%) (%%)5.1Specification ==788 +* **Measuring range**: 0.1~1000.0NTU 708 708 709 -* **Measuring range**: 0.1~1000.0NTU 710 710 * **Accuracy**: ±5% 791 + 711 711 * **Resolution**: 0.1NTU 793 + 712 712 * **Stability**: ≤3mV/24 hours 713 -* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 714 -* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 715 -* **Working environment**: temperature 0~60℃; humidity ≤95%RH 716 -* **Power consumption**: ≤0.5W 717 717 796 +* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 797 + 798 +* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 799 + 800 +* **Working environment**: temperature 0~60°C; humidity ≤ 95%RH 801 + 802 +* **Power consumption**: ≤ 0.5W 803 + 804 + 718 718 == 5.2 wiring == 719 719 807 + 720 720 [[image:image-20240720172640-5.png||height="387" width="635"]] 721 721 722 722 723 723 == 5.3 Impedance requirements for current signals == 724 724 813 + 725 725 [[image:image-20240718195414-8.png||height="100" width="575"]] 726 726 727 727 728 728 == 5.4 Mechinical Drawing == 729 729 819 + 730 730 [[image:image-20240718195058-7.png||height="305" width="593"]] 731 731 732 732 733 733 == 5.5 Instructions for use and maintenance == 734 734 825 + 735 735 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 827 + 736 736 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 737 737 830 + 738 738 == 5.6 RS485 Commands == 739 739 740 740 ... ... @@ -741,11 +741,13 @@ 741 741 RS485 signaldefault address 0x15 742 742 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 743 743 837 + 744 744 === 5.6.1 Query address === 745 745 746 -send 747 747 748 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 841 +**send:** 842 + 843 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 749 749 |=(% 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 750 750 |(% 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 751 751 ... ... @@ -752,38 +752,43 @@ 752 752 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. 753 753 754 754 755 -response 850 +**response:** 756 756 757 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 61.333px" %)852 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 758 758 |=(% 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 759 759 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 760 760 856 + 761 761 === 5.6.2 Change address === 762 762 763 763 For example: Change the address of the sensor with address 1 to 2, master → slave 764 764 765 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)861 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 766 766 |=(% 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 767 767 |(% 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 768 768 865 + 769 769 If the sensor receives correctly, the data is returned along the original path. 770 -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. 771 771 868 +(% 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.** 869 + 772 772 === 5.6.3 Query data === 773 773 774 774 775 775 Query the data (turbidity) of the sensor (address 15), host → slave 776 776 777 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)875 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 778 778 |=(% 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 779 779 |(% 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 780 780 879 + 781 781 If the sensor receives correctly, the following data will be returned, slave → host 782 782 783 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)882 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 784 784 |=(% 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 785 785 |(% 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 786 786 886 + 787 787 The query data command is 15 03 00 00 00 01 87 1E 788 788 789 789 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C