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