Wiki source code of 1 Communication

Version 50.1 by Ben on 2022/08/24 11:33

Hide last authors
Ben 50.1 1 = =
Leo Wei 1.1 2
3 (% class="table-bordered" %)
Ben 50.1 4 | | |
5 |(% rowspan="11" %) |(% rowspan="3" %) |
6 |
7 |
8 |(% rowspan="3" %) |
9 |
10 |
11 |(% rowspan="3" %) |
12 |
13 |
14 |(% rowspan="2" %) |
15 |
16 |(% rowspan="11" %) |(% rowspan="3" %) |
17 |
18 |
19 |(% rowspan="3" %) |
20 |
21 |
22 |(% rowspan="3" %) |
23 |
24 |
25 |(% rowspan="2" %) |
26 |
Leo Wei 1.1 27
Ben 24.1 28 = **WECON PLC** =
Leo Wei 1.1 29
Ben 44.1 30 == **LX3V 串行通信** ==
Ben 31.1 31
Ben 20.1 32 Supported series: WECON LX2V/ LX2E/ LX3V/LX3VP/LX3VE/LX3VM
Leo Wei 1.1 33
Ben 20.1 34 **HMI Settings**
Leo Wei 1.1 35
Ben 20.1 36 |**Item**|**Settings**|**Note**
37 |Protocol|WECON LX2V/ LX2E/ LX3V/LX3VP/LX3VE/LX3VM|
38 |Connection|RS422/RS485|
39 |Baud rate|9600|
40 |Data bit|7|
41 |Parity|EVEN|
42 |Stop bit|1|
43 |PLC station No.|1|
Leo Wei 1.1 44
Ben 20.1 45 **Address List**
46
47 |**Type**|**Device registers**|**HMI registers**|**Format**|**Range**|**Note**
48 |(% rowspan="6" %)Bit|X|X|Xo|0~~303237|
49 |Y|Y|Y o|0~~303237|
50 |M|M|M d|0~~99999|
51 |T|T|T d|0~~99999|
52 |C|C|C d|0~~99999|
53 |S|S|S d|0~~99999|
54 |(% rowspan="8" %)Word|X|X|Xo|0~~303237|
55 |Y|Y|Y o|0~~303237|
56 |M|M|M d|0~~99999|
57 |T|T|T d|0~~99999|
58 |C|C|C d|0~~199|
59 |D|D|D d|0~~7999|
60 |S|S|S d|0~~99999|
61 |SD|SD|SD d|8000~~9999|
62
63 **Cable Wiring**
64
65 * **RS485**
66
Ben 31.1 67 [[image:image-20220822172124-1.png]]
Ben 20.1 68
69 * **RS422**
70
Ben 31.1 71 [[image:image-20220822172228-2.png]]
Ben 20.1 72
Ben 30.1 73
Ben 20.1 74 **✎Note:**
75
76 * HMI COM3 is available in PI8000 series and COM3 is in COM2(hardware PIN 7 and PIN 8) .
77 * If PLC <= 20 points,such as LX3V-1208/LX3V-0806 PLC,PLC RS485A and RS485B mean PLC COM2 RS485+ and RS485- .PLC COM2 can support modbus. Please refer to PLC COM2 setting manual.
78
79 [[https:~~/~~/drive.google.com/drive/folders/13rgso7oUlatZQN_SNEcJCcN4toEdDPoP?usp=sharing>>url:https://drive.google.com/drive/folders/13rgso7oUlatZQN_SNEcJCcN4toEdDPoP?usp=sharing]]
80
Ben 43.1 81 == **LX5V serial communication** ==
Ben 28.1 82
Ben 34.1 83 This example introduces the establishment of serial port communication between Wecon V-BOX and LX5V. It is introduced through three parts: PLC software configuration, HMI software configuration, and hardware wiring.
Ben 20.1 84
85 **Software configuration of PLC**
86
87 **1)PLC programming software**
88
Ben 33.1 89 [[image:image-20220822172553-1.png]]
Ben 20.1 90
91 **2)New PLC project**
92
93 Click New Project and select the PLC model.
94
Ben 33.1 95 [[image:image-20220822172623-2.png]]
Ben 20.1 96
97 **3)Set Serial port parameters**
98
99 Follow the steps below to configure Serial port parameters
100
101 Baud rate:115200
102
103 Data bit:8
104
105 Stop bit:1
106
107 Parity:No verification
108
Ben 33.1 109 [[image:image-20220822172657-3.png]]
Ben 20.1 110
111 **4)Registers list**
112
Ben 33.1 113 [[image:image-20220822172730-4.png]]
Ben 20.1 114
Ben 33.1 115 **V-BOX software configuration**
Ben 28.1 116
Ben 35.1 117 **1)V-BOX programming software**
Ben 20.1 118
Ben 35.1 119 [[image:image-20220824104124-1.png]]
Ben 20.1 120
Ben 35.1 121 **2)V-NET add device**
Ben 20.1 122
Ben 35.1 123 Open V-NET client software → add device. As shown in the figure below, click "+" in the order of steps, and the Add Device window will pop up, enter the access key, password and remark, to add the device.
Ben 20.1 124
Ben 35.1 125 [[image:image-20220824104909-2.png]]
Ben 20.1 126
Ben 28.1 127
Ben 20.1 128 **3)Set communication port parameters**
129
130 Click the communication configuration button on the left to find the communication protocol with LX5V. After selecting the protocol, configure the communication parameters of the COM port.
131
132 Baud rate:115200
133
134 Data bit:8
135
136 Stop bit:1
137
138 Parity:No verification
139
140 [[image:image-20220811104012-1.png]]
141
Ben 28.1 142
Ben 20.1 143 **hardware connection**
144
145 **1)Hardware wiring diagram**
146
147 This example introduces WeconHMI with LX5V PLC to establish communication through serial port. The connection diagram is as follows:
148
Ben 28.1 149
150
Ben 20.1 151 [[image:image-20220811103005-4.png]]
152
153 [[image:image-20220811103227-7.png]]
154
155 The above are all the steps for establishing serial port communication between Wecon HMI with LX5V PLC.
156
Ben 45.1 157 == **LX5V-N Ethernet communication** ==
Ben 20.1 158
159 This example introduces the establishment of Ethernet communication between Wecon HMI and LX5V. It is introduced through three parts: PLC software configuration, HMI software configuration, and hardware wiring.
160
161 **Software configuration of PLC**
162
163 **1)PLC programming software**
164
165 [[image:image-20220810164710-1.png]]
166
167 **2)New PLC project**
168
169 Click New Project and select the PLC model.
170
171 [[image:image-20220811115454-1.png]]
172
173 **3)Set Ethernet port parameters**
174
175 Follow the steps below to configure Ethernet parameters
176
177 PLC IP address:192.168.39.200
178
179 default gateway:192.168.39.1
180
181 subnet mask:255.255.255.0
182
183 [[image:image-20220811140530-2.png]]
184
185 **4)Registers list**
186
187 [[image:image-20220811102219-3.png]]
188
189 **HMI software configuration**
190
191 **1)HMI programming software**
192
193 [[image:image-20220810171237-4.png]]
194
195 **2)New HMI project**
196
197 Click New Project and select the HMI model.
198
199 [[image:image-20220810172010-5.png]]
200
201 **3)Set communication port parameters**
202
203 Click the project setting button on the left to configure the IP address of the HMI machine to ensure that the HMI and PLC IP remain in a local area network.
204
205 HMI IP address:192.168.39.201
206
207 default gateway:192.168.39.1
208
209 subnet mask:255.255.255.0
210
211 [[image:image-20220811170753-2.png]]
212
213 Next, click Communication Settings to configure the IP of the HMI communication object.
214
215 [[image:image-20220811163047-1.png]]
216
217 **hardware connection**
218
219 **1)Hardware wiring diagram**
220
221 This example introduces WeconHMI with LX5V-N PLC to establish communication through ethernet. The connection diagram is as follows:
222
223 [[image:image-20220811170248-1.png]]
224
225 The above are all the steps for establishing ethernet communication between Wecon HMI with LX5V PLC.
226
227 (% style="text-align:center" %)
Jim 6.1 228 [[image:1624348978863-771.png||queryString="width=812&height=494" height="487" width="800" class="img-thumbnail"]]
Leo Wei 1.1 229
Ben 23.1 230 = **Rockwell PLC** =
Ben 22.1 231
Ben 37.1 232 == (% id="cke_bm_5621S" style="display:none" %)** **(%%)**MicroLogix** ==
233
234 MicroLogix 1000/1100/1200/1400/1500; SLC 5/03 5/04 5/05 PLC-5
235
236 **HMI Settings**
237
238 |**Item**|**Settings**|**Note**
239 |Protocol|Allen-Bradlley MicroLogix|
240 |Connection|RS232|
241 |Baud rate|19200|
242 |Data bit|8|
243 |Parity|None|
244 |Stop bit|1|
245 |PLC station No.|1|
246
247 **Address List**
248
249 |**Type**|**Device registers**|**Format**|**Range**|**Note**
250 |(% rowspan="5" %)Bit|I|I d.d|0.0~~255.15|
251 |O|O d.d|0.0~~255.15|
252 |B|B nnhh.dd|0.0~~ffff.15|nn: block number (hex)
253 |S|S d.d|0.0~~255.15|
254 |N|N nnhh.dd|0.0~~ffff.15|nn: block number (hex)
255 |(% rowspan="9" %)Word|S|S d|0~~255|
256 |TS|TS nnhh|0~~ffff|(% rowspan="8" %)nn: block number (hex)
257 |TP|TP nnhh|0~~ffff
258 |CS|CS nnhh|0~~ffff
259 |CP|CP nnhh|0~~ffff
260 |N|N nnhh|0~~ffff
261 |C|C nnhh|0~~ffff
262 |T|T nnhh|0~~ffff
263 |R|R nnhh|0~~ffff
264
265 **Cable Wiring**
266
267 [[image:image-20220824110724-1.png]]
268
269
270
271 == **CompactLogix** ==
272
Ben 11.1 273 (((
Ben 16.1 274 (((
Ben 38.1 275 This example introduces the establishment of Ethernet communication between Wecon V-box and CompactLogix L1769. It is introduced through three parts: PLC software configuration, V-box software configuration, and hardware wiring.
Ben 16.1 276 )))
Ben 11.1 277 )))
278
279 (((
Ben 15.1 280 (% class="wikigeneratedid" id="HSoftwareconfigurationofPLC" %)
281 (((
282 **Software configuration of PLC**
Ben 11.1 283 )))
284
Ben 15.1 285 (% class="wikigeneratedid" id="HPLCprogrammingsoftware" %)
Ben 11.1 286 (((
Ben 15.1 287 **1)PLC programming software**
288 )))
Ben 11.1 289
Ben 17.1 290 [[image:image-20220714162600-1.png]]
Ben 11.1 291
Ben 15.1 292 (% class="wikigeneratedid" id="HNewPLCproject" %)
Ben 11.1 293 (((
Ben 15.1 294 **2)New PLC project**
Ben 11.1 295 )))
296
297 (((
Ben 16.1 298 (((
Ben 15.1 299 Click New Project and select the PLC model.
Ben 11.1 300 )))
Ben 16.1 301 )))
Ben 11.1 302
303 (((
Ben 17.1 304 [[image:image-20220714162617-2.png]]
Ben 11.1 305 )))
306
307 (((
Ben 17.1 308
Ben 16.1 309
Ben 17.1 310 [[image:image-20220714162652-4.png]]
Ben 11.1 311 )))
312
313 (((
Ben 15.1 314 (% class="wikigeneratedid" id="HSetEthernetparameters" %)
315 (((
316 **3)Set Ethernet parameters**
317 )))
Ben 11.1 318
319 (((
Ben 15.1 320 (((
Ben 16.1 321 (((
Ben 11.1 322 Follow the steps below to configure Ethernet parameters
323 )))
Ben 15.1 324 )))
Ben 16.1 325 )))
Ben 11.1 326
327 (((
Ben 15.1 328 (((
Ben 16.1 329 (((
Ben 11.1 330 PLC IP address:192.168.40.101
331 )))
Ben 15.1 332 )))
Ben 16.1 333 )))
Ben 11.1 334
335 (((
Ben 15.1 336 (((
Ben 16.1 337 (((
Ben 11.1 338 default gateway:192.168.40.1
339 )))
Ben 15.1 340 )))
Ben 16.1 341 )))
Ben 11.1 342
343 (((
Ben 15.1 344 (((
Ben 16.1 345 (((
Ben 11.1 346 subnet mask:255.255.255.0
347 )))
Ben 15.1 348 )))
Ben 16.1 349 )))
Ben 11.1 350
351 (((
Ben 17.1 352 [[image:image-20220714162713-5.png]]
Ben 11.1 353 )))
354
355 (((
356
357 )))
358
359 (((
Ben 15.1 360 (% class="wikigeneratedid" id="HV-boxsoftwareconfiguration" %)
361 (((
362 **V-box software configuration**
363 )))
Ben 11.1 364
Ben 15.1 365 (% class="wikigeneratedid" id="HV-boxprogrammingsoftware" %)
366 (((
367 **1)V-box programming software**
368 )))
Ben 11.1 369
Ben 15.1 370 (% class="wikigeneratedid" %)
371 (((
Ben 17.1 372 [[image:image-20220714162725-6.png]]
Ben 15.1 373 )))
Ben 11.1 374
Ben 15.1 375 (% class="wikigeneratedid" id="HConfiguredevicenetwork" %)
376 (((
377 **2)Configure device network**
378 )))
Ben 11.1 379
380 (((
Ben 15.1 381 (((
Ben 16.1 382 (((
Ben 11.1 383 Click the Configuration Download button[[image:image-20220714115308-8.png||height="22" width="15"]], It is used to configure the device network, update the device time, obtain the device machine code, check the device network, etc.
384 )))
Ben 16.1 385
386 (((
387 In the example below, the IP address of V-Box is configured as 192.168.40.66, and the networking method is 4G connection
Ben 15.1 388 )))
Ben 16.1 389 )))
390 )))
Ben 11.1 391
392 (((
Ben 15.1 393 (((
Ben 17.1 394 [[image:image-20220714162737-7.png]]
Ben 16.1 395
396
Ben 11.1 397 )))
398 )))
399 )))
400 )))
401
Ben 15.1 402 (% class="wikigeneratedid" id="HV-netadddevice" %)
Ben 11.1 403 (((
Ben 15.1 404 **3)V-net add device**
Ben 11.1 405 )))
Ben 15.1 406 )))
Ben 11.1 407
408 (((
Ben 16.1 409 (((
Ben 21.1 410 Open VNET client software → add device. As shown in the figure below, click "+" in the order of steps, and the Add Device window will pop up, enter the device machine code/product code, device password, and device alias to add the device.   [[image:image-20220714162752-8.png]]
Ben 11.1 411 )))
412
413
414 )))
415
416 (((
Ben 15.1 417 (% class="wikigeneratedid" id="HSetcommunicationportparameters" %)
418 (((
419 **4)Set communication port parameters**
420 )))
Ben 11.1 421
Ben 16.1 422 (((
423 In the device list on the left, find the Vbox that communicates with the L1769, click it and select configuration,communication port configuration in the main interface to add a communication protocol.
Ben 11.1 424 )))
425
Ben 17.1 426 [[image:image-20220714162805-9.png]]
Ben 16.1 427 )))
428
429 (((
Ben 11.1 430 The communication port is selected as Ethernet, the device type is selected as Allen-Bradley, the protocol is Allen-BradleyMicro850_FreeTag EthemetIP, and the IP is the internal IP address of the L1769 PLC. The port number is 44818.
Ben 16.1 431 )))
Ben 11.1 432
Ben 17.1 433 [[image:image-20220714162814-10.png]]
Ben 11.1 434
435
Ben 16.1 436 (((
Ben 22.1 437 After adding the protocol Allen-BradleyMicro850_FreeTag, click[[image:image-20220714143838-2.png]]icon add label.[[image:image-20220714162827-11.png]]
Ben 16.1 438 )))
Ben 14.1 439
Ben 16.1 440 (% class="wikigeneratedid" id="HEngineeringproduction" %)
441 (((
442 **5)Engineering production**
443 )))
Ben 14.1 444
Ben 16.1 445 (% class="wikigeneratedid" %)
446 (((
447 (((
448 According to your own needs, use the V-NET client software to edit the required data monitoring points.
449 )))
Ben 14.1 450
Ben 17.1 451 [[image:image-20220714162841-12.png]]
Ben 14.1 452
Ben 16.1 453
454 (((
455 **hardware connection**
456 )))
457 )))
458
459 (((
460 **1)Hardware wiring diagram**
461 )))
462
463 (((
464 (((
465 This example introduces Wecon V-box with Allen-Bradley L1769 PLC to establish communication through Ethernet. The connection diagram is as follows:
466 )))
467
Ben 17.1 468 [[image:image-20220714162856-13.png]]
Ben 16.1 469
470 (((
Ben 41.1 471 The above are all the steps for establishing Ethernet communication between Wecon V-box with CompactLogix L1769 PLC.
Ben 26.1 472
473
474 == **Allen-Bradley Ethernet DF1** ==
475
476 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Allen-Bradley%20Ethernet%20DF1.zip]]
477
478
479 = **Siemens PLC** =
Ben 16.1 480 )))
481 )))
482
Stone Wu 10.1 483 == **Siemens S7-1200** ==
Leo Wei 1.1 484
485 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communicate%20with%20S7-1200%20via%20Ehernet.zip]]
486
Stone Wu 10.1 487 == **Communication with S7-200 Smart** ==
Leo Wei 1.1 488
489 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communication%20with%20S7-200%20Smart.zip]]
490
Ben 26.1 491 = **Delta PLC** =
492
Stone Wu 10.1 493 == **Delta DVP Ethernet** ==
Leo Wei 1.1 494
495 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Delta%20DVP%20Ethernet.zip]]
496
Stone Wu 10.1 497 == **Delta DVP Serial Protocol** ==
Leo Wei 1.1 498
499 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Delta%20DVP%20Ethernet.zip]]
500
Ben 47.1 501 = **Mitsubishi PLC** =
502
Stone Wu 10.1 503 == **Communicate with Mitsubishi FX Series** ==
Jim 6.1 504
505 [[download link>>url:https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communicate%20with%20Mitsubishi%20FX%20Series.zip]]
506
Stone Wu 10.1 507 == **Communicate with VB inverter** ==
Jim 6.1 508
509 [[download link>>url:https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communicate%20with%20VB%20inverter.zip]]
510
Ben 48.1 511 = **Omron PLC** =
512
Stone Wu 10.1 513 == **Omron CP1 Series** ==
Jim 7.1 514
Jim 8.1 515 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communication%20with%20ORMON%20CP1%20Series.zip]]
Jim 7.1 516
Stone Wu 10.1 517 == **Omron CJ2M** ==
Jim 7.1 518
Jim 8.1 519 [[download link>>https://ftp.we-con.com.cn/Download/WIKI/V-BOX/Demo/%E9%80%9A%E8%AE%AF%E6%A1%88%E4%BE%8B/Communication%20with%20ORMON%20CJ2M.zip]]
Jim 7.1 520
Ben 50.1 521
522 = **Modbus RTU** =
523
524 === **V-BOX as master** ===
525
526 Select the protocol “(% class="mark" %)Modbus RTU Slave(All Fuction)”,
527
528 (% class="mark" %)then set BaudRate,Port,Stop Bit,Data Bit,Parity
529
530 (% style="text-align:center" %)
531 [[image:1624342015914-382.png||height="486" width="800" class="img-thumbnail"]]
532
533 === **V-BOX as slave** ===
534
535 Select the protocol “(% class="mark" %)**Modbus RTU Master”**,
536
537 (% class="mark" %)then set BaudRate,Port,Stop Bit,Data Bit,Parity
538
539 (% style="text-align:center" %)
540 [[image:1624348709622-711.png||queryString="width=809&height=493" height="488" width="800" class="img-thumbnail"]]
541
542 **Address List**
543
544 (% class="table-bordered" %)
545 |**Type**|**Register**|**Function code & Description**
546 |(% rowspan="11" %)Word|(% rowspan="3" %)3|04 (read input register: read current binary value in one or more input registers)
547 |06 (write single register: write a binary value to a holding register)
548 |10 (write values to multiple addresses )
549 |(% rowspan="3" %)4|03 (read holding register: read current binary value in one or more holding registers)
550 |06 (write single register: write a binary value to a holding register)
551 |10 (write values to multiple addresses )
552 |(% rowspan="3" %)W6|03 (read holding register: read current binary value in one or more holding registers)
553 |06 (write single register: write a binary value to a holding register)
554 |10 (write values to multiple addresses )
555 |(% rowspan="2" %)W16|03 (read holding register: read current binary value in one or more holding registers)
556 |10 (write values to multiple addresses )
557 |(% rowspan="11" %)Bit|(% rowspan="3" %)0|01 (Read coil state)
558 |05 (Force a single coil to force the on/off state of a logic coil)
559 |0F (Write multiple bits, ie write continuously)
560 |(% rowspan="3" %)1|02 (Read the input state)
561 |05 (Force a single coil to force the on/off state of a logic coil)
562 |0F (Write multiple bits)
563 |(% rowspan="3" %)W5|01 (Read coil state to obtain the current state of a set of logic coils)
564 |05 (Force a single coil to force the on/off state of a logic coil)
565 |0F (Write multiple bits)
566 |(% rowspan="2" %)W15|01 (Read coil state to obtain the current state of a set of logic coils)
567 |0F (Write multiple bits)
568
Leo Wei 1.1 569 = **2 User define protocol** =
570
Stone Wu 19.1 571 More serial port script instruction,please refer manual:[[Lua script function>>doc:V-BOX.V-Net.Manual.04 Lua Script.01 Lua Functions.WebHome]]~-~-->[[3.Serial port operation>>url:http://docs.we-con.com.cn/wiki/vbox/view/HMI/04.Lua%20script%20%20function%20and%20operation/01.Lua%20script%20function/#H3.Serialportoperation]]
Leo Wei 1.1 572
Stone Wu 10.1 573 == **Read the temperature sensor.** ==
Leo Wei 1.1 574
575 the commond format is as beliow:
576
577 Send commond:01 03 02 00 00 03 04 73
578
579 Feedback commond:01 03 06 07 F7 0E 7E B7 35
580
581 Temperature data:07 F7,desimal = 2039,it means temperature is 20.39℃.
582
583 Humidity data:0E 7E,desimal = 3710, it mean humidity is 37.10%RH.
584
585 Script Demo:
586
587 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~--
588
589 function com.main()
590 ~-~-dosomething
591 openPlc()
592 end
593 function openPlc()
594 if obj then
595 ~-~- If the serial port opened,then read/write data by timing
596
597 local wri = string.pack(">HHHH",0X0103,0X0200,0X0003,0X0473)
598 local arr = reading(wri)
599 ~-~- if arr ~~=nil then
600 ~-~- if arr[1] ==33 and arr[2] ==v[2][2] and arr[3] ==v[2][3] then
601 ~-~- local A = arr[4]*256
602 ~-~- local B = A+arr[5]
603 ~-~- addr_setword(v[1],B)
604 ~-~- end
605 ~-~- end
606
607 else
608 ~-~-judge if there is a serial object, then initialize and open the serial port
609 local configs = {
610 name = 'COM1', ~-~-Select serial port COM1
611 mode = 485, ~-~-Communication mode RS485
612 baud_rate = 9600, ~-~-Baud rate 9600
613 stop_bit = 1, ~-~-stop bit 1
614 data_len = 8, ~-~-data length 8
615 check_bit = 'NONE', ~-~-no parity
616
617 }
618 obj,err = serial.open(configs) ~-~-Open serial port
619 if not obj then
620 print("serial open :failed", err) ~-~- Open serial port failed
621 end
622 end
623 end
624
625 function reading(wri)
626 obj:flush() ~-~- Clear serial port
627 obj:write(wri) ~-~- Write serial port
628 print(string.byte(wri,1,#wri))
629 obj:flush() ~-~- Clear serial port 
630 local readed =obj:read(9,1000) ~-~- Read 9 bytes, timeout 1 second
631 if readed and readed ~~= "" then 
632 ~-~- judge that a non-empty string is read
633 print(string.byte(readed,1,#readed))
634 a={string.byte(readed, 1, #readed)}
635 if nil ~~= a[4] and nil ~~= a[5] and nil ~~= a[6] and nil ~~= a[7] then
636 a1=a[4]*256+a[5]
637 a2=a[6]*256+a[7]
638 addr_setword("@HDW0",a1)
639 addr_setword("@HDW1",a2)
640 end
641 return {string.byte(readed, 1, #readed)}
642 elseif readed == nil then
643 print("serial read err:", err or "")
644 return nil
645 end
646 return nil
647 end
648
649 ~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-