Wiki source code of 07 Communication
Show last authors
author | version | line-number | content |
---|---|---|---|
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 ~~ X255|0xF800 ~~ 0xF9FE|63488 ~~ 63998 | ||
60 | |Y0 ~~ Y255|0xFC00 ~~ 0xFDFE|64512 ~~ 65022 | ||
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/]] |