Changes for page Water Quality Sensors
Last modified by Karry Zhuang on 2025/07/18 16:37
From version 25.1
edited by Karry Zhuang
on 2024/07/18 19:13
on 2024/07/18 19:13
Change comment:
Uploaded new attachment "image-20240718191348-6.png", version {1}
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 8 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. karry1 +XWiki.Xiaoling - Content
-
... ... @@ -3,10 +3,13 @@ 3 3 {{toc/}} 4 4 5 5 6 + 7 + 6 6 = 1. DR-ECK Water EC Probe = 7 7 8 8 == 1.1 Specification: == 9 9 12 + 10 10 * **Power Input**: DC7~~30 11 11 * **Power Consumption** : < 0.5W 12 12 * **Interface**: RS485. 9600 Baud Rate ... ... @@ -21,8 +21,10 @@ 21 21 * **IP Rated**: IP68 22 22 * **Max Pressure**: 0.6MPa 23 23 27 + 24 24 == 1.2 Application for Different Range == 25 25 30 + 26 26 [[image:image-20240714173018-1.png]] 27 27 28 28 ... ... @@ -29,8 +29,12 @@ 29 29 == 1.3 Wiring == 30 30 31 31 37 +[[image:image-20240720172533-1.png||height="347" width="569"]] 38 + 39 + 32 32 == 1.4 Mechinical Drawing == 33 33 42 + 34 34 [[image:image-20240714174241-2.png]] 35 35 36 36 ... ... @@ -37,19 +37,19 @@ 37 37 == 1.5 Installation == 38 38 39 39 40 -**Electrode installation form** 49 +**Electrode installation form:** 41 41 42 -A:Side wall installation 51 +A: Side wall installation 43 43 44 -B:Top flange installation 53 +B: Top flange installation 45 45 46 -C:Pipeline bend installation 55 +C: Pipeline bend installation 47 47 48 -D:Pipeline bend installation 57 +D: Pipeline bend installation 49 49 50 -E:Flow-through installation 59 +E: Flow-through installation 51 51 52 -F:Submerged installation 61 +F: Submerged installation 53 53 54 54 [[image:image-20240718190121-1.png||height="350" width="520"]] 55 55 ... ... @@ -61,11 +61,11 @@ 61 61 62 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. 73 +**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. 65 65 66 66 [[image:image-20240718190221-3.png||height="292" width="500"]] 67 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. 77 +**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 69 70 70 B. Correct installation method 71 71 ... ... @@ -72,21 +72,15 @@ 72 72 [[image:image-20240718190249-4.png||height="287" width="515"]] 73 73 74 74 75 -== 1.6 Mainta in ==84 +== 1.6 Maintenance == 76 76 77 77 78 -* 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! 79 -* 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. 80 -* 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. 81 -* 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. 82 -* 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. 83 -* The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 84 -* 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. 85 -* 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. 86 -* ((( 87 -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. 88 -))) 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. 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. 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. 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.). 89 89 92 + 90 90 == 1.7 RS485 Commands == 91 91 92 92 ... ... @@ -96,42 +96,46 @@ 96 96 97 97 === 1.7.1 Query address === 98 98 99 -send 100 100 101 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 102 -|=(% 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 103 -|(% 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 103 +**send** 104 104 105 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 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 107 +|(% style="width:99px" %)0XFE |(% style="width:72px" %)0X03|(% style="width:50px" %)0X00|(% style="width:42px" %)0X50|(% style="width:42px" %)0X00|(% style="width:42px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4 108 + 105 105 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. 106 106 107 107 108 -response 112 +**response** 109 109 110 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:5 61.333px" %)111 -|=(% 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 high112 -|(% style="width:99px" %)0X1|(% style="width:112px" %)0X3|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 114 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 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 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 113 113 118 + 114 114 === 1.7.2 Change address === 115 115 121 + 116 116 For example: Change the address of the sensor with address 1 to 2, master → slave 117 117 118 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)119 -|=(% 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 high120 -|(% 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" %)0X1A124 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 125 +|=(% style="width: 74.75px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high 126 +|(% style="width:67px" %)0X01|(% style="width:76px" %)0X06|(% style="width:60px" %)0X00|(% style="width:50px" %)0X50|(% style="width:50px" %)0X00|(% style="width:50px" %)0X02|(% style="width:57px" %)0X08|(% style="width:56px" %)0X1A 121 121 122 122 If the sensor receives correctly, the data is returned along the original path. 123 -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. 124 124 130 +(% 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.** 125 125 132 + 126 126 === 1.7.3 Modify intercept === 127 127 128 128 129 129 send 130 130 131 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)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 high133 -|(% 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" %)0XFA|(% style="width:1px" %)(((134 -0X 97138 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 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 140 +|(% style="width:64px" %)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" %)((( 141 +0X07 135 135 ))) 136 136 137 137 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. ... ... @@ -138,28 +138,53 @@ 138 138 139 139 response 140 140 141 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)142 -|=(% 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 high148 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %) 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 143 143 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 144 144 0X02 145 -)))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X 0A|(% style="width:1px" %)(((146 -0X E5152 +)))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X38|(% style="width:1px" %)((( 153 +0X8F 147 147 ))) 148 148 149 149 === 1.7.4 Query data === 150 150 158 + 159 +Query the data (EC,temperature) of the sensor (address 11), host → slave 160 + 161 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 162 +|=(% 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 163 +|(% 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 164 + 165 +If the sensor receives correctly, the following data will be returned, slave → host 166 + 167 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 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: 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 169 +|(% 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 170 + 151 151 The address of the EC K10 sensor is 11 152 152 153 153 The query data command is 11 03 00 00 00 02 C6 9B 154 154 155 -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 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. 156 156 157 157 178 +Query the data (EC,temperature) of the sensor (address 11), host → slave 179 + 180 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 181 +|=(% 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 182 +|(% 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 183 + 184 +If the sensor receives correctly, the following data will be returned, slave → host 185 + 186 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 187 +|=(% 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 188 +|(% 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 189 + 158 158 The address of the EC K1 sensor is 12 159 159 160 160 The query data command is 12 03 00 00 00 02 C6 A8 161 161 162 -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 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. 163 163 164 164 165 165 === 1.7.5 Calibration Method === ... ... @@ -170,7 +170,7 @@ 170 170 The calibration steps are as follows: 171 171 (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. 172 172 173 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)205 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 174 174 |=(% 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: 139.083px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high 175 175 |(% style="width:99px" %)0X12|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X04|(% style="width:1px" %)((( 176 176 0X00 ... ... @@ -186,13 +186,13 @@ 186 186 187 187 response 188 188 189 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)221 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 190 190 |=(% 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 191 191 |(% style="width:99px" %)0X12|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0XA2|(% style="width:1px" %)0XA0 192 192 193 193 (2) Place the electrode in distilled water to clean it. Use 12.88mS/cm standard solution for the range of 10~~20000. After the data is stable, enter the following calibration command 194 194 195 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)227 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 196 196 |=(% 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: 139.083px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high 197 197 |(% style="width:99px" %)0X11|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X04|(% style="width:1px" %)((( 198 198 0X00 ... ... @@ -208,17 +208,151 @@ 208 208 209 209 response 210 210 211 -(% border="1" cellspacing="3" style="background-color:#f2f2f2; width: 676.25px" %)243 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %) 212 212 |=(% 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 213 213 |(% 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 214 214 247 + 248 + 215 215 = 2. DR-PH01 Water PH Sensor = 216 216 217 -== 2. 7RS485 Commands==251 +== 2.1 Specification == 218 218 219 219 220 -The address of the pH sensor is 10 254 +* **Power Input**: DC7~~30 255 +* **Power Consumption** : < 0.5W 256 +* **Interface**: RS485. 9600 Baud Rate 257 +* **pH measurement range**: 0~~14.00pH; resolution: 0.01pH 258 +* **pH measurement error**:±0.15pH 259 +* **Repeatability error**:±0.02pH 260 +* **Temperature measurement range**:0~~60℃; resolution: 0.1℃ (set temperature for manual temperature compensation, default 25℃) 261 +* **Temperature measurement error**: ±0.5℃ 262 +* **Temperature Measure Range**: -20 ~~ 60 °C 263 +* **Temperature Accuracy: **±0.5 °C 264 +* **IP Rated**: IP68 265 +* **Max Pressure**: 0.6MPa 221 221 267 +== 2.2 Wiring == 268 + 269 +[[image:image-20240720172548-2.png||height="348" width="571"]] 270 + 271 + 272 +== (% style="color:inherit; font-family:inherit" %)2.3 (% style="color:inherit; font-family:inherit; font-size:26px" %)Mechinical Drawing(%%) == 273 + 274 +[[image:image-20240714174241-2.png]] 275 + 276 + 277 +== 2.4 Installation Notice == 278 + 279 +Do not power on while connect the cables. Double check the wiring before power on. 280 + 281 +Installation Photo as reference: 282 + 283 +**~ Submerged installation:** 284 + 285 +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. 286 + 287 +[[image:image-20240718191348-6.png]] 288 + 289 +**~ Pipeline installation:** 290 + 291 +Connect the equipment to the pipeline through the 3/4 thread. 292 + 293 +[[image:image-20240718191336-5.png||height="239" width="326"]] 294 + 295 +**Sampling:** 296 + 297 +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. 298 + 299 +**Measure the pH of the water sample:** 300 + 301 +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. 302 + 303 + 304 +== 2.5 Maintenance == 305 + 306 + 307 +* 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! 308 +* 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. 309 +* 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. 310 +* 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. 311 +* 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. 312 +* The electrode should be cleaned with deionized water before and after measurement to ensure accuracy. 313 +* 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. 314 +* 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. 315 +* ((( 316 +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. 317 +))) 318 + 319 +== 2.6 RS485 Commands == 320 + 321 +RS485 signaldefault address 0x10 322 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 323 + 324 +=== 2.6.1 Query address === 325 + 326 +send 327 + 328 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 329 +|=(% 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 330 +|(% 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 331 + 332 +response 333 + 334 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 335 +|=(% 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 336 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 337 + 338 +=== 2.6.2 Change address === 339 + 340 +For example: Change the address of the sensor with address 1 to 2, master → slave 341 + 342 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 343 +|=(% 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 344 +|(% 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 345 + 346 +If the sensor receives correctly, the data is returned along the original path. 347 +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. 348 + 349 + 350 +=== 2.6.3 Modify intercept === 351 + 352 + 353 +send 354 + 355 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:570.333px" %) 356 +|=(% 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 357 +|(% 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" %)((( 358 +0XA5 359 +))) 360 + 361 +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. 362 + 363 +response 364 + 365 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 366 +|=(% 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 367 +|(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 368 +0X00 369 +)))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( 370 +0XA5 371 +))) 372 + 373 +=== 2.6.4 Query data === 374 + 375 + 376 +Query the data (PH) of the sensor (address 10), host → slave 377 + 378 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.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: 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 380 +|(% 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 381 + 382 +If the sensor receives correctly, the following data will be returned, slave → host 383 + 384 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 385 +|=(% 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 386 +|(% 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 387 + 222 222 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned. 223 223 224 224 For example, the returned data is 10 03 02 (% style="color:red" %)**02 AE**(%%) C4 9B. ... ... @@ -226,13 +226,177 @@ 226 226 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. 227 227 228 228 395 +=== 2.6.5 Calibration Method === 396 + 397 + 398 +This device uses three-point calibration, and three known pH standard solutions need to be prepared. 399 +The calibration steps are as follows: 400 +(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. 401 + 402 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 403 +|=(% 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 404 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 405 +0X00 406 +)))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)((( 407 +0XF1 408 +))) 409 + 410 +(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. 411 + 412 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 413 +|=(% 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 414 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 415 +0X00 416 +)))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)((( 417 +0X31 418 +))) 419 + 420 +(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. 421 + 422 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 423 +|=(% 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 424 +|(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 425 +0X00 426 +)))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)((( 427 +0X31 428 +))) 429 + 430 +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. 431 + 432 + 229 229 = 3. DR-ORP1 Water ORP Sensor = 230 230 231 -== 3.7 RS485 Commands == 232 232 436 +== 3.1 Specification == 233 233 234 -The address of the ORP sensor is 13 438 +* **Power Input**: DC7~~30 439 +* **Measuring range**:** **-1999~~1999mV 440 +**Resolution**: 1mV 441 +* **Interface**: RS485. 9600 Baud Rate 442 +* **Measurement error**: ±3mV 443 +* **Stability**: ≤2mv/24 hours 444 +* **Equipment working conditions**: Ambient temperature: 0-60℃ Relative humidity: <85%RH 445 +* **IP Rated**: IP68 446 +* **Max Pressure**: 0.6MPa 235 235 448 +== 3.2 Wiring == 449 + 450 +[[image:image-20240720172620-3.png||height="378" width="620"]] 451 + 452 + 453 +== 3.3 Mechinical Drawing == 454 + 455 +[[image:image-20240714174241-2.png]] 456 + 457 +== 3.4 Installation Notice == 458 + 459 +Do not power on while connect the cables. Double check the wiring before power on. 460 + 461 +Installation Photo as reference: 462 + 463 +**~ Submerged installation:** 464 + 465 +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. 466 + 467 +[[image:image-20240718191348-6.png]] 468 + 469 +**~ Pipeline installation:** 470 + 471 +Connect the equipment to the pipeline through the 3/4 thread. 472 + 473 +[[image:image-20240718191336-5.png||height="239" width="326"]] 474 + 475 + 476 +== 3.5 Maintenance == 477 + 478 + 479 +(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. 480 + 481 +(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.). 482 + 483 +(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. 484 + 485 +(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. 486 + 487 +(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. 488 + 489 +(6) The electrode should be cleaned with deionized water before and after the measurement to ensure the measurement accuracy. 490 + 491 +(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. 492 + 493 +(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. 494 + 495 +(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. 496 + 497 +== 3.6 RS485 Commands == 498 + 499 + 500 +RS485 signaldefault address 0x13 501 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 502 + 503 +=== 3.6.1 Query address === 504 + 505 +send 506 + 507 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 508 +|=(% 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 509 +|(% 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 510 + 511 +response 512 + 513 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 514 +|=(% 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 515 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 516 + 517 +=== 3.6.2 Change address === 518 + 519 +For example: Change the address of the sensor with address 1 to 2, master → slave 520 + 521 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 522 +|=(% 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 523 +|(% 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 524 + 525 +If the sensor receives correctly, the data is returned along the original path. 526 +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. 527 + 528 + 529 +=== 3.6.3 Modify intercept === 530 + 531 +send 532 + 533 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 534 +|=(% 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 535 +|(% 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" %)((( 536 +0X96 537 +))) 538 + 539 +Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command. 540 + 541 +response 542 + 543 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 544 +|=(% 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 545 +|(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)((( 546 +0X00 547 +)))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)((( 548 +0X96 549 +))) 550 + 551 +=== 3.6.4 Query data === 552 + 553 + 554 +Query the data (ORP) of the sensor (address 13), host → slave 555 + 556 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.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: 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 558 +|(% 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 559 + 560 +If the sensor receives correctly, the following data will be returned, slave → host 561 + 562 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 563 +|=(% 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 564 +|(% 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 565 + 236 236 The query data command is 13 03 00 00 00 01 87 78 237 237 238 238 For example, the returned data is 13 03 02 (% style="color:red" %)**02 AE**(%%) 80 9B. ... ... @@ -240,30 +240,229 @@ 240 240 02 AE is the ORP value, converted to decimal, the actual value is 686, 02 AE means the current ORP value is 686mV 241 241 242 242 573 +=== 3.6.5 Calibration Method === 574 + 575 +This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows: 576 +(1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes, 577 +enter the following calibration command, and the 86mV point calibration is completed; 578 + 579 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 580 +|=(% 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 581 +|(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 582 +0X00 583 +)))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)((( 584 +0X03 585 +))) 586 + 587 +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. 588 + 589 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %) 590 +|=(% 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 591 +|(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)((( 592 +0X00 593 +)))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)((( 594 +0XC3 595 +))) 596 + 243 243 = 4. DR-DO1 Dissolved Oxygen Sensor = 244 244 245 -== 4.7 RS485 Commands == 246 246 247 247 248 - Theaddressofhe dissolved oxygensensor is 14601 +== 4.1 Specification == 249 249 250 -The query data command is 14 03 00 14 00 01 C6 CB 251 251 604 +* **Measuring range**: 0-20mg/L, 0-50℃ 605 +* **Accuracy**: 3%, ±0.5℃ 606 +* **Resolution**: 0.01 mg/L, 0.01℃ 607 +* **Maximum operating pressure**: 6 bar 608 +* **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 609 +* **Power supply voltage**: 5-24V DC 610 +* **Working environment**: temperature 0-60℃; humidity <95%RH 611 +* **Power consumption**: ≤0.5W 612 + 613 +== 4.2 wiring == 614 + 615 +[[image:image-20240720172632-4.png||height="390" width="640"]] 616 + 617 + 618 +== (% id="cke_bm_224234S" style="display:none" %) (%%)4.3 Impedance requirements for current signals == 619 + 620 +[[image:image-20240718195414-8.png||height="100" width="575"]] 621 + 622 + 623 +== 4.4 Mechinical Drawing == 624 + 625 + 626 +[[image:image-20240719155308-1.png||height="226" width="527"]] 627 + 628 + 629 +== 4.5 Instructions for use and maintenance == 630 + 631 +* It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 632 +* If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 633 + 634 +== 4.6 RS485 Commands == 635 + 636 +RS485 signaldefault address 0x14 637 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 638 + 639 +=== 4.6.1 Query address === 640 + 641 +send 642 + 643 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 644 +|=(% 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 645 +|(% 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 646 + 647 +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. 648 + 649 + 650 +response 651 + 652 +Register 0 data high and register 0 data low indicate the actual address of the sensor: 1 653 +Register 1 data high and register 1 data low indicate the sensor version 654 + 655 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 656 +|=(% 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 657 +|(% 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 658 + 659 +=== 4.6.2 Change address === 660 + 661 +For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave 662 + 663 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:907.333px" %) 664 +|=(% 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 665 +|(% 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 666 + 667 +response 668 + 669 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 670 +|=(% 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 671 +|(% 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 672 + 673 +=== 4.6.3 Query data === 674 + 675 + 676 +Query the data (dissolved oxygen) of the sensor (address 14), host → slave 677 + 678 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 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: 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 680 +|(% 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 681 + 682 +If the sensor receives correctly, the following data will be returned, slave → host 683 + 684 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 685 +|=(% 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 686 +|(% 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 687 + 252 252 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. 253 253 254 254 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 255 255 256 256 693 +Query the data (temperature) of the sensor (address 14), host → slave 694 + 695 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 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: 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 697 +|(% 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 698 + 699 +If the sensor receives correctly, the following data will be returned, slave → host 700 + 701 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 702 +|=(% 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 703 +|(% 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 704 + 705 +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. 706 + 707 +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℃ 708 + 709 + 257 257 = 5. DR-TS1 Water Turbidity Sensor = 258 258 259 -== 5.7 RS485 Commands == 260 260 261 261 262 - Theaddressofthesolved oxygensensoris15714 +== (% id="cke_bm_81470S" style="display:none" %) (%%)5.1 Specification == 263 263 716 +* **Measuring range**: 0.1~1000.0NTU 717 +* **Accuracy**: ±5% 718 +* **Resolution**: 0.1NTU 719 +* **Stability**: ≤3mV/24 hours 720 +* **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01) 721 +* **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA) 722 +* **Working environment**: temperature 0~60℃; humidity ≤95%RH 723 +* **Power consumption**: ≤0.5W 724 + 725 +== 5.2 wiring == 726 + 727 +[[image:image-20240720172640-5.png||height="387" width="635"]] 728 + 729 + 730 +== 5.3 Impedance requirements for current signals == 731 + 732 +[[image:image-20240718195414-8.png||height="100" width="575"]] 733 + 734 + 735 +== 5.4 Mechinical Drawing == 736 + 737 +[[image:image-20240718195058-7.png||height="305" width="593"]] 738 + 739 + 740 +== 5.5 Instructions for use and maintenance == 741 + 742 +* It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor. 743 +* If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently. 744 + 745 +== 5.6 RS485 Commands == 746 + 747 + 748 +RS485 signaldefault address 0x15 749 +Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1 750 + 751 +=== 5.6.1 Query address === 752 + 753 +send 754 + 755 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 756 +|=(% 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 757 +|(% 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 758 + 759 +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. 760 + 761 + 762 +response 763 + 764 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %) 765 +|=(% 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 766 +|(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0 767 + 768 +=== 5.6.2 Change address === 769 + 770 +For example: Change the address of the sensor with address 1 to 2, master → slave 771 + 772 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %) 773 +|=(% 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 774 +|(% 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 775 + 776 +If the sensor receives correctly, the data is returned along the original path. 777 +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. 778 + 779 +=== 5.6.3 Query data === 780 + 781 + 782 +Query the data (turbidity) of the sensor (address 15), host → slave 783 + 784 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 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: 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 786 +|(% 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 787 + 788 +If the sensor receives correctly, the following data will be returned, slave → host 789 + 790 +(% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %) 791 +|=(% 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 792 +|(% 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 793 + 264 264 The query data command is 15 03 00 00 00 01 87 1E 265 265 266 266 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C 267 267 268 268 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 269 -
- 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
- image-20240720172533-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.5 MB - Content
- image-20240720172548-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.5 MB - Content
- image-20240720172620-3.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.5 MB - Content
- image-20240720172632-4.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.5 MB - Content
- image-20240720172640-5.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.karry - Size
-
... ... @@ -1,0 +1,1 @@ 1 +1.5 MB - Content