Wiki source code of 1 Communication

Version 22.1 by Ben on 2022/08/20 11:45

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