Wiki source code of 07 Communication

Version 2.1 by Leo Wei on 2022/06/20 15:10

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