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