Wiki source code of 07 Communication

Version 1.1 by Leo Wei on 2022/06/08 12:57

Show last authors
1 = **1 PLC COM2 Modbus RTU** =
2
3 == **1.1 Protocol Setting (D8126)** ==
4
5 (% border="1" %)
6 |**Protocol**|**Description**|**Value of D8126**
7 |WECON PLC Protocol|Using WECON PLC Protocol|01H
8 |MODBUS RTU Master|PLC is slave device|02H
9 |MODBUS ASCII Master|PLC is slave device|03H
10 |MODBUS RTU Slave|PLC is master device|20H
11 |MODBUS ASCII Slave|PLC is master device|30H
12
13 == **1.2 Communication Format (D8120)** ==
14
15 (% border="1" %)
16 |(% rowspan="2" %)**Item**|(% rowspan="2" %)**parameter**|(% colspan="8" %)**Bit value of D8120**
17 |**b7**|**b6**|**b5**|**b4**|**b3**|**b2**|**b1**|**b0**
18 |(% rowspan="6" %)(((
19
20
21
22 Baud rate
23
24 (Bps)
25 )))|115200|1|1|0|0|-|-|-|-
26 |57600|1|0|1|1|-|-|-|-
27 |38400|1|0|1|0|-|-|-|-
28 |19200|1|0|0|1|-|-|-|-
29 |9600|1|0|0|0|-|-|-|-
30 |4800|0|1|1|1|-|-|-|-
31 |(% rowspan="2" %)Stop bit|1 bit|-|-|-|-|0|-|-|-
32 |2 bit|-|-|-|-|1|-|-|-
33 |(% rowspan="3" %)(((
34
35
36 Parity
37 )))|None|-|-|-|-|-|0|0|-
38 |Odd|-|-|-|-|-|0|1|-
39 |Even|-|-|-|-|-|1|1|-
40 |(% rowspan="2" %)Data bit|7 bit|-|-|-|-|-|-|-|0
41 |8 bit|-|-|-|-|-|-|-|1
42 |(% colspan="10" %)Example: the communication format is 9600.1.8.None, b7b6b5b4=1000, b3=0, b2b1=00, b 0=1. D8120=81H ( (10000001),,2,,=81H, 81H means [[hexadecimal>>path:C:/Users/Administrator/AppData/Local/Yodao/DeskDict/frame/20140818134937/javascript:void(0);]] [[number>>path:C:/Users/Administrator/AppData/Local/Yodao/DeskDict/frame/20140818134937/javascript:void(0);]])
43
44 **✎Note:** If use Data bit=7.Parity can not choose None.
45
46 == **1.3 WECON PLC - MODBUS (Slave) addresses rules** ==
47
48 (% border="1" %)
49 |(% colspan="3" %)** PLC Bit Address**
50 |(% rowspan="2" %)PLC Address|(% colspan="2" %)MODBUS Address
51 |Hex|Decimal
52 |M0 ~~ M3071|0 ~~ 0xBFF|0 ~~ 3071
53 |M8000 ~~ M8256|0x1F40 ~~ 0x2040|8000 ~~ 8256
54 |S0 ~~ S999|0xE000 ~~ 0xE3E7|57344 ~~ 58343
55 |T0 ~~ T256|0xF000 ~~ 0xF100|61440 ~~ 61696
56 |C0 ~~ C255|0xF400 ~~ 0xF4FF|62464 ~~ 62719
57 |X0 ~~ X255|0xF800 ~~ 0xF9FE|63488 ~~ 63998
58 |Y0 ~~ Y255|0xFC00 ~~ 0xFDFE|64512 ~~ 65022
59 |(% colspan="3" %)** PLC Word Address**
60 |(% rowspan="2" %)PLC Address|(% colspan="2" %)MODBUS Address
61 |Hex|Decimal
62 |D0 ~~ D8255|0 ~~ 0x203F|0 ~~ 8255
63 |T0 ~~ T255|0xF000 ~~ 0xF0FF|61440 ~~ 61695
64 |C0 ~~ C199|0xF400 ~~ 0xF4C7|62464 ~~ 62663
65 |C200 ~~ C255|0xF700 ~~ 0xF7FF|63232 ~~ 63487
66
67 == **1.4 MODBUS Function Code Introduction** ==
68
69 **(1) Function code 0x01(01): read coil (bit address)**
70
71 Frame format: Station number of slave&0x01 + start address + number of coils + CRC
72
73 (% border="1" %)
74 |No.|(% style="width:352px" %)Data|(% style="width:252px" %)Number of byte|Instruction
75 |1|(% style="width:352px" %)Station number of slave|(% style="width:252px" %)1 byte|Value range 1~~247, set by D8121
76 |2|(% style="width:352px" %)0x01(function code)|(% style="width:252px" %)1 byte|Read coil
77 |3|(% style="width:352px" %)Start address|(% style="width:252px" %)2 bytes|
78 |4|(% style="width:352px" %)Number of coils|(% style="width:252px" %)2 bytes|
79 |5|(% style="width:352px" %)CRC|(% style="width:252px" %)2 bytes|
80
81 **(2) Function code 0x03(03): read register (word address)**
82
83 Frame format: Station number of slave&0x03 + start address+ number of registers + CRC
84
85 (% border="1" %)
86 |No.|Data|Number of byte|Instruction
87 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
88 |2|0x03 (function code)|1 byte|Read register
89 |3|Start address|2 bytes|
90 |4|Number of registers|2 bytes|
91 |5|CRC|2 bytes|
92
93 **(3) Function code 0x05(05): write single coil**
94
95 Frame format: Station number of slave&0x05 + address + state of coil + CRC
96
97 (% border="1" %)
98 |No.|Data|Number of byte|Instruction
99 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
100 |2|0x05 (function code)|1 byte|Write single coil
101 |3|address|2 bytes|
102 |4|State of coil|2 bytes|
103 |5|CRC|2 bytes|
104
105 **(4) Function code 0x06 (06): Write single register**
106
107 Frame format: Station number of slave&0x06 + address + value + CRC
108
109 (% border="1" %)
110 |No.|Data|Number of byte|Instruction
111 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
112 |2|0x06 (function code)|1 byte|Write single register
113 |3|address|2 bytes|
114 |4|Value of register|2 bytes|
115 |5|CRC|2 bytes|
116
117 **(5) Function code 0x0f(15): Write continuous coils**
118
119 Frame format: Station number of slave&0x0f + start address + number of coils + length + state of coil + CRC
120
121 (% border="1" %)
122 |No.|Data|Number of byte|Instruction
123 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
124 |2|0x0f (function code)|1 byte|Write contunuous coils
125 |3|Start address|2 bytes|
126 |4|Number of coil|2 bytes|
127 |5|Length|1 bytes|
128 |6|State of coils|[(N+7)/8] bytes|
129 |7|CRC|2 bytes|
130
131 **(6) Function code 0x10 (10): Write continuous registers**
132
133 Frame format: Station number of slave&0x10 + start address + number of registers + length + value of register + CRC
134
135 (% border="1" %)
136 |No.|Data|Number of byte|Instruction
137 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
138 |2|0x10 (function code)|1 byte|Write contunuous registers
139 |3|Start address|2 bytes|
140 |4|Number of registers|2 bytes|
141 |5|Length|1 bytes|
142 |6|Value of register|N*2 bytes|
143 |7|CRC|2 bytes|
144
145 == **1.5 Example** ==
146
147 **(1) Read bit address from device**
148
149 **(When reading the bit address, the return value of 256 means that the coil is turned ON, and the return value of 0 means that the coil is turned OFF.)**
150
151 (% style="text-align:center" %)
152 [[image:1641781999957-637.png||class="img-thumbnail" height="390" width="750"]]
153
154 **(2) Read word address from device**
155
156 (% style="text-align:center" %)
157 [[image:1641782024282-424.png||class="img-thumbnail" height="439" width="750"]]
158
159 **(3) Write single coil**
160
161 (% style="text-align:center" %)
162 [[image:1641782057319-761.png||class="img-thumbnail" height="440" width="750"]]
163
164 **Tip:**
165
166 **(When writing a single coil or a continuous coil, write HFF00 to turn the coil on, and write H0000 to turn off the coil.)**
167
168 **(4) Write single register**
169
170 (% style="text-align:center" %)
171 [[image:1641782078927-432.png||class="img-thumbnail" height="442" width="750"]]
172
173 **(5) Write continuous coils**
174
175 (% style="text-align:center" %)
176 [[image:1641782101687-540.png||class="img-thumbnail" height="452" width="750"]]
177
178 **(6) Write continuous registers**
179
180 (% style="text-align:center" %)
181 [[image:1641782118748-978.png||class="img-thumbnail" height="448" width="750"]]
182
183
184 **(7) PLC is slave devic**
185
186 [[image:1641782203514-616.png||height="230" width="746"]]
187
188
189 **(8) WECON PLC Protocol (COM2)**
190
191 [[image:1641782240401-942.png||height="161" width="754"]]
192
193 = (% style="color:inherit; font-family:inherit" %)**2 N:N network**(%%) =
194
195 **LX3VP COM2 N:N Application**
196
197 == **2.1 LX3VP COM2 N:N Connection** ==
198
199 PLC built-in N:N connection protocol provides a effective way to exchange data among multiple PLC (Max. 8 devices). Technically, it only requires the twisted pair RS485 cable to connect with each PLC COM2 (in parallel).
200
201 (% style="text-align:center" %)
202 [[image:9.Communication example_html_8c43baa1ae891689.jpg||class="img-thumbnail" height="142" width="500"]]
203
204 === **2.1.1 COM2 N:N Instructions  ** ===
205
206 User should put data to specified register unit. Exchanging the data among PLCs, This function only requires putting data in preset register block, all the data in this register block would share with other PLCs. There are five modes for choice, according to data volume and communication speed. See the preset register block from table below.
207
208 (% border="1" %)
209 |(% colspan="2" rowspan="3" %)**Station Number**|(% colspan="2" %)**Mode 0**|(% colspan="2" %)**Mode 1**|(% colspan="2" %)**Mode 2**
210 |**Bit (M)**|**Word(D)**|**Bit (M)**|**Word(D)**|**Bit (M)**|**Word(D)**
211 |**0**|**4**|**32**|**4**|**64**|**8**
212 |Master|NO. 0|~-~-|0-3|1000-1031|0-3|1000-1063|0-7
213 |(% rowspan="7" %)Slave|NO. 1|~-~-|32-35|1064-1095|32-35|1064-1127|32-39
214 |NO. 2|~-~-|64-67|1128-1159|64-67|1128-1191|64-71
215 |NO. 3|~-~-|96-99|1192-1223|96-99|1192-1255|96-103
216 |NO. 4|~-~-|128-131|1256-1287|128-131|1256-1319|128-135
217 |NO. 5|~-~-|160-163|1320-1351|160-163|1320-1383|160-167
218 |NO. 6|~-~-|192-195|1384-1415|192-195|1384-1447|192-199
219 |NO. 7|~-~-|224-227|1448-1479|224-227|1448-1511|224-231
220 |(% colspan="2" rowspan="3" %)**Station Number**|(% colspan="2" %)**Mode 3**|(% colspan="2" %)**Mode 4**| |
221 |**Bit (M)**|**Word(D)**|**Bit (M)**|**Word(D)**| |
222 |**64**|**16**|**64**|**32**| |
223 |Master|NO. 0|1000-1063|0-15|1000-1063|0-31| |
224 |(% rowspan="7" %)Slave|NO. 1|1064-1127|32-47|1064-1127|32-63| |
225 |NO. 2|1128-1191|64-79|1128-1191|64-95| |
226 |NO. 3|1192-1255|96-111|1192-1255|96-127| |
227 |NO. 4|1256-1319|128-143|1256-1319|128-159| |
228 |NO. 5|1320-1383|160-175|1320-1383|160-191| |
229 |NO. 6|1384-1447|192-207|1384-1447|192-223| |
230 |NO. 7|1448-1511|224-239|1448-1511|224-255| |
231
232 Communication between each PLC (up to 8 PLC), please see the connection construction below (For 3 PLC interconnection).
233
234 (% style="text-align:center" %)
235 [[image:9.Communication example_html_b805bca9e1166337.jpg||class="img-thumbnail" height="93" width="600"]]
236
237 === **2.1.2 The special devices in N: N network** ===
238
239 (% border="1" %)
240 |**Register**|**Description**
241 |D8120|Communication format settings
242 |D8126|COM2 communication protocol settings, 40h means N:N Master Device, 04h means N:N Slave device
243 |D8176|Station number, from 0 to 7, 0 means master device
244 |D8177|Total station number, from 1 to 7, only required for master device.
245 |D8178|Register block setting, from 0 to 5, only required for master device.
246 |D8179|Retry count settings, only required for master device.
247 |D8180|Timeout setting, unit: 10ms,only required for master device.
248 |D8201|Current connection scould time
249 |D8202|Maximum connection scould time
250 |D8203|Master error counter
251 |D8204~~D8210|Slave error counter
252 |D8211|Master N:N error code
253 |D8212~~D8218|Slave N:N error code
254 |M8183|Master data transfer sequence error
255 |M8183~~M8190|(((
256 Communication error flag:
257
258 M8183 - No.0 (Master);
259
260 M8184 - No. 1 (Slave 1)
261
262 ......
263 )))
264 |M8191|Processing sending data
265
266 === **2.1.3 Communications format:** ===
267
268 (% border="1" %)
269 |**Item**|(% style="width:115px" %)**Parameters**|(% style="width:239px" %)**b15(RS2)**|**b14-b8**|**b7**|**b6**|**b5**|**b4**|**b3**|**b2**|**b1**|**b0**
270 |(% rowspan="2" %)**Bit mode**|(% style="width:115px" %)8 bit|(% style="width:239px" %)0|(% rowspan="15" %)Retention|-|-|-|-|-|-|-|-
271 |(% style="width:115px" %)16-bit|(% style="width:239px" %)1|-|-|-|-|-|-|-|-
272 |(% rowspan="6" %)**Baud rate (Bps)**|(% style="width:115px" %)115200|(% style="width:239px" %)-|1|1|0|0|-|-|-|-
273 |(% style="width:115px" %)57600|(% style="width:239px" %)-|1|0|1|1|-|-|-|-
274 |(% style="width:115px" %)38400|(% style="width:239px" %)-|1|0|1|0|-|-|-|-
275 |(% style="width:115px" %)19200|(% style="width:239px" %)-|1|0|0|1|-|-|-|-
276 |(% style="width:115px" %)9600|(% style="width:239px" %)-|1|0|0|0|-|-|-|-
277 |(% style="width:115px" %)4800|(% style="width:239px" %)-|0|1|1|1|-|-|-|-
278 |(% rowspan="2" %)**Stop bit**|(% style="width:115px" %)1 bit|(% style="width:239px" %)-|-|-|-|-|0|-|-|-
279 |(% style="width:115px" %)2 bit|(% style="width:239px" %)-|-|-|-|-|1|-|-|-
280 |(% rowspan="3" %)**Parity**|(% style="width:115px" %)None|(% style="width:239px" %)-|-|-|-|-|-|0|0|-
281 |(% style="width:115px" %)Odd|(% style="width:239px" %)-|-|-|-|-|-|0|1|-
282 |(% style="width:115px" %)Even|(% style="width:239px" %)-|-|-|-|-|-|1|1|-
283 |(% rowspan="2" %)**Data bit**|(% style="width:115px" %)7 bit|(% style="width:239px" %)-|-|-|-|-|-|-|-|0
284 |(% style="width:115px" %)8 bit|(% style="width:239px" %)-|-|-|-|-|-|-|-|1
285
286 === **2.1.4 Program example** ===
287
288 LX3VP COM2 port communication parameters: 9600, 1, 8, NONE. Register block mode: 3
289
290 **PLC as master**
291
292 (% style="text-align:center" %)
293 [[image:9.Communication example_html_a3fdef81ab69639.jpg||class="img-thumbnail" height="448" width="750"]]
294
295 PLC as slave
296
297 (% style="text-align:center" %)
298 [[image:9.Communication example_html_cc8af72b56d9c539.jpg||class="img-thumbnail" height="236" width="750"]]
299
300 **Note for use**
301
302 * There are two modes of N:N protocol configuration. one is LX3VP built-in N:N protocol, the other one is LX3V N:N protocol (LX3V-2RS485-BD required).
303 * In LX3VP series PLC, only one kind of N:N configuration available. Second mode would be disabled when LX3VP built-in N:N protocol configured.
304
305 == (% style="color:inherit; font-family:inherit" %)**3 RS485-BD and ETH-BD communiaction**(%%) ==
306
307 Please kindly check the link as below.
308
309 (% class="box warningmessage" %)
310 (((
311 **Note:**at present 5V PLC can not support RS485-BD and ETH-BD
312 )))
313
314 [[http:~~/~~/docs.we-con.com.cn/wiki/bdmodule/view/Main/Communication/2RS485-BD-3V/>>http://docs.we-con.com.cn/wiki/bdmodule/view/Main/Communication/2RS485-BD-3V/]]
315
316 [[http:~~/~~/docs.we-con.com.cn/wiki/bdmodule/view/Main/Communication/LX3VP-ETH-BD/>>http://docs.we-con.com.cn/wiki/bdmodule/view/Main/Communication/LX3VP-ETH-BD/]]