Wiki source code of 1 Communication

Version 79.1 by Ben on 2022/08/24 15:18

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