Changes for page Water Quality Sensors
Last modified by Karry Zhuang on 2025/02/18 15:43
From version 17.1
edited by Karry Zhuang
on 2024/07/18 18:58
on 2024/07/18 18:58
Change comment:
There is no comment for this version
To version 37.1
edited by Karry Zhuang
on 2024/07/19 17:10
on 2024/07/19 17:10
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 9 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -37,45 +37,48 @@ 37 37 == 1.5 Installation == 38 38 39 39 40 - Do not powern whileconnectthe cables. Double checkthe wiringbefore power on.40 +**Electrode installation form** 41 41 42 - InstallationPhoto as reference:42 +A:Side wall installation 43 43 44 - **~Submergedinstallation:**44 +B:Top flange installation 45 45 46 - The lead wire of the equipment passes through the waterproof pipe, and the3/4 thread onthe top of the equipment is connectedto the 3/4 thread of the waterproof pipe with raw tape. Ensurethat the top of the equipmentandthe equipment wire are not flooded.46 +C:Pipeline bend installation 47 47 48 - [[image:image-20240715181933-4.png||height="281"width="258"]]48 +D:Pipeline bend installation 49 49 50 - **~ Pipelineinstallation:**50 +E:Flow-through installation 51 51 52 - Connect the equipment to thepipelinethrough the 3/4 thread.52 +F:Submerged installation 53 53 54 -[[image:image-2024071 5182122-6.png||height="291" width="408"]]54 +[[image:image-20240718190121-1.png||height="350" width="520"]] 55 55 56 -**Sam pling:**56 +**Several common installation methods of electrodes** 57 57 58 - Takerepresentativewatersamplesaccordingto samplingrequirements.Ifitis inconvenienttake samples, youcan also put the electrodeintothesolution to betested andreadtheoutput data. After a periodof time,take out the electrodeandcleanit.58 +When installing the sensor on site, you should strictly follow the correct installation method shown in the following picture. Incorrect installation method will cause data deviation. 59 59 60 - **Measurethe pHofthewatersample:**60 +A. Several common incorrect installation methods 61 61 62 - First rinse the electrode with distilled water, then rinse it with the water sample, thenimmerse theelectrodein the sample, carefully shakethetest cup or stir it to accelerate the electrode balance, letit stand, and record the pH value when the reading is stable.62 +[[image:image-20240718190204-2.png||height="262" width="487"]] 63 63 64 +Error cause: The electrode joint is too long, the extension part is too short, the sensor is easy to form a dead cavity, resulting in measurement error. 64 64 66 +[[image:image-20240718190221-3.png||height="292" width="500"]] 67 + 68 +Error cause: Measurement error or instability may occur due to water flow not being able to fill the pipe or air accumulation at high altitudes. 69 + 70 +B. Correct installation method 71 + 72 +[[image:image-20240718190249-4.png||height="287" width="515"]] 73 + 74 + 65 65 == 1.6 Maintain == 66 66 67 67 68 -* 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! 69 -* 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. 70 -* 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. 71 -* 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. 72 -* 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. 73 -* The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 74 -* 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. 75 -* 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. 76 -* ((( 77 -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. 78 -))) 78 +* 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. 79 +* 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. 80 +* 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. 81 +* 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.). 79 79 80 80 == 1.7 RS485 Commands == 81 81 ... ... @@ -88,9 +88,9 @@ 88 88 89 89 send 90 90 91 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)92 -|=(% 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 high93 -|(% 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" %)0XD494 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 95 +|=(% 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 96 +|(% 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 94 94 95 95 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. 96 96 ... ... @@ -99,15 +99,15 @@ 99 99 100 100 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 101 101 |=(% 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 102 -|(% style="width:99px" %)0X1|(% style="width:112px" %)0X3|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 105 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 103 103 104 104 === 1.7.2 Change address === 105 105 106 106 For example: Change the address of the sensor with address 1 to 2, master → slave 107 107 108 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)109 -|=(% 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 high110 -|(% style="width:9 9px" %)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" %)0X1A111 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 112 +|=(% style="width: 69px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 76px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 67px; 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: 73px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 73px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 113 +|(% style="width:69px" %)0X01|(% style="width:76px" %)0X06|(% style="width:67px" %)0X00|(% style="width:68px" %)0X50|(% style="width:73px" %)0X00|(% style="width:73px" %)0X02|(% style="width:57px" %)0X08|(% style="width:56px" %)0X1A 111 111 112 112 If the sensor receives correctly, the data is returned along the original path. 113 113 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. ... ... @@ -120,8 +120,8 @@ 120 120 121 121 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 122 122 |=(% 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 high 123 -|(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X23|(% style="width:85px" %)0X00|(% style="width:1px" %)0X01|(% style="width:1px" %)0XF A|(% style="width:1px" %)(((124 -0X 97126 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X23|(% style="width:85px" %)0X00|(% style="width:1px" %)0X01|(% style="width:1px" %)0XF8|(% style="width:1px" %)((( 127 +0X07 125 125 ))) 126 126 127 127 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. ... ... @@ -132,25 +132,50 @@ 132 132 |=(% 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 high 133 133 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 134 134 0X02 135 -)))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X 0A|(% style="width:1px" %)(((136 -0X E5138 +)))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X38|(% style="width:1px" %)((( 139 +0X8F 137 137 ))) 138 138 139 - 140 140 === 1.7.4 Query data === 141 141 144 + 145 + 146 +Query the data (EC,temperature) of the sensor (address 11), host → slave 147 + 148 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 149 +|=(% 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 150 +|(% style="width:99px" %)0X11|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XC6|(% style="width:56px" %)0X9B 151 + 152 +If the sensor receives correctly, the following data will be returned, slave → host 153 + 154 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 155 +|=(% 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: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 70px; 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 156 +|(% style="width:99px" %)0X11|(% style="width:72px" %)0X03|(% style="width:68px" %)0X04|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X01|(% style="width:56px" %)0X64|(% style="width:56px" %)0X8B|(% style="width:56px" %)0XD0 157 + 142 142 The address of the EC K10 sensor is 11 143 143 144 144 The query data command is 11 03 00 00 00 02 C6 9B 145 145 146 -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 162 +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. 147 147 148 148 165 +Query the data (EC,temperature) of the sensor (address 11), host → slave 166 + 167 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 168 +|=(% 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 169 +|(% style="width:99px" %)0X12|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XC6|(% style="width:56px" %)0XA8 170 + 171 +If the sensor receives correctly, the following data will be returned, slave → host 172 + 173 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 174 +|=(% 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: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 70px; 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 175 +|(% style="width:99px" %)0X12|(% style="width:72px" %)0X03|(% style="width:68px" %)0X04|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X01|(% style="width:56px" %)0X64|(% style="width:56px" %)0XB8|(% style="width:56px" %)0XD0 176 + 149 149 The address of the EC K1 sensor is 12 150 150 151 151 The query data command is 12 03 00 00 00 02 C6 A8 152 152 153 -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 181 +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. 154 154 155 155 156 156 === 1.7.5 Calibration Method === ... ... @@ -203,15 +203,143 @@ 203 203 |=(% 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 high 204 204 |(% 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 205 205 234 += 2. DR-PH01 Water PH Sensor = 206 206 207 207 208 -= 2. DR-PH01Water PHSensor=237 +== 2.1 Specification == 209 209 210 -== 2.7 RS485 Commands == 239 +* **Power Input**: DC7~~30 240 +* **Power Consumption** : < 0.5W 241 +* **Interface**: RS485. 9600 Baud Rate 242 +* **pH measurement range**: 0~~14.00pH; resolution: 0.01pH 243 +* **pH measurement error**:±0.15pH 244 +* **Repeatability error**:±0.02pH 245 +* **Temperature measurement range**:0~~60℃; resolution: 0.1℃ (set temperature for manual temperature compensation, default 25℃) 246 +* **Temperature measurement error**: ±0.5℃ 247 +* **Temperature Measure Range**: -20 ~~ 60 °C 248 +* **Temperature Accuracy: **±0.5 °C 249 +* **IP Rated**: IP68 250 +* **Max Pressure**: 0.6MPa 211 211 252 +== 2.2 Wiring == 212 212 213 -The address of the pH sensor is 10 214 214 255 +== (% style="color:inherit; font-family:inherit" %)2.3 (% style="color:inherit; font-family:inherit; font-size:26px" %)Mechinical Drawing(%%) == 256 + 257 +[[image:image-20240714174241-2.png]] 258 + 259 + 260 +== 2.4 Installation Notice == 261 + 262 +Do not power on while connect the cables. Double check the wiring before power on. 263 + 264 +Installation Photo as reference: 265 + 266 +**~ Submerged installation:** 267 + 268 +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. 269 + 270 +[[image:image-20240718191348-6.png]] 271 + 272 +**~ Pipeline installation:** 273 + 274 +Connect the equipment to the pipeline through the 3/4 thread. 275 + 276 +[[image:image-20240718191336-5.png||height="239" width="326"]] 277 + 278 +**Sampling:** 279 + 280 +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. 281 + 282 +**Measure the pH of the water sample:** 283 + 284 +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. 285 + 286 + 287 +=== 2.5 Maintenance === 288 + 289 + 290 +* 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! 291 +* 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. 292 +* 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. 293 +* 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. 294 +* 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. 295 +* The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 296 +* 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. 297 +* 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. 298 +* ((( 299 +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. 300 +))) 301 + 302 +== 2.6 RS485 Commands == 303 + 304 +RS485 signaldefault address 0x10 305 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 306 + 307 +=== 2.6.1 Query address === 308 + 309 +send 310 + 311 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 312 +|=(% 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 313 +|(% 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 314 + 315 +response 316 + 317 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 318 +|=(% 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 319 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 320 + 321 +=== 2.6.2 Change address === 322 + 323 +For example: Change the address of the sensor with address 1 to 2, master → slave 324 + 325 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 326 +|=(% 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 327 +|(% 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 328 + 329 +If the sensor receives correctly, the data is returned along the original path. 330 +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. 331 + 332 + 333 +=== 2.6.3 Modify intercept === 334 + 335 + 336 +send 337 + 338 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:570.333px" %) 339 +|=(% style="width: 71px; 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 high 340 +|(% 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" %)((( 341 +0XA5 342 +))) 343 + 344 +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. 345 + 346 +response 347 + 348 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 349 +|=(% 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 high 350 +|(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 351 +0X00 352 +)))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( 353 +0XA5 354 +))) 355 + 356 +=== 2.6.4 Query data === 357 + 358 + 359 +Query the data (PH) of the sensor (address 10), host → slave 360 + 361 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 362 +|=(% 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 363 +|(% 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 364 + 365 +If the sensor receives correctly, the following data will be returned, slave → host 366 + 367 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 368 +|=(% 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 369 +|(% 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 370 + 215 215 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned. 216 216 217 217 For example, the returned data is 10 03 02 (% style="color:red" %)**02 AE**(%%) C4 9B. ... ... @@ -219,13 +219,175 @@ 219 219 02 AE is the pH value, which is converted into decimal to get 686, and then two decimal places are added to get the actual value. 02 AE means the current pH value is 6.86. 220 220 221 221 378 +=== 2.6.5 Calibration Method === 379 + 380 + 381 +This device uses three-point calibration, and three known pH standard solutions need to be prepared. 382 +The calibration steps are as follows: 383 +(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. 384 + 385 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 386 +|=(% 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 high 387 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 388 +0X00 389 +)))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)((( 390 +0XF1 391 +))) 392 + 393 +(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. 394 + 395 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 396 +|=(% 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 high 397 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 398 +0X00 399 +)))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)((( 400 +0X31 401 +))) 402 + 403 +(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. 404 + 405 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 406 +|=(% 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 high 407 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 408 +0X00 409 +)))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)((( 410 +0X31 411 +))) 412 + 413 +After the above three steps are completed, the calibration is successful. The advantage of three-point calibration compared to two-point calibration is that the electrode is calibrated separately in the acid and alkali parts, thereby achieving accurate calibration of the full range and making the measurement data more accurate. 414 + 415 + 222 222 = 3. DR-ORP1 Water ORP Sensor = 223 223 224 -== 3.7 RS485 Commands == 225 225 419 +== 3.1 Specification == 226 226 227 -The address of the ORP sensor is 13 421 +* **Power Input**: DC7~~30 422 +* **Measuring range**:** **-1999~~1999mV 423 +**Resolution**: 1mV 424 +* **Interface**: RS485. 9600 Baud Rate 425 +* **Measurement error**: ±3mV 426 +* **Stability**: ≤2mv/24 hours 427 +* **Equipment working conditions**: Ambient temperature: 0-60℃ Relative humidity: <85%RH 428 +* **IP Rated**: IP68 429 +* **Max Pressure**: 0.6MPa 228 228 431 +== 3.2 Wiring == 432 + 433 + 434 +== 3.3 Mechinical Drawing == 435 + 436 +[[image:image-20240714174241-2.png]] 437 + 438 +== 3.4 Installation Notice == 439 + 440 +Do not power on while connect the cables. Double check the wiring before power on. 441 + 442 +Installation Photo as reference: 443 + 444 +**~ Submerged installation:** 445 + 446 +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. 447 + 448 +[[image:image-20240718191348-6.png]] 449 + 450 +**~ Pipeline installation:** 451 + 452 +Connect the equipment to the pipeline through the 3/4 thread. 453 + 454 +[[image:image-20240718191336-5.png||height="239" width="326"]] 455 + 456 + 457 +=== 3.5 Maintenance === 458 + 459 + 460 +(1) 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. 461 + 462 +(2) In general, ORP electrodes do not need to be calibrated and can be used directly. When there is doubt about the quality and test results of the ORP electrode, the electrode potential can be checked with an ORP standard solution to determine whether the ORP electrode meets the measurement requirements, and the electrode can be recalibrated or replaced with a new ORP electrode. The frequency of calibration or inspection of the measuring electrode depends on different application conditions (the degree of dirt in the application, the deposition of chemical substances, etc.). 463 + 464 +(3) There is an appropriate soaking solution in the protective bottle at the front end of the electrode, and the electrode head is soaked in it to ensure the activation of the platinum sheet and the liquid junction. When measuring, loosen the bottle cap, pull out the electrode, and rinse it with pure water before use. 465 + 466 +(4) Preparation of electrode soaking solution: Take 25 grams of analytical pure potassium chloride and dissolve it in 100 ml of pure water to prepare a 3.3M potassium chloride solution. 467 + 468 +(5) Before measuring, 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. 469 + 470 +(6) The electrode should be cleaned with deionized water before and after the measurement to ensure the measurement accuracy. 471 + 472 +(7) After long-term use, the ORP electrode will be passivated, which is manifested as a decrease in sensitivity gradient, slow response, and inaccurate readings. At this time, the platinum sheet 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 to restore its performance. 473 + 474 +(8) Electrode 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. If the platinum of the electrode is severely contaminated and an oxide film is formed, toothpaste can be applied to the platinum surface and then gently scrubbed to restore the platinum's luster. 475 + 476 +(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. 477 + 478 +== 3.6 RS485 Commands == 479 + 480 + 481 +RS485 signaldefault address 0x13 482 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 483 + 484 +=== 3.6.1 Query address === 485 + 486 +send 487 + 488 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 489 +|=(% 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 490 +|(% 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 491 + 492 +response 493 + 494 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 495 +|=(% 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 496 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 497 + 498 +=== 3.6.2 Change address === 499 + 500 +For example: Change the address of the sensor with address 1 to 2, master → slave 501 + 502 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 503 +|=(% 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 504 +|(% 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 505 + 506 +If the sensor receives correctly, the data is returned along the original path. 507 +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. 508 + 509 + 510 +=== 3.6.3 Modify intercept === 511 + 512 +send 513 + 514 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 515 +|=(% 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 516 +|(% 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" %)((( 517 +0X96 518 +))) 519 + 520 +Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. 521 + 522 +response 523 + 524 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 525 +|=(% 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 high 526 +|(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 527 +0X00 528 +)))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( 529 +0X96 530 +))) 531 + 532 +=== 3.6.4 Query data === 533 + 534 + 535 +Query the data (ORP) of the sensor (address 13), host → slave 536 + 537 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 538 +|=(% 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 539 +|(% 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 540 + 541 +If the sensor receives correctly, the following data will be returned, slave → host 542 + 543 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 544 +|=(% 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 545 +|(% 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 546 + 229 229 The query data command is 13 03 00 00 00 01 87 78 230 230 231 231 For example, the returned data is 13 03 02 (% style="color:red" %)**02 AE**(%%) 80 9B. ... ... @@ -233,31 +233,226 @@ 233 233 02 AE is the ORP value, converted to decimal, the actual value is 686, 02 AE means the current ORP value is 686mV 234 234 235 235 554 +=== 3.6.5 Calibration Method === 555 + 556 +This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows: 557 +(1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes, 558 +enter the following calibration command, and the 86mV point calibration is completed; 559 + 560 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 561 +|=(% 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 high 562 +|(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 563 +0X00 564 +)))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)((( 565 +0X03 566 +))) 567 + 568 +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. 569 + 570 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 571 +|=(% 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 high 572 +|(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 573 +0X00 574 +)))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)((( 575 +0XC3 576 +))) 577 + 236 236 = 4. DR-DO1 Dissolved Oxygen Sensor = 237 237 238 -== 4.7 RS485 Commands == 239 239 240 240 241 - Theaddressofhe dissolved oxygensensor is 14582 +== 4.1 Specification == 242 242 243 -The query data command is 14 03 00 14 00 01 C6 CB 244 244 585 +* **Measuring range**: 0-20mg/L, 0-50℃ 586 +* **Accuracy**: 3%, ±0.5℃ 587 +* **Resolution**: 0.01 mg/L, 0.01℃ 588 +* **Maximum operating pressure**: 6 bar 589 +* **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 590 +* **Power supply voltage**: 5-24V DC 591 +* **Working environment**: temperature 0-60℃; humidity <95%RH 592 +* **Power consumption**: ≤0.5W 593 + 594 +== 4.2 wiring == 595 + 596 + 597 + 598 +== (% id="cke_bm_224234S" style="display:none" %) (%%)4.3 Impedance requirements for current signals == 599 + 600 +[[image:image-20240718195414-8.png||height="100" width="575"]] 601 + 602 + 603 +== 4.4 Mechinical Drawing == 604 + 605 + 606 +[[image:image-20240719155308-1.png||height="226" width="527"]] 607 + 608 + 609 +=== 4.5 Instructions for use and maintenance === 610 + 611 +* It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 612 +* If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 613 + 614 +== 4.6 RS485 Commands == 615 + 616 +RS485 signaldefault address 0x14 617 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 618 + 619 +=== 4.6.1 Query address === 620 + 621 +send 622 + 623 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 624 +|=(% 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 625 +|(% 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 626 + 627 +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. 628 + 629 + 630 +response 631 + 632 +Register 0 data high and register 0 data low indicate the actual address of the sensor: 1 633 +Register 1 data high and register 1 data low indicate the sensor version 634 + 635 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 636 +|=(% 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 637 +|(% 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 638 + 639 +=== 4.6.2 Change address === 640 + 641 +For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave 642 + 643 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:907.333px" %) 644 +|=(% 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 645 +|(% 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 646 + 647 +response 648 + 649 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 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;" %)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 651 +|(% 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 652 + 653 +=== 4.6.3 Query data === 654 + 655 + 656 +Query the data (dissolved oxygen) of the sensor (address 14), host → slave 657 + 658 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 659 +|=(% 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 660 +|(% 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 661 + 662 +If the sensor receives correctly, the following data will be returned, slave → host 663 + 664 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 665 +|=(% 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 666 +|(% 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 667 + 245 245 After the query, 7 bytes will be returned. For example, the returned data is 14 03 02 (% style="color:red" %)**03 78**(%%) B5 55. 03 78 is the value of dissolved oxygen. 246 246 247 247 Converted to decimal, it is 888. Add two decimal places to get the actual value. 03 78 means the current dissolved oxygen is 8.88mg/L 248 248 249 249 673 +Query the data (temperature) of the sensor (address 14), host → slave 674 + 675 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 676 +|=(% 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 677 +|(% 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 678 + 679 +If the sensor receives correctly, the following data will be returned, slave → host 680 + 681 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 682 +|=(% 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 683 +|(% 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 684 + 685 +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. 686 + 687 +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℃ 688 + 689 + 250 250 = 5. DR-TS1 Water Turbidity Sensor = 251 251 252 -== 5.7 RS485 Commands == 253 253 254 254 255 - Theaddressofthesolved oxygensensoris15694 +== (% id="cke_bm_81470S" style="display:none" %) (%%)5.1 Specification == 256 256 696 +* **Measuring range**: 0.1~1000.0NTU 697 +* **Accuracy**: ±5% 698 +* **Resolution**: 0.1NTU 699 +* **Stability**: ≤3mV/24 hours 700 +* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 701 +* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 702 +* **Working environment**: temperature 0~60℃; humidity ≤95%RH 703 +* **Power consumption**: ≤0.5W 704 + 705 +== 5.2 wiring == 706 + 707 + 708 +== 5.3 Impedance requirements for current signals == 709 + 710 +[[image:image-20240718195414-8.png||height="100" width="575"]] 711 + 712 + 713 +== 5.4 Mechinical Drawing == 714 + 715 +[[image:image-20240718195058-7.png||height="305" width="593"]] 716 + 717 + 718 +=== 5.5 Instructions for use and maintenance === 719 + 720 +* It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 721 +* If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 722 + 723 +== 5.6 RS485 Commands == 724 + 725 + 726 +RS485 signaldefault address 0x15 727 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 728 + 729 +=== 5.6.1 Query address === 730 + 731 +send 732 + 733 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 734 +|=(% 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 735 +|(% 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 736 + 737 +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. 738 + 739 + 740 +response 741 + 742 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 743 +|=(% 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 744 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 745 + 746 +=== 5.6.2 Change address === 747 + 748 +For example: Change the address of the sensor with address 1 to 2, master → slave 749 + 750 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 751 +|=(% 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 752 +|(% 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 753 + 754 +If the sensor receives correctly, the data is returned along the original path. 755 +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. 756 + 757 +=== 5.6.3 Query data === 758 + 759 + 760 +Query the data (turbidity) of the sensor (address 15), host → slave 761 + 762 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 763 +|=(% 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 764 +|(% 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 765 + 766 +If the sensor receives correctly, the following data will be returned, slave → host 767 + 768 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 769 +|=(% 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 770 +|(% 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 771 + 257 257 The query data command is 15 03 00 00 00 01 87 1E 258 258 259 259 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C 260 260 261 261 02 9A is the turbidity value, converted to decimal, it is 666, and then divided by 10, the actual value is 66.6, 02 9A means the current turbidity value is 66.6 NTU 262 - 263 -
- image-20240718190121-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +281.1 KB - Content
- image-20240718190204-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +111.8 KB - Content
- image-20240718190221-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +140.2 KB - Content
- image-20240718190249-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +111.6 KB - Content
- image-20240718191336-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +46.6 KB - Content
- image-20240718191348-6.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.2 KB - Content
- image-20240718195058-7.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +97.6 KB - Content
- image-20240718195414-8.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +13.5 KB - Content
- image-20240719155308-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +57.4 KB - Content