Wiki source code of 07 Communication

Version 9.1 by Jim on 2023/07/12 11:50

Show last authors
1 = **1 PLC COM2 Modbus RTU** =
2
3 == **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 == **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 number)
42
43 (% class="box infomessage" %)
44 (((
45 **✎Note:** If use Data bit=7.Parity can not choose None.
46 )))
47
48 == **WECON PLC - MODBUS (Slave) addresses rules** ==
49
50 (% border="1" %)
51 |(% colspan="3" %)** PLC Bit Address**
52 |(% rowspan="2" %)PLC Address|(% colspan="2" %)MODBUS Address
53 |Hex|Decimal
54 |M0 ~~ M3071|0 ~~ 0xBFF|0 ~~ 3071
55 |M8000 ~~ M8256|0x1F40 ~~ 0x2040|8000 ~~ 8256
56 |S0 ~~ S999|0xE000 ~~ 0xE3E7|57344 ~~ 58343
57 |T0 ~~ T256|0xF000 ~~ 0xF100|61440 ~~ 61696
58 |C0 ~~ C255|0xF400 ~~ 0xF4FF|62464 ~~ 62719
59 |X0 ~~ X377|0xF800 ~~ 0xF8FF|63488 ~~ 63743
60 |Y0 ~~ Y255|0xFC00 ~~ 0xFCFF|64512 ~~ 64767
61 |(% colspan="3" %)** PLC Word Address**
62 |(% rowspan="2" %)PLC Address|(% colspan="2" %)MODBUS Address
63 |Hex|Decimal
64 |D0 ~~ D8255|0 ~~ 0x203F|0 ~~ 8255
65 |T0 ~~ T255|0xF000 ~~ 0xF0FF|61440 ~~ 61695
66 |C0 ~~ C199|0xF400 ~~ 0xF4C7|62464 ~~ 62663
67 |C200 ~~ C255|0xF700 ~~ 0xF7FF|63232 ~~ 63487
68
69 == **MODBUS function code introduction** ==
70
71 **Function code 0x01(01): read coil (bit address)**
72
73 Frame format: Station number of slave&0x01 + start address + number of coils + CRC
74
75 (% border="1" %)
76 |No.|(% style="width:352px" %)Data|(% style="width:252px" %)Number of byte|Instruction
77 |1|(% style="width:352px" %)Station number of slave|(% style="width:252px" %)1 byte|Value range 1~~247, set by D8121
78 |2|(% style="width:352px" %)0x01(function code)|(% style="width:252px" %)1 byte|Read coil
79 |3|(% style="width:352px" %)Start address|(% style="width:252px" %)2 bytes|
80 |4|(% style="width:352px" %)Number of coils|(% style="width:252px" %)2 bytes|
81 |5|(% style="width:352px" %)CRC|(% style="width:252px" %)2 bytes|
82
83 **Function code 0x03(03): read register (word address)**
84
85 Frame format: Station number of slave&0x03 + start address+ number of registers + CRC
86
87 (% border="1" %)
88 |No.|Data|Number of byte|Instruction
89 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
90 |2|0x03 (function code)|1 byte|Read register
91 |3|Start address|2 bytes|
92 |4|Number of registers|2 bytes|
93 |5|CRC|2 bytes|
94
95 **Function code 0x05(05): write single coil**
96
97 Frame format: Station number of slave&0x05 + address + state of coil + CRC
98
99 (% border="1" %)
100 |No.|Data|Number of byte|Instruction
101 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
102 |2|0x05 (function code)|1 byte|Write single coil
103 |3|address|2 bytes|
104 |4|State of coil|2 bytes|
105 |5|CRC|2 bytes|
106
107 **Function code 0x06 (06): Write single register**
108
109 Frame format: Station number of slave&0x06 + address + value + CRC
110
111 (% border="1" %)
112 |No.|Data|Number of byte|Instruction
113 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
114 |2|0x06 (function code)|1 byte|Write single register
115 |3|address|2 bytes|
116 |4|Value of register|2 bytes|
117 |5|CRC|2 bytes|
118
119 **Function code 0x0f(15): Write continuous coils**
120
121 Frame format: Station number of slave&0x0f + start address + number of coils + length + state of coil + CRC
122
123 (% border="1" %)
124 |No.|Data|Number of byte|Instruction
125 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
126 |2|0x0f (function code)|1 byte|Write contunuous coils
127 |3|Start address|2 bytes|
128 |4|Number of coil|2 bytes|
129 |5|Length|1 bytes|
130 |6|State of coils|[(N+7)/8] bytes|
131 |7|CRC|2 bytes|
132
133 **Function code 0x10 (10): Write continuous registers**
134
135 Frame format: Station number of slave&0x10 + start address + number of registers + length + value of register + CRC
136
137 (% border="1" %)
138 |No.|Data|Number of byte|Instruction
139 |1|Station number of slave|1 byte|Value range 1~~247, set by D8121
140 |2|0x10 (function code)|1 byte|Write contunuous registers
141 |3|Start address|2 bytes|
142 |4|Number of registers|2 bytes|
143 |5|Length|1 bytes|
144 |6|Value of register|N*2 bytes|
145 |7|CRC|2 bytes|
146
147 == **Example** ==
148
149 **Read bit address from device**
150
151 (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.)
152
153 (% style="text-align:center" %)
154 [[image:1641781999957-637.png||height="390" width="750" class="img-thumbnail"]]
155
156 **Read word address from device**
157
158 (% style="text-align:center" %)
159 [[image:1641782024282-424.png||height="439" width="750" class="img-thumbnail"]]
160
161 **Write single coil**
162
163 (% style="text-align:center" %)
164 [[image:1641782057319-761.png||height="440" width="750" class="img-thumbnail"]]
165
166 Tip: (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 **Write single register**
169
170 (% style="text-align:center" %)
171 [[image:1641782078927-432.png||height="442" width="750" class="img-thumbnail"]]
172
173 **Write continuous coils**
174
175 (% style="text-align:center" %)
176 [[image:1641782101687-540.png||height="452" width="750" class="img-thumbnail"]]
177
178 **Write continuous registers**
179
180 (% style="text-align:center" %)
181 [[image:1641782118748-978.png||height="448" width="750" class="img-thumbnail"]]
182
183 **PLC is slave devic**
184
185 [[image:1641782203514-616.png||height="230" width="746"]]
186
187
188 **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 == **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||height="142" width="500" class="img-thumbnail"]]
202
203 == **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||height="93" width="600" class="img-thumbnail"]]
235
236 == **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 == **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 == **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||height="448" width="750" class="img-thumbnail"]]
293
294 **PLC as slave**
295
296 (% style="text-align:center" %)
297 [[image:9.Communication example_html_cc8af72b56d9c539.jpg||height="236" width="750" class="img-thumbnail"]]
298
299 (% class="box infomessage" %)
300 (((
301 ✎**Note:**
302
303 * 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).
304 * 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.
305 )))
306
307 = (% style="color:inherit; font-family:inherit" %)**3 RS485-BD and ETH-BD communiaction**(%%) =
308
309 Please kindly check the link as below.
310
311 (% class="box infomessage" %)
312 (((
313 ✎**Note:** at present 5V PLC can not support RS485-BD and ETH-BD
314 )))
315
316 [[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/]]
317
318 [[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/]]