Version 62.2 by Xiaoling on 2024/05/30 17:46

Show last authors
1 **Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8
9
10 = 1. Introduction =
11
12
13 This article provide the examples for RS485-LN to connect to different type of RS485 sensors.
14
15
16 == 1.1 Example 1: Connect to Leak relay and VFD ==
17
18
19 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:
20
21
22 [[image:image-20220527091852-1.png||height="547" width="994"]]
23
24 **Connection**
25
26
27 [[image:image-20220527091942-2.png]](% style="display:none" %)
28
29 **Connection**
30
31
32 (% style="color:blue" %)**Related documents:**
33
34 * System Structure:  [[Solar Pump with Dragino>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Relay_VFD/||_mstmutation="1" style="background-color: rgb(255, 255, 255);"]]
35
36 * Explanation on how to integrate to Node-red and to the Mobile Phone, and with link to the Github code:  [[Configure Manual>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Relay_VFD/||_mstmutation="1" style="background-color: rgb(255, 255, 255);"]]
37
38 * [[Video Demo>>url:https://www.youtube.com/watch?v=TAFZ5eaf-MY&t=6s&ab_channel=XavierFlorensaBerenguer]]
39
40
41
42 == 1.2 Example 2: Connect to Pulse Counter ==
43
44
45 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:
46
47
48 [[image:image-20220527092058-3.png||height="552" width="905"]]
49
50 **Connection**
51
52
53 [[image:image-20220527092146-4.png||height="507" width="906"]]
54
55 **Connection**
56
57
58 (% style="color:blue" %)**Related documents:**
59
60 * Configure Document:  [[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/||_mstmutation="1"]]
61
62 * [[Dragino Solution in Farm>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/&file=Dragino%20on%20Farms.pptx]]
63
64
65
66 == 1.3 Example 3: Use RS485-LN with energy meters ==
67
68 === 1.3.1 OverView ===
69
70
71 (((
72 (% style="color:red" %)**Note**:**The specifications of each energy meter are different, please refer to your own energy meter specifications.**
73 )))
74
75 (((
76 This example describes a single-phase meter.This is the connection between the RS485-LN and the energy meter.
77 )))
78
79 [[image:image-20220527092419-5.png]]
80
81 **Connection1**
82
83
84 (((
85 (% style="color:blue" %)**How to connect with Energy Meter:**
86
87
88 )))
89
90 (((
91 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.
92 )))
93
94 (((
95 The RS485-LN can be powered by 7 ~~ 24V DC power source. Connection as below
96 )))
97
98 (((
99 Power Source **VIN** to RS485-LN **VIN+**
100 )))
101
102 (((
103 Power Source **GND** to RS485-LN **VIN-**
104 )))
105
106 (((
107 Once there is power, the RS485-LN will be on.
108 )))
109
110 [[image:image-20220527092514-6.png]]
111
112 **Connection2**
113
114
115 [[image:image-20220527092555-7.png]]
116
117 **Connection3**
118
119
120 === 1.3.2 How to use the parameters of the energy meter and MODBUS commands ===
121
122
123 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.
124
125 [[image:image-20220601143257-10.png]]
126
127
128 (% style="color:blue" %)**Example:**(%%)  AT+COMMAND1=01 03 00 00 00 01 84 0A
129
130 * The first byte : slave address code (=001~247)
131
132 * The second byte : read register value function code
133
134 * 3rd and 4th bytes: start address of register to be read
135
136 * 5th and 6th bytes: Number of registers to read
137
138 * 7th and 8th bytes: CRC16 checksum from bytes 1 to 6.
139
140 (((
141
142
143
144 How to parse the reading of the return command of the parameter:
145
146 (% style="color:blue" %)**Example:**(%%) RETURN1:01 03 02 08 FD 7E 05
147 )))
148
149 * The first byte ARD: slave address code (=001~254)
150
151 * The second byte: Return to read function code
152
153 * 3rd byte: total number of bytes
154
155 * 4th~5th bytes: register data
156
157 * The 6th and 7th bytes: CRC16 checksum
158
159 * 08 FD is register data. Use short integer 16 bits to convert to decimal, get 2301, then 230.1V is the voltage.
160
161
162
163 === 1.3.3 How to configure RS485-LN and parse output commands ===
164
165
166 RS485-LN provides two configuration methods: AT COMMAND and DOWNLINK.
167
168
169 ==== **1.3.3.1 via AT COMMAND** ====
170
171
172 First, we can use (% style="color:blue" %)**AT+CFGDEV**(%%) to get the return value, and we can also judge whether the input parameters are correct.
173
174 (((
175 If the configured parameters and commands are incorrect, the return value is not obtained.
176
177
178 )))
179
180 [[image:image-20220601143201-9.png]]
181
182 **AT COMMAND**
183
184
185 (% class="box infomessage" %)
186 (((
187 (% _mstmutation="1" %)**AT+DATACUTx **(%%):  This command defines how to handle the return from AT+COMMANDx, max reture length is 40 bytes. AT+DATACUTx=a,b,c
188 )))
189
190 a:  length for the return of AT+COMMAND
191
192 b: 1: grab valid value by byte, max 6 bytes;  2: grab valid value by bytes section, max 3 sections.
193
194 c:  define the position for valid value.
195
196 [[image:image-20220601143115-8.png]]
197
198 **AT COMMAND**
199
200
201 PAYLOAD is available after the valid value is intercepted.
202
203 [[image:image-20220601143046-7.png]]
204
205 **AT COMMAND**
206
207
208 You can get configured PAYLOAD on TTN.
209
210 [[image:image-20220601143519-1.png]]
211
212 (((
213 **AT COMMAND**
214 )))
215
216 (((
217
218 )))
219
220 (((
221 (% style="color:blue" %)**Example**:
222
223 (% style="color:red" %)**CMD1:**(%%) Read current data with MODBUS command. address: 0x03 AT+COMMAND1= 01 03 00 03 00 01,1
224 )))
225
226 (((
227 RETURN1: 01 03 02 00 02 39 85 00 00(return data)
228 )))
229
230 (((
231 AT+DATACUT1: 9,1,4+5+6+7 Take the return value 00 02 39 85 as the valid value of reading current data and used to splice payload.
232
233
234 )))
235
236 (((
237 (% style="color:red" %)**CMD2: **(%%)Read voltage data with MODBUS command. address: 0x00 AT+COMMAND2= 01 03 00 00 00 01,1
238 )))
239
240 (((
241 RETURN2: 01 03 02 08 DC BE 1D(return data)
242 )))
243
244 (((
245 AT+DATACUT2: 7,1,4+5 Take the return value 08 DC as the valid value of reading voltage data and used to splice payload.
246
247
248 )))
249
250 (((
251 (% style="color:red" %)**CMD3:**(%%) Read total active energy data with MODBUS command. address: 0x0031 AT+COMMAND3= 01 03 00 31 00 02,1
252 )))
253
254 (((
255 RETURN3: 01 03 04 00 00 00 44 FA 00(return data)
256 )))
257
258 (((
259 AT+DATACUT3: 9,1,4+5+6+7 Take the return value 00 00 00 44 as the valid value of reading total active energy data and used to splice payload.
260 )))
261
262 (((
263 Payload: 01 00 02 39 85 08 DC 00 00 00 44
264 )))
265
266 [[image:image-20220601142936-6.png]]
267
268 AT COMMAND
269
270
271 (% style="color:blue" %)**01 is device address,00 02 is the current, 08 DC is the voltage,00 00 00 44 is the total active energy.**
272
273
274 [[image:image-20220601143642-2.png]]
275
276 AT COMMAND
277
278
279 ==== **1.3.3.2 via LoRaWAN DOWNLINK** ====
280
281
282 [[image:image-20220527093358-15.png]]
283
284 (((
285 **DOWNLINK**
286 )))
287
288
289 (((
290 (% style="color:blue" %)**Type Code 0xAF**
291 )))
292
293 (((
294 (% class="box infomessage" %)
295 (((
296 0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx.
297 )))
298 )))
299
300 (((
301 (% style="color:red" %)**Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.**
302 )))
303
304 (((
305 Format: AF MM NN LL XX XX XX XX YY
306 )))
307
308 (((
309 Where:
310 )))
311
312 (((
313 MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F,
314 )))
315
316 (((
317 NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value.
318 )))
319
320 (((
321 LL: The length of AT+COMMAND or AT+DATACUT command
322 )))
323
324 (((
325 XX XX XX XX: AT+COMMAND or AT+DATACUT command
326 )))
327
328 (((
329 YY: If YY=0, RS485-LN will execute the downlink command without uplink; if YY=1, RS485-LN
330 )))
331
332 (((
333 will execute an uplink after got this command.
334 )))
335
336
337 (((
338 (% style="color:blue" %)**Example:**
339 )))
340
341 (((
342 **AF 03 01 06 0A 05 00 04 00 01 00**: Same as AT+COMMAND3=0A 05 00 04 00 01,1
343 )))
344
345 [[image:image-20220601144149-6.png]]
346
347 **DOWNLINK**
348
349
350 [[image:image-20220601143803-3.png]]
351
352 **DOWNLINK**
353
354
355 [[image:image-20220601144053-5.png]]
356
357 **DOWNLINK**
358
359
360 [[image:image-20220601143921-4.png]]
361
362 **DOWNLINK**
363
364
365 [[image:image-20220601142805-5.png]]
366
367 **DOWNLINK**
368
369
370 === 1.3.4 How to configure and output commands for RS485 to USB ===
371
372
373 (((
374 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.
375 )))
376
377 (((
378 First, connect the A+ and A- of the USB to the 485 A and 485 B of the energy meter.
379 )))
380
381 (((
382 Open the serial port debugging, set the send and receive to HEX.
383 )))
384
385 (((
386 Baud rate: 9600
387 )))
388
389 (((
390 check digit: Even
391 )))
392
393 [[image:image-20220527093708-21.png]]
394
395 **USB**
396
397
398 [[image:image-20220527093747-22.png]]
399
400 **USB**
401
402
403
404 (((
405 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.
406 )))
407
408 (((
409 (% style="color:blue" %)**Example:**  (%%)input:01 03 00 31 00 02 95 c4
410 )))
411
412 (((
413 output:01 03 04 00 00 00 42 7A 02
414
415
416 )))
417
418 [[image:image-20220527093821-23.png]]
419
420 **USB**
421
422
423 === 1.3.5 How to configure multiple devices and modify device addresses ===
424
425
426 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.
427
428 (((
429 (((
430 Set the device address according to the parameters in the appendix of the MODBUS communication protocol.
431 )))
432 )))
433
434 [[image:image-20220601142044-1.png]]
435
436
437 (% style="color:blue" %)**Example**(%%): These two meters are examples of setting parameters and device addresses.
438
439
440 [[image:image-20220527093950-25.png]]
441
442
443 [[image:image-20220527094028-26.png]]
444
445
446 (((
447 (((
448 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.
449 )))
450 )))
451
452 (((
453 (((
454 We can use (% style="color:blue" %)**AT+CFGDEV**(%%) to set the device address.
455 )))
456 )))
457
458 (((
459 (((
460 We modify the device address 01 of the first energy meter to 02.
461 )))
462 )))
463
464 [[image:image-20220601142354-2.png]]
465
466
467 (% class="box infomessage" %)
468 (((
469 **AT+CFGDEV:01 10 00 61 00 01 02 00 02,1**
470 )))
471
472 * 01: device adaress
473
474 * 10: function code
475
476 * 00 61:Register address
477
478 * 00 01:Number of Registers
479
480 * 02:Number of bytes
481
482 * 00 02:Modified device address
483
484 * 1:Check code
485
486 The device address setting of the energy meter is complete.
487
488 Another energy meter is a single active energy meter with a floating-point format.
489
490 Its default device address is 01, and the following are the parameters for configuring two energy meters.
491
492 [[image:image-20220601142452-3.png]]
493
494
495 [[image:image-20220601142607-4.png]]
496
497
498 (% style="color:blue" %)**PAYLOAD: 01 08 DF 43 62**
499
500 * 08 DF is the valid value of the meter with device address 02.
501 * 43 62 is the valid value of the meter with device address 01.
502
503 (% style="display:none" %) (%%)
504
505
506 == 1.4 Example 4: Circuit Breaker Remote Open Close ==
507
508
509 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.
510
511 The structure is like below:
512
513 [[image:image-20220527094330-30.png]]
514
515 **Connection**
516
517
518 * Configure Documen:  [[Circuit Breaker Remote Open Close>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Circuit_Breaker_Remote_Open_Close/||_mstmutation="1"]]
519
520
521
522 == 1.5 Example 5: SEM Three Energy Meter with RS485-BL or RS485-LN ==
523
524
525 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-BL to connect to SEM Three Energy Meter and send the data to mobile phone for remote minitor. The structure is like below:
526
527 * Configure Document For RS485-BL:  [[Connect to SEM Three>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/RS485-BL/Application_Note/&file=Dragino%20RS485BL%20and%20pickdata%20SEM%20Three%20v1.pdf||_mstmutation="1" style="background-color: rgb(255, 255, 255);"]]
528
529 * Configure Document for RS485-LN:  [[Connect to SEM Three>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/SEM_Three_Energy_Meter/&file=SEM%20three%20and%20Dragino%20RS485-LN%20v1.pdf||_mstmutation="1"]]
530
531
532
533 == 1.6 Example 6: CEM C31 485-T1-MID Energy Meter with RS485-LN ==
534
535
536 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 CEM C31 485-T1-MID and send the data for remote minitor. The structure is like below:
537
538 * Configure Document For RS485-LN:  [[CEM C31 485-T1-MID>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/ELECTRICAL%20CABINET/&file=ELECTRICAL%20CABINET%20READINGS.pdf||_mstmutation="1" style="background-color: rgb(255, 255, 255);"]]
539
540
541
542 == 1.7 Example 7: Schneider Electric PLC M221 with RS485-BL ==
543
544
545 [[image:image-20220527094556-31.png]]
546
547
548 Network Structure
549
550 * [[Reference Instruction>>url:https://www.dragino.com/downloads/index.php?dir=RS485-LN/Application_Note/Schneider%20Electric%20PLC/]]
551
552
553
554 == 1.8 Example 8: This sketch is supposed to test Dragino RS485-BL (Modbus master), using an Arduino UNO as a Modbus slave. ==
555
556
557 This sketch uses 4 registers: some of them can be set by Dragino with a command, another is used to store value from a DS18B20 temperature sensor, or a random generated number. All data is 16bit uint, but the sketch shows also how to represent booleans and negative numbers.
558
559 In the next days I will be adding more documentation, but I think it already explains users how to build their own modbus sensor to pair with Dragino RS485-BL.
560
561 This is released the code under GNU LGPL licence on Github:
562
563 [[https:~~/~~/github.com/zorbaproject/ArduinoModbusForDraginoRS485>>url:https://github.com/zorbaproject/ArduinoModbusForDraginoRS485]]
564
565