Wiki source code of 1 Communication

Version 70.1 by Ben on 2022/08/24 14:26

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