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