<
From version < 1.12 >
edited by Xiaoling
on 2022/05/12 10:13
To version < 35.3 >
edited by Xiaoling
on 2022/05/27 09:42
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,3 +1,8 @@
1 +(% class="wikigeneratedid" %)
2 + **Contents:**
3 +
4 +{{toc/}}
5 +
1 1  = 1. Introduction =
2 2  
3 3  This article provide the examples for RS485-LN to connect to different type of RS485 sensors.
... ... @@ -6,14 +6,17 @@
6 6  
7 7  This instruction is provided by Xavier Florensa Berenguer from [[NORIA GRUPO DE COMPRAS>>url:http://www.gruponovelec.com/]]. It is to show how to use RS485-LN to connect to Relay and VFD and communicate with Mobile. The structure is like below:
8 8  
9 -[[image:https://wiki.dragino.com/images/thumb/5/5c/RS485_01.png/600px-RS485_01.png||height="297" width="534"]]
14 +[[image:image-20220527091852-1.png]]
10 10  
11 11  Connection
12 12  
13 -[[image:https://wiki.dragino.com/images/thumb/f/f2/RS485_02.png/600px-RS485_02.png||height="743" width="528"]](% style="display:none" %)
14 14  
19 +
20 +[[image:image-20220527091942-2.png]](% style="display:none" %)
21 +
15 15  Connection
16 16  
24 +
17 17  Related documents:
18 18  
19 19  * [[Solar Pump with Dragino>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Relay_VFD/]] : System Structure
... ... @@ -24,17 +24,20 @@
24 24  
25 25  This instruction is provided by Xavier Florensa Berenguer from [[NORIA GRUPO DE COMPRAS>>url:http://www.gruponovelec.com/]]. It is to show how to use RS485-LN to connect to Pulse Counter and communicate with Mobile. This example and example 2 compose the structure for a farm IoT solution. The structure is like below:
26 26  
27 -[[image:https://wiki.dragino.com/images/thumb/3/34/RS485_02_1.png/600px-RS485_02_1.png||height="364" width="600"]]
35 +[[image:image-20220527092058-3.png]]
28 28  
29 29  Connection
30 30  
31 -[[image:https://wiki.dragino.com/images/thumb/5/5f/RS485_02_2.png/600px-RS485_02_2.png||height="337" width="600"]]
32 32  
40 +[[image:image-20220527092146-4.png]]
41 +
33 33  Connection
34 34  
35 35  * [[Pickdata MIO40 water pulse counter to LoRa with Dragino RS485-LN>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Pulse-Counter/]] : Configure Document
36 36  * [[Dragino Solution in Farm>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/&file=Dragino%20on%20Farms.pptx]]
37 37  
47 +== ==
48 +
38 38  == 1.3 Example3: Use RS485-LN with energy meters ==
39 39  
40 40  === 1.3.1 OverView ===
... ... @@ -47,28 +47,41 @@
47 47  This example describes a single-phase meter.This is the connection between the RS485-LN and the energy meter.
48 48  )))
49 49  
50 -[[image:https://wiki.dragino.com/images/thumb/f/f4/Meter1.jpg/600px-Meter1.jpg||height="726" width="545"]]
61 +[[image:image-20220527092419-5.png]]
51 51  
52 52  Connection1
53 53  
65 +
66 +(((
54 54  How to connect with Energy Meter:
68 +)))
55 55  
70 +(((
56 56  Follow the instructions of the electric energy meter to connect the phase line and the neutral line, and then connect 485A+ and 485B- to RS485A and RA485B of RS485-LN respectively.
72 +)))
57 57  
74 +(((
58 58  The RS485-LN can be powered by 7 ~~ 24V DC power source. Connection as below
76 +)))
59 59  
78 +(((
60 60  Power Source VIN to RS485-LN VIN+
80 +)))
61 61  
82 +(((
62 62  Power Source GND to RS485-LN VIN-
84 +)))
63 63  
86 +(((
64 64  Once there is power, the RS485-LN will be on.
88 +)))
65 65  
66 -[[image:https://wiki.dragino.com/images/thumb/1/15/Meter2.jpg/600px-Meter2.jpg||height="433" width="577"]]
90 +[[image:image-20220527092514-6.png]]
67 67  
68 68  Connection2
69 69  
70 70  
71 -[[image:https://wiki.dragino.com/images/thumb/a/a5/Meter3.jpg/600px-Meter3.jpg||height="763" width="573"]]
95 +[[image:image-20220527092555-7.png]]
72 72  
73 73  Connection3
74 74  
... ... @@ -77,11 +77,12 @@
77 77  
78 78  If the user needs to read the parameters of the electric energy meter and use the modbus command,please refer to the appendix of the MODBUS communication protocol in the user manual of the energy meter.
79 79  
80 -[[image:https://wiki.dragino.com/images/thumb/3/35/Meter4.png/600px-Meter4.png||alt="Meter4.png" height="193" width="600"]]
104 +[[image:image-20220527092629-8.png]]
81 81  
106 +
82 82  (% class="box infomessage" %)
83 83  (((
84 -Example:AT+COMMAND1=01 03 00 00 00 01 84 0A
109 +**Example:** AT+COMMAND1=01 03 00 00 00 01 84 0A
85 85  )))
86 86  
87 87  * The first byte : slave address code (=001~247)
... ... @@ -96,7 +96,7 @@
96 96  
97 97  (% class="box infomessage" %)
98 98  (((
99 -Example:RETURN1:01 03 02 08 FD 7E 05
124 +**Example:** RETURN1:01 03 02 08 FD 7E 05
100 100  )))
101 101  
102 102  * The first byte ARD: slave address code (=001~254)
... ... @@ -106,10 +106,16 @@
106 106  * The 6th and 7th bytes: CRC16 checksum
107 107  * 08 FD is register data. Use short integer 16 bits to convert to decimal, get 2301, then 230.1V is the voltage.
108 108  
134 +(% class="wikigeneratedid" %)
135 +(((
136 +
137 +)))
138 +
109 109  === 1.3.3 How to configure RS485-LN and parse output commands ===
110 110  
111 111  RS485-LN provides two configuration methods: AT COMMAND and DOWNLINK.
112 112  
143 +
113 113  ==== 1.3.3.1 via AT COMMAND: ====
114 114  
115 115  First, we can use **AT+CFGDEV** to get the return value, and we can also judge whether the input parameters are correct.
... ... @@ -118,13 +118,14 @@
118 118  If the configured parameters and commands are incorrect, the return value is not obtained.
119 119  )))
120 120  
121 -[[image:https://wiki.dragino.com/images/b/bc/AT_COMMAND1.png||height="358" width="456"]]
152 +[[image:image-20220527092748-9.png]]
122 122  
123 123  AT COMMAND
124 124  
156 +
125 125  (% class="box infomessage" %)
126 126  (((
127 -AT+DATACUTx : This command defines how to handle the return from AT+COMMANDx, max reture length is 40 bytes. AT+DATACUTx=a,b,c
159 + AT+DATACUTx : This command defines how to handle the return from AT+COMMANDx, max reture length is 40 bytes. AT+DATACUTx=a,b,c
128 128  )))
129 129  
130 130  a: length for the return of AT+COMMAND
... ... @@ -133,27 +133,32 @@
133 133  
134 134  c: define the position for valid value.
135 135  
136 -[[image:https://wiki.dragino.com/images/7/7d/AT_COMMAND2.png||height="278" width="477"]]
168 +[[image:image-20220527092936-10.png]]
137 137  
138 138  AT COMMAND
139 139  
172 +
140 140  PAYLOAD is available after the valid value is intercepted.
141 141  
142 142  
143 -[[image:https://wiki.dragino.com/images/3/3a/AT_COMMAND4.png||height="219" width="576"]]
176 +[[image:image-20220527093059-11.png]]
144 144  
145 145  AT COMMAND
146 146  
180 +
147 147  You can get configured PAYLOAD on TTN.
148 148  
183 +[[image:image-20220527093133-12.png]]
149 149  
150 -[[image:https://wiki.dragino.com/images/thumb/c/c2/AT_COMMAND3.png/600px-AT_COMMAND3.png||height="138" width="600"]]
151 -
152 152  (((
153 153  AT COMMAND
154 154  )))
155 155  
156 156  (((
190 +
191 +)))
192 +
193 +(((
157 157  **Example**: CMD1:Read current data with MODBUS command. address:0x03 AT+COMMAND1= 01 03 00 03 00 01,1
158 158  )))
159 159  
... ... @@ -193,14 +193,14 @@
193 193  Payload:01 00 02 39 85 08 DC 00 00 00 44
194 194  )))
195 195  
196 -[[image:https://wiki.dragino.com/images/thumb/9/9b/AT_COMMAND10.png/600px-AT_COMMAND10.png||height="278" width="600"]]
233 +[[image:image-20220527093204-13.png]]
197 197  
198 198  AT COMMAND
199 199  
200 -01 is device address,00 02 is the current, 08 DC is the voltage,00 00 00 44 is the total active energy.
201 201  
238 +(% style="color:#4f81bd" %)**01 is device address,00 02 is the current, 08 DC is the voltage,00 00 00 44 is the total active energy.**
202 202  
203 -[[~[~[image:https://wiki.dragino.com/images/thumb/b/b8/AT_COMMAND11.png/600px-AT_COMMAND11.png~|~|height="271" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:AT_COMMAND11.png]]
240 +[[image:image-20220527093251-14.png]]
204 204  
205 205  AT COMMAND
206 206  
... ... @@ -207,7 +207,7 @@
207 207  
208 208  ==== 1.3.3.2 via LoRaWAN DOWNLINK ====
209 209  
210 -[[image:https://wiki.dragino.com/images/thumb/f/fc/DOWNLINK_METER1.png/600px-DOWNLINK_METER1.png||height="423" width="600"]]
247 +[[image:image-20220527093358-15.png]]
211 211  
212 212  (((
213 213  DOWNLINK
... ... @@ -218,12 +218,15 @@
218 218  )))
219 219  
220 220  (((
221 -Type Code 0xAF
258 +**Type Code 0xAF**
222 222  )))
223 223  
224 224  (((
262 +(% class="box infomessage" %)
263 +(((
225 225  0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
226 226  )))
266 +)))
227 227  
228 228  (((
229 229  Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.
... ... @@ -269,84 +269,123 @@
269 269  AF 03 01 06 0A 05 00 04 00 01 00: Same as AT+COMMAND3=0A 05 00 04 00 01,1
270 270  )))
271 271  
272 -[[image:https://wiki.dragino.com/images/thumb/4/45/DOWNLINK_METER2.png/600px-DOWNLINK_METER2.png||height="208" width="600"]]
312 +[[image:image-20220527093430-16.png]]
273 273  
274 274  DOWNLINK
275 275  
276 276  
277 -[[~[~[image:https://wiki.dragino.com/images/thumb/2/20/DOWNLINK_METER3.png/600px-DOWNLINK_METER3.png~|~|height="105" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:DOWNLINK_METER3.png]]
317 +[[image:image-20220527093508-17.png]]
278 278  
279 279  DOWNLINK
280 280  
281 281  
282 -[[image:https://wiki.dragino.com/images/thumb/2/27/DOWNLINK_METER4.png/600px-DOWNLINK_METER4.png||height="210" width="600"]]
322 +[[image:image-20220527093530-18.png]]
283 283  
284 284  DOWNLINK
285 285  
286 286  
287 -[[~[~[image:https://wiki.dragino.com/images/thumb/3/39/DOWNLINK_METER5.png/600px-DOWNLINK_METER5.png~|~|height="176" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:DOWNLINK_METER5.png]]
327 +[[image:image-20220527093607-19.png]]
288 288  
289 289  DOWNLINK
290 290  
291 -[[image:https://wiki.dragino.com/images/thumb/a/a2/DOWNLINK_METER6.png/600px-DOWNLINK_METER6.png||height="365" width="600"]]
292 292  
332 +[[image:image-20220527093628-20.png]]
333 +
293 293  DOWNLINK
294 294  
295 295  
296 296  === 1.3.4 How to configure and output commands for RS485 to USB ===
297 297  
339 +(((
298 298  This step is not necessary, it is just to show how to use a normal RS485 to USB adapter to connect to the meter to check the input and output. This can be used to test the connection and RS485 command of the meter without RS485-LN.
341 +)))
299 299  
343 +(((
300 300  First, connect the A+ and A- of the USB to the 485 A and 485 B of the energy meter.
345 +)))
301 301  
347 +(((
302 302  Open the serial port debugging, set the send and receive to HEX.
349 +)))
303 303  
351 +(((
304 304  Baud rate: 9600
353 +)))
305 305  
355 +(((
306 306  check digit: Even
357 +)))
307 307  
308 -[[image:https://wiki.dragino.com/images/thumb/8/8f/Usb_meter2.jpg/600px-Usb_meter2.jpg||height="800" width="600"]]
359 +[[image:image-20220527093708-21.png]]
309 309  
310 310  USB
311 311  
312 -[[image:https://wiki.dragino.com/images/thumb/6/62/Usb_meter1.jpg/600px-Usb_meter1.jpg||height="800" width="600"]]
313 313  
364 +[[image:image-20220527093747-22.png]]
365 +
314 314  USB
315 315  
368 +
369 +(((
316 316  The configuration command is consistent with the AT command, input the hexadecimal command directly into the serial port, and the serial port will output the command.
371 +)))
317 317  
318 -Example:input:01 03 00 31 00 02 95 c4
373 +(((
374 +**Example:**  input:01 03 00 31 00 02 95 c4
375 +)))
319 319  
320 -{{{ output:01 03 04 00 00 00 42 7A 02
321 -}}}
377 +(((
378 + output:01 03 04 00 00 00 42 7A 02
379 +)))
322 322  
323 -[[image:https://wiki.dragino.com/images/thumb/b/b3/Usb_meter3.jpg/600px-Usb_meter3.jpg||height="466" width="600"]]
381 +[[image:image-20220527093821-23.png]]
324 324  
325 325  USB
326 326  
385 +
327 327  === 1.3.5 How to configure multiple devices and modify device addresses ===
328 328  
329 329  If users need to read the parameters of multiple energy meters, they need to modify the device address, because the default device address of each energy meter is 01.
330 330  
390 +(((
391 +(((
331 331  Set the device address according to the parameters in the appendix of the MODBUS communication protocol.
393 +)))
394 +)))
332 332  
333 -[[image:https://wiki.dragino.com/images/thumb/1/1f/Double_meter3.png/600px-Double_meter3.png||alt="Double meter3.png" height="83" width="600"]]
396 +[[image:image-20220527093849-24.png]]
334 334  
335 -Example:These two meters are examples of setting parameters and device addresses.
336 336  
337 -[[image:https://wiki.dragino.com/images/thumb/e/ee/Double_meter1.jpg/600px-Double_meter1.jpg||alt="Double meter1.jpg" height="800" width="600"]]
399 +**Example**:These two meters are examples of setting parameters and device addresses.
338 338  
339 -[[image:https://wiki.dragino.com/images/thumb/7/72/Double_meter2.jpg/600px-Double_meter2.jpg||alt="Double meter2.jpg" height="800" width="600"]]
401 +[[image:image-20220527093950-25.png]]
340 340  
403 +[[image:image-20220527094028-26.png]]
404 +
405 +(((
406 +(((
341 341  First of all, since the default device address of the energy meter is 01, the configuration of two energy meters will conflict, so we first connect an energy meter and configure the device address.
408 +)))
409 +)))
342 342  
411 +(((
412 +(((
343 343  We can use AT+CFGDEV to set the device address.
414 +)))
415 +)))
344 344  
417 +(((
418 +(((
345 345  We modify the device address 01 of the first energy meter to 02.
420 +)))
421 +)))
346 346  
347 -[[image:https://wiki.dragino.com/images/6/6b/Double_meter4.png||alt="Double meter4.png" height="141" width="456"]]
423 +[[image:image-20220527094100-27.png]]
348 348  
349 -AT+CFGDEV:01 10 00 61 00 01 02 00 02,1
425 +(% class="box infomessage" %)
426 +(((
427 +**AT+CFGDEV:01 10 00 61 00 01 02 00 02,1**
428 +)))
350 350  
351 351  * 01:device adaress
352 352  
... ... @@ -368,15 +368,17 @@
368 368  
369 369  Its default device address is 01, and the following are the parameters for configuring two energy meters.
370 370  
371 -[[image:https://wiki.dragino.com/images/1/13/Meter11.png||alt="Meter11.png" height="576" width="379"]]
450 +[[image:image-20220527094150-28.png]]
372 372  
373 -[[image:https://wiki.dragino.com/images/thumb/7/7e/Meter12.png/600px-Meter12.png||alt="Meter12.png" height="262" width="600"]]
374 374  
453 +[[image:image-20220527094224-29.png]]
454 +
375 375  PAYLOAD:01 08 DF 43 62
376 376  
377 377  * 08 DF is the valid value of the meter with device address 02.
378 378  * 43 62 is the valid value of the meter with device address 01.
379 379  
460 +
380 380  == 1.4 Example 4: Circuit Breaker Remote Open Close ==
381 381  
382 382  This instruction is provided by Xavier Florensa Berenguer from [[NORIA GRUPO DE COMPRAS>>url:http://www.gruponovelec.com/]]. It is to show how to use RS485-LN to connect to SCHNEIDER SMART and Monitor and control your cabinet remotely with no wires and with Dragino RS485-LN LoRaWAN technology. The structure is like below:
image-20220512104203-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +77.5 KB
Content
image-20220512104238-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +81.2 KB
Content
image-20220512104358-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +80.8 KB
Content
image-20220512115601-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +20.4 KB
Content
image-20220527091852-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +542.6 KB
Content
image-20220527091942-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +608.5 KB
Content
image-20220527092058-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +740.9 KB
Content
image-20220527092146-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +686.5 KB
Content
image-20220527092419-5.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +519.8 KB
Content
image-20220527092514-6.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +819.1 KB
Content
image-20220527092555-7.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +537.6 KB
Content
image-20220527092629-8.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +9.1 KB
Content
image-20220527092748-9.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +16.3 KB
Content
image-20220527092936-10.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +11.3 KB
Content
image-20220527093059-11.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +10.9 KB
Content
image-20220527093133-12.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +12.1 KB
Content
image-20220527093204-13.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +16.5 KB
Content
image-20220527093251-14.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +39.3 KB
Content
image-20220527093358-15.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +62.9 KB
Content
image-20220527093430-16.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +16.9 KB
Content
image-20220527093508-17.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +21.5 KB
Content
image-20220527093530-18.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +16.5 KB
Content
image-20220527093607-19.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +28.3 KB
Content
image-20220527093628-20.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +34.6 KB
Content
image-20220527093708-21.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +569.4 KB
Content
image-20220527093747-22.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +672.8 KB
Content
image-20220527093821-23.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +161.5 KB
Content
image-20220527093849-24.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +3.4 KB
Content
image-20220527093950-25.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +624.4 KB
Content
image-20220527094028-26.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +815.2 KB
Content
image-20220527094100-27.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +2.3 KB
Content
image-20220527094150-28.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +27.7 KB
Content
image-20220527094224-29.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +25.8 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0