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,20 +11,27 @@ 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 - 28 28 == 1.2 Application for Different Range == 29 29 30 30 ... ... @@ -85,11 +85,13 @@ 85 85 86 86 87 87 * 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 + 88 88 * 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 + 89 89 * 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 + 90 90 * 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.). 91 91 92 - 93 93 == 1.7 RS485 Commands == 94 94 95 95 ... ... @@ -100,7 +100,7 @@ 100 100 === 1.7.1 Query address === 101 101 102 102 103 -**send** 112 +**send:** 104 104 105 105 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 106 106 |=(% style="width: 74.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:#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:#4F81BD;color:white" %)Quantity low|=(% style="width: 59.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 59.75px;background-color:#4F81BD;color:white" %)CRC16 high ... ... @@ -109,13 +109,12 @@ 109 109 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. 110 110 111 111 112 -**response** 121 +**response:** 113 113 114 114 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 115 115 |=(% 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 116 116 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 117 117 118 - 119 119 === 1.7.2 Change address === 120 120 121 121 ... ... @@ -133,7 +133,7 @@ 133 133 === 1.7.3 Modify intercept === 134 134 135 135 136 -send 144 +**send:** 137 137 138 138 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 139 139 |=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 high ... ... @@ -143,7 +143,7 @@ 143 143 144 144 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. 145 145 146 -response 154 +**response:** 147 147 148 148 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 149 149 |=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 high ... ... @@ -172,7 +172,7 @@ 172 172 173 173 The query data command is 11 03 00 00 00 02 C6 9B 174 174 175 -For example, the returned data is 11 03 04 (% style="color:red" %)**02 AE**(%%) 01 64 8B D0. 02 AE is converted to decimal 686, K=10, EC: 6860uS/cm,temperature: 35.6℃ Convert the returned data to decimal and divide by 10. 183 +**For example**, the returned data is 11 03 04 (% style="color:red" %)**02 AE**(%%) 01 64 8B D0. 02 AE is converted to decimal 686, K=10, EC: 6860uS/cm,temperature: 35.6℃ Convert the returned data to decimal and divide by 10. 176 176 177 177 178 178 Query the data (EC,temperature) of the sensor (address 11), host → slave ... ... @@ -191,7 +191,7 @@ 191 191 192 192 The query data command is 12 03 00 00 00 02 C6 A8 193 193 194 -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. 202 +**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. 195 195 196 196 197 197 === 1.7.5 Calibration Method === ... ... @@ -199,7 +199,8 @@ 199 199 200 200 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. 201 201 202 -The calibration steps are as follows: 210 +(% style="color:blue" %)**The calibration steps are as follows:** 211 + 203 203 (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. 204 204 205 205 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) ... ... @@ -213,7 +213,7 @@ 213 213 214 214 1413*10 gives 0X00003732 215 215 216 -response 225 +**response:** 217 217 218 218 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 219 219 |=(% 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 ... ... @@ -232,14 +232,12 @@ 232 232 233 233 12880*10 gives 0X01F720 234 234 235 -response 244 +**response:** 236 236 237 237 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 238 238 |=(% 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 239 239 |(% 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 240 240 241 - 242 - 243 243 = 2. DR-PH01 Water PH Sensor = 244 244 245 245 == 2.1 Specification == ... ... @@ -246,51 +246,65 @@ 246 246 247 247 248 248 * **Power Input**: DC7~~30 256 + 249 249 * **Power Consumption** : < 0.5W 258 + 250 250 * **Interface**: RS485. 9600 Baud Rate 260 + 251 251 * **pH measurement range**: 0~~14.00pH; resolution: 0.01pH 252 -* **pH measurement error**:±0.15pH 253 -* **Repeatability error**:±0.02pH 254 -* **Temperature measurement range**:0~~60℃; resolution: 0.1℃ (set temperature for manual temperature compensation, default 25℃) 255 -* **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 + 256 256 * **Temperature Measure Range**: -20 ~~ 60 °C 272 + 257 257 * **Temperature Accuracy: **±0.5 °C 274 + 258 258 * **IP Rated**: IP68 276 + 259 259 * **Max Pressure**: 0.6MPa 260 260 261 261 == 2.2 Wiring == 262 262 281 + 263 263 [[image:image-20240720172548-2.png||height="348" width="571"]] 264 264 265 265 266 -== (% style="color:inherit; font-family:inherit" %)2.3(% style="color:inherit; font-family:inherit; font-size:26px" %)Mechinical Drawing(%%)==285 +== 2.3 Mechinical Drawing == 267 267 287 + 268 268 [[image:image-20240714174241-2.png]] 269 269 270 270 271 271 == 2.4 Installation Notice == 272 272 293 + 273 273 Do not power on while connect the cables. Double check the wiring before power on. 274 274 275 275 Installation Photo as reference: 276 276 277 -** ~Submerged installation:**298 +(% style="color:blue" %)**Submerged installation:** 278 278 279 279 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. 280 280 281 281 [[image:image-20240718191348-6.png]] 282 282 283 -** ~Pipeline installation:**304 +(% style="color:blue" %)**Pipeline installation:** 284 284 285 285 Connect the equipment to the pipeline through the 3/4 thread. 286 286 287 287 [[image:image-20240718191336-5.png||height="239" width="326"]] 288 288 289 -**Sampling:** 310 +(% style="color:blue" %)**Sampling:** 290 290 291 291 Take representative water samples according to sampling requirements. If it is inconvenient to take samples, you can also put the electrode into the solution to be tested and read the output data. After a period of time, take out the electrode and clean it. 292 292 293 -**Measure the pH of the water sample:** 314 +(% style="color:blue" %)**Measure the pH of the water sample:** 294 294 295 295 First rinse the electrode with distilled water, then rinse it with the water sample, then immerse the electrode in the sample, carefully shake the test cup or stir it to accelerate the electrode balance, let it stand, and record the pH value when the reading is stable. 296 296 ... ... @@ -299,55 +299,66 @@ 299 299 300 300 301 301 * 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 + 302 302 * 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 + 303 303 * 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 + 304 304 * 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 + 305 305 * 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 + 306 306 * The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 333 + 307 307 * 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 + 308 308 * 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. 309 -* ((( 310 -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. 311 -))) 312 312 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 + 313 313 == 2.6 RS485 Commands == 314 314 342 + 315 315 RS485 signaldefault address 0x10 316 316 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 317 317 346 + 318 318 === 2.6.1 Query address === 319 319 320 -send 321 321 322 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 323 -|=(% 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 324 324 |(% 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 325 325 326 -response 356 +**response:** 327 327 328 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 61.333px" %)329 -|=(% 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 330 330 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 331 331 332 332 === 2.6.2 Change address === 333 333 364 + 334 334 For example: Change the address of the sensor with address 1 to 2, master → slave 335 335 336 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)337 -|=(% 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 338 338 |(% 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 339 339 340 340 If the sensor receives correctly, the data is returned along the original path. 341 -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 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.** 343 343 375 + 344 344 === 2.6.3 Modify intercept === 345 345 346 346 347 -send 379 +**send:** 348 348 349 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 70.333px" %)350 -|=(% 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 351 351 |(% 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" %)((( 352 352 0XA5 353 353 ))) ... ... @@ -354,10 +354,10 @@ 354 354 355 355 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. 356 356 357 -response 389 +**response:** 358 358 359 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)360 -|=(% 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 361 361 |(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 362 362 0X00 363 363 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( ... ... @@ -369,14 +369,14 @@ 369 369 370 370 Query the data (PH) of the sensor (address 10), host → slave 371 371 372 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)373 -|=(% 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 374 374 |(% 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 375 375 376 376 If the sensor receives correctly, the following data will be returned, slave → host 377 377 378 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)379 -|=(% 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 380 380 |(% 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 381 381 382 382 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned. ... ... @@ -390,11 +390,13 @@ 390 390 391 391 392 392 This device uses three-point calibration, and three known pH standard solutions need to be prepared. 393 -The calibration steps are as follows: 425 + 426 +(% style="color:blue" %)**The calibration steps are as follows:** 427 + 394 394 (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. 395 395 396 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)397 -|=(% 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 398 398 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 399 399 0X00 400 400 )))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)((( ... ... @@ -403,8 +403,8 @@ 403 403 404 404 (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. 405 405 406 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)407 -|=(% 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 408 408 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 409 409 0X00 410 410 )))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)((( ... ... @@ -413,8 +413,8 @@ 413 413 414 414 (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. 415 415 416 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)417 -|=(% 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 418 418 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 419 419 0X00 420 420 )))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)((( ... ... @@ -426,41 +426,55 @@ 426 426 427 427 = 3. DR-ORP1 Water ORP Sensor = 428 428 429 - 430 430 == 3.1 Specification == 431 431 465 + 432 432 * **Power Input**: DC7~~30 467 + 433 433 * **Measuring range**:** **-1999~~1999mV 434 -**Resolution**: 1mV 469 + 470 +* **Resolution**: 1mV 471 + 435 435 * **Interface**: RS485. 9600 Baud Rate 473 + 436 436 * **Measurement error**: ±3mV 475 + 437 437 * **Stability**: ≤2mv/24 hours 438 -* **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 + 439 439 * **IP Rated**: IP68 481 + 440 440 * **Max Pressure**: 0.6MPa 441 441 484 + 485 + 442 442 == 3.2 Wiring == 443 443 488 + 444 444 [[image:image-20240720172620-3.png||height="378" width="620"]] 445 445 446 446 447 447 == 3.3 Mechinical Drawing == 448 448 494 + 449 449 [[image:image-20240714174241-2.png]] 450 450 497 + 451 451 == 3.4 Installation Notice == 452 452 500 + 453 453 Do not power on while connect the cables. Double check the wiring before power on. 454 454 455 -Installation Photo as reference: 503 +**Installation Photo as reference:** 456 456 457 -** ~Submerged installation:**505 +(% style="color:blue" %)** Submerged installation:** 458 458 459 459 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. 460 460 461 461 [[image:image-20240718191348-6.png]] 462 462 463 -** ~Pipeline installation:**511 +(% style="color:blue" %)** Pipeline installation:** 464 464 465 465 Connect the equipment to the pipeline through the 3/4 thread. 466 466 ... ... @@ -488,6 +488,7 @@ 488 488 489 489 (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. 490 490 539 + 491 491 == 3.6 RS485 Commands == 492 492 493 493 ... ... @@ -494,38 +494,45 @@ 494 494 RS485 signaldefault address 0x13 495 495 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 496 496 546 + 497 497 === 3.6.1 Query address === 498 498 499 -send 500 500 501 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 502 -|=(% 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 503 503 |(% 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 504 504 505 -response 506 506 507 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 508 -|=(% 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 509 509 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 510 510 563 + 511 511 === 3.6.2 Change address === 512 512 566 + 513 513 For example: Change the address of the sensor with address 1 to 2, master → slave 514 514 515 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)516 -|=(% 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 517 517 |(% 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 518 518 519 519 If the sensor receives correctly, the data is returned along the original path. 520 -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 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.** 522 522 577 + 523 523 === 3.6.3 Modify intercept === 524 524 525 -send 526 526 527 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 528 -|=(% 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 529 529 |(% 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" %)((( 530 530 0X96 531 531 ))) ... ... @@ -532,10 +532,10 @@ 532 532 533 533 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. 534 534 535 -response 591 +**response:** 536 536 537 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)538 -|=(% 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 539 539 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 540 540 0X00 541 541 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( ... ... @@ -542,19 +542,20 @@ 542 542 0X96 543 543 ))) 544 544 601 + 545 545 === 3.6.4 Query data === 546 546 547 547 548 548 Query the data (ORP) of the sensor (address 13), host → slave 549 549 550 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)551 -|=(% 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 552 552 |(% 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 553 553 554 554 If the sensor receives correctly, the following data will be returned, slave → host 555 555 556 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)557 -|=(% 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 558 558 |(% 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 559 559 560 560 The query data command is 13 03 00 00 00 01 87 78 ... ... @@ -566,12 +566,13 @@ 566 566 567 567 === 3.6.5 Calibration Method === 568 568 626 + 569 569 This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows: 570 570 (1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes, 571 571 enter the following calibration command, and the 86mV point calibration is completed; 572 572 573 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)574 -|=(% 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 575 575 |(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 576 576 0X00 577 577 )))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)((( ... ... @@ -580,9 +580,9 @@ 580 580 581 581 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. 582 582 583 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 75.333px" %)584 -|=(% 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 high585 -|(% 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" %)((( 586 586 0X00 587 587 )))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)((( 588 588 0XC3 ... ... @@ -590,27 +590,35 @@ 590 590 591 591 = 4. DR-DO1 Dissolved Oxygen Sensor = 592 592 651 +== 4.1 Specification == 593 593 594 594 595 - ==4.1 Specification==654 +* **Measuring range**: 0-20mg/L, 0-50°C 596 596 656 +* **Accuracy**: 3%, ±0.5°C 597 597 598 -* **Measuring range**: 0-20mg/L, 0-50℃ 599 -* **Accuracy**: 3%, ±0.5℃ 600 -* **Resolution**: 0.01 mg/L, 0.01℃ 658 +* **Resolution**: 0.01 mg/L, 0.01°C 659 + 601 601 * **Maximum operating pressure**: 6 bar 661 + 602 602 * **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 663 + 603 603 * **Power supply voltage**: 5-24V DC 604 -* **Working environment**: temperature 0-60℃; humidity <95%RH 665 + 666 +* **Working environment**: temperature 0-60°C; humidity <95%RH 667 + 605 605 * **Power consumption**: ≤0.5W 606 606 670 + 607 607 == 4.2 wiring == 608 608 673 + 609 609 [[image:image-20240720172632-4.png||height="390" width="640"]] 610 610 611 611 612 -== (% id="cke_bm_224234S" style="display:none" %) (%%)4.3 Impedance requirements for current signals ==677 +== 4.3 Impedance requirements for current signals == 613 613 679 + 614 614 [[image:image-20240718195414-8.png||height="100" width="575"]] 615 615 616 616 ... ... @@ -622,60 +622,71 @@ 622 622 623 623 == 4.5 Instructions for use and maintenance == 624 624 691 + 625 625 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 693 + 626 626 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 627 627 696 + 628 628 == 4.6 RS485 Commands == 629 629 699 + 630 630 RS485 signaldefault address 0x14 631 631 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 632 632 703 + 633 633 === 4.6.1 Query address === 634 634 635 -send 636 636 637 -(% 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" %) 638 638 |=(% 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 639 639 |(% 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 640 640 713 + 641 641 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. 642 642 643 643 644 -response 717 +**response:** 645 645 646 646 Register 0 data high and register 0 data low indicate the actual address of the sensor: 1 647 647 Register 1 data high and register 1 data low indicate the sensor version 648 648 649 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)722 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 650 650 |=(% 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 651 651 |(% 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 652 652 726 + 653 653 === 4.6.2 Change address === 654 654 729 + 655 655 For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave 656 656 657 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 907.333px" %)732 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 658 658 |=(% 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 659 659 |(% 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 660 660 661 -response 736 +**response:** 662 662 663 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)738 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 664 664 |=(% 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 665 665 |(% 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 666 666 742 + 667 667 === 4.6.3 Query data === 668 668 669 669 670 670 Query the data (dissolved oxygen) of the sensor (address 14), host → slave 671 671 672 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)748 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 673 673 |=(% 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 674 674 |(% 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 675 675 752 + 676 676 If the sensor receives correctly, the following data will be returned, slave → host 677 677 678 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)755 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 679 679 |=(% 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 680 680 |(% 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 681 681 ... ... @@ -686,56 +686,71 @@ 686 686 687 687 Query the data (temperature) of the sensor (address 14), host → slave 688 688 689 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)766 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 690 690 |=(% 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 691 691 |(% 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 692 692 770 + 693 693 If the sensor receives correctly, the following data will be returned, slave → host 694 694 695 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)773 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 696 696 |=(% 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 697 697 |(% 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 698 698 777 + 699 699 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. 700 700 701 -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 702 702 703 703 704 704 = 5. DR-TS1 Water Turbidity Sensor = 705 705 785 +== 5.1 Specification == 706 706 707 707 708 - ==(% id="cke_bm_81470S"style="display:none"%) (%%)5.1Specification ==788 +* **Measuring range**: 0.1~1000.0NTU 709 709 710 -* **Measuring range**: 0.1~1000.0NTU 711 711 * **Accuracy**: ±5% 791 + 712 712 * **Resolution**: 0.1NTU 793 + 713 713 * **Stability**: ≤3mV/24 hours 714 -* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 715 -* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 716 -* **Working environment**: temperature 0~60℃; humidity ≤95%RH 717 -* **Power consumption**: ≤0.5W 718 718 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 + 719 719 == 5.2 wiring == 720 720 807 + 721 721 [[image:image-20240720172640-5.png||height="387" width="635"]] 722 722 723 723 724 724 == 5.3 Impedance requirements for current signals == 725 725 813 + 726 726 [[image:image-20240718195414-8.png||height="100" width="575"]] 727 727 728 728 729 729 == 5.4 Mechinical Drawing == 730 730 819 + 731 731 [[image:image-20240718195058-7.png||height="305" width="593"]] 732 732 733 733 734 734 == 5.5 Instructions for use and maintenance == 735 735 825 + 736 736 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 827 + 737 737 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 738 738 830 + 739 739 == 5.6 RS485 Commands == 740 740 741 741 ... ... @@ -742,11 +742,13 @@ 742 742 RS485 signaldefault address 0x15 743 743 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 744 744 837 + 745 745 === 5.6.1 Query address === 746 746 747 -send 748 748 749 -(% 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" %) 750 750 |=(% 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 751 751 |(% 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 752 752 ... ... @@ -753,38 +753,43 @@ 753 753 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. 754 754 755 755 756 -response 850 +**response:** 757 757 758 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 61.333px" %)852 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 759 759 |=(% 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 760 760 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 761 761 856 + 762 762 === 5.6.2 Change address === 763 763 764 764 For example: Change the address of the sensor with address 1 to 2, master → slave 765 765 766 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)861 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 767 767 |=(% 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 768 768 |(% 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 769 769 865 + 770 770 If the sensor receives correctly, the data is returned along the original path. 771 -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. 772 772 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 + 773 773 === 5.6.3 Query data === 774 774 775 775 776 776 Query the data (turbidity) of the sensor (address 15), host → slave 777 777 778 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)875 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 779 779 |=(% 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 780 780 |(% 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 781 781 879 + 782 782 If the sensor receives correctly, the following data will be returned, slave → host 783 783 784 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 99.333px" %)882 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 785 785 |=(% 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 786 786 |(% 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 787 787 886 + 788 788 The query data command is 15 03 00 00 00 01 87 1E 789 789 790 790 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C