Wiki source code of 1 Communication

Version 38.1 by Ben on 2022/08/24 11:20

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