Wiki source code of 08 Motion Control

Last modified by Iris on 2026/04/03 10:39

Show last authors
1 == **Management Function Blocks for Single-axis Motion Control** ==
2
3 ----
4
5 === **MC_POWER** ===
6
7 ----
8
9 MC_POWER
10
11 (% style="text-align:center" %)
12 [[image:1708929927472-144.png||_mstalt="296517"]]
13
14 This function block is a power-on software switch for the motion control system.
15
16 Device used (only a single device can be used, and device splicing and offset are not supported)
17
18 |=(% rowspan="2" %)**Instruction**|=(% rowspan="2" %)**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
19 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
20 |(% rowspan="8" %)MC_POWER|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
21 |EnablePositive|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
22 |EnableNegative|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
23 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
24 |Status| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
25 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
26 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
27 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
28
29 Precautions for use of devices
30
31
32 * LC and HSC are signed 32-bit data types;
33 * T, C, D, R, SD are signed 16-bit data types.
34
35 Variable Type Used
36
37 |**Instruction**|**Pin type**|**Variable type**|**Variable type**|**Can be empty or not**|**Range**|**Description**
38 |(% rowspan="8" %)MC_POWER|(% rowspan="4" %)Input|Enable|BOOL|No|TRUE/FALSE|Enable
39 |EnablePositive|BOOL|No|TRUE/FALSE|Allow movement in the positive direction
40 |EnableNegative|BOOL|No|TRUE/FALSE|Allow movement in negative direction
41 |Axis|WORD|No|[0,65535]|Axis number
42 |(% rowspan="4" %)Output|Status|BOOL|Yes|TRUE/FALSE|Enable status
43 |Valid|BOOL|Yes|TRUE/FALSE|Data valid or not
44 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
45 |ErrorID|DWORD|Yes|-|Error code (See [8.11 Error code comparison table])
46
47 Function
48
49 * This funcion block must be enabled if an axis is to participate in motion.
50 * The function is as follows:
51
52 1. When the Enable input is TRUE, the power to the drive is enabled, not to the function block itself;
53 1. When the Enable input is TRUE, this function block is called. If the state of the axis is in the Disable state, then the state of the axis is switched to the state of StandStill, waiting for the motion control of the axis;
54 1. If a fault occurs when the Enable input is TRUE, a timer function block and an AND logic function can make the state of its axis remain at FAlSE. It indicates that there is a fault at the hardware level;
55 1. If the PLC power supply fails during the motion, the state of the axis will switch to the ErrorStop state;
56 1. The input signals EnablePositive and EnableNegative are level controlled. When they are TRUE, axis motion in the positive and negative directions are allowed. Two input signals can be set at the same time, indicating that the allowed motion direction can be either positive or negative;
57 1. Each axis can only have one MC_POWER function block for powering up the axis. If multiple MC_POWER control the same axis, the last function block is valid;
58 1. The Status output signal indicates the status of the driver power supply, and 1 means power on; 0 means not power on. It is also not a simulated value if the axis drive is a simulated axis. Busy is the operating status of the function block, 1 means busy; 0 means idle. 0 means uncontrolled. Valid indicates whether the output signal of the function block is valid, and 1 means the output signal is valid; 0 means the output signal is invalid. Error indicates whether the function block is faulty, and 1 means faulty; 0 means no fault. ErrorID is the error code, and when a function block fault occurs, there are 16 digits indicating the fault information.
59
60 Precautions
61
62 * When any error occurs when the axis is enabled, it will be fed back through Error and ErrorID;
63 * The PDO parameters of servo axis bound to the axis must have control word, status word, target position and current position.
64
65 Sequence diagram
66
67 * When using a MC_POWER instruction and axis enables normally, sequence diagram is as follows:(((
68 (% style="text-align:center" %)
69 [[image:1708930747762-294.png||_mstalt="297310"]]
70 )))
71
72 * When axis uses two MC_POWER instructions and axis enables normally, sequence diagram is as follows:
73
74 (% style="text-align:center" %)
75 [[image:1708930776082-904.png||_mstalt="295945"]]
76
77 === **MC_READSTATUS** ===
78
79 ----
80
81 MC_READSTATUS
82
83 (% style="text-align:center" %)
84 [[image:1708930816987-979.png||_mstalt="301678"]]
85
86 This function block is used to read the status of the controlled axis.
87
88 Device used (only a single device can be used, and device splicing and offset are not supported)
89
90 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
91 **Index**
92
93 **modification**
94 )))|=**Pulse expansion**
95 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
96 |(% colspan="1" rowspan="14" %)MC_READSTATUS|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
97 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
98 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
99 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
100 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
101 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
102 |Errorstop| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
103 |Disabled| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
104 |Stopping| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
105 |Homing| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
106 |Standstill| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
107 |DiscreteMotion| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
108 |ContinuousMotion| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
109 |SynchronizedMotion| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
110
111 Precautions for use of devices
112
113 * LC and HSC are signed 32-bit data types;
114 * T, C, D, R and SD are signed 16-bit data types;
115
116 Variable Type Used
117
118 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
119 |(% colspan="1" rowspan="14" %)MC_READSTATUS|Enable|BOOL|No|TRUE/FALSE|Enable
120 |Axis|WORD|No|0 to 65535|Axis number
121 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
122 |Busy|BOOL|No|TRUE/FALSE|Busy sign
123 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
124 |ErrorID|DWORD|No|-|Error code
125 |Errorstop|BOOL|No|TRUE/FALSE|Error stop sign
126 |Disabled|BOOL|No|TRUE/FALSE|Inactive sign
127 |Stopping|BOOL|No|TRUE/FALSE|Stopping sign
128 |Homing|BOOL|No|TRUE/FALSE|Homing sign
129 |Standstill|BOOL|No|TRUE/FALSE|Static sign
130 |DiscreteMotion|BOOL|No|TRUE/FALSE|Discontinuous motion sign
131 |ContinuousMotion|BOOL|No|TRUE/FALSE|Continuous motion sign
132 |SynchronizedMotion|BOOL|No|TRUE/FALSE|Synchronized motion sign
133
134 Function
135
136 * It is used to read the status of the controlled axis, corresponding to the single-axis SynchronizedMotion, ContinuousMotion, DiscreteMotion, Stopping, Errorstop, Homing, Standstill and Disabled;
137 * When the MC_ReadStatus function block input Enable is TRUE, the status of the axis is periodically updated.
138
139 Precautions
140
141 * This function block is not available when the axis does not exist.
142
143 Sequence diagram
144
145 When using MC_READSTATUS with MC_MOVERELATIVE instruction together and axis enables normally, sequence diagram is as follows:
146
147 (% style="text-align:center" %)
148 [[image:1708931189048-874.png||_mstalt="298116"]]
149
150
151 === **MC_READMOTIONSTATE** ===
152
153 ----
154
155 MC_READMOTIONSTATE
156
157 (% style="text-align:center" %)
158 [[image:1708931307231-255.png||_mstalt="293072"]]
159
160 This function block is used to read the motion status of the controlled axis, including constant speed, acceleration, deceleration, positive direction and negative direction.
161
162 Device used (only a single device can be used, and device splicing and offset are not supported)
163
164 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
165 **Index**
166
167 **modification**
168 )))|=**Pulse expansion**
169 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
170 |(% colspan="1" rowspan="11" %)MC_READMOTIONSTATE|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
171 |Axis| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
172 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
173 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
174 |Error| | | | | | | | | | | | | | | | | | | | | | | | | |
175 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
176 |ConstantVelocity| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
177 |Accelerating| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
178 |Decelerating| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
179 |DirectionPositive| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
180 |DirectionNegative| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
181
182 Precautions for use of devices
183
184 * LC and HSC are signed 32-bit data types;
185 * T, C, D, R and SD are signed 16-bit data types;
186
187 Variable Type Used
188
189 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
190 |(% colspan="1" rowspan="11" %)MC_READMOTIONSTATE|Enable|BOOL|No|TRUE/FALSE|Enable
191 |Axis|WORD|No|0 to 65535|Axis number
192 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
193 |Busy|BOOL|No|TRUE/FALSE|Busy sign
194 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
195 |ErrorID|DWORD|No|-|Error code
196 |ConstantVelocity|BOOL|No|TRUE/FALSE|Constant velocity
197 |Accelerating|BOOL|No|TRUE/FALSE|Accelerating
198 |Decelerating|BOOL|No|TRUE/FALSE|Decelerating
199 |DirectionPositive|BOOL|No|TRUE/FALSE|Positive direction
200 |DirectionNegative|BOOL|No|TRUE/FALSE|Negative direction
201
202 Function
203
204 * Used to read the motion status of the controlled axis, including constant speed, acceleration, deceleration, positive direction and negative direction;
205 * When the MC_ReadStatus function block input Enable is TRUE, the status of the axis is periodically updated.
206
207 Precautions
208
209 * This function block is not available when the axis does not exist.
210
211 Error code
212
213 |=**Error code**|=**Content**
214 |4084H|Data beyond the specifiable range was entered.
215
216 Sequence diagram
217
218 * When using MC_READMOTIONSTATE with MC_MOVERELATIVE instruction together and axis enables normally, sequence diagram is as follows:
219
220 (% style="text-align:center" %)
221 [[image:1708931510215-517.png||_mstalt="292968"]]
222
223
224 === **MC_READAXISERROR** ===
225
226 ----
227
228 MC_READAXISERROR
229
230 (% style="text-align:center" %)
231 [[image:1708931587533-769.png||_mstalt="299000"]]
232
233 The function block provides fault information about the axis.
234
235 Device used (only a single device can be used, and device splicing and offset are not supported)
236
237 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
238 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
239 |(% colspan="1" rowspan="7" %)MC_READAXISERROR|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
240 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
241 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
242 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
243 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
244 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
245 |AxisErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
246
247 Precautions for use of devices
248
249 * LC and HSC are signed 32-bit data types;
250 * T, C, D, R and SD are signed 16-bit data types;
251
252 Variable Type Used
253
254 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
255 |(% rowspan="7" %)MC_READAXISERROR|Enable|BOOL|No|TRUE/FALSE|Enable
256 |Axis|WORD|No|0 to 65535|Axis number
257 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
258 |Busy|BOOL|No|TRUE/FALSE|Busy sign
259 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
260 |ErrorID|DWORD|No|-|Error code
261 |AxisErrorID|DWORD|No|-|Axis error code
262
263 Function
264
265 * The function block provides fault information for the axis. Typically, you can connect the axis status ErrorStop output of the MC_READSTATUS function block to the Enable input end of MC_READAXISERROR, so that the fault code of the axis can be obtained from AxisErrorID. You can also get the fault code from ErrorID.
266
267 Precautions
268
269 * This function block is not available when the axis does not exist.
270
271 Sequence diagram
272
273 * When using MC_READAXISINFO with MC_POWER and MC_MOVERELATIVE instructions together and axis enables normally, in which MC_POWER→EnablePosition is FALSE and MC_POWER→EnableNegative is TRUE, sequence diagram is as follows:
274
275 (% style="text-align:center" %)
276 [[image:1708931733986-184.png||_mstalt="297791"]]
277
278
279 === **MC_READAXISINFO** ===
280
281 ----
282
283 MC_READAXISINFO
284
285 (% style="text-align:center" %)
286 [[image:1708931778931-994.png||_mstalt="299676"]]
287
288 The function block is used to provide information about the axis.
289
290 Device used (only a single device can be used, and device splicing and offset are not supported)
291
292 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Devices**|**Index modification**|**Pulse expansion**
293 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
294 |(% rowspan="13" %)MC_READAXISINFO|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
295 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
296 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
297 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
298 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
299 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
300 |HomeAbsSwitch| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
301 |LimitSwitchPos| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
302 |LimitSwitchNeg| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
303 |ReadyForPowerOn| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
304 |powerOn| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
305 |IsHomed| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
306 |AxisWarning| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
307
308 **Precautions for use of devices**
309
310 * LC and HSC are signed 32-bit data types;
311 * T, C, D, R and SD are signed 16-bit data types.
312
313 **Variable Type Used**
314
315 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
316 |(% rowspan="13" %)MC_READAXISINFO|Enable|BOOL|No|TRUE/FALSE|Enable
317 |Axis|WORD|No|0 to 65535|Axis number
318 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
319 |Busy|BOOL|No|TRUE/FALSE|Busy sign
320 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
321 |ErrorID|DWORD|No|-|Error code
322 |HomeAbsSwitch|BOOL|No|TRUE/FALSE|Homing absolute position switch
323 |LimitSwitchPos|BOOl|No|TRUE/FALSE|Positive limit switch
324 |LimitSwitchNeg|BOOl|No|TRUE/FALSE|Negative limit switch
325 |ReadyForPowerOn|BOOl|No|TRUE/FALSE|Ready to enable
326 |powerOn|BOOl|No|TRUE/FALSE|Enable
327 |IsHomed|BOOl|No|TRUE/FALSE|Homing successful
328 |AxisWarning|BOOl|No|TRUE/FALSE|Axis warning
329
330 Function
331
332 * It is used to provide information about the axis, including the information about the absolute position switch back to the origin, the status information of the positive and negative limit switches, the power-on switch of the function block, and whether the axis has warnings. Generally, the output PowerOn of the MC_READAXISINFO function block can be used as the execution input of the motion control function block. For example, if the Enable of the power-on switch MC_POWER is shared with the MC_MOVEABSOLUTE function block, because the MC_MOVEABSOLUTE function block is edge triggered, and the execution of the MC_POWER function block takes a certain time, only when PowerOn is set can the actual output of MC_POWER be deemed to be powered-on so that the output PowerOn of MC_READAXISINFO is often connected to the Execute end of MC_MOVEABSOLUTE function block to ensure the edge trigger of MC_MOVEABSOLUTE function block. The Enable of the MC_READAXISINFO function block can share an input signal with the MC_POWER function block.
333
334 Precautions
335
336 * This function block is not available when the axis does not exist.
337
338 Sequence diagram
339
340 * When using MC_READAXISINFO with MC_POWER instruction together and axis enables normally, sequence diagram is as follows:
341
342 (% style="text-align:center" %)
343 [[image:1708931872321-895.png||_mstalt="297076"]]
344
345 === **MC_READPARAMETER** ===
346
347 ----
348
349 MC_READPARAMETER
350
351 (% style="text-align:center" %)
352 [[image:1708931933784-427.png||_mstalt="297219"]]
353
354 This function block is used to read axis parameters.
355
356 Device used (only a single device can be used, and device splicing and offset are not supported)
357
358 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
359 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
360 |(% colspan="1" rowspan="8" %)MC_READPARAMETER|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
361 |ParameterNumber| | | | | | | | | | | | | | |●|●|●|●|●| | | | | | |
362 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
363 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
364 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
365 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
366 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
367 |Value| | | | | | | | | | | | | | | | | | | | | | | | | |
368
369 Precautions for use of devices
370
371 * LC and HSC are signed 32-bit data types;
372 * T, C, D, R and SD are signed 16-bit data types.
373
374 Variable Type Used
375
376 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
377 |(% rowspan="8" %)MC_READPARAMETER|Enable|BOOL|No|TRUE/FALSE|Enable
378 |ParameterNumber|INT|No|1 to 17|Parameter number
379 |Axis|WORD|No|0 to 65535|Axis number
380 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
381 |Busy|BOOL|No|TRUE/FALSE|Busy sign
382 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
383 |ErrorID|DWORD|No|-|Error code
384 |Value|LREAL|No|-|Axis parameter value
385
386 Function
387
388
389 * Used to read axis parameters, as shown in following table.
390
391 |=**Parameter number PN**|=**Parameter name**|=**Data type**|=**B/E**|=**R/W**|=**Notes**
392 |1|InstructionedPosition|REAL|B|R|Instruction position
393 |2|SWLimitPos|REAL|E|R/W|Position of positive software limit switch
394 |3|SWLimitNeg|REAL|E|R/W|Positive of negative software limit switch
395 |4|EnableLimitPos|BOOL|E|R/W|Enable positive software limit switch
396 |5|EnableLimitNeg|BOOL|E|R/W|Enable negative software limit switch
397 |6|EnablePosLagMonitoring|BOOL|E|R/W|Enable position lag monitoring
398 |7|MaxPositionLag|REAL|E|R/W|Maximum position lag
399 |8|MaxVelocitySystem|REAL|E|R|Maximum allowable axial velocity in motion system
400 |9|MaxVelocityAppl|REAL|B|R/W|Maximum allowable axial velocity in application
401 |10|ActualVelocity|REAL|B|R|Actual velocity
402 |11|InstructionedVelocity|REAL|B|R|Instructioned velocity
403 |12|MaxAccelerationSystem|REAL|E|R|Maximum allowable axial acceleration in motion system
404 |13|MaxAccelerationAppl|REAL|E|R/W|Maximum allowable axial acceleration in application
405 |14|MaxDecelerationSystem|REAL|E|R|Maximum allowable axial deceleration in motion system
406 |15|MaxDecelerationAppl|REAL|E|R/W|Maximum allowable axial deceleration in application
407 |16|MaxJerkSystem|REAL|E|R|Maximum allowable axial jerk in motion system
408 |17|MaxJerkAppl|REAL|E|R/W|Maximum allowable axial jerk in application system
409
410 Precautions
411
412 * This function block is not available when the axis does not exist.
413
414 Error code
415
416 |=**Error code**|=**Content**
417 |4084H|Data beyond the specifiable range was entered.
418
419 Sequence diagram
420
421 * When using MC_READPARAMETER with MC_MOVERELATIVE instruction together, in which ParameterNumber=1, and axis enables normally, sequence diagram is as follows:
422
423 (% style="text-align:center" %)
424 [[image:1708932250549-876.png||_mstalt="297960"]]
425
426 === **MC_READBOOLPARAMETER** ===
427
428 ----
429
430 MC_READBOOLPARAMETER
431
432 (% style="text-align:center" %)
433 [[image:1708932376799-782.png||_mstalt="300209"]]
434
435 This function block is used to read axis Boolean parameters.
436
437 Device used (only a single device can be used, and device splicing and offset are not supported)
438
439 |=(% style="width: 178px;" %)**Instruction**|=(% style="width: 167px;" %)**Parameter**|=(% colspan="24" %)**Devices**|=(((
440 **Index**
441
442 **modification**
443 )))|=**Pulse expansion**
444 |(% style="width:178px" %) |(% style="width:167px" %) |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
445 |(% colspan="1" rowspan="8" style="width:178px" %)MC_READBOOLPARAMETER|(% style="width:167px" %)Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
446 |(% style="width:167px" %)ParameterNumber| | | | | | | | | | | | | | |●|●|●|●|●| | | | | | |
447 |(% style="width:167px" %)Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
448 |(% style="width:167px" %)Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
449 |(% style="width:167px" %)Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
450 |(% style="width:167px" %)Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
451 |(% style="width:167px" %)ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
452 |(% style="width:167px" %)Value| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
453
454 Precautions for use of devices
455
456 * LC and HSC are signed 32-bit data types;
457 * T, C, D, R and SD are signed 16-bit data types;
458
459 Variable Type Used
460
461 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
462 |(% colspan="1" rowspan="8" %)MC_READBOOLPARAMETER|Enable|BOOL|No|TRUE/FALSE|Enable
463 |ParameterNumber|INT|No|1 to 17|Parameter number
464 |Axis|WORD|No|0 to 65535|Axis number
465 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
466 |Busy|BOOL|No|TRUE/FALSE|Busy sign
467 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
468 |ErrorID|DWORD|No|-|Error code
469 |Value|BOOL|No|TRUE/FALSE|Axis parameter
470
471 Function
472
473 * Used to read axis Boolean parameters, as shown in following table.
474
475 |=**Parameter number PN**|=**Parameter name**|=**Data type**|=**B/E**|=**R/W**|=**Notes**
476 |1|InstructionedPosition|REAL|B|R|Instruction position
477 |2|SWLimitPos|REAL|E|R/W|Position of positive software limit switch
478 |3|SWLimitNeg|REAL|E|R/W|Positive of negative software limit switch
479 |4|EnableLimitPos|BOOL|E|R/W|Enable positive software limit switch
480 |5|EnableLimitNeg|BOOL|E|R/W|Enable negative software limit switch
481 |6|EnablePosLagMonitoring|BOOL|E|R/W|Enable position lag monitoring
482 |7|MaxPositionLag|REAL|E|R/W|Maximum position lag
483 |8|MaxVelocitySystem|REAL|E|R|Maximum allowable axial velocity in motion system
484 |9|MaxVelocityAppl|REAL|B|R/W|Maximum allowable axial velocity in application
485 |10|ActualVelocity|REAL|B|R|Actual velocity
486 |11|InstructionedVelocity|REAL|B|R|Instructioned velocity
487 |12|MaxAccelerationSystem|REAL|E|R|Maximum allowable axial acceleration in motion system
488 |13|MaxAccelerationAppl|REAL|E|R/W|Maximum allowable axial acceleration in application
489 |14|MaxDecelerationSystem|REAL|E|R|Maximum allowable axial deceleration in motion system
490 |15|MaxDecelerationAppl|REAL|E|R/W|Maximum allowable axial deceleration in application
491 |16|MaxJerkSystem|REAL|E|R|Maximum allowable axial jerk in motion system
492 |17|MaxJerkAppl|REAL|E|R/W|Maximum allowable axial jerk in application system
493
494 Precautions
495
496 * This function block is not available when the axis does not exist.
497
498 Error code
499
500 |=**Error code**|=**Content**
501 |4084H|Data beyond the specifiable range was entered.
502
503 Sequence diagram
504
505 (% style="text-align:center" %)
506 [[image:1708932747981-310.png||_mstalt="295100"]]
507
508 === **MC_READACTUALVELOCITY** ===
509
510 ----
511
512 MC_READACTUALVELOCITY
513
514 (% style="text-align:center" %)
515 [[image:1708932854884-305.png||_mstalt="296582"]]
516
517 This function block is used to read the actual velocity of the controlled axis.
518
519 Device used (only a single device can be used, and device splicing and offset are not supported)
520
521
522 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
523 **Index**
524
525 **modification**
526 )))|=(((
527 **Pulse**
528
529 **expansion**
530 )))
531 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
532 |(% colspan="1" rowspan="7" %)MC_READACTUALVELOCITY|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
533 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
534 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
535 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
536 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
537 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
538 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
539
540 Precautions for use of devices
541
542 * LC and HSC are signed 32-bit data types;
543 * T, C, D, R and SD are signed 16-bit data types.
544
545 Variable Type Used
546
547 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
548 |(% colspan="1" rowspan="7" %)MC_READACTUALVELOCITY|Enable|BOOL|No|TRUE/FALSE|Enable
549 |Axis|WORD|No|0 to 65535|Axis number
550 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
551 |Busy|BOOL|No|TRUE/FALSE|Busy sign
552 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
553 |ErrorID|DWORD|No|-|[[Error code>>path:#_8.10_Error_Code]]
554 |Velocity|LREAL|No|-|Actual velocity
555
556 Function
557
558 * When the function block’s Enable is set, the MC_READACTUALVELOCITY output returns the actual velocity of the controlled single axis.
559
560 Precautions
561
562 * This function block is not available when the axis does not exist;
563 * When the function block's Enable is reset, the output value loses its validity, and the Valid output is reset.
564
565 Sequence diagram
566
567 (% style="text-align:center" %)
568 [[image:1708933063977-591.png||_mstalt="297934"]]
569
570 === **MC_READACTUALPOSITION** ===
571
572 ----
573
574 MC_READACTUALPOSITION
575
576 (% style="text-align:center" %)
577 [[image:1708933148797-641.png||_mstalt="297635"]]
578
579 This function block is used to read the actual absolute position of the axis.
580
581 Device used (only a single device can be used, and device splicing and offset are not supported)
582
583 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
584 **Index**
585
586 **modification**
587 )))|=(((
588 **Pulse**
589
590 **expansion**
591 )))
592 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
593 |(% colspan="1" rowspan="7" %)MC_READACTUALPOSITION|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
594 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
595 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
596 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
597 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
598 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
599 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
600
601 Precautions for use of devices
602
603 * LC and HSC are signed 32-bit data types;
604 * T, C, D, R and SD are signed 16-bit data types;
605
606 Variable Type Used
607
608 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
609 |(% rowspan="7" %)MC_READACTUALPOSITION|Enable|BOOL|No|TRUE/FALSE|Enable
610 |Axis|WORD|No|0 to 65535|Axis number
611 |Valid|BOOL|No|TRUE/FALSE|Output valid or not
612 |Busy|BOOL|No|TRUE/FALSE|Busy sign
613 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
614 |ErrorID|DWORD|No|-|[[Error code>>path:#_8.10_Error_Code]]
615 |Position|LREAL|No|-|Actual absolute position
616
617 Function
618
619 * When the function block’s Enable is set, the MC_READACTUALPOSITION output returns the actual absolute position of the controlled single axis.
620
621 Precautions
622
623 * This function block is not available when the axis does not exist;
624 * 0x6064 should be configured in the bus axis, otherwise it is invalid;
625 * When the function block's Enable is reset, the output value loses its validity, and the Valid output is reset.
626
627 Sequence diagram
628
629 (% style="text-align:center" %)
630 [[image:1708933375433-378.png||_mstalt="297037"]]
631
632 === **MC_RESET** ===
633
634 ----
635
636 MC_RESET
637
638 (% style="text-align:center" %)
639 [[image:1708933464043-183.png||_mstalt="294411"]]
640
641 This function block is used for clearing the faults of the controlled axis.
642
643 Device used (only a single device can be used, and device splicing and offset are not supported)
644
645
646 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
647 **Index**
648
649 **modification**
650 )))|=(((
651 **Pulse**
652
653 **expansion**
654 )))
655 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
656 |(% colspan="1" rowspan="6" %)MC_RESET|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
657 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
658 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
659 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
660 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
661 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
662
663 Precautions for use of devices
664
665 * LC and HSC are signed 32-bit data types;
666 * T, C, D, R and SD are signed 16-bit data types;
667
668 Variable Type Used
669
670
671 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
672 |(% colspan="1" rowspan="6" %)MC_RESET|Execute|BOOL|No|TRUE/FALSE|Enable
673 |Axis|WORD|No|0 to 65535|Axis number
674 |Done|BOOL|No|TRUE/FALSE|Completion sign
675 |Busy|BOOL|No|TRUE/FALSE|Busy sign
676 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
677 |ErrorID|DWORD|No|-|Error code
678
679 Function
680
681 * When the Execute input signal rises, it is used to clear the fault of the controlled axis. These faults include axis faults and drive side faults. If the drive itself fails, the reset of the drive failure should be carried out first. These fault treatments do not cause the motion of the controlled axis.
682
683 Precautions
684
685 * This function block is not available when the axis does not exist.
686
687 Sequence diagram
688
689 * In the case of axis failure, call MC_RESET instruction and reset successfully, sequence diagram is as follows:
690
691 (% style="text-align:center" %)
692 [[image:1708933588765-628.png||_mstalt="299468"]]
693
694 * When driver cannot be reset, sequence diagram is as follows:
695
696 (% style="text-align:center" %)
697 [[image:1708933611426-302.png||_mstalt="292292"]]
698
699 === **MC_SETPOSITION** ===
700
701 ----
702
703 MC_SETPOSITION
704
705 (% style="text-align:center" %)
706 [[image:1708933664132-373.png||_mstalt="294775"]]
707
708 This function block is used to set the position (absolute position or relative position) of the controlled axis.
709
710 Device used (only a single device can be used, and device splicing and offset are not supported)
711
712
713 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
714 **Index**
715
716 **modification**
717 )))|=(((
718 **Pulse**
719
720 **expansion**
721 )))
722 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
723 |(% colspan="1" rowspan="9" %)MC_SETPOSITION|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
724 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
725 |Relative|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
726 |Execution Mode| | | | | | | | | | | | | | | | | | | | | | | | | |
727 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
728 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
729 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
730 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
731 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
732
733 Precautions for use of devices
734
735 * LC and HSC are signed 32-bit data types;
736 * T, C, D, R and SD are signed 16-bit data types;
737
738 Variable Type Used
739
740 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
741 |(% colspan="1" rowspan="9" %)MC_SETPOSITION|Execute|BOOL|No|TRUE/FALSE|Enable
742 |Position|LREAL|No|-9999999.00~~9999999.00|Position
743 |Relative|BOOL|No|TRUE/FALSE|Set relative position or absolute position
744 |Execution Mode|WORD|No|0 to 2|Operation mode
745 |Axis|WORD|No|0 to 65535|Axis number
746 |Done|BOOL|No|TRUE/FALSE|Completion sign
747 |Busy|BOOL|No|TRUE/FALSE|Busy sign
748 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
749 |ErrorID|DWORD|No|-|Error code
750
751 Function
752
753 * MC_SETPOSITION function block is used to set the position (absolute position or relative position) of the controlled axis. It controls the set position and the actual position of the axis by moving the coordinate system of the coordinate system, so that they have the same value without causing motion, and obtains the same tracking error by re-calibration. This function block can be used for examples in reference situations;
754 * At present, this command does not support triggering when the axis is in motion.
755
756 Precautions
757
758 * This function block is not available when the axis does not exist.
759
760 == **Motion Function Blocks for Single-axis Motion Control** ==
761
762 ----
763
764 === **MC_STOP** ===
765
766 ----
767
768 MC_STOP
769
770 (% style="text-align:center" %)
771 [[image:1708934009088-266.png||_mstalt="296491"]]
772
773 This function block is used to change the state of the controlled axis to the deceleration stopping state.
774
775 Device used (only a single device can be used, and device splicing and offset are not supported)
776
777 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
778 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
779 |(% colspan="1" rowspan="9" %)MC_STOP|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
780 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
781 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
782 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
783 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
784 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
785 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
786 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
787 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
788
789 Precautions for use of devices
790
791 * LC and HSC are signed 32-bit data types;
792 * T, C, D, R and SD are signed 16-bit data types.
793
794 Variable Type Used
795
796 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
797 |(% colspan="1" rowspan="9" %)MC_STOP|Execute|BOOL|No|TRUE/FALSE|Enable
798 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
799 |Jerk|LREAL|No|0 to 9999999.00|Jerk
800 |Axis|WORD|No|0 to 65535|Axis number
801 |Done|BOOL|No|TRUE/FALSE|Completion sign
802 |Busy|BOOL|No|TRUE/FALSE|Busy sign
803 |InstructionAborted|BOOL|No|TRUE/FALSE|Aborted sign
804 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
805 |ErrorID|DWORD|No|-|Error code
806
807 Function
808
809 * This function block is used to change the state of the controlled axis to the deceleration stopping state. When the rising edge of the input Execute signal triggers the function block, the controlled axis decelerates with the output Decelerate value and the axis motion stops.
810
811 Precautions
812
813 * This function block is not available when the axis does not exist.
814 * In profile mode, the STOP command requires the mapper to map the PDOs of 0x6060, 0x6061, 0x60FF, and 0x606C for normal operation;
815 * In CST/CSV mode, triggering STOP switches to synchronous velocity mode;
816 * In CST/CSV mode, the STOP command requires the mapper to map the PDOs of 0x6060, 0x6061, 0x60FF, and 0x606C for normal operation;
817
818 Error code
819
820 |=**Error code**|=**Content**
821 |4084H|Data beyond the specifiable range was entered.
822
823 Sequence diagram
824
825 * When the call is located, trigger MC_STOP instruction and sequence diagram is as follows:
826
827 (% style="text-align:center" %)
828 [[image:1708934225357-168.png||_mstalt="296452"]]
829
830 * When driver fails during the instruction running, sequence diagram is as follows:
831
832 (% style="text-align:center" %)
833 [[image:1708934303224-405.png||_mstalt="292370"]]
834
835 === **MC_HOME** ===
836
837 ----
838
839 MC_HOME
840
841 (% style="text-align:center" %)
842 [[image:1708934397030-253.png||_mstalt="294047"]]
843
844 This function block is used to change the state of the controlled axis to the origin state.
845
846 Device used (only a single device can be used, and device splicing and offset are not supported)
847
848 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
849 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
850 |(% colspan="1" rowspan="10" %)MC_HMOE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
851 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
852 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
853 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
854 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
855 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
856 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
857 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
858 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
859 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
860
861 Precautions for use of devices
862
863 * LC and HSC are signed 32-bit data types;
864 * T, C, D, R and SD are signed 16-bit data types.
865
866 Variable Type Used
867
868 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
869 |(% colspan="1" rowspan="10" %)MC_HOME|Execute|BOOL|No|TRUE/FALSE|Enable
870 |Position|LREAL|No|0 to 9999999.00|Position
871 |BufferMode|WORD|No|0 to 5|Mode selection
872 |Axis|WORD|No|0 to 65535|Axis number
873 |Done|BOOL|No|TRUE/FALSE|Completion sign
874 |Busy|BOOL|No|TRUE/FALSE|Busy sign
875 |Active|BOOL|Yes|TRUE/FALSE|Valid flag bit
876 |InstructionAborted|BOOL|No|TRUE/FALSE|Aborted sign
877 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
878 |ErrorID|DWORD|No|-|Error code
879
880 Function
881
882 * It is determined whether the controlled axis returns to its origin by detecting the relevant limit switch, absolute position origin switch or transmitted sequence pulse signal.
883
884 Precautions
885
886 * This function block is not available when the axis does not exist.
887
888 Error code
889
890 |=**Error code**|=**Content**
891 |4084H|Data beyond the specifiable range was entered.
892
893 Sequence diagram
894
895 Start origin homing, and then driver normally executes origin homing, sequence diagram is as follows:
896
897
898 (% style="text-align:center" %)
899 [[image:1708934632681-933.png||_mstalt="296465"]]
900
901 === **MC_HALT** ===
902
903 ----
904
905 MC_HALT
906
907 (% style="text-align:center" %)
908 [[image:1708934697518-386.png||_mstalt="299234"]]
909
910 This function block is often used to stop the motion of the controlled axis under normal operating conditions.
911
912 Device used (only a single device can be used, and device splicing and offset are not supported)
913
914 (% style="width:1455px" %)
915 |=**Instruction**|=**Parameter**|=(% colspan="24" style="width: 935px;" %)**Devices**|=(% colspan="2" style="width: 91px;" %)(((
916 **Index modification**
917 )))|=**Pulse expansion**
918 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|(% colspan="2" style="width:22px" %)**E**|(% style="width:140px" %)**[D]**|(% colspan="2" %)**XXP**
919 |(% colspan="1" rowspan="10" %)MC_HALT|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
920 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
921 |Jerk| | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
922 |Axis| | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
923 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
924 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
925 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
926 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
927 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
928 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" style="width:22px" %) |(% style="width:140px" %) |(% colspan="2" %)
929
930 Precautions for use of devices
931
932 * LC and HSC are signed 32-bit data types;
933 * T, C, D, R and SD are signed 16-bit data types;
934
935 Variable Type Used
936
937 |**Instruction**|**Parameter**|**Variable type**|**Can be empty or not**|**Range**|**Description**
938 |(% colspan="1" rowspan="10" %)MC_HALT|Execute|BOOL|No|TRUE/FALSE|Enable
939 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
940 |Jerk|LREAL|No|0 to 9999999.00|Jerk
941 |Axis|WORD|No|0 to 65535|Axis number
942 |Done|BOOL|No|TRUE/FALSE|Data valid or not
943 |Busy|BOOL|No|TRUE/FALSE|Busy sign
944 |Active|BOOL|No|TRUE/FALSE|Valid sign
945 |InstructionAborted|BOOL|No|TRUE/FALSE|Aborted sign
946 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
947 |ErrorID|DWORD|No|-|Error code
948
949 Function
950
951 * If the controlled axis is in a continuous motion state, the rising edge of the Execute signal input by the MC_Halt function block triggers the activation of the function block, so that the state of the controlled axis changes to the intermittent motion state. Similarly, if the controlled axis is in an intermittent motion state or a synchronous motion state, the activation of the MC_HALT function block will keep the controlled axis in an intermittent motion state. This function block is often used to stop the motion of the controlled axis under normal operating conditions.
952
953 Precautions
954
955 * This function block is not available when the axis does not exist.
956
957 Error code
958
959 |=**Error code**|=**Content**
960 |4084H|Data beyond the specifiable range was entered.
961
962 **Sequence diagram**
963
964 * After the call is located, trigger MC_HALT instruction, sequence diagram is as follows:(((
965 (% style="text-align:center" %)
966 [[image:1708935236792-154.png||_mstalt="296127"]]
967 )))
968
969 * After triggering MC_HALT instruction, call the location instruction again to interrupt the execution of MC_HALT, sequence diagram is as follows:
970
971 (% style="text-align:center" %)
972 [[image:1708935259573-284.png||_mstalt="297609"]]
973
974 * When executing MC_HALT, showdown failure happens, sequence diagram is as follows:
975
976 (% style="text-align:center" %)
977 [[image:1708935287683-523.png||_mstalt="297037"]]
978
979 === **MC_MOVEABSOLUTE** ===
980
981 ----
982
983 MC_MOVEABSOLUTE
984
985 (% style="text-align:center" %)
986 [[image:1708935525380-170.png||_mstalt="294034"]]
987
988 The function block makes the controlled axis reach the set absolute position with the input parameters.
989
990 Device used (only a single device can be used, and device splicing and offset are not supported)
991
992 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
993 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
994 |(% colspan="1" rowspan="15" %)MC_MOVEABSOLUTE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
995 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
996 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
997 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
998 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
999 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1000 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
1001 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1002 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
1003 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1004 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1005 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1006 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1007 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1008 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1009
1010 Precautions for use of devices
1011
1012 * LC and HSC are signed 32-bit data types;
1013 * T, C, D, R and SD are signed 16-bit data types;
1014
1015 Variable Type Used
1016
1017
1018 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1019 |(% colspan="1" rowspan="15" %)MC_MOVEABSOLUTE|Execute|BOOL|No|TRUE/FALSE|Enable
1020 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation
1021 |Position|LREAL|No|-9999999.00~~9999999.00|Absolute position
1022 |Velocity|LREAL|No|0 to 9999999.00|Velocity
1023 |Acceleration|LREAL|No|0 to 9999999.00|Acceleration
1024 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
1025 |Jerk|LREAL|No|0 to 9999999.00|Jerk
1026 |BufferMode|WORD|No|0 to 5|Mode selection
1027 |Axis|WORD|No|0 to 65535|Axis number
1028 |Done|BOOL|No|TRUE/FALSE|Completion sign
1029 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1030 |Active|BOOL|No|TRUE/FALSE|Valid sign
1031 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1032 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1033 |ErrorID|DWORD|No|-|Error code
1034
1035 Function
1036
1037 * The function block enables the controlled axis reach the set absolute position with input parameters (velocity, acceleration, deceleration, jerk and specified motion direction).
1038
1039 Precautions
1040
1041 * This function block is not available when the axis does not exist.
1042
1043 Error code
1044
1045 |=**Error code**|=**Content**
1046 |4084H|Data beyond the specifiable range was entered.
1047
1048 Sequence diagram
1049
1050 * Normal working condition sequence diagram (buffermode_1=0, buffermode_2=0):
1051
1052 (% style="text-align:center" %)
1053 [[image:1708935703902-764.png||_mstalt="296088"]]
1054
1055 * mcAboring sequence diagram (buffermode_1=0, buffermode_2=0):
1056
1057 (% style="text-align:center" %)
1058 [[image:1708935740101-262.png||_mstalt="292266"]]
1059
1060 * mcBuffered sequence diagram (buffermode_1=0, buffermode_2=1):
1061
1062 (% style="text-align:center" %)
1063 [[image:1708935762521-958.png||_mstalt="297843"]]
1064
1065 * mcBlendingLow sequence diagram (buffermode_1=0, buffermdoe_2=2, buffermode_3=2):
1066
1067 (% style="text-align:center" %)
1068 [[image:1708935788803-332.png||_mstalt="296166"]]
1069
1070 * mcBlendingPrevious sequence diagram (buffermode_1=0, buffermode_2=3, buffermode_3=3)
1071
1072 (% style="text-align:center" %)
1073 [[image:1708935816541-212.png||_mstalt="293501"]]
1074
1075 * mcBlendingNext sequence diagram (buffermode_1=0, buffermode_2=4,buffermode_3=4):
1076
1077 (% style="text-align:center" %)
1078 [[image:1708935852123-588.png||_mstalt="297206"]]
1079
1080 * mcBlendingHigh sequence diagram (buffermode_1=0, buffermode_2=5, buffermode_3=5):
1081
1082 (% style="text-align:center" %)
1083 [[image:1708935874762-466.png||_mstalt="298584"]]
1084
1085
1086 === **MC_MOVERELATIVE** ===
1087
1088 ----
1089
1090 MC_MOVERELATIVE
1091
1092 (% style="text-align:center" %)
1093 [[image:1708935994795-183.png||_mstalt="299455"]]
1094
1095 The function block makes the controlled axis reach the set absolute position with the input parameters.
1096
1097 Device used (only a single device can be used, and device splicing and offset are not supported)
1098
1099 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1100 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1101 |(% colspan="1" rowspan="15" %)MC_MOVERELATIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1102 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1103 |Distance| | | | | | | | | | | | | | | | | | | | | | | | | |
1104 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
1105 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1106 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1107 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
1108 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1109 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
1110 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1111 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1112 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1113 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1114 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1115 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1116
1117 Precautions for use of devices
1118
1119 * LC and HSC are signed 32-bit data types;
1120 * T, C, D, R and SD are signed 16-bit data types.
1121
1122 Variable Type Used
1123
1124
1125 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1126 |(% colspan="1" rowspan="15" %)MC_MOVERELATIVE|Execute|BOOL|No|TRUE/FALSE|Enable
1127 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation
1128 |Distance|LREAL|No|-9999999.00~~9999999.00|Relative position
1129 |Velocity|LREAL|No|0 to 9999999.00|Velocity
1130 |Acceleration|LREAL|No|0 to 9999999.00|Acceleration
1131 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
1132 |Jerk|LREAL|No|0 to 9999999.00|Jerk
1133 |BufferMode|WORD|No|0 to 5|Mode selection
1134 |Axis|WORD|No|0 to 65535|Axis number
1135 |Done|BOOL|No|TRUE/FALSE|Completion sign
1136 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1137 |Active|BOOL|No|TRUE/FALSE|Valid sign
1138 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1139 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1140 |ErrorID|DWORD|No|-|Error code
1141
1142 Function
1143
1144 * The function block takes the current position as the starting point of motion and controls the controlled axis to reach the set relative position (Distance) with the set parameters (velocity, acceleration, deceleration and jerk), It refers to the motion control that takes starting point of the motion + Distance as the end point.
1145
1146 Precautions
1147
1148 * This function block is not available when the axis does not exist.
1149
1150 Error code
1151
1152 |=**Error code**|=**Content**
1153 |4084H|Data beyond the specifiable range was entered.
1154
1155 Sequence diagram
1156
1157 * Normal working condition sequence diagram (buffermode_1=0, buffermode_2=0):
1158
1159 (% style="text-align:center" %)
1160 [[image:1708936170353-654.png||_mstalt="295438"]]
1161
1162 * mcAboring sequence diagram (buffermode_1=0, buffermode_2=0):
1163
1164 (% style="text-align:center" %)
1165 [[image:1708936200749-506.png||_mstalt="295282"]]
1166
1167 * mcBuffered sequence diagram (buffermode_1=0, buffermode_2=1):
1168
1169 (% style="text-align:center" %)
1170 [[image:1708936252703-706.png||_mstalt="294801"]]
1171
1172 * mcBlendingLow sequence diagram (buffermode_1=0, buffermdoe_2=2, buffermode_3=2)(((
1173 (% style="text-align:center" %)
1174 [[image:1708936284791-539.png||_mstalt="298623"]]
1175 )))
1176
1177 * mcBlendingPrevious sequence diagram (buffermode_1=0, buffermode_2=3, buffermode_3=3)
1178
1179 (% style="text-align:center" %)
1180 [[image:1708936309446-511.png||_mstalt="294723"]]
1181
1182 * mcBlendingNext sequence diagram (buffermode_1=0, buffermode_2=4,buffermode_3=4):
1183
1184 (% style="text-align:center" %)
1185 [[image:1708936332278-409.png||_mstalt="296439"]]
1186
1187 * McBlendingHigh sequence diagram (buffermode_1=0, buffermode_2=5, buffermode_3=5):
1188
1189 (% style="text-align:center" %)
1190 [[image:1708936365320-929.png||_mstalt="296660"]]
1191
1192 === **MC_MOVEADDITIVE** ===
1193
1194 ----
1195
1196 MC_MOVEADDITIVE
1197
1198 (% style="text-align:center" %)
1199 [[image:1708936429637-442.png||_mstalt="296634"]]
1200
1201 This function block is a motion increment function block.
1202
1203 Device used (only a single device can be used, and device splicing and offset are not supported)
1204
1205 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1206 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1207 |(% colspan="1" rowspan="15" %)MC_MOVEADDITIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1208 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1209 |Distance| | | | | | | | | | | | | | | | | | | | | | | | | |
1210 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
1211 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1212 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1213 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
1214 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1215 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
1216 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1217 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1218 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1219 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1220 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1221 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1222
1223 Precautions for use of devices
1224
1225 * LC and HSC are signed 32-bit data types;
1226 * T, C, D, R and SD are signed 16-bit data types.
1227
1228 Variable Type Used
1229
1230 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1231 |(% colspan="1" rowspan="15" %)MC_MOVEADDITIVE|Execute|BOOL|No|TRUE/FALSE|Enable
1232 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation
1233 |Distance|LREAL|No|-9999999.00~~9999999.00|Relative position
1234 |Velocity|LREAL|No|0 to 9999999.00|Velocity
1235 |Acceleration|LREAL|No|0 to 9999999.00|Acceleration
1236 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
1237 |Jerk|LREAL|No|0 to 9999999.00|Jerk
1238 |BufferMode|WORD|No|0 to 5|Mode selection
1239 |Axis|WORD|No|0 to 65535|Axis number
1240 |Done|BOOL|No|TRUE/FALSE|Completion sign
1241 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1242 |Active|BOOL|No|TRUE/FALSE|Valid sign
1243 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1244 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1245 |ErrorID|DWORD|No|-|Error code
1246
1247 Function
1248
1249 * It is used to add the input parameters (velocity, acceleration, deceleration and jerk) specified by this function block to reach the specified distance (Distance) on the basis of existing motion, i.e., adding distance.
1250
1251 Precautions
1252
1253 * This function block is not available when the axis does not exist.
1254
1255 Error code
1256
1257 |=**Error code**|=**Content**
1258 |4084H|Data beyond the specifiable range was entered.
1259
1260 Sequence diagram
1261
1262 When using MC_MOVEABSOLUTE with MC_MOVEADDITIVE together, and when the tagret position of MC_MOVEABSOLUTE is 10 and velocity is 5, the stacked position of MC_MOVEADDITIVE is 15 and velocity is 10, the relationship between position and velocity of Axis_0 is as follows:
1263
1264 (% style="text-align:center" %)
1265 [[image:1708936628466-218.png||_mstalt="297193"]]
1266
1267 === **MC_MOVESUPERIMPOSED** ===
1268
1269 ----
1270
1271 MC_MOVESUPERIMPOSED
1272
1273 (% style="text-align:center" %)
1274 [[image:1708936695676-290.png||_mstalt="298506"]]
1275
1276 This function block is a motion superposition function block.
1277
1278 Device used (only a single device can be used, and device splicing and offset are not supported)
1279
1280 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
1281 **Index**
1282
1283 **modification**
1284 )))|=(((
1285 **Pulse**
1286
1287 **expansion**
1288 )))
1289 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1290 |(% colspan="1" rowspan="15" %)MC_MOVESUPERIMPOSED|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1291 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1292 |Distance| | | | | | | | | | | | | | | | | | | | | | | | | |
1293 |VelocityDiff| | | | | | | | | | | | | | | | | | | | | | | | | |
1294 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1295 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1296 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
1297 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1298 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
1299 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1300 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1301 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1302 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1303 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1304 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1305
1306 Precautions for use of devices
1307
1308 * LC and HSC are signed 32-bit data types;
1309 * T, C, D, R and SD are signed 16-bit data types;
1310
1311 Variable Type Used
1312
1313 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1314 |(% colspan="1" rowspan="15" %)MC_MOVESUPERIMPOSED|Execute|BOOL|No|TRUE/FALSE|Enable
1315 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation
1316 |Distance|LREAL|No|-9999999.00~~9999999.00|Relative position
1317 |VelocityDiff|LREAL|No|0 to 9999999.00|Velocity
1318 |Acceleration|LREAL|No|0 to 9999999.00|Acceleration
1319 |Deceleration|LREAL|No|0 to 9999999.00|Deceleration
1320 |Jerk|LREAL|No|0 to 9999999.00|Jerk
1321 |BufferMode|WORD|No|0 to 5|Mode selection
1322 |Axis|WORD|No|0 to 65535|Axis number
1323 |Done|BOOL|No|TRUE/FALSE|Completion sign
1324 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1325 |Active|BOOL|No|TRUE/FALSE|Valid sign
1326 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1327 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1328 |ErrorID|DWORD|No|-|Error code
1329
1330 Function
1331
1332 * This function block is used to superpose the motion, which means that on the basis of current motion speed, the velocity difference is added so that the input acceleration, deceleration and jerk are also increased based on the original motion values, i.e., increasing the velocity and making the controlled axis move to the specified (relative) distance (Distance).
1333
1334 Precautions
1335
1336 * This function block is not available when the axis does not exist;
1337 * When it executes, the previous function block should be executed first.
1338
1339 Error code
1340
1341 |=**Error code**|=**Content**
1342 |4084H|Data beyond the specifiable range was entered.
1343
1344 Sequence diagram
1345
1346 (% style="text-align:center" %)
1347 [[image:1708936849134-999.png||_mstalt="300794"]]
1348
1349
1350 == **Management Function Blocks for Multi-axis Motion Control** ==
1351
1352 ----
1353
1354 === **MC_CAMTABLESELECT** ===
1355
1356 ----
1357
1358 MC_CAMTABLESELECT
1359
1360 (% style="text-align:center" %)
1361 [[image:1708937013155-415.png||_mstalt="293540"]]
1362
1363 This function block is used to bind the cam table.
1364
1365 Device used (only a single device can be used, and device splicing and offset are not supported)
1366
1367
1368 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=(((
1369 **Index**
1370
1371 **modification**
1372 )))|=(((
1373 **Pulse**
1374
1375 **expansion**
1376 )))
1377 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1378 |(% colspan="1" rowspan="12" %)MC_CAMTABLESELECT|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1379 |Periodic|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1380 |MasterAbsolute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1381 |SlaveAbsolute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1382 |Master| | | | | | | | | | | | | | | | | | | | | | | | | |
1383 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
1384 |CamTable| | | | | | | | | | | | | | | | |●| | | | | | | | |
1385 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1386 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1387 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1388 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1389 |CamTableID| | | | | | | | | | | | | | | | | | | | | | | | | |
1390
1391 Precautions for use of devices
1392
1393 * LC and HSC are signed 32-bit data types;
1394 * T, C, D, R and SD are signed 16-bit data types;
1395
1396 Variable Type Used
1397
1398 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1399 |(% colspan="1" rowspan="12" %)MC_CAMTABLESELECT|Execute|BOOL|No|TRUE/FALSE|Enable
1400 |Periodic|BOOL|No|TRUE/FALSE|Cyclic mode setting
1401 |MasterAbsolute|BOOL|No|TRUE/FALSE|Master axis position mode setting
1402 |SlaveAbsolute|BOOL|No|TRUE/FALSE|Slave axis position mode setting
1403 |Master|WORD|No|-|Master axis
1404 |Slave|WORD|No|-|Slave axis
1405 |CamTable|Cam table (INT type variable)|No|-|Cam table
1406 |Done|BOOL|No|TRUE/FALSE|Completion sign
1407 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1408 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1409 |ErrorID|DWORD|No|-|[[Error code>>path:#_8.10_Error_Code]]
1410 |CamTableID|WORD|No|-|Cam table identification number
1411
1412 Function
1413
1414 * When MasterAbsolute is true, it means the master axis is under the absolute mode; when MasterAbsolute is false, it means the master axis is under the relative mode;
1415 * When SlaveAbsolute is true, it means the slave axis is under the absolute mode; when SlaveAbsolute is false, it means the slave axis is under the relative mode;
1416 * This function block is used to bind the cam table, that is, to bind the input master axis, slave axis and cam table. When calling MC_CAMIN function block, only the cam table bound by this function block can be used.
1417
1418 Precautions
1419
1420 * This function block is not available when the axis does not exist.
1421
1422 Error code
1423
1424 |=**Error code**|=**Content**
1425 |4084H|Data beyond the specifiable range was entered.
1426
1427 Sequence diagram
1428
1429 (% style="text-align:center" %)
1430 [[image:1708937230885-390.png||_mstalt="296439"]]
1431
1432 === **MC_GENERATECAMTABLE** ===
1433
1434 ----
1435
1436 MC_GENERATECAMTABLE
1437
1438 (% style="text-align:center" %)
1439 [[image:1708937316371-993.png||_mstalt="297687"]]
1440
1441 This function block is used to update the cam table.
1442
1443 Device used (Only a single device can be used, and device splicing and offset are not supported)
1444
1445 |=(((
1446
1447
1448 **Instruction**
1449 )))|=(((
1450
1451
1452 **Parameter**
1453 )))|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1454 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1455 |(% colspan="1" rowspan="10" %)(((
1456
1457
1458
1459
1460 MC_GENERATECAMTABLE
1461 )))|Execute|[[image:1708937346410-601.png||_mstalt="292851"]]|[[image:1708937346412-566.png||_mstalt="296283"]]|[[image:1708937346413-140.png||_mstalt="293072"]]|[[image:1708937346413-653.png||_mstalt="295620"]]|[[image:1708937346414-925.png||_mstalt="296426"]]| | | | | | | | | | | | | | | | | | | | |
1462 |CamTableID| | | | | | | | | | | | | | | | | | | | | | | | | |
1463 |CamNode| | | | | | | | | | | | | | | | | | | | | | | | | |
1464 |NodeNum| | | | | | | | | | | | | | | | |[[image:1708937346415-218.png||_mstalt="295373"]]| | | | | | | | |
1465 |(((
1466 Generatecam
1467
1468 TableMode
1469 )))| | | | | | | | | | | | | | | | |[[image:1708937346415-626.png||_mstalt="296153"]]| | | | | | | | |
1470 |Done| |[[image:1708937346416-119.png||_mstalt="295646"]]|[[image:1708937346417-650.png||_mstalt="295711"]]|[[image:1708937346418-420.png||_mstalt="294554"]]|[[image:1708937346419-124.png||_mstalt="295178"]]| | | | | | | | | | | | | | | | | | | | |
1471 |Busy| |[[image:1708937346421-759.png||_mstalt="297427"]]|[[image:1708937346423-907.png||_mstalt="296439"]]|[[image:1708937346423-338.png||_mstalt="295958"]]|[[image:1708937346424-801.png||_mstalt="294619"]]| | | | | | | | | | | | | | | | | | | | |
1472 |InstructionAborted| |(((
1473 [[image:1708937346425-166.png||_mstalt="296166"]]
1474
1475 [[image:1708937346425-794.png||_mstalt="298064"]]
1476 )))|(((
1477 [[image:1708937346426-497.png||_mstalt="298389"]]
1478
1479 [[image:1708937346427-332.png||_mstalt="295152"]]
1480 )))|(((
1481 [[image:1708937346427-282.png||_mstalt="296309"]]
1482
1483 [[image:1708937346428-957.png||_mstalt="299104"]]
1484 )))|(((
1485 [[image:1708937346429-449.png||_mstalt="298298"]]
1486
1487
1488 )))| | | | | | | | | | | | | | | | | | | | |
1489 |Error| | | | |[[image:1708937346429-635.png||_mstalt="297362"]]| | | | | | | | | | | | | | | | | | | | |
1490 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1491
1492 Precautions for use of devices
1493
1494 * LC and HSC are signed 32-bit data types;
1495 * T, C, D, R and SD are signed 16-bit data types;
1496
1497 Variable type used
1498
1499 |=**Instruction**|=**Pin**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
1500 |(% colspan="1" rowspan="11" %)(((
1501
1502
1503
1504
1505
1506 MC_GENERATECAMTABLE
1507 )))|(% colspan="1" rowspan="5" %)(((
1508
1509
1510
1511 Input
1512 )))|Execute|BOOL|No|TRUE/FALSE|Enable
1513 |CamTableID|INT|No| |Cam tableID
1514 |CamNode|(((
1515 ARRAY
1516
1517 (CAMNODET)
1518 )))|No|-|Array of cam nodes
1519 |NodeNum|INT|No|2 ~361|Number of cam nodes
1520 |(((
1521 GeneratecamTable
1522
1523 Mode
1524 )))|(((
1525
1526
1527 INT
1528 )))|(((
1529
1530
1531 No
1532 )))|(((
1533
1534
1535
1536 )))|(((
1537 Effective mode
1538
1539 0: Effective in the next cam cycle;
1540
1541 Others: Reserved
1542 )))
1543 |(% colspan="1" rowspan="6" %)(((
1544
1545
1546
1547 Output
1548 )))|Done|BOOL|Yes|TRUE/FALSE|Busy flag
1549 |BusY|BOOL|Yes|TRUE/FALSE|Aborted flag
1550 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
1551 |ReadyUpdate|BOOL|Yes|TRUE/FALSE|Cam table update comp flag
1552 |Error|BOOL|Yes| |Whether there is an error or not
1553 |ErrorID|DWORD|Yes| |Error Code (Please check [8.10 Error Code Cross-reference Table] )
1554
1555 Function
1556
1557 * This function block is used to update cam table. At the rising edge of startup, the cam data is calculated based on values of input variables camNode and NodeNum. The data is updated to the cam table specified by camTable, which is will be effective in the next cam cycle.
1558
1559 (% class="box infomessage" %)
1560 (((
1561 **✎Note:**
1562
1563 ~1. This function block is not available when the Cam table does not exist.
1564
1565 2. The data written to ECAM table needs to be accurate to six decimal places, otherwise PLC will report error 16x00000C
1566 )))
1567
1568 Sequence diagram
1569
1570 (% style="text-align:center" %)
1571 [[image:Picture12.png]]
1572
1573
1574 === **MC_SAVECAMTABLE** ===
1575
1576 ----
1577
1578 MC_SAVECAMTABLE
1579
1580 (% style="text-align:center" %)
1581 [[image:1708937631240-106.png||_mstalt="292552"]]
1582
1583 This function block is used to save the cam table.
1584
1585 Device used (Only a single device can be used, and device splicing and offset are not supported)
1586
1587 |=(((
1588
1589
1590 **Instruction**
1591 )))|=(((
1592
1593
1594 **Parameter**
1595 )))|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1596 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1597 |(% colspan="1" rowspan="7" %)(((
1598
1599
1600
1601 MC_SAVECAMTABLE
1602 )))|Execute|[[image:1708937655104-706.png||_mstalt="295243"]]|[[image:1708937655106-671.png||_mstalt="295971"]]|[[image:1708937655107-449.png||_mstalt="297206"]]|[[image:1708937655108-356.png||_mstalt="296569"]]|[[image:1708937655108-481.png||_mstalt="296205"]]| | | | | | | | | | | | | | | | | | | | |
1603 |CamTableID| | | | | | | | | | | | | | | | | | | | | | | | | |
1604 |Done| |[[image:1708937655109-459.png||_mstalt="297986"]]|[[image:1708937655110-668.png||_mstalt="296530"]]|[[image:1708937655111-873.png||_mstalt="296114"]]|[[image:1708937655111-699.png||_mstalt="297934"]]| | | | | | | | | | | | | | | | | | | | |
1605 |Busy| |[[image:1708937655112-723.png||_mstalt="294658"]]|[[image:1708937655113-511.png||_mstalt="293475"]]|[[image:1708937655113-220.png||_mstalt="292643"]]|[[image:1708937655114-762.png||_mstalt="295997"]]| | | | | | | | | | | | | | | | | | | | |
1606 |InstructionAborted| |[[image:1708937655115-940.png||_mstalt="295620"]]|[[image:1708937655116-761.png||_mstalt="296192"]]|[[image:1708937655116-242.png||_mstalt="294554"]]|[[image:1708937655117-517.png||_mstalt="296257"]]| | | | | | | | | | | | | | | | | | | | |
1607 |Error| |[[image:1708937655118-872.png||_mstalt="297544"]]|[[image:1708937655121-206.png||_mstalt="293605"]]|[[image:1708937655122-669.png||_mstalt="297557"]]|[[image:1708937655123-657.png||_mstalt="296920"]]| | | | | | | | | | | | | | | | | | | | |
1608 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1609
1610 Precautions for use of devices
1611
1612 * LC and HSC are signed 32-bit data types;
1613 * T, C, D, R and SD are signed 16-bit data types;
1614
1615 Variable type used
1616
1617 |=**Instruction**|=**Pin**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
1618 |(% colspan="1" rowspan="7" %)(((
1619
1620
1621
1622
1623 MC_SAVECAMTABLE
1624 )))|(% colspan="1" rowspan="2" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
1625 |CamTableID|INT|No|-|Cam tableID
1626 |(% colspan="1" rowspan="5" %)Output|Done|BOOL|Yes|TRUE/FALSE|Completion flag
1627 |BusY|BOOL|Yes|TRUE/FALSE|Busy flag
1628 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abort flag
1629 |Error|BOOL|Yes|-|Whether there is an error or not
1630 |ErrorID|DWORD|Yes|-|Error Code (Please check [8.10 Error Code Cross-reference Table]
1631
1632 Function
1633
1634 * This function block is used to save the specified cam table.
1635
1636 (% class="box infomessage" %)
1637 (((
1638 (% _mstmutation="1" %)**✎Note:**(%%)This function block is not available when the Cam table does not exist.
1639
1640 In the process of executing this instruction, the controller cannot be powered off. Otherwise, the data will fail to be saved and the cam data will be lost.
1641 )))
1642
1643 Error code
1644
1645 |=**Error code**|=**Content**
1646 |4084H|Data beyond the specifiable range was entered.
1647
1648 Sequence diagram
1649
1650 (% style="text-align:center" %)
1651 [[image:1708937834226-438.png||_mstalt="296829"]]
1652
1653 == **Motion Function Block for Multi-axis Motion Control** ==
1654
1655 ----
1656
1657 === **MC_CAMIN** ===
1658
1659 ----
1660
1661 MC_CAMIN
1662
1663 (% style="text-align:center" %)
1664 [[image:1708937946127-139.png||_mstalt="297128"]]
1665
1666 The function block enables the controlled axis to carry out cam motion.
1667
1668 Device used (only a single device can be used, and device splicing and offset are not supported)
1669
1670 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1671 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1672 |(% colspan="1" rowspan="21" %)MC_CAMIN|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1673 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1674 |MasterIndex| | | | | | | | | | | | | | | | | | | | | | | | | |
1675 |SlaveIndex| | | | | | | | | | | | | | | | | | | | | | | | | |
1676 |MasterScaling| | | | | | | | | | | | | | | | | | | | | | | | | |
1677 |SlaveScaling| | | | | | | | | | | | | | | | | | | | | | | | | |
1678 |MasterStartDistance| | | | | | | | | | | | | | | | | | | | | | | | | |
1679 |MasterSyncPosition| | | | | | | | | | | | | | | | | | | | | | | | | |
1680 |StartMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1681 |MasterValueSource| | | | | | | | | | | | | | | | | | | | | | | | | |
1682 |CamTableID| | | | | | | | | | | | | | | | | | | | | | | | | |
1683 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1684 |Master| | | | | | | | | | | | | | | | | | | | | | | | | |
1685 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
1686 |InSync| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1687 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1688 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1689 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1690 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1691 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1692 |EndOfProfile| | | | | | | | | | | | | | | | | | | | | | | | | |
1693
1694 Precautions for use of devices
1695
1696 * LC and HSC are signed 32-bit data types;
1697 * T, C, D, R and SD are signed 16-bit data types;
1698
1699 Variable Type Used
1700
1701 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1702 |(% colspan="1" rowspan="21" %)MC_CAMIN|Execute|BOOL|No|TRUE/FALSE|Enable
1703 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation (reserve)
1704 |MasterIndex|LREAL|No|-9999999.00~~9999999.00|Master axis offset
1705 |SlaveIndex|LREAL|No|-9999999.00~~9999999.00|Slave axis bias
1706 |MasterScaling|LREAL|No|-9999999.00~~9999999.00|Master axis scaling factor
1707 |SlaveScaling|LREAL|No|-9999999.00~~9999999.00|Slave axis scaling factor
1708 |MasterStartDistance|LREAL|No|-9999999.00~~9999999.00 (not 0)|Master axis starting distance
1709 |MasterSyncPosition|LREAL|No|-9999999.00~~9999999.00|Master axis synchronization position
1710 |StartMode|WORD|No|0 to 2|Start mode (0-Absolute, 1-Relative, 2-Catchup)
1711 |MasterValueSource|WORD|No|0 to 2|(((
1712 Master axis synchronization source
1713
1714 (Instruction value, set value and actual value)
1715 )))
1716 |CamTableID|WORD|No|0 to 9999999.00|Electronic CAM table identification
1717 |BufferMode|WORD|No|0|Mode selection
1718 |Master|WORD|No|-|Master axis
1719 |Slave|WORD|No|-|Slave axis
1720 |InSync|BOOL|No|TRUE/FALSE|Completion sign
1721 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1722 |Active|BOOL|No|TRUE/FALSE|Valid sign
1723 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1724 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1725 |ErrorID|DWORD|No|-|[[Error code>>path:#_8.10_Error_Code]]
1726 |EndOfProfile|WORD|No|-|Electronic CAM end signal
1727
1728 Function
1729
1730 * This function starts with the input parameter MasterSyncPosition. Before reaching the MasterSyncPosition, the catchup or transition motion is carried out according to the set parameters (absolute relative of the master axis, absolute relative of the slave axis, starting mode). After reaching the MasterSyncPosition position, the positional relationship between the master axis and the slave axis is obtained according to the camTableID, and the relationship is corrected under the set offset and scaling factors of the master axis and the slave axis, and the cam motion is carried out.
1731 * MasterSyncPosition
1732
1733 MasterSyncPosition is the absolute position when the axis mode is absolute;
1734
1735 MasterSyncPosition is the relative position when the axis mode is relative;
1736
1737 * ImSync status bit is turned ON when the master axis reaches MasterSyncPosition position and the slave axis reaches the slave axis position corresponding to the cam table of the master axis. Generally speaking, when the slave axis is in relative mode, the MC_CAMIN instruction is executed, and this status bit will be turned ON immediately; when the slave axis is in absolute or tracing mode, the status bit will be turned ON immediately after the slave axis jumps or traces to the position corresponding to the master axis cam table.
1738 * The EndOfProfle status bit is turned ON after the slave axis has followed the master axis through the entire cam table; The StartMode parameter, together with the MasterAbsolute/SlaverAbsolute parameters in the MC_CAMTABLESELECT instruction, determines the motion mode of the master/slave axis.
1739 * The master mode is only determined by MasterAbsolute and is not affected by the value in StartMode. The slave axis mode is expressed as follows:
1740
1741 |=**StartMode**|=**SlaveAbsolute**|=**Slave axis mode**
1742 |Absolute|Relative|Relative
1743 |Absolute|Absolute|Absolute
1744 |Relative|Relative|Relative
1745 |Relative|Absolute|Relative
1746 |Catch up|Relative|Relative catch up
1747 |Catch up|Absolute|Relative catch up
1748
1749 |=**Master axis mode**|=**Slave axis mode**|=**Result**
1750 |(% colspan="1" rowspan="4" %)Relative|Relative|(((
1751 When CAMIN is executed, slave axis position jumps to the set offset position;
1752
1753 When master axis is executing, slave axis performs relative motion according to the start position of cam table.
1754 )))
1755 |Absolute|(((
1756 When CAMIN is executed, slave axis position jumps to the cam table start position (i.e., 0);
1757
1758 When the master axis is executing, slave axis moves according to the corresponding point position of the cam table.
1759 )))
1760 |Relative|(((
1761 When CAMIN is executed, slave axis position catches up to the set offset position;
1762
1763 When the master axis is executing, the slave axis performs relative motion according to the corresponding points of the cam table.
1764 )))
1765 |Absolute catch up|(((
1766 When CAMIN is executed, slave axis position catches up to the cam table starting position (i.e., 0);
1767
1768 When the master axis is executing, the slave axis moves according to the corresponding point position of the cam table.
1769 )))
1770 |(% colspan="1" rowspan="4" %)Absolute|Relative|(((
1771 When CAMIN is executed, slave axis position jumps to the set offset position;
1772
1773 When the master axis is executing, the slave axis performs relative motion according to the points corresponding to the cam table.
1774 )))
1775 |Absolute|(((
1776 When CAMIN is executed, slave axis position jumps to the current slave axis position corresponding to the master axis in the cam table (For example, if the current position of the master axis is 100 and the slave axis point corresponding to the master axis point 100 in the cam table is 200, the slave axis jumps after CAMIN is executed;)
1777
1778 After the master axis is executing, slave axis performs relative motion according to the corresponding points in the cam table.
1779 )))
1780 |Relative catch up|(((
1781 When CAMIN is executed, slave axis position catches up to the set offset position;
1782
1783 When the master axis is executing, slave axis performs relative motion according to the corresponding points of the cam table.
1784 )))
1785 |Absolute catch up|(((
1786 When CAMIN is executed, slave axis position catches up to the current slave axis position corresponding to the master axis in the cam table
1787
1788 (For example, if the current position of the master axis is 100 and the slave axis point corresponding to the master axis point 100 in the cam table is 200, the slave axis jumps after CAMIN is executed;)
1789
1790 After the master axis is running, the slave axis performs relative motion to the corresponding points in the cam table.
1791 )))
1792
1793 * When axis is in absolute mode, if the current position of the axis is not within the range of the axis in the cam table, it will be processed by self-acting periodization.
1794
1795 Example: the current axis position is 110, and the axis position in the cam table is 0~~100, then the default axis position after CAMIN execution is 10 (the actual axis position does not change);
1796
1797 * The master-slave axis multiplier and master-slave axis offset parameters take effect when CAMIN is executed and do not support modification in the process; unsuitable parameters will cause the slave axis position to jump.
1798 * The master-slave position relationship (where CAM () indicates the corresponding slave position of the master axis on the cam table):
1799
1800 Master Position = Master Position * Master Multiplier + Master Offset
1801
1802 Slave position = Slave multiplier * CAM (spindle position) + Slave offset
1803
1804 * The master-slave multiplier cannot be 0.
1805
1806 Precautions
1807
1808 * This function block is not available when the axis does not exist;
1809 * The motion mode of the slave axis shall be determined according to start mode and SlaveAbsolute of CamtableSelect. See “Chapter 8.6” [Description of Several Modes in E-CAM] for details. MasterValueSource is now an actual value regardless of which mode you choose.
1810
1811 Error code
1812
1813 |=**Error code**|=**Content**
1814 |4084H|Data beyond the specifiable range was entered.
1815
1816 Sequence diagram
1817
1818 ▪ MC_CAMIN needs to be used in conjunction with MC_CAMTABLESELECT and a single-axis motion (e.g., MC_MOVEABSOLUTE), the sequence diagram is as follows.
1819
1820 (% style="text-align:center" %)
1821 [[image:1708938240121-859.png||_mstalt="295776"]]
1822
1823 (1) Slave motion varies depending on StartMode.
1824
1825 Assume that the start conditions for cam motion are as follows:
1826
1827 ▪ In condition 1, the master axis jumps at the position of 20 (70~~50), and the jumping position is the cam table position corresponding to masterSyncPosition, and the output variable InSync (in synchronization) changes to TRUE when it passes the position of 70, and the slave axis starts camming.
1828
1829 ▪ In condition 2, the master axis will catch up at 20 (70~~50), and the catch-up position is the cam table position corresponding to masterSyncPosition, and the output variable InSync (in synchronization) becomes TRUE when it passes the position of 70, and the slave axis starts camming.
1830
1831 ▪ In condition 3, the output variable InSync (in synchronization) becomes TRUE when the master axis passes the position of 70, and the slave axis starts camming.
1832
1833
1834 |=**Input variable**|=**Condition 1**|=**Condition 2**|=**Condition 3**
1835 |MasterAbsolute|True (Absolute)|True (Absolute)|True (Absolute)
1836 |SlaveAbsolute|True (Absolute)|True (Absolute)|FALSE (Relative)
1837 |StartMode|MC_START_MODE_ABSOLUTE|MC_START_MODE_RAMPIN|MC_START_MODE_RELATIVE
1838 |MasterSyncPosition|70|70|70
1839 |MasterDistace|50|50|50
1840 |MasterOffset|0|0|0
1841 |SlaveOffset|0|0|0
1842 |MasterScaling|1|1|1
1843 |SlaveScaling|1|1|1
1844
1845 (2) Slave motion varies depending on MasterAbsolute.
1846
1847 (% style="text-align:center" %)
1848 [[image:1708938293300-489.png||_mstalt="296868"]]
1849
1850 (% style="text-align:center" %)
1851 [[image:1708938305434-874.png||_mstalt="296933"]]
1852
1853
1854 (% style="text-align:center" %)
1855 [[image:1708938314862-131.png||_mstalt="294060"]]
1856
1857 (3)Slave motion varies depending on SlaveAbsolute.
1858
1859
1860 (% style="text-align:center" %)
1861 [[image:1708938393382-857.png||_mstalt="299052"]]
1862
1863 (% style="text-align:center" %)
1864 [[image:1708938413402-528.png||_mstalt="294645"]]
1865
1866
1867 === **MC_CAMOUT** ===
1868
1869 ----
1870
1871 MC_CAMOUT
1872
1873 (% style="text-align:center" %)
1874 [[image:1708938462508-819.png||_mstalt="297947"]]
1875
1876 The function block enables the controlled axis to carry out uniform motion at current velocity.
1877
1878 Device used (only a single device can be used, and device splicing and offset are not supported)
1879
1880 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=(((
1881 **Pulse**
1882
1883 **expansion**
1884 )))
1885 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1886 |(% colspan="1" rowspan="6" %)MC_CAMOUT|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1887 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
1888 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1889 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1890 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1891 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1892
1893 Precautions for use of devices
1894
1895 * LC and HSC are signed 32-bit data types;
1896 * T, C, D, R and SD are signed 16-bit data types;
1897
1898 Variable Type Used
1899
1900 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1901 |(% colspan="1" rowspan="6" %)MC_CAMOUT|Execute|BOOL|No|TRUE/FALSE|Enable
1902 |Slave|WORD|No|0 to 65535|Slave axis
1903 |Done|BOOL|No|TRUE/FALSE|Completion sign
1904 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1905 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1906 |ErrorID|DWORD|No|-|Error code
1907
1908 Function
1909
1910 * The function is used to separate the slave axis from the position relation specified for the electronic cam. Execute the MC_CamOut function block to transform the slave shaft from the synchronous state to the continuous motion state. The current velocity of the slave axis is maintained.
1911
1912 Precautions
1913
1914 * This function block is not available when the axis does not exist.
1915
1916 Sequence diagram
1917
1918 (% style="text-align:center" %)
1919 [[image:1708938589953-976.png||_mstalt="301886"]]
1920
1921
1922 === **MC_GEARIN** ===
1923
1924 ----
1925
1926 MC_GEARIN
1927
1928 (% style="text-align:center" %)
1929 [[image:1708938638291-674.png||_mstalt="298363"]]
1930
1931 The function block enables the controlled axis to carry out gear motion.
1932
1933 Device used (only a single device can be used, and device splicing and offset are not supported)
1934
1935 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
1936 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
1937 |(% colspan="1" rowspan="17" %)MC_GEARIN|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1938 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1939 |RatioNumerator| | | | | | | | | | | | | | | | | | | | | | | | | |
1940 |RatioDenominator| | | | | | | | | | | | | | | | | | | | | | | | | |
1941 |MasterValueSource| | | | | | | | | | | | | | | | | | | | | | | | | |
1942 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1943 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
1944 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
1945 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
1946 |Master| | | | | | | | | | | | | | | | | | | | | | | | | |
1947 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
1948 |InGear| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1949 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1950 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1951 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1952 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
1953 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
1954
1955 Precautions for use of devices
1956
1957 * LC and HSC are signed 32-bit data types;
1958 * T, C, D, R and SD are signed 16-bit data types;
1959
1960 Variable Type Used
1961
1962 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
1963 |(% colspan="1" rowspan="17" %)MC_GEARIN|Execute|BOOL|No|TRUE/FALSE|Enable
1964 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Updated during operation (reserve)
1965 |RatioNumerator|UNIT|No|[-32768,0)U(0,32767]|Gear velocity ratio (numerator)
1966 |RatioDenominator|UDINT|No|(0,65535]|Gear velocity ratio (denominator)
1967 |MasterValueSource|WORD|No|0 to 2|(((
1968 Master axis synchronization source
1969
1970 (Instruction value, set value and actual value)
1971 )))
1972 |Acceleration|LREAL|No|0 to 9999999.99999|Acceleration
1973 |Deceleration|LREAL|No|0 to 9999999.99999|Deceleration
1974 |Jerk|LREAL|No|0 to 9999999.99999|Jerk
1975 |BufferMode|WORD|No|0 to 5|Selection
1976 |Master|WORD|No|0 to 65536|Master axis
1977 |Slave|WORD|No|0 to 65536|Slave axis
1978 |InGear|BOOL|No|TRUE/FALSE|Completion sign
1979 |Busy|BOOL|No|TRUE/FALSE|Busy sign
1980 |Active|BOOL|No|TRUE/FALSE|Valid sign
1981 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
1982 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
1983 |ErrorID|DWORD|No|-|Error code
1984
1985 Function
1986
1987 * The function block is used for establishing the synchronization of the velocity ratio between the master axis and the slave axis. Firstly, the slave axis takes the velocity of master axis multiplied by the velocity ratio as the target velocity and moves at the set acceleration and jerk and executes gear motion according to the velocity of master axis when reaching the target motion.
1988
1989 Precautions
1990
1991 * This function block is not available when the axis does not exist.
1992
1993 Error code
1994
1995 |=**Error code**|=**Content**
1996 |4084H|Data beyond the specifiable range was entered.
1997
1998 Sequence diagram
1999
2000 * After starting the motion, the slave axis performs acceleration and deceleration with the velocity obtained by multiplying the spindle speed by the gear ratio as the target speed;
2001 * Before reaching target position is called the Catching phase and after reaching it is called the InGear phase;
2002 * The gear ratio is positive and the slave axis moves in the same direction as the master axis.
2003
2004 (% style="text-align:center" %)
2005 [[image:1708938826565-617.png||_mstalt="298246"]]
2006
2007 * The gear ratio is negative and the slave axis moves in the reverse direction to the master axis.
2008
2009 (% style="text-align:center" %)
2010 [[image:1708938850653-961.png||_mstalt="297531"]]
2011
2012
2013 Before reaching synchronization, the slave axis moves according to the maximum acceleration set by the axis as plus or minus speed, and the slave axis velocity is recognized when it is equal to the speed of the master axis multiplied by the gear ratio.
2014
2015 When the speed of the slave axis equals the speed of the master axis multiplied by the gear ratio, the gears are recognized as meshing, and thereafter the slave axis follows the master axis completely.
2016
2017 1. Master axis maintains constant velocity before synchronization (Gear instruction is triggered according to 1:1 gear ratio)(((
2018 (% style="text-align:center" %)
2019 [[image:1708938900938-930.png||_mstalt="297011"]]
2020 )))
2021 1. Master axis moves in variable velocity before synchronization (Gear instruction triggered according to 1:1 gear ratio)(((
2022 (% style="text-align:center" %)
2023 [[image:1708938892131-173.png||_mstalt="295360"]]
2024 )))
2025
2026 === **MC_GEAROUT** ===
2027
2028 ----
2029
2030 MC_GEAROUT
2031
2032 (% style="text-align:center" %)
2033 [[image:1708938960939-798.png||_mstalt="301990"]]
2034
2035 The function block enables the controlled axis to carry out uniform motion at current velocity.
2036
2037 Device used (only a single device can be used, and device splicing and offset are not supported)
2038
2039 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2040 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2041 |(% colspan="1" rowspan="6" %)MC_GEAROUT|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2042 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
2043 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2044 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2045 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2046 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2047
2048 Precautions for use of devices
2049
2050 * LC and HSC are signed 32-bit data types;
2051 * T, C, D, R and SD are signed 16-bit data types;
2052
2053 Variable Type Used
2054
2055 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
2056 |(% colspan="1" rowspan="6" %)MC_GEAROUT|Execute|BOOL|No|TRUE/FALSE|Enable
2057 |Slave|WORD|No|0 to 65535|Axis number
2058 |Done|BOOL|No|TRUE/FALSE|Completion sign
2059 |Busy|BOOL|No|TRUE/FALSE|Busy sign
2060 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
2061 |ErrorID|DWORD|No|-|Error code
2062
2063 Function
2064
2065 * The function block is used for separating the slave axis from the master axis at the velocity ratio and maintaining the motion at the velocity when it separates.
2066
2067 Precautions
2068
2069 * This function block is not available when the axis does not exist.
2070
2071 Sequence diagram
2072
2073 (% style="text-align:center" %)
2074 [[image:1708939163693-763.png||_mstalt="298233"]]
2075
2076 === ** MC_GEARINPOS** ===
2077
2078 ----
2079
2080 MC_GEARINPOS
2081
2082 (% style="text-align:center" %)
2083 [[image:1708939230407-562.png||_mstalt="294801"]]
2084
2085 The function block enables the controlled axis to carry out gear motion.
2086
2087 Device used (only a single device can be used, and device splicing and offset are not supported)
2088
2089
2090 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2091 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2092 |(% colspan="1" rowspan="22" %)MC_GEARINPOS|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2093 |RatioNumerator| | | | | | | | | | | | | | | | | | | | | | | | | |
2094 |RatioDenominator| | | | | | | | | | | | | | | | | | | | | | | | | |
2095 |MasterValueSource| | | | | | | | | | | | | | | | | | | | | | | | | |
2096 |MasterSyncPosition| | | | | | | | | | | | | | | | | | | | | | | | | |
2097 |SlaveSyncPosition| | | | | | | | | | | | | | | | | | | | | | | | | |
2098 |SyncMode| | | | | | | | | | | | | | | | | | | | | | | | | |
2099 |MasterStartDistance| | | | | | | | | | | | | | | | | | | | | | | | | |
2100 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
2101 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2102 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2103 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
2104 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
2105 |Master| | | | | | | | | | | | | | | | | | | | | | | | | |
2106 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
2107 |StartSync| | | | | | | | | | | | | | | | | | | | | | | | | |
2108 |InSync| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2109 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2110 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2111 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2112 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2113 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2114
2115 Precautions for use of devices
2116
2117 * LC and HSC are signed 32-bit data types;
2118 * C, D, R and SD are signed 16-bit data types.
2119
2120 Variable Type Used
2121
2122 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can be empty or not**|=**Range**|=**Description**
2123 |(% colspan="1" rowspan="22" %)MC_GEARINPOS|Execute|BOOL|No|TRUE/FALSE|Enable
2124 |RatioNumerator|UNIT|No|[-32768,0)U(0,32767]|Gear velocity ratio (numerator)
2125 |RatioDenominator|UDINT|No|(0,65535]|Gear velocity ratio (denominator)
2126 |MasterValueSource|WORD|No|0 to 2|(((
2127 Master axis synchronization source
2128
2129 (Instruction value, set value and actual value)
2130 )))
2131 |MasterSyncPosition|LREAL|No|-9999999.999999 to 9999999.999999|Master axis synchronization position
2132 |SlaveSyncPosition|LREAL|No|-9999999.999999 to 9999999.999999|Slave axis synchronization position
2133 |SyncMode|WORD|No|0 to 2|Synchronous mode (shortest, catchup, slowdown)
2134 |MasterStartDistance|LREAL|No|-9999999.999999 to 9999999.999999 (not 0)|Master axis starting distance
2135 |Velocity|LREAL|No|0 to 9999999.999999 (not 0)|Velocity
2136 |Acceleration|LREAL|No|0 to 9999999.999999 (not 0)|Acceleration
2137 |Deceleration|LREAL|No|0 to 9999999.999999 (not 0)|Deceleration
2138 |Jerk|LREAL|No|0 to 9999999.999999|Jerk
2139 |BufferMode|WORD|No|0 to 5|Buffer mode selection
2140 |Master|WORD|No|0 to 65535|Master axis
2141 |Slave|WORD|No|0 to 65535|Slave axis
2142 |StartSync|BOOL|No|TRUE/FALSE|Synchronous identification
2143 |InSync|BOOL|No|TRUE/FALSE|Synchronized sign
2144 |Busy|BOOL|No|TRUE/FALSE|Busy sign
2145 |Active|BOOL|No|TRUE/FALSE|Valid sign
2146 |InstructionAborted|BOOL|No|TRUE/FALSE|Abortion sign
2147 |Error|BOOL|No|TRUE/FALSE|Whether there is an error or not
2148 |ErrorID|DWORD|No|-|Error code
2149
2150 Function
2151
2152 * The function block is used to achieve the specified velocity ratio between the slave axis and master axis at the specific position through a set maximum velocity, acceleration, deceleration, jerk and synchronous mode.
2153
2154 Precautions
2155
2156 * This function block is not available when the axis does not exist.
2157
2158 Error code
2159
2160 |=**Error code**|=**Content**
2161 |4084H|Data beyond the specifiable range was entered.
2162
2163 Sequence diagram
2164
2165 * After starting the motion, the slave axis performs acceleration and deceleration with the speed obtained by multiplying the axis velocity by the gear ratio as the target velocity;
2166 * The position obtained by ▪ (MasterSyncPosition - MasterStartDistance) is called the start position, and after the master axis reaches this position, the slave axis starts to catching up with the target;
2167 * If the gear ratio is positive, the slave axis moves in the same direction as the master axis.
2168
2169 (% style="text-align:center" %)
2170 [[image:1708939532879-130.png||_mstalt="296231"]]
2171
2172 * If the gear ratio is negative, the slave axis moves in the reverse direction to the master axis.
2173
2174 (% style="text-align:center" %)
2175 [[image:1708939562781-830.png||_mstalt="296764"]]
2176
2177 * Before reaching synchronization, the slave axis moves at the maximum acceleration set by the axis as plus or minus speed, and is recognized when the slave axis speed is equal to the speed of the master axis multiplied by the gear ratio.
2178 * When the speed of the slave axis equals the velocity of the master axis multiplied by the gear ratio, the gears are considered to be meshed, and thereafter the slave axis follows the main axis completely.
2179
2180 1. The master axis moves at a constant speed until synchronization is achieved (The gear instruction is triggered at a gear ratio of 1:1).(((
2181 (% style="text-align:center" %)
2182 [[image:1708939646390-943.png||_mstalt="297947"]]
2183 )))
2184 1. (((
2185 Master axis moves in variable velocity before synchronization (Gear instruction triggered according to 1:1 gear ratio)
2186
2187 (% style="text-align:center" %)
2188 [[image:1708939657645-807.png||_mstalt="298857"]]
2189 )))
2190
2191 gearInPos carries out the pursuit motion in the following three modes, all following the spindle in gear motion after the target speed has been reached:
2192
2193 * Shortest: catching in constant acceleration mode;
2194 * Catchuo: catching in S-curve;
2195 * Slowdown: catching up in T-curve.
2196
2197 (% class="box infomessage" %)
2198 (((
2199 **✎** **Note:** When the amount of movement in the chase is short, there may be an abrupt change in speed from the axis to the target position and then directly to the target speed.
2200 )))
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217 == **Management functions of axis group motion control** ==
2218
2219 ----
2220
2221 === **MC_ADDAXISTOGROUP** ===
2222
2223 ----
2224
2225 MC_ADDAXISTOGROUP
2226
2227 (% style="text-align:center" %)
2228 [[image:1708999788060-281.png||_mstalt="297531"]]
2229
2230 The function block is to add axis to axis group.
2231
2232 Device used (Only a single device can be used, and device splicing and index are not supported)
2233
2234 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2235 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2236 |(% colspan="1" rowspan="7" %)MC_ADDAXISTOGROUP|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2237 |IdentInGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2238 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2239 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
2240 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2241 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2242 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2243
2244 Precautions for use of devices
2245
2246 ▪LC and HSC are signed 32-bit data types;
2247
2248 ▪T, C, D, R and SD are signed 16-bit data types;
2249
2250 Variable type used
2251
2252 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2253 |(% colspan="1" rowspan="8" %)MC_ADDAXISTOGROUP|Execute|BOOL|No|TRUE/FALSE|Enable
2254 |IdentInGroup|WORD|No|[0 to 2]|Axis sequence flag
2255 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2256 |Axis|WORD|No|[0 to 65535]|Axis number
2257 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2258 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2259 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2260 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2261
2262 Features
2263
2264 ▪The rising edge of Execute triggers and Axis is added to Axes Group. Instructions are not buffered and axis do not move;
2265
2266 ▪IndentInGroup is a flag of the adding axis order to axis group.
2267
2268 (% class="box infomessage" %)
2269 (((
2270 ✎Note:
2271
2272 ▪If the serial number of the axis group does not exist, an error will be reported;
2273
2274 ▪When the axis group is enabled, an error will be reported when add new axis;
2275
2276 ▪Axis group cannot move when only adding axis to axis group. It is necessary to call MC_GroupEnable to enable the motion.
2277 )))
2278
2279 Error code
2280
2281 |=**Error code**|=**Content**
2282 |4084H|Data beyond the specifiable range was input.
2283
2284 (% style="font-size:14px" %)Sequence diagram
2285
2286 (% style="text-align:center" %)
2287 [[image:1709000371923-181.png||_mstalt="292591"]]
2288
2289 === **MC_REMOVEAXISFROMGROUP** ===
2290
2291 ----
2292
2293 MC_REMOVEAXISFROMGROUP
2294
2295 (% style="text-align:center" %)
2296 [[image:1709000436811-846.png||_mstalt="294346"]]
2297
2298 This function block removes axis from an axis group.
2299
2300 Device used (Only a single device can be used, and device splicing and index are not supported)
2301
2302 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2303 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2304 |(% colspan="1" rowspan="7" %)MC_REMOVEAXISFROMGROUP|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2305 |IdentInGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2306 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2307 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2308 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2309 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2310 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2311
2312 Precautions for use of devices
2313
2314 ▪LC and HSC are signed 32-bit data types;
2315
2316 ▪T, C, D, R and SD are signed 16-bit data types;
2317
2318 Variable type used
2319
2320 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2321 |(% colspan="1" rowspan="7" %)MC_REMOVEAXISFROMGROUP|Execute|BOOL|No|TRUE/FALSE|Enable
2322 |IdentInGroup|WORD|No|[0 to 2]|Axis sequence flag
2323 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2324 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2325 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2326 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2327 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2328
2329 Features
2330
2331 ▪This function block removes axis from AxesGroup with serial number marked by IdentInGroup, which are not cached and do not move.
2332
2333 (% class="box infomessage" %)
2334 (((
2335 ✎Note:▪If the serial number of the axis group does not exist, an error will be reported;
2336
2337 ▪ Axis group is running or not disabled, and an error will be reported when removed the axis;
2338
2339 ▪Single-axis operation can only be executed when the axis group is disabled, and whether it is removed or not will not affect the single-axis operation.
2340 )))
2341
2342 Error code
2343
2344 |=**Error code**|=**Content**
2345 |4084H|Data beyond the specifiable range was input.
2346
2347 Sequence diagram
2348
2349 (% style="text-align:center" %)
2350 [[image:1709000691345-890.png||_mstalt="295061"]]
2351
2352 === **MC_UNGROUPALLAXES** ===
2353
2354 ----
2355
2356 MC_UNGROUPALLAXES
2357
2358 (% style="text-align:center" %)
2359 [[image:1709000738471-185.png||_mstalt="294762"]]
2360
2361 This function block removes all the axes from an axis group.
2362
2363 Device used (Only a single device can be used, and device splicing and index are not supported)
2364
2365 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2366 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2367 |(% colspan="1" rowspan="6" %)MC_UNGROUPALLAXES|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2368 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2369 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2370 |BusY| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2371 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2372 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2373
2374 Precautions for use of devices
2375
2376 ▪LC and HSC are signed 32-bit data types;
2377
2378 ▪T, C, D, R and SD are signed 16-bit data types;
2379
2380 Variable type used
2381
2382 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2383 |(% colspan="1" rowspan="6" %)MC_UNGROUPALLAXES|Execute|BOOL|No|TRUE/FALSE|Enable
2384 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2385 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2386 |BusY|BOOL|Yes|TRUE/FALSE|Busy flag
2387 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2388 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2389
2390 Features
2391
2392 ▪Delete all axes from AxesGroup. Not be buffered and not move.
2393
2394 (% class="box infomessage" %)
2395 (((
2396 ✎Note:
2397
2398 ▪If the serial number of the axis group does not exist, an error will be reported;
2399
2400 ▪ Axis group is running or not disabled, and an error will be reported when removed the axis;
2401 )))
2402
2403 Error code
2404
2405 |=**Error code**|=**Content**
2406 |4084H|Input data beyond the specifiable range
2407
2408 (% style="font-size:14px" %)Sequence diagram
2409
2410 (% style="text-align:center" %)
2411 [[image:1709001126146-829.png||_mstalt="294489"]]
2412
2413 === **MC_GROUPENABLE** ===
2414
2415 ----
2416
2417 MC_GROUPENABLE
2418
2419 (% style="text-align:center" %)
2420 [[image:1709001201497-541.png||_mstalt="292682"]]
2421
2422
2423 The function block is axis group enabled.
2424
2425 Device used (Only a single device can be used, and device splicing and index are not supported)
2426
2427 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2428 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2429 |(% colspan="1" rowspan="6" %)MC_SAVECAMTABLE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2430 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2431 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2432 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2433 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2434 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2435
2436 Precautions for use of devices
2437
2438 ▪LC and HSC are signed 32-bit data types;
2439
2440 ▪T, C, D, R and SD are signed 16-bit data types.
2441
2442 Variable type used
2443
2444 |**Instruction**|**Parameter**|**Variable type**|**Can it be empty**|**Range**|**Description**
2445 |(% colspan="1" rowspan="6" %)MC_GROUPENABLE|Execute|BOOL|No|TRUE/FALSE|Enable
2446 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2447 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2448 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2449 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2450 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2451
2452 Features
2453
2454 ▪Enable axis group to run on the Execute rising edge.
2455
2456 (% class="box infomessage" %)
2457 (((
2458 ✎Note:▪Axis group motion can only be running when enabled, otherwise an error will be reported;
2459
2460 ▪When a single axis is running, enabling this block will report an error.
2461 )))
2462
2463 Error code
2464
2465 |=**Error code**|=**Content**
2466 |4084H|Input data beyond the specifiable range
2467
2468 === **MC_GROUPDISABLE** ===
2469
2470 ----
2471
2472 MC_GROUPDISABLE
2473
2474 (% style="text-align:center" %)
2475 [[image:1709001439118-784.png||_mstalt="295594"]]
2476
2477 This function block is axis group disabled.
2478
2479 Device used (Only a single device can be used, an d device splicing and index are not supported)
2480
2481 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2482 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2483 |(% colspan="1" rowspan="6" %)MC_GROUPDISABLE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2484 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2485 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2486 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2487 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2488 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2489
2490 Precautions for use of devices
2491
2492 ▪LC and HSC are signed 32-bit data types;
2493
2494 ▪T, C, D, R and SD are signed 16-bit data types.
2495
2496 Variable type used
2497
2498 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2499 |(% colspan="1" rowspan="6" %)MC_GROUPDISABLE|Execute|BOOL|No|TRUE/FALSE|Enable
2500 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2501 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2502 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2503 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2504 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2505
2506 Features
2507
2508 ▪On the Execute rising edge, disable the axis group.
2509
2510 (% class="box infomessage" %)
2511 (((
2512 ✎Note:
2513
2514 ▪Single axis operation can only be executed when the group is disabled.
2515
2516 ▪When a single axis is running, disabling this block will report an error.
2517 )))
2518
2519 Error code
2520
2521 |=**Error code**|=**Content**
2522 |4084H|Input data beyond the specifiable range
2523
2524 === **MC_GROUPREDACTUALPOSITION** ===
2525
2526 ----
2527
2528 MC_GROUPREADACTUALPOSITION
2529
2530 (% style="text-align:center" %)
2531 [[image:1709001728776-330.png||_mstalt="294255"]]
2532
2533 This function block is to read the actual position of each axis from the axis group.
2534
2535 Device used (Only a single device can be used, and device splicing and index are not supported)
2536
2537 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2538 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2539 |(% colspan="1" rowspan="8" %)MC_GROUPREADA CTUALPOSITION|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2540 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
2541 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2542 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2543 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2544 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2545 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2546 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
2547
2548 Precautions for use of devices
2549
2550 ▪LC and HSC are signed 32-bit data types;
2551
2552 ▪T, C, D, R and SD are signed 16-bit data types.
2553
2554 Variable type used
2555
2556 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2557 |(% colspan="1" rowspan="8" %)MC_GROUPREADACTUALPOSITION|Enable|BOOL|No|TRUE/FALSE|Enable
2558 |CoordSystem|WORD|Yes|0|Coordinate system
2559 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2560 |Valid|BOOL|Yes|TRUE/FALSE|Completion flag
2561 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2562 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2563 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2564 |Position|LREAL array|Yes| |Position
2565
2566 Features
2567
2568 * When Enable= true, the position of each axis of the selected axis group in the selected coordinate system is continuously returned.
2569
2570 Error code
2571
2572 |=**Error code**|=**Content**
2573 |4084H|Input data beyond the specifiable range
2574
2575 === **MC_GROUPREADACTUALVELOCITY** ===
2576
2577 ----
2578
2579 MC_GROUPREADACTUALVELOCITY
2580
2581 (% aria-label="image widget" _mstaria-label="181311" contenteditable="false" role="region" tabindex="-1" %)
2582 (((
2583 (% data-widget="image" style="text-align: center;" %)
2584 [[image:1709001989613-444.png||_mstalt="295386"]](% title="Click and drag to resize" %)​
2585
2586 (% style="background:url(~"https://docs.we-con.com.cn/webjars/wiki%3Axwiki/xwiki-platform-ckeditor-webjar/16.0.0/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||_mstalt="186680" height="15" role="presentation" title="Click and drag to move" width="15"]]
2587 )))
2588
2589 This function block is to read the actual velocity of each axis from the axis group.
2590
2591 Device used (Only a single device can be used, and device splicing and index are not supported)
2592
2593 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2594 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2595 |(% colspan="1" rowspan="9" %)MC_GROUPREADACTUALVELOCITY|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2596 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
2597 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2598 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2599 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2600 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2601 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2602 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
2603 |PathVelocity| | | | | | | | | | | | | | | | | | | | | | | | | |
2604
2605 Precautions for use of devices
2606
2607 ▪LC and HSC are signed 32-bit data types;
2608
2609 ▪T, C, D, R and SD are signed 16-bit data types;
2610
2611 Variable type used
2612
2613
2614 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2615 |(% colspan="1" rowspan="9" %)MC_GROUPREADACTUALVELOCITY|Enable|BOOL|No|TRUE/FALSE|Enable
2616 |CoordSystem|WORD|Yes|0|Coordinate system
2617 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2618 |Valid|BOOL|Yes|TRUE/FALSE|Completion flag
2619 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2620 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2621 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2622 |Velocity|LREAL array|Yes| |Velocity
2623 |PathVelocity|LREAL|Yes| |Path velocity
2624
2625 Features
2626
2627 * (((
2628 When Enable=true, the velocity of each axis and the current TCP path velocity (the result of combined velocity) of the selected axis group in the selected coordinate system are continuously returned.
2629 )))
2630
2631 Error code
2632
2633 |=**Error code**|=**Content**
2634 |4084H|Data beyond the specifiable range was input.
2635
2636 === **MC_GROUPREADERROR** ===
2637
2638 ----
2639
2640 MC_GROUPREADERROR
2641
2642 (% aria-label="image widget" _mstaria-label="181311" contenteditable="false" role="region" tabindex="-1" %)
2643 (((
2644 (% data-widget="image" style="text-align: center;" %)
2645 [[image:1709002267106-659.png||_mstalt="295204"]](% title="Click and drag to resize" %)​
2646
2647 (% style="background:url(~"https://docs.we-con.com.cn/webjars/wiki%3Axwiki/xwiki-platform-ckeditor-webjar/16.0.0/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||_mstalt="186680" height="15" role="presentation" title="Click and drag to move" width="15"]]
2648 )))
2649
2650
2651 The function block is axis group to read error.
2652
2653 Device used (Only a single device can be used, and device splicing and index are not supported)
2654
2655 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2656 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2657 |(% colspan="1" rowspan="7" %)MC_GROUPREADERROR|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2658 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2659 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2660 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2661 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2662 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2663 |GroupErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2664
2665 Precautions for use of devices
2666
2667 ▪LC and HSC are signed 32-bit data types;
2668
2669 ▪T, C, D, R and SD are signed 16-bit data types;
2670
2671 Variable type used
2672
2673 |=Instruction|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2674 |(% colspan="1" rowspan="7" %)MC_GROUPREADERROR|Enable|BOOL|No|TRUE/FALSE|Enable
2675 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2676 |Valid|BOOL|Yes|TRUE/FALSE|Completion flag
2677 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2678 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2679 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2680 |GroupErrorID|DWROD|Yes| |Axis group error code
2681
2682 Features
2683
2684 ▪When Enable= true, read the axis group error status.
2685
2686 Error code
2687
2688 |=**Error code**|=**Content**
2689 |4084H|Input data beyond the specifiable range
2690
2691 === **MC_GROUPREADSTATUS** ===
2692
2693 ----
2694
2695 MC_GROUPREADSTATUS
2696
2697 (% style="text-align:center" %)
2698 [[image:1709002503132-985.png||_mstalt="293943"]]
2699
2700 This function block reads the status of the currently activated axis group.
2701
2702 Device used (Only a single device can be used, and device splicing and index are not supported)
2703
2704 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2705 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2706 |(% colspan="1" rowspan="7" %)MC_GROUPREADERROR|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2707 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2708 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2709 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2710 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2711 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2712 |GroupErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2713
2714 Precautions for use of devices
2715
2716 ▪LC and HSC are signed 32-bit data types;
2717
2718 ▪T, C, D, R and SD are signed 16-bit data types;
2719
2720 Variable type used
2721
2722 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2723 |(% colspan="1" rowspan="7" %)MC_GROUPREADERROR|Enable|BOOL|No|TRUE/FALSE|Enable
2724 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2725 |Valid|BOOL|Yes|TRUE/FALSE|Completion flag
2726 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2727 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2728 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2729 |GroupErrorID|DWROD|Yes| |Axis group error code
2730
2731 Features
2732
2733 ▪When Enable= true, the status of the enabled axis group is continuously returned, and its status is set and marked by the output flag;
2734
2735 ▪ConstantVelocity is set to ON when moving at constant velocity on the command path.[[image:1709002654690-619.png||_mstalt="295698"]]Accelerating and decelerating is set to ON when the velocity increases or decreases on the command path.
2736
2737 ▪ InPosition is set to ON when reach the target position.
2738
2739 Error code
2740
2741 |=**Error code**|=**Content**
2742 |4084H|Input data beyond the specifiable range
2743
2744 === **MC_GROUPRESET** ===
2745
2746 ----
2747
2748 MC_GROUPRESET
2749
2750 (% style="text-align:center" %)
2751 [[image:1709002711461-974.png||_mstalt="294619"]]
2752
2753
2754 The function block is axis group reset.
2755
2756 Device used (Only a single device can be used, and device splicing and index are not supported)
2757
2758 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2759 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2760 |(% colspan="1" rowspan="6" %)MC_GROUPRESET|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2761 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2762 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2763 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2764 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2765 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2766
2767 (% class="wikigeneratedid" id="HPrecautionsforuseofdevices" %)
2768 Precautions for use of devices
2769
2770 ▪LC and HSC are signed 32-bit data types;
2771
2772 ▪T, C, D, R and SD are signed 16-bit data types.
2773
2774 (% class="wikigeneratedid" id="HVariabletypeused" %)
2775 Variable type used
2776
2777 |**Instruction**|**Parameter**|**Variable type**|**Can it be empty**|**Range**|**Description**
2778 |(% rowspan="6" %)MC_GROUPRESET|Execute|BOOL|No|TRUE/FALSE|Enable
2779 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2780 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2781 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2782 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2783 |ErrorID|DWORD|Yes|-|Error code (Please check【[[8. 10 Error Code Cross-reference Table>>path:#_8.10 Error Code Cross-reference Table]]】)
2784
2785 Features
2786
2787 ▪Reset the axis group from the error status to the enabled status when on the Execute rising edge, which is similar with the single-axis MC_Reset.
2788
2789 Error code
2790
2791 |=**Error code**|=**Content**
2792 |4084H|Input data beyond the specifiable range
2793
2794 === **MC_GROUPREADACTUALACCELERATION** ===
2795
2796 ----
2797
2798 MC_GROUPREADACTUALACCELERATION
2799
2800 (% style="text-align:center" %)
2801 [[image:1709002873108-663.png||_mstalt="294645"]]
2802
2803 This function block is to read the actual acceleration of each axis from the axis group.
2804
2805 Device used (Only a single device can be used, and device splicing and index are not supported)
2806
2807 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2808 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2809 |(% colspan="1" rowspan="9" %)(((
2810 MC_GROUPREADACTUALACCELERATION
2811
2812
2813 )))|Enable|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2814 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
2815 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2816 |Valid| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2817 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2818 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2819 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2820 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2821 |PathAcceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2822
2823 Precautions for use of devices
2824
2825 ▪LC and HSC are signed 32-bit data types;
2826
2827 ▪T, C, D, R and SD are signed 16-bit data types;
2828
2829 Variable type used
2830
2831 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2832 |(% colspan="1" rowspan="9" %)MC_GROUPREADACTUALACCELERATION|Enable|BOOL|No|TRUE/FALSE|Enable
2833 |CoordSystem|WORD|Yes|0|Coordinate system
2834 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2835 |Valid|BOOL|Yes|TRUE/FALSE|Whether the input is valid or not
2836 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2837 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2838 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2839 |Acceleration|LREAL array|Yes| |Acceleration
2840 |PathAcceleration|LREAL|Yes| |Path acceleration
2841
2842 Features
2843
2844 ▪When Enable=true, the acceleration of each axis and the current TCP path acceleration (The result of combined acceleration) of the selected axis group in the selected coordinate system are continuously returned.
2845
2846 Error code
2847
2848 |=**Error code**|=**Content**
2849 |4084H|Data beyond the specifiable range was input.
2850
2851 == **Axis group motion Function Blocks** ==
2852
2853 ----
2854
2855 === **MC_GROUPSTOP** ===
2856
2857 ----
2858
2859 MC_GROUPSTOP
2860
2861 (% style="text-align:center" %)
2862 [[image:1709003200997-104.png||_mstalt="292578"]]
2863
2864
2865 The function block is use to stop axis group.
2866
2867 Device used (Only a single device can be used, and device splicing and index are not supported)
2868
2869 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2870 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2871 |(% colspan="1" rowspan="10" %)MC_GROUPSTOP|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2872 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2873 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
2874 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2875 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2876 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2877 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2878 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2879 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2880 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2881
2882 Precautions for use of devices
2883
2884 ▪LC and HSC are signed 32-bit data types;
2885
2886 ▪T, C, D, R and SD are signed 16-bit data types;
2887
2888 Variable type used
2889
2890 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2891 |(% rowspan="10" %)MC_GROUPSTOP|Execute|BOOL|No|TRUE/FALSE|Enable
2892 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
2893 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk
2894 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2895 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2896 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2897 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
2898 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
2899 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2900 |ErrorID|DWORD|Yes|-|Error code (Please check【[[8. 10 Error Code Cross-reference Table>>path:#_8.10 Error Code Cross-reference Table]]】)
2901
2902 Features
2903
2904 ▪When on the Execute rising edge, the axis group decelerate to stop and any functional block being executed is stopped. When Execute=true, the axis group is on the stop status and cannot execute other axis group motion instruction.
2905
2906 ▪The velocity of axis group is zero. Done is set to ON. If Execute=false, return to the normal axis group enabling status;
2907
2908 ▪Only MC_GroupDisable can be used to interrupt axis group.
2909
2910 Error code
2911
2912 |=**Error code**|=**Content**
2913 |4084H|Input data beyond the specifiable range
2914
2915 === **MC_GROUPHALT** ===
2916
2917 ----
2918
2919 MC_GROUPHALT
2920
2921 (% style="text-align:center" %)
2922 [[image:1709003451573-543.png||_mstalt="293722"]]
2923
2924 The function block is to halt axis group.
2925
2926 Device used (Only a single device can be used, and device splicing and index are not supported)
2927
2928 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2929 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2930 |(% colspan="1" rowspan="10" %)MC_GROUPHALT|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2931 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2932 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
2933 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2934 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2935 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2936 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2937 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2938 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2939 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
2940
2941 Precautions for use of devices
2942
2943 ▪LC and HSC are signed 32-bit data types;
2944
2945 ▪T, C, D, R and SD are signed 16-bit data types;
2946
2947 Variable type used
2948
2949 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
2950 |(% rowspan="10" %)MC_GROUPHALT|Execute|BOOL|No|TRUE/FALSE|Enable
2951 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
2952 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk
2953 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
2954 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
2955 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
2956 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
2957 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
2958 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
2959 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
2960
2961 Features
2962
2963 ▪When on the Execute rising edge, the axis group decelerate to stop, any function block being executed is stopped, and the axis group velocity is 0. Done is set to on;
2964
2965 ▪Unbuffered mode: During axis group deceleration, if another function block with mcAborting buffer mode is executed, the current function block is interrupted and the new function block is executed immediately.
2966
2967 Error code
2968
2969 |=**Error code**|=**Content**
2970 |4084H|Data beyond the specifiable range was input.
2971
2972 === **MC_MOVELINEARABSOLUTE** ===
2973
2974 ----
2975
2976 MC_MOVELINEARABSOLUTE
2977
2978 (% style="text-align:center" %)
2979 [[image:1709003761756-581.png||_mstalt="295724"]]
2980
2981 This function block is absolute position linear interpolation.
2982
2983 Device used (Only a single device can be used, and device splicing and index are not supported)
2984
2985 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
2986 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
2987 |(% colspan="1" rowspan="17" %)MC_MOVELINEARABSOLUTE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2988 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
2989 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
2990 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2991 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
2992 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
2993 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
2994 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
2995 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | | |
2996 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | | |
2997 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
2998 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
2999 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3000 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3001 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3002 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3003 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3004
3005 Precautions for use of devices
3006
3007 ▪LC and HSC are signed 32-bit data types;
3008
3009 ▪T, C, D, R and SD are signed 16-bit data types;
3010 Variable type used
3011
3012 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3013 |(% rowspan="17" %)(((
3014 MC_MOVELINEARABSOLUTE
3015 )))|Execute|BOOL|No|TRUE/FALSE|Enable
3016 |Position|LREAL array|No|-|Position
3017 |Velocity|LREAL|No|[0 to 999999999. 999999]|Velocity
3018 |Acceleration|LREAL|No|[0 to 999999999. 999999]|Acceleration
3019 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
3020 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk is valid in S curve only.
3021 |CoordSystem|WORD|Yes|0|Coordinate system
3022 |BufferMode|WORD|Yes|[0 to 1]|Please check [8.9.5 Mode selection description] for more details.
3023 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3024 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3025 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3026 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3027 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3028 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3029 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3030 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3031 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
3032
3033 Features
3034
3035 ▪This function block executes linear interpolation motion, and puts the actual TCP position to the absolute position specified by a specific CoordSystem.
3036
3037 (% class="box infomessage" %)
3038 (((
3039 ✎Note:
3040
3041 ▪The axis group can be moved only when being enabled;
3042
3043 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3044
3045 ▪Linear motion is allowed to be interrupted;
3046
3047 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3048 )))
3049
3050 Error code
3051
3052 |=**Error code**|=**Content**
3053 |4084H|Input data beyond the specifiable range
3054
3055 (% style="text-align:center" %)
3056 [[image:1709004126151-658.png||_mstalt="294008"]]
3057
3058 === **MC_MOVELINEARRELATIVE** ===
3059
3060 ----
3061
3062 MC_MOVELINEARRELATIVE
3063
3064 (% style="text-align:center" %)
3065 [[image:1709004271451-886.png||_mstalt="295594"]]
3066
3067
3068 This function block is relative position linear interpolation.
3069
3070 Device used (Only a single device can be used, and device splicing and index are not supported)
3071
3072 |=**Instruction**|=**Parameter**|=(% colspan="25" %)**Devices**|=(% colspan="2" %)**Index modification**|=**Pulse expansion**
3073 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|(% colspan="2" %)**[D]**|(% colspan="2" %)**XXP**
3074 |(% colspan="1" rowspan="17" %)MC_MOVELINEARRELATIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3075 |Distance| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3076 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3077 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3078 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3079 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3080 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3081 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3082 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3083 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3084 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3085 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3086 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3087 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3088 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3089 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3090 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | |(% colspan="2" %) |(% colspan="2" %)
3091
3092 Precautions for use of devices
3093
3094 ▪LC and HSC are signed 32-bit data types;
3095
3096 ▪T, C, D, R and SD are signed 16-bit data types.
3097
3098 Variable type used
3099
3100 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3101 |(% colspan="1" rowspan="17" %)MC_MOVELINEARRELATIVE|Execute|BOOL|No|TRUE/FALSE|Enable
3102 |Distance|LREAL array|No|-|Position
3103 |Velocity|LREAL|No|[0 to 999999999. 999999]|Velocity
3104 |Acceleration|LREAL|No|[0 to 999999999. 999999]|Acceleration
3105 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
3106 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk: Only the axis group S-curve is valid.
3107 |CoordSystem|WORD|Yes|-|Coordinate system
3108 |BufferMode|WORD|Yes|[0 to 1]|Please check [8.9.5 Mode selection description] for more details.
3109 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3110 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3111 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3112 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3113 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3114 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3115 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3116 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3117 |ErrorID|DWORD|Yes|-|Error code (Please check【8. 10 Error Code Cross-reference Table】)
3118
3119 Features
3120
3121 ▪This function block executes line interpolation motion, and puts the actual TCP position to the absolute position specified by a specific coordsystem.
3122
3123 (% class="box infomessage" %)
3124 (((
3125 ✎Note:▪The axis group can be moved only when being enabled;
3126
3127 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3128
3129 ▪Linear motion is allowed to be interrupted;
3130
3131 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3132 )))
3133
3134 Error code
3135
3136 |=**Error code**|=**Content**
3137 |4084H|Input data beyond the specifiable range
3138
3139 (% style="text-align:center" %)
3140 [[image:1709004561796-657.png||_mstalt="297674"]]
3141
3142 === **MC_MOVECIRCULARABSOLUTE** ===
3143
3144 ----
3145
3146 MC_MOVECIRCULARABSOLUTE
3147
3148 (% style="text-align:center" %)
3149 [[image:1709004628989-926.png||_mstalt="299143"]]
3150
3151 The function block is absolute position circular interpolation.
3152
3153 Device used (Only a single device can be used, and device splicing and index are not supported)
3154
3155 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3156 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3157 |(% colspan="1" rowspan="20" %)MC_MOVECIRCULARABSOLUTE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3158 |CircMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3159 |AuxPoint| | | | | | | | | | | | | | | | | | | | | | | | | |
3160 |EndPoint| | | | | | | | | | | | | | | | | | | | | | | | | |
3161 |PathChoice| | | | | | | | | | | | | | | | | | | | | | | | | |
3162 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3163 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3164 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3165 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
3166 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
3167 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3168 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3169 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | | |
3170 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
3171 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3172 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3173 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3174 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3175 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3176 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3177
3178 Precautions for use of devices
3179
3180 ▪LC and HSC are signed 32-bit data types;
3181
3182 ▪T, C, D, R and SD are signed 16-bit data types;
3183 Variable type used
3184
3185 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3186 |(% colspan="1" rowspan="20" %)MC_MOVECIRCULARABSOLUTE|Execute|BOOL|No|TRUE/FALSE|Enable
3187 |CircMode|WORD|No|[0 to 2]|Please check [8.9.3 Arc mode description] for more details on arc construction mode.
3188 |AuxPoint|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on auxiliary point.
3189 |EndPoint|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on end point.
3190 |PathChoice|WORD|No|[0 to 1]|Please check [8.9.3 Arc mode description] for more details on arc path selection.
3191 |Velocity|LREAL|No|[0 to 999999999. 999999]|Velocity
3192 |Acceleration|LREAL|No|[0 to 999999999. 999999]|Acceleration
3193 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
3194 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk is valid in S-curve only.
3195 |CoordSystem|WORD|Yes|0|Coordinate system
3196 |BufferMode|WORD|Yes|[0 to 1]|Please check [8.9.5 Mode selection description] for more details.
3197 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3198 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3199 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3200 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3201 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3202 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3203 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3204 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3205 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3206
3207 Features
3208
3209 ▪This function block executes linear interpolation motion, and puts the actual TCP position to the absolute position specified by a specific CoordSystem.
3210
3211 (% class="box infomessage" %)
3212 (((
3213 ✎Note**:**
3214
3215 ▪The axis group can be moved only when being enabled;
3216
3217 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3218
3219 ▪Linear motion is allowed to be interrupted;
3220
3221 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3222 )))
3223
3224 Error code
3225
3226 |=**Error code**|=**Content**
3227 |4084H|Input data beyond the specifiable range
3228
3229 (% style="text-align:center" %)
3230 [[image:1709005028485-788.png||_mstalt="297895"]]
3231
3232 === **MC_MOVECIRCULARRELATIVE** ===
3233
3234 ----
3235
3236 MC_MOVECIRCULARRELATIVE
3237
3238 (% style="text-align:center" %)
3239 [[image:1709005280026-492.png||_mstalt="293397"]]
3240
3241 Device used (Only a single device can be used, and device splicing and index are not supported)
3242
3243 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3244 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3245 |(% colspan="1" rowspan="20" %)MC_MOVECIRCULARRELATIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3246 |CircMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3247 |AuxPoint| | | | | | | | | | | | | | | | | | | | | | | | | |
3248 |EndPoint| | | | | | | | | | | | | | | | | | | | | | | | | |
3249 |PathChoice| | | | | | | | | | | | | | | | | | | | | | | | | |
3250 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3251 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3252 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3253 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
3254 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
3255 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3256 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3257 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | | |
3258 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
3259 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3260 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3261 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3262 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3263 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3264 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3265
3266 Precautions for use of devices
3267
3268 ▪LC and HSC are signed 32-bit data types;
3269
3270 ▪T, C, D, R and SD are signed 16-bit data types;
3271
3272 Variable type used
3273
3274 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3275 |(% colspan="1" rowspan="20" %)MC_MOVECIRCUlARRELATIVE|Execute|BOOL|No|TRUE/FALSE|Enable
3276 |CircMode|WORD|No|[0 to 2]|Please check [8.9.3 Arc mode description] for more details on arc construction mode.
3277 |AuxPoint|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on auxiliary point.
3278 |EndPoint|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on end point.
3279 |PathChoice|WORD|No|[0 to 1]|Please check [8.9.3 Arc mode description] for more details on arc path selection.
3280 |Velocity|LREAL|No|[0 to 999999999. 999999]|Velocity
3281 |Acceleration|LREAL|No|[0 to 999999999. 999999]|Acceleration
3282 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
3283 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|Jerk:is valid in S-curve only.
3284 |CoordSystem|WORD|Yes|-|Coordinate system
3285 |BufferMode|WORD|Yes|[0 to 1]|Please check [8.9.5 Mode selection description] for more details.
3286 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3287 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3288 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3289 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3290 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3291 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3292 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3293 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3294 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3295
3296 Features
3297
3298 ▪This function block executes circular interpolation motion, and puts the actual TCP position to the absolute position specified by a specific coordsystem.
3299
3300 (% class="box infomessage" %)
3301 (((
3302 ✎Note:
3303
3304 ▪The axis group can be moved only when being enabled;
3305
3306 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3307
3308 ▪Linear motion is allowed to be interrupted;
3309
3310 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3311 )))
3312
3313 Error code
3314
3315 |=**Error code**|=**Content**
3316 |4084H|Input data beyond the specifiable range
3317
3318 (% style="text-align:center" %)
3319 [[image:1709005752944-678.png||_mstalt="297869"]]
3320
3321 === **MC_MOVEDIRECTABSOLUTE** ===
3322
3323 ----
3324
3325 MC_MOVEDIRECTABSOLUTE
3326
3327 (% style="text-align:center" %)
3328 [[image:1709012205292-858.png||_mstalt="295360"]]
3329
3330 This function block is the fast positioning of absolute position.
3331
3332 Device used (Only a single device can be used, and device splicing and index are not supported)
3333
3334 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3335 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3336 |(% colspan="1" rowspan="13" %)MC_MOVECIRCULARRELATIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3337 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
3338 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
3339 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3340 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3341 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | | |
3342 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
3343 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3344 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3345 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3346 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3347 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3348 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3349
3350 Precautions for use of devices
3351
3352 ▪LC and HSC are signed 32-bit data types;
3353
3354 ▪T, C, D, R and SD are signed 16-bit data types;
3355
3356 Variable type used
3357
3358 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3359 |(% colspan="1" rowspan="13" %)MC_MOVELINEARRELATIVE|Execute|BOOL|No|TRUE/FALSE|Enable
3360 |Position|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on arc construction mode.
3361 |CoordSystem|WORD|Yes|0|Coordinate system
3362 |BufferMode|WORD|Yes|[0 to 1]|Please check [8.9.5 Mode selection description] for more details.
3363 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3364 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3365 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3366 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3367 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3368 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3369 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3370 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3371 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3372
3373 Features
3374
3375 ▪ The function block puts the axis group to the absolute position specified in the specific coordinate system, and does not emphasize on how to reach the target position;
3376
3377 ▪The performance of each axis in the axis group, such as velocity, acceleration, deceleration, jerk, does not change when moving.
3378
3379 (% class="box infomessage" %)
3380 (((
3381 ✎Note:
3382
3383 ▪The axis group can be moved only when being enabled;
3384
3385 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3386
3387 ▪Linear motion is allowed to be interrupted;
3388
3389 ▪The instruction running velocity and acceleration are associated with the minimum value of each axis associated with the axis group;
3390
3391 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3392 )))
3393
3394 Error code
3395
3396 |=**Error code**|=**Content**
3397 |4084H|Data beyond the specifiable range was input.
3398
3399 (% style="text-align:center" %)
3400 [[image:1709012383461-841.png||_mstalt="293800"]]
3401
3402 === **MC_MOVEDIRECTRELATIVE** ===
3403
3404 ----
3405
3406 MC_MOVEDIRECTRELATIVE
3407
3408 (% style="text-align:center" %)
3409 [[image:1709012442595-305.png||_mstalt="293592"]]
3410
3411 The function block executes the fast positioning of the relative position.
3412
3413 Device used (Only a single device can be used, and device splicing and index are not supported)
3414
3415 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3416 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3417 |(% colspan="1" rowspan="13" %)MC_MOVEDIRECTRELATIVE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3418 |Distance| | | | | | | | | | | | | | | | | | | | | | | | | |
3419 |CoordSystem| | | | | | | | | | | | | | | | | | | | | | | | | |
3420 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3421 |TransitionMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3422 |TransitionParameter| | | | | | | | | | | | | | | | | | | | | | | | | |
3423 |AxesGroup| | | | | | | | | | | | | | | | | | | | | | | | | |
3424 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3425 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3426 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3427 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3428 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3429 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3430
3431 Precautions for use of devices
3432
3433 ▪LC and HSC are signed 32-bit data types;
3434
3435 ▪T, C, D, R and SD are signed 16-bit data types;
3436
3437 Variable type used
3438
3439 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3440 |(% colspan="1" rowspan="13" %)MC_MOVEDIRECTRELATIVE|Execute|BOOL|No|TRUE/FALSE|Enable
3441 |Distance|LREAL array|No|-|Please check [8.9.3 Arc mode description] for more details on arc construction mode.
3442 |CoordSystem|WORD|Yes|0|Coordinate system
3443 |BufferMode|WORD|Yes|[0 to1]|Please check [8.9.5 Mode selection description] for more details.
3444 |TransitionMode|WORD|Yes|[0 to 2]|Please check [8.9.4 Transition mode description] for more details.
3445 |TransitionParameter|LREAL|Yes|[0 to 999999999. 999999]|Please check [8.9.4 Transition mode description] for more details on transition parameter.
3446 |AxesGroup|WORD|No|[0 to 65535]|Axis group number
3447 |Done|BOOL|Yes|TRUE/FALSE|Completion flag
3448 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3449 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3450 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3451 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3452 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table])
3453
3454 Features
3455
3456 ▪ The function block puts the axis group to the relative position specified in the specific coordinate system, and does not emphasize on how to reach the target position;
3457
3458 ▪The performance of each axis in the axis group, such as velocity, acceleration, deceleration, jerk, does not change when moving.
3459
3460 (% class="box infomessage" %)
3461 (((
3462 ✎Note:
3463
3464 ▪The axis group can be moved only when being enabled;
3465
3466 ▪All velocities and accelerations are in a safe range, and subject to the maximum velocity and acceleration that can be reached (Affected by the planning velocity, the limited velocity and acceleration set in the FB). If all the velocities and accelerations exceed the limit, they should be reduced to the limit.
3467
3468 ▪Linear motion is allowed to be interrupted;
3469
3470 ▪The instruction running velocity and acceleration are associated with the minimum value of each axis associated with the axis group;
3471
3472 ▪Axis group don’t support S type curve, so acceleration is not taking effect.
3473 )))
3474
3475 Error code
3476
3477 |=**Error code**|=**Content**
3478 |4084H|Input data beyond the specifiable range
3479
3480 (% style="text-align:center" %)
3481 [[image:1709012732094-708.png||_mstalt="294580"]]
3482
3483 == **Other special FB** ==
3484
3485 ----
3486
3487 === **MC_MOVEJOG** ===
3488
3489 ----
3490
3491 MC_MOVEJOG
3492
3493 (% style="text-align:center" %)
3494 [[image:1709014222028-861.png||_mstalt="293059"]]
3495
3496 The function block makes the controlled axis execute micro motion at the set target velocity.
3497
3498 Device used (Only a single device can be used, and device splicing and index are not supported)
3499
3500 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3501 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3502 |(% colspan="1" rowspan="10" %)MC_MOVEJOG|EnablePositive|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3503 |EnableNegative|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3504 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3505 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3506 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3507 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
3508 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3509 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3510 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3511 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3512
3513 Precautions for use of devices
3514
3515 ▪LC and HSC are signed 32-bit data types;
3516
3517 ▪T, C, D, R and SD are signed 16-bit data types;
3518
3519 Variable type used
3520
3521 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3522 |(% colspan="1" rowspan="10" %)MC_MOVEJOG|EnablePositive|BOOL|No|TRUE/FALSE|Positive motion
3523 |EnableNegative|BOOL|No|TRUE/FALSE|Negative motion
3524 |Velocity|LREAL|No|[0 to 999999999. 999999]|Velocity
3525 |Acceleration|LREAL|No|[0 to 999999999. 999999]|Acceleration
3526 |Deceleration|LREAL|No|[0 to 999999999. 999999]|Deceleration
3527 |Axis|WORD, AXIS_INFO_T|No|[0 to 65535]|Axis number
3528 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3529 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3530 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3531 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3532
3533 Features
3534
3535 ▪When input Enablepositive signal on the rising edge, the controlled axis executes positive motion according to the input velocity. 
3536
3537 ▪When input EnableNegative signal on the rising edge, the controlled axis executes negative motion according to the input velocity.
3538
3539 ▪In the process of positive motion, modifying the Enablepositive to FALSE causes deceleration until the axis stops. In the process of deceleration, if Enablepositive is changed to TRUE, the axis will continue to move until reaching the specified velocity. In the process of deceleration, if EnableNegative is changed to TRUE, the axis will decrease its velocity to 0 and then execute negative motion until its velocity reaches the specified velocity.
3540
3541 (% class="box infomessage" %)
3542 (((
3543 ✎Note:
3544
3545 ▪This function is not available when the axis does not exist.
3546
3547 ▪When EnablePositive or EnableNegative is TRUE, modifying velocity does not change the velocity at this time.
3548 )))
3549
3550 Error code
3551
3552 |=**Error code**|=**Content**
3553 |4084H|Input data beyond the specifiable range
3554
3555 (% style="text-align:center" %)
3556 [[image:1709014420505-664.png||_mstalt="293254"]]
3557
3558 === **MC_COMBINEAXES** ===
3559
3560 ----
3561
3562 MC_COMBINEAXES
3563
3564 (% style="text-align:center" %)
3565 [[image:1709014499579-362.png||_mstalt="297700"]]
3566
3567 The function block adds and subtracts the positions of the master axis and the auxiliary axis as the position of the slave axis.
3568
3569 Device used (Only a single device can be used, and device splicing and index are not supported)
3570
3571 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3572 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3573 |(% colspan="1" rowspan="14" %)MC_COMBINEAXES|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3574 |ConbineMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3575 |MasterReferenceType| | | | | | | | | | | | | | | | | | | | | | | | | |
3576 |AuxiliaryReferenceType| | | | | | | | | | | | | | | | | | | | | | | | | |
3577 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3578 |Master| | | | | | | | | | | | | | | | | | | | | | | | | |
3579 |Auxiliary| | | | | | | | | | | | | | | | | | | | | | | | | |
3580 |Slave| | | | | | | | | | | | | | | | | | | | | | | | | |
3581 |InCombiantion| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3582 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3583 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3584 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3585 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3586 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3587
3588 Precautions for use of devices
3589
3590 ▪LC and HSC are signed 32-bit data types;
3591
3592 ▪T, C, D, R and SD are signed 16-bit data types;
3593
3594 Variable type used
3595
3596 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3597 |(% colspan="1" rowspan="14" %)MC_COMBINEAXES|Execute|BOOL|No|TRUE/FALSE|Enable
3598 |ConbineMode|WORD|Yes|[0 to 1]|(((
3599 Addition and subtraction operation selection
3600
3601 0: Addition
3602
3603 1: Subtraction
3604 )))
3605 |MasterReferenceType|WORD|Yes|[1 to 2]|(((
3606 Master axis position type
3607
3608 1: Feedback position
3609
3610 2: Instruction position
3611 )))
3612 |AuxiliaryReferenceType|WORD|Yes|[1 to 2]|(((
3613 Auxiliary axis position type
3614
3615 1: Feedback position
3616
3617 2: Instruction position
3618 )))
3619 |BufferMode|LREAL|No|0|Mode selection
3620 |Master|WORD, AXIS INFO T|No|[0 to 65535]|Master axis number
3621 |Auxiliary|WORD, AXIS INFO T|No|[0 to 65535]|Auxiliary axis number
3622 |Slave|WORD, AXIS INFO T|No|[0 to 65535]|Slave axis number
3623 |InCombiantion|BOOL|Yes|TRUE/FALSE|Addition and subtraction operation flag
3624 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3625 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3626 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3627 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3628 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3629
3630 Features
3631
3632 ▪On the Execute rising edge, the addition and subtraction positioning operation is performed.
3633
3634 (% class="box infomessage" %)
3635 (((
3636 ✎Note:
3637
3638 ▪Unable to restart this instruction;
3639
3640 ▪To end this instruction, MC_construction is needed;
3641
3642 ▪This instruction does not execute in-place inspection;
3643
3644 ▪When using the instruction position, the set values of master axis number and auxiliary axis number must be less than the slave axis number;
3645
3646 ▪This instruction is not affected by the abnormal status of the main axis and auxiliary axis. When the abnormal status is released, the slave axis continues to execute the addition and subtraction positioning operation. In addition, when this instruction is enabled and the axis is abnormal, this instruction is interrupted, but it has no effect on the master axis and the slave axis;
3647
3648 ▪When MC_setposition instruction is executed for the master axis or the auxiliary axis, it may happen that the slave axis catches at a large velocity, which is very dangerous.
3649 )))
3650
3651 Error code
3652
3653 |=**Error code**|=**Content**
3654 |7000OA|Axis is in a bound status.
3655 |7000OB|Axis cannot be bound at run time.
3656 |800014|The master axis is consistent with the slave axis.
3657 |800015|The master axis is consistent with the auxiliary axis.
3658 |800016|The auxiliary axis is consistent with the slave axis.
3659 |800017|Master axis (auxiliary axis) and slave axis numbers are not ascending order.
3660
3661 (% style="text-align:center" %)
3662 [[image:1709014704454-580.png||_mstalt="294047"]]
3663
3664
3665 === **MC_MOVEVELOCITY** ===
3666
3667 ----
3668
3669 MC_MOVEVELOCITY
3670
3671 (% style="text-align:center" %)
3672 [[image:1709014790717-456.png||_mstalt="296101"]]
3673
3674 Device used (Only a single device can be used, and device splicing and index are not supported)
3675
3676 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
3677 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3678 |(% colspan="1" rowspan="15" %)MC_MOVEVELOCITY|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3679 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3680 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3681 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3682 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3683 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
3684 |Direction| | | | | | | | | | | | | | | | | | | | | | | | | |
3685 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3686 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
3687 |InVelocity| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3688 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3689 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3690 |InstructionAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3691 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3692 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3693
3694 Precautions for use of devices
3695
3696 ▪LC and HSC are signed 32-bit data types;
3697
3698 ▪T, C, D, R and SD are signed 16-bit data types;
3699
3700 Variable type used
3701
3702 |=**Instruction**|=**Parameter**|=**Variable type**|=**Can it be empty**|=**Range**|=**Description**
3703 |(% colspan="1" rowspan="15" %)MC_MOVEVELOCITY|Execute|BOOL|No|TRUE/FALSE|Enable
3704 |ContinuousUpdate|BOOL|No|TRUE/FALSE|Reserve
3705 |Velocity|LREAL|No|[0 to 999999999. 999999]|The set velocity
3706 |Acceleration|LREAL|No|[0 to 999999999. 999999]|The set acceleration
3707 |Deceleration|LREAL|No|[0 to 999999999. 999999]|The set deceleration
3708 |Jerk|LREAL|Yes|[0 to 999999999. 999999]|The set jerk is only valid in the S-curve.
3709 |Direction|WORD|No|[1]|(((
3710 Direction flag
3711
3712 1: Positive direction
3713
3714 2: Negative direction
3715
3716 3: Current direction
3717
3718 4: Shortest path
3719 )))
3720 |BufferMode|WORD|Yes|[0]|Buffer mode
3721 |Axis|WORD, AXIS INFO T|No|[0 to 65535]|Axis number and axis in-built variable
3722 |InVelocity|BOOL|Yes|TRUE/FALSE|Reach the set velocity flag
3723 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3724 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3725 |InstructionAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3726 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3727 |ErrorID|DWORD|Yes|-|Error code (Please check [8. 10 Error Code Cross-reference Table] )
3728
3729 Features
3730
3731 ▪MC_MOVEVELOCITY function block is used for continuing the motion of the previous function block and moving according to the velocity specified by the previous function block. The input values of acceleration, deceleration and jerk are used to monitor whether the corresponding values of the controlled axis are within the input values.
3732
3733 ▪Since there is no input signal of position or distance, the function block will move until other function block sends a new command to stop the operation of this function block;
3734
3735 ▪When the velocity of the controlled axis reaches the set value of input parameter Velocity, the output parameter Invelocity is set to ON.
3736
3737 ▪Once the input Execute signal detects that the falling edge or other function block makes this function block abort, the output parameter Invelocity is reset.
3738
3739 ▪MC_MOVEVELOCITY function block should be used when the controlled axis is in a stop status or a single-axis running status. When the function block is triggered, the controlled axis is switched to continuous Motion status.
3740
3741 ▪If the controlled axis is not in the above status, the function block is not executed. Erroroutput is set;
3742
3743 ▪MC_MOVEVELOCITY function block can be triggered repeatedly.
3744
3745 Error code
3746
3747 |=**Error code**|=**Content**
3748 |4084H|Input data beyond the specifiable range
3749
3750 === **MC _ MOVEVELOCITY _ CSV** ===
3751
3752 MC _ MOVEVELOCITY _ CSV-Sets motion according to the speed specified by the function block
3753
3754 [[image:1761032781939-478.png]]
3755
3756 The function block is used to continue the motion of the previous function block and move according to the speed specified by the function block.
3757
3758 **Device used (only a single device can be used, device splicing and index are not supported)**
3759
3760 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|(((
3761 **Index**
3762
3763 **Modification**
3764 )))|(((
3765 **Pulse**
3766
3767 **Expansion**
3768 )))
3769 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3770 |(% rowspan="15" %)(((
3771 MC _ MOVEVELOCITY
3772
3773 _ CSV
3774 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3775 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3776 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3777 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3778 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
3779 |Jerk| | | | | | | | | | | | | | | | | | | | | | | | | |
3780 |Direction| | | | | | | | | | | | | | | | | | | | | | | | | |
3781 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3782 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
3783 |InVelocity| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3784 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3785 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3786 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3787 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3788 |Error ID| | | | | | | | | | | | | | | | | | | | | | | | | |
3789
3790 **Notes:**
3791
3792 * LC and HSC are signed 32-bit data types;
3793 * T, C, D, R and SD are signed 16-bit data types.
3794
3795 **Variable type used**
3796
3797 |**Instruction**|**Parameter**|**Variable type**|**Can it be empty**|**Range**|**Description**
3798 |(% rowspan="15" %)(((
3799 MC _ MOVE
3800
3801 VELOCITY _ CSV
3802 )))|Execute|BOOL|No|TRUE/FALSE|Enable
3803 |ContinuousUpdate|BOOL|Yes|TRUE/FALSE|Whether update continuously or not
3804 |Velocity|LREAL|No|[0,999999999.999999]|Setting velocity
3805 |Acceleration|LREAL|No|[0,999999999.999999]|Setting acceleration
3806 |Deceleration|LREAL|No|[0,999999999.999999]|Set deceleration
3807 |Jerk|LREAL|Yes|[0,999999999.999999]|The set jerk is only effective in S-curve.
3808 |Direction|WORD|No|[1,4]|(((
3809 Direction flag bit (Only rotation mode takes effect)。
3810
3811 ~1. Positive direction;
3812
3813 2. Negative direction;
3814
3815 3. The current direction;
3816
3817 4. The shortest path (reserved).
3818 )))
3819 |BufferMode|WORD|Yes|[0]|BufferMode
3820 |Axis|WORD|No|[0,65535]|Axis number and built-in variable of axis
3821 |InVelocity|BOOL|Yes|TRUE/FALSE|Reach the set velocity flag bit
3822 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3823 |Active|BOOL|Yes|TRUE/FALSE|Activity flag
3824 |Command aborted|BOOL|Yes|TRUE/FALSE|Interrupt flag bit
3825 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3826 |Error ID|DWORD|Yes|-|Error code (Please refer to ~[[[8.11 Error code comparison table>>path:#错误码对照表]]])
3827
3828 **Function**
3829
3830 * The MC_ MOVEVELOCITY_CSV function block is used to continue the movement of the previous function block and move according to the speed specified by the function block. The input values of acceleration, deceleration and jerk are used to monitor whether the corresponding values of the controlled axis are within the input values.
3831 * Since there is no input signal of position or distance, the function block will move until other function block sends a new command to stop movement of this function block;
3832 * When the speed of the controlled axis reaches the input parameter ‘Velocity’ setpoint, the output parameter ‘InVelocity’ is set. Once the input ‘Execute’ signal detects a falling edge or other function block to abort this function block, the output parameter InVelocity is reset;
3833 * The MC_ MOVEVELOCITY_CSV function block shall be in a stopped motion state or a single-axis operation state when the controlled axis is operated. After this function block is triggered, the controlled axis transitions to the ‘Continuous Motion’ state. If the controlled axis is not in the above state, the function block is not executed, Error output is set;
3834 * The MC_ MOVEVELOCITY_CSV function block can be triggered repeatedly multiple times.
3835
3836 **Error code**
3837
3838 |**Error code**|**Content**
3839 |4084H|Input data beyond the specifiable range
3840
3841 **Precautions**
3842
3843 * Different from the MC _ MOVEVELOCITY function block, this function block will automatically switch the servo mode to CSV (Synchronous Cycle Speed) mode;
3844 * Using this function block requires adding four object dictionaries, H60FF, H6060, H6061, and H606C, to the PDO.
3845
3846 **Timing diagram**
3847
3848
3849 (% style="text-align:center" %)
3850 [[image:1761032845559-339.png||height="306" width="520"]]
3851
3852 === **MC _ SYNCMOVEVELOCITY** ===
3853
3854 MC _ SYNCMOVEVELOCITY-Sets motion according to the speed specified by the function block
3855
3856 [[image:1761032974104-584.png]]
3857
3858 The function block is used to continue the motion of the previous function block and move according to the speed specified by the function block.
3859
3860 **Device used (only a single device can be used, and device splicing and Index are not supported)**
3861
3862 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|**Index modification**|**Pulse expansion**
3863 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3864 |(% rowspan="8" %)(((
3865 MC _ SYNCMOVE
3866
3867 VELOCITY
3868 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3869 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3870 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
3871 |InVelocity| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3872 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3873 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3874 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3875 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3876
3877 **Notes for using devices**
3878
3879 * LC and HSC are signed 32-bit data types;
3880 * T, C, D, R and SD are signed 16-bit data types.
3881
3882 **Variable type used**
3883
3884 |**Instruction**|**Parameter**|**Variable type**|**Empty or not**|**Range**|**Description**
3885 |(% rowspan="8" %)(((
3886 MC _ SYNCMOVE
3887
3888 VELOCITY
3889 )))|Execute|BOOL|No|TRUE/FALSE|Enable
3890 |Velocity|LREAL|No|(((
3891 [-999999999.999999,99999
3892
3893 9999.999999]
3894 )))|Setting velocity
3895 |Axis|(((
3896 WORD
3897
3898
3899 )))|No|[0,65535]|Axis number and built-in variable of axis
3900 |InVelocity|BOOL|Yes|TRUE/FALSE|Reach the set velocity flag bit
3901 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3902 |CommandAborted|BOOL|Yes|TRUE/FALSE|Interrupt flag bit
3903 |Error|BOOL|Yes|TRUE/FALSE|Whether there is an error or not
3904 |ErrorID|DWORD|Yes|-|(((
3905 Error code (Please refer to
3906
3907 [[8.11 Error Code>>path:#错误码对照表]]
3908 )))
3909
3910 **Function**
3911
3912 * The MC _ SYNCMOVEVELOCITY function block function block is used to continue the movement of the previous function block and move according to the speed specified by the function block.
3913 * Since there is no input signal of position or distance, the function block will move until other function block sends a new command to stop movement of this function block;
3914 * When the speed of the controlled axis reaches the input parameter Velocity setpoint, the output parameter InVelocity is set. Once the input ‘Execute’ signal detects a falling edge or other function block to abort this function block, the output parameter ‘InVelocity’ is reset;
3915 * The MC _ SYNCMOVEVELOCITY function block shall be in a stopped motion state or a single-axis operation state when the controlled axis is operated. After this function block is triggered, the controlled axis transitions to the ‘Continuous Motion’ state. If the controlled axis is not in the above state, the function block is not executed, Error output is set;
3916 * The MC _ SYNCMOVEVELOCITY function block can be triggered repeatedly multiple times.
3917
3918 **✎Note:** After using MC _ SYNCMOVEVELOCITY , the servo mode is automatically switched to the synchronous cycle speed mode.
3919
3920
3921 **Error code**
3922
3923 |**Error code**|**Content**
3924 |4084H|Input data beyond the specifiable range
3925
3926 **Timing diagram**
3927
3928 (% style="text-align:center" %)
3929 [[image:1761033004563-270.png]]
3930
3931 === **MC _ SETTORQUE** ===
3932
3933 MC _ SETTORQUE-Synchronous torque instruction
3934
3935 [[image:1761033083623-162.png]]
3936
3937 **Device used (only a single device can be used, and device splicing and Index are not supported)**
3938
3939 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|(((
3940 **Index**
3941
3942 **Modification**
3943 )))|(((
3944 **Pulse**
3945
3946 **Expansion**
3947 )))
3948 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
3949 |(% rowspan="11" %)MC _ SETTORQUE|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3950 |TORQUE| | | | | | | | | | | | | | | | | | | | | | | | | |
3951 |MaxVelocity| | | | | | | | | | | | | | | | | | | | | | | | | |
3952 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
3953 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
3954 |InTorque| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3955 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3956 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3957 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3958 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
3959 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
3960
3961 **Notes for using devices**
3962
3963 * LC and HSC are signed 32-bit data types;
3964 * T, C, D, R and SD are signed 16-bit data types.
3965
3966 **Variable type used**
3967
3968 |**Instruction**|**Pin Type**|**Parameter**|**Variable type**|**Empty or not**|**Range**|**Description**
3969 |(% rowspan="12" %)MC _ SETTORQUE|(% rowspan="6" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
3970 |ContinuousUpdate|BOOL|Yes|TRUE/FALSE|Updated during operation
3971 |Torque|LREAL|No|[-32768,32767]|Target torque (unit is 0.1%)
3972 |MaxVelocity|LREAL|No|[0,999999999.999999]|Maximum speed
3973 |BufferMode|WORD|Yes|[0]|Currently only interrupts are supported
3974 |Axis|WORD|No|[0,65535]|Axis number
3975 |(% rowspan="6" %)Output|InTorque|BOOL|Yes|TRUE/FALSE|Completion flag
3976 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
3977 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
3978 |CommandAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
3979 |Error|BOOL|Yes|TRUE/FALSE|Error or not
3980 |ErrorID|DWORD|Yes|-|Error code ( Please refer to ~[[[8.11 Error code comparison table>>path:#错误码对照表]]])
3981
3982 **Function**
3983
3984 * This instruction is used to implement the synchronous torque control function and is only used for the bus servo axis. The rising edge and high level of the command are valid, and the virtual axis mode is not supported.
3985 * The following PDOs need to be configured in CST mode;
3986
3987 0x1600: 0x6060, 0x6071, 607f (optional), 6040
3988
3989 0x1A00: 0x6061, 0x6077, 0x6041
3990
3991 * If you use VD3E, you need to configure the startup parameter 2001: 9 value to 2;
3992 * When Enable = ON, the function block converts TarTorque and MaxVelocity from user units to pulse units and sends them to the servo driver from time to time. The shaft is in the Continuous Motion state and performs synchronous torque motion. When the falling edge of Eanble, the function block performs synchronous torque motion with the TarTorque and Velocity latched during the high level, and it is invalid to modify the TarTorque and Velocity in real time;
3993 * This instruction can only be invoked if the axis is switched to the enabled state using the MC _ Power instruction;
3994 * This instruction uses the driver synchronous torque mode to realize the torque control function. When Enable = ON, the function block converts TarTorque and Velocity from user units to pulse units and sends them to the servo driver from time to time. The shaft is in the Continuous Motion state and performs synchronous torque motion;
3995
3996 TarTorque: The target torque, the unit is 0.1%. One decimal place after the decimal point is valid in the program, and the latter ones are directly discarded. The actual torque of the driver is limited by the maximum positive and negative torques set in the configuration parameters.
3997
3998 **Note**
3999
4000 * This function block is not available when the axis does not exist.
4001
4002 === **MC _ TORQUECONTROL** ===
4003
4004 MC _ TORQUECONTROL-Torque control command
4005
4006 [[image:1761033167971-496.png||height="206" width="262"]]
4007
4008 **Device used (only a single device can be used, and device splicing and Index are not supported)**
4009
4010 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|(((
4011 **Index**
4012
4013 **Modification**
4014 )))|(((
4015 **Pulse**
4016
4017 **Expansion**
4018 )))
4019 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
4020 |(% rowspan="13" %)(((
4021 MC _ TORQUE
4022
4023 CONTROL
4024 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4025 |ContinuousUpdate|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4026 |TORQUE| | | | | | | | | | | | | | | | | | | | | | | | | |
4027 |TorqueRamp| | | | | | | | | | | | | | | | | | | | | | | | | |
4028 |MaxVelocity| | | | | | | | | | | | | | | | | | | | | | | | | |
4029 |BufferMode| | | | | | | | | | | | | | | | | | | | | | | | | |
4030 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
4031 |InTorque| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4032 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4033 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4034 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4035 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4036 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
4037
4038 **Notes for using devices**
4039
4040 * LC and HSC are signed 32-bit data types;
4041 * T, C, D, R and SD are signed 16-bit data types.
4042
4043 **Variable type used**
4044
4045 |**Instruction**|**Pin Type**|**Parameter**|**Variable type**|**Empty or not**|**Range**|**Description**
4046 |(% rowspan="13" %)MC _ TORQUECONTROL|(% rowspan="7" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
4047 |ContinuousUpdate|BOOL|Yes|TRUE/FALSE|Updated during operation
4048 |Torque|LREAL|No|[-32768,32767]|Target torque (unit is 0.1%)
4049 |MaxVelocity|LREAL|No|[0,999999999.999999]|Maximum speed
4050 |TorqueRamp|LREAL|No|[0,999999999.999999]|Torque slope
4051 |BufferMode|WORD|Yes|[0]|Only interrupt mode supported
4052 |Axis|WORD|No|[0,65535]|Axis number
4053 |(% rowspan="6" %)Output|InTorque|BOOL|Yes|TRUE/FALSE|Completion flag
4054 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
4055 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
4056 |CommandAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
4057 |Error|BOOL|Yes|TRUE/FALSE|Error or not
4058 |ErrorID|DWORD|Yes|-|Error code (Please refer to ~[[[8.11 Error code comparison table>>path:#错误码对照表]]])
4059
4060 **Function**
4061
4062 * This instruction is used to realize the torque control function and is only used for the EtherCAT bus axis. The rising edge of the instruction is valid, and the imaginary axis mode is not supported.
4063 * The following PDOs need to be configured in CST mode:
4064
4065 0x1600: 0x6060, 0x6071, 607f (optional), 6040
4066
4067 0x1A00: 0x6061, 0x6077, 0x6041
4068
4069 * If VD3E is used, the value of startup parameter 2001:9 is 2;
4070
4071 **Function description**
4072
4073 * This instruction can only be invoked if the axis is switched to the enabled state using the MC _ Power instruction;
4074 * This instruction uses the driver synchronous torque mode to realize the torque control function;
4075 * On the rising edge of the instruction, the function block latches the input parameters of TarTorque, TorqueSlope and MaxVelocity, and the axis is in the ContinuousMotion state and performs torque motion;
4076
4077 TarTorque: Target torque, the unit is 0.1%, one decimal place after the decimal point is valid in the program, and the latter ones are discarded. The actual torque of the driver is limited by the maximum positive and negative torques set in the configuration parameters;
4078
4079 TorqueSlope: Moment slope, the unit is 1%, one decimal place after the decimal point is valid in the program, and the latter ones are directly discarded;
4080
4081 * Speed control in torque mode
4082
4083 For servo drives, if 0x607f is mapped in the axis parameter, this instruction limits the maximum speed of the servo motor by 0x607f, if 0x607f is not mapped, the speed limit is invalid;
4084
4085 On the rising edge of Execute, the instruction converts the speed limit set by Velocity into pulse units and writes it into 0x607f through PDO;
4086
4087 When the torque instruction is interrupted by others, the maximum speed of the axis will be limited by the "Maximum speed" in the configuration interface;
4088
4089 For third-party drives, Velocity can only be used as a speed limit under the following conditions:
4090
4091 The maximum speed of the servomotor can be limited by 0x607F;
4092
4093 0x607F can be configured into the PDO;
4094
4095 The unit of 0x607F is pulse unit, non-speed unit.
4096
4097 * Stop control on torque mode
4098
4099 In the torque mode, the MC _ Stop instruction is called to perform the shut down, and after receiving the Stop instruction, the driver switches to the synchronous position mode, and performs deceleration according to the deceleration set by the Stop instruction.
4100
4101 * Interrupt
4102
4103 In PLCOpen, when the instruction is valid, the axis will be in the Continuous Motion state. Other instructions that can make the axis in Discrete motion or comply with PLCOpen state machine switching can interrupt the instruction. When the instruction is interrupted, CommandAboarted is valid;
4104
4105 CommandAboarted is valid when Execute=ON and Done signal is invalid and is about to hit the limit signal execution needs to perform deceleration;
4106
4107 The axis de-enable CommandAboarted is valid when Execute=ON and the Done signal is invalid.
4108
4109 **Timing diagram**
4110
4111 After setting the target torque, the command is triggered, and the actual output torque can reach the target torque.
4112
4113 (% style="text-align:center" %)
4114 [[image:1761033264625-188.png]]
4115
4116
4117 After setting the target torque, the command is triggered, and finally the actual output torque cannot reach the target torque.
4118
4119 (% style="text-align:center" %)
4120 [[image:1761033334729-116.png]]
4121
4122 === **MC _ MOVEABSRELPP** ===
4123
4124 MC _ MOVEABSRELPP-Positioning instruction based on contour position mode
4125
4126 [[image:1761034254689-443.png]]
4127
4128 **Device used (only a single device can be used, and device splicing and Index are not supported)**
4129
4130 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|**Index modification**|(((
4131 **Pulse**
4132
4133 **Expansion**
4134 )))
4135 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
4136 |(% rowspan="13" %)(((
4137 MC _ MOVEA
4138
4139 BSRELPP
4140 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4141 |Position| | | | | | | | | | | | | | | | | | | | | | | | | |
4142 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
4143 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
4144 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
4145 |Mode| | | | | | | | | | | | | | | | | | | | | | | | | |
4146 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
4147 |Done| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4148 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4149 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4150 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4151 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4152 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
4153
4154 **Notes for using devices**
4155
4156 * LC and HSC are signed 32-bit data types;
4157 * T, C, D, R and SD are signed 16-bit data types.
4158
4159 **Variable type used**
4160
4161 |**Instruction**|**Pin Type**|**Parameter**|**Variable type**|**Empty or not**|**Range**|**Description**
4162 |(% rowspan="13" %)(((
4163 MC _ MOVE
4164
4165 ABSRELPP
4166 )))|(% rowspan="7" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
4167 |Mode|INT|No|0,1|(((
4168 1: Absolute mode.
4169
4170 1: Relative mode
4171 )))
4172 |Position|LREAL|No|(((
4173 -999999999.999999
4174
4175 999999999.999999
4176 )))|Target location
4177 |Velocity|LREAL|No|(0,999999999.999999]|Velocity
4178 |Acceleration|LREAL|No|(0,999999999.999999]|Acceleration
4179 |Deceleration|LREAL|No|(0,999999999.999999]|Deceleration
4180 |Axis|WORD|No|[0,65535]|Axis number
4181 |(% rowspan="6" %)Output|Done|BOOL|Yes|TRUE/FALSE|Completion flag
4182 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
4183 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
4184 |CommandAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
4185 |Error|BOOL|Yes|TRUE/FALSE|Error or not
4186 |ErrorID|DWORD|Yes|-|Error code (Please refer to ~[[[8.11 Error code comparison table>>path:#_8.11 错误码对照表]]])
4187
4188 **Function**
4189
4190 * This command is used to control the EtherCAT bus contour axis to realize the absolute/relative positioning function in contour position mode. In the basic settings of axis configuration, the contour mode option needs to be checked before it can be called, and the rising edge is valid.
4191 * Contour Position Mode requires the following PDOs:
4192
4193 0x1600: 0x6081, 0x6083, 0x6084, 0x607A, 0x6060, 0x6040
4194
4195 0x1A00: 0x6061, 0x6064, 0x6041
4196
4197 **Function description**
4198
4199 * This instruction can only be invoked if the axis is switched to the enabled state using the MC _ Power instruction;
4200 * At the rising edge of the Execute input, the instruction latches the input parameters on the left side such as Position and Velocity, triggers the absolute/relative positioning function, and switches the PLCOpen state machine of the axis to the DiscreteMotion state;
4201 * When Mode = 0, the positioning Mode is absolute positioning Mode, and Position is used to set the target Position of absolute positioning. If the axis Mode is configured as rotation Mode, the target Position is positioned according to the shortest distance;
4202 * When Mode = 1, the positioning Mode is a relative positioning Mode, and Position is used to set the target distance of relative positioning;
4203 * Interrupt
4204
4205 When this instruction is valid in PLCOpen, the axis will be in the Discretemotion state. Other outline mode instructions that can make the axis in Discretemotion or comply with PLCOpen state machine switching can interrupt this instruction. CommandAboarted is valid when the instruction is interrupted. The instruction of periodic synchronization mode cannot be called, otherwise a fault will be reported;
4206
4207 CommandAboarted is valid when the MC _ Power instruction is invalid when Execute = TRUE and the Busy signal is valid causes the axis to be de-enabled.
4208
4209 **Timing diagram**
4210
4211
4212 (% style="text-align:center" %)
4213 [[image:1761034304535-743.png]]
4214
4215 === **MC _ MOVEVELOCITYPV** ===
4216
4217 MC _ MOVEVELOCITYPV-Contour Speed Command
4218
4219 [[image:1761034415972-645.png]]
4220
4221 **Device used (only a single device can be used, and device splicing and Index are not supported)**
4222
4223 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|(((
4224 **Index**
4225
4226 **Modification**
4227 )))|(((
4228 **Pulse**
4229
4230 **Expansion**
4231 )))
4232 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
4233 |(% rowspan="11" %)(((
4234 MC _ MOVEVELO
4235
4236 CITYPV
4237 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4238 |Velocity| | | | | | | | | | | | | | | | | | | | | | | | | |
4239 |Acceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
4240 |Deceleration| | | | | | | | | | | | | | | | | | | | | | | | | |
4241 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
4242 |InVelocity| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4243 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4244 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4245 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4246 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4247 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
4248
4249 **Notes for using devices**
4250
4251 * LC and HSC are signed 32-bit data types;
4252 * T, C, D, R and SD are signed 16-bit data types.
4253
4254 **Variable type used**
4255
4256 |**Instruction**|(((
4257 **Pin**
4258
4259 **type**
4260 )))|**Parameter**|(((
4261 **Variable**
4262
4263 **Type**
4264 )))|(((
4265 **Can you**
4266
4267 **Is empty**
4268 )))|**Range**|**Description**
4269 |(% rowspan="11" %)(((
4270 MC _ MOVEVE
4271
4272 LOCITYPV
4273 )))|(% rowspan="5" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
4274 |Velocity|LREAL|No|(((
4275 -999999999.999999
4276
4277 999999999.999999
4278 )))|Velocity
4279 |Acceleration|LREAL|No|(0,999999999.999999]|Acceleration
4280 |Deceleration|LREAL|No|The QPS Exceeds Maximum Limit 5|Deceleration
4281 |Axis|WORD|No|[0,65535]|Axis number
4282 |(% rowspan="6" %)Output|InVelocity|BOOL|Yes|TRUE/FALSE|Completion flag
4283 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
4284 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
4285 |CommandAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
4286 |Error|BOOL|Yes|TRUE/FALSE|Error or not
4287 |ErrorID|DWORD|Yes|-|Error code (Please refer to ~[[[8.11 Error code comparison table>>path:#错误码对照表]]])
4288
4289 **Function**
4290
4291 * This command is used to realize the continuous motion function of EtherCAT bus contour axis in contour speed mode. In the basic settings of axis configuration, the contour mode option needs to be checked before it can be called, and the rising edge is valid;
4292 * This instruction is a simulated velocity instruction based on the profile velocity (PV) mode;
4293 * The following PDOs are required for the profile speed mode:
4294
4295 0x1600: 0x6083, 0x6084, 0x60FF, 0x6060, 0x6040
4296
4297 0x1A00: 0x6061, 0x606c, 0x6041
4298
4299 **Function description**
4300
4301 * This instruction can only be invoked if the axis is switched to the STANDSTILL state using the MC _ Power instruction;
4302 * When Execute = TRUE, the instruction latches the input parameters on the left side such as Velocity and Acceleration, the axis continuously runs according to the target speed set by Velocity, and switches the PLCOpen state machine of the axis to the ContinuousMotion state.
4303
4304 **Timing diagram**
4305
4306
4307 (% style="text-align:center" %)
4308 [[image:1761034458765-139.png]]
4309
4310 === **MC _ TORQUECONTROLPT** ===
4311
4312 MC _ TORQUECONTROLPT-Contour torque control command
4313
4314 [[image:1761034544967-630.png]]
4315
4316 **Device used (only a single device can be used, and device splicing and Index are not supported)**
4317
4318 |(% rowspan="2" %)**Instruction**|(% rowspan="2" %)**Parameter**|(% colspan="24" %)**Device**|**Index modification**|**Pulse expansion**
4319 |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
4320 |(% rowspan="11" %)(((
4321 MC _ TORQUE
4322
4323 CONTROLPT
4324 )))|Execute|●|●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4325 |TORQUE| | | | | | | | | | | | | | | | | | | | | | | | | |
4326 |TorqueRamp| | | | | | | | | | | | | | | | | | | | | | | | | |
4327 |MaxVelocity| | | | | | | | | | | | | | | | | | | | | | | | | |
4328 |Axis| | | | | | | | | | | | | | | | | | | | | | | | | |
4329 |InTorque| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4330 |Busy| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4331 |Active| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4332 |CommandAborted| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4333 |Error| |●|●|●|●| | | | | | | | | | | | | | | | | | | | |
4334 |ErrorID| | | | | | | | | | | | | | | | | | | | | | | | | |
4335
4336 **Notes for using devices**
4337
4338 * LC and HSC are signed 32-bit data types;
4339 * T, C, D, R and SD are signed 16-bit data types.
4340
4341 **Variable type used**
4342
4343 |**Instruction**|**Pin Type**|**Parameter**|**Variable type**|**Empty or not**|**Range**|**Description**
4344 |(% rowspan="11" %)MC_ TORQUECONTROLPT|(% rowspan="5" %)Input|Execute|BOOL|No|TRUE/FALSE|Enable
4345 |Torque|LREAL|No|[-32768,32767]|Target torque (unit is 0.1%)
4346 |TorqueRamp|LREAL|No|(0,999999999.999999]|Torque slope
4347 |MaxVelocity|LREAL|No|[0,999999999.999999]|Maximum speed
4348 |Axis|WORD|No|[0,65535]|Axis number
4349 |(% rowspan="6" %)Output|InTorque|BOOL|Yes|TRUE/FALSE|Completion flag
4350 |Busy|BOOL|Yes|TRUE/FALSE|Busy flag
4351 |Active|BOOL|Yes|TRUE/FALSE|Valid flag
4352 |CommandAborted|BOOL|Yes|TRUE/FALSE|Abortion flag
4353 |Error|BOOL|Yes|TRUE/FALSE|Error or not
4354 |ErrorID|DWORD|Yes|-|Error code (Please refer to ~[[[8.11 Error code comparison table>>path:#错误码对照表]]])
4355
4356 **Function**
4357
4358 * This instruction is used to control the EtherCAT bus profile axis to realize the absolute/relative positioning function in profile position mode. In the basic settings of axis configuration, the profile mode option needs to be checked before it can be called, and the rising edge is valid;
4359 * This instruction is used to realize the torque control function and is only used for the EtherCAT bus axis. The rising edge of the instruction is valid and the virtual axis mode is not supported;
4360 * Profile torque mode needs to be configured with the following PDOs:
4361
4362 0x1600: 0x6087 (optional), 0x6060, 0x6071, 0x607f (optional), 0x6040
4363
4364 0x1A00: 0x6061, 0x6077, 0x6041
4365
4366 **Function description**
4367
4368 * This instruction can only be invoked if the axis is switched to the enabled state using the MC _ Power instruction. Otherwise, report a fault;
4369 * This instruction uses the driver synchronous torque mode to realize the torque control function;
4370 * On the rising edge of the instruction, the function block latches the input parameters of TarTorque, TorqueSlope and MaxVelocity, and the axis is in the ContinuousMotion state and performs torque motion;
4371
4372 TarTorque: Target torque, the unit is 0.1%, one decimal place after the decimal point is valid in the program, and the latter ones are directly discarded. The actual torque of the driver is limited by the maximum positive and negative torques set in the configuration parameters;
4373
4374 TorqueRamp: Torque ramp, the unit is 1%, one decimal place after the decimal point is valid in the program, and the latter ones are directly discarded.
4375
4376 * Speed control in torque mode
4377
4378 For servo drives, if 0x607f is mapped in the axis parameter, this instruction limits the maximum speed of the servo motor by 0x607f, if 0x607f is not mapped, the speed limit is invalid;
4379
4380 On the rising edge of Execute, the instruction converts the speed limit set by Velocity into pulse units and writes it into 0x607f through PDO;
4381
4382 When the torque instruction is interrupted by others, the maximum speed of the axis will be limited by the "Maximum speed" in the configuration interface;
4383
4384 For third-party drives, Velocity can only be used as a speed limit under the following conditions:
4385
4386 The maximum speed of the servomotor can be limited by 0x607F;
4387
4388 0x607F can be configured into the PDO;
4389
4390 The unit of 0x607F is pulse unit, non-speed unit.
4391
4392 * Stop control on torque mode
4393
4394 In the torque mode, the MC _ Stop instruction is called to perform the shut down, and after receiving the Stop instruction, the driver switches to the synchronous position mode, and performs deceleration according to the deceleration set by the Stop instruction.
4395
4396 * Interrupt
4397
4398 In PLCOpen, when the instruction is valid, the axis will be in the Continuous Motion state. Other instructions that can make the axis in Discrete motion or comply with PLCOpen state machine switching can interrupt the instruction. When the instruction is interrupted, CommandAboarted is valid;
4399
4400 CommandAboarted is valid when Execute=ON and Done signal is invalid and is about to hit the limit signal execution needs to perform deceleration;
4401
4402 The axis de-enable CommandAboarted is valid when Execute=ON and the Done signal is invalid.
4403
4404 **Timing diagram**
4405
4406 (% style="text-align:center" %)
4407 [[image:1761034615747-763.png]]
4408
4409 == **SDO instruction** ==
4410
4411 ----
4412
4413 === **MC_READSDO reads SDO data** ===
4414
4415 ----
4416
4417 MC_READSDO
4418
4419 This instruction is used to read the value of the servo object dictionary.
4420
4421 - [ MC_READSDO (S1) (S2) (S3) (D1) (S4) ]
4422
4423 Content, range and data type
4424
4425 |=**Parameter**|=**Content**|=**Range**|=**Data type**|=**Data type (Table)**
4426 |(S1)|Object dictionary index|-|Unsigned BIN16|ANY16_U
4427 |(S2)|Object dictionary subindex|-|Unsigned BIN16|ANY16_U
4428 |(S3)|Length (BYTE unit)|-|Unsigned BIN16|ANY16_U
4429 |(D1)|The read device|-|Define the size according to S3.|-
4430 |(S4)|Specify the servo station number|-|Signed BIN16|ANY16_S
4431
4432 Device used
4433
4434 |=**Instruction**|=**Parameter**|=(% colspan="25" %)**Devices**|=(% colspan="2" %)**Index modification**|=**Pulse expansion**
4435 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|(% colspan="2" %)**R**|**SD**|**LC**|**HSC**|**K**|**H**|(% colspan="2" %)**E**|**[D]**|**XXP**
4436 |(% colspan="1" rowspan="5" %)MC_READSDO|Parameter 1| | | | | | | | | | | | | | | | |●|●| |●|●|●|●|(% colspan="2" %) |(% colspan="2" %) |
4437 |Parameter 2| | | | | | | | | | | | | | | | |●|●| |●|●|●|●|(% colspan="2" %) |(% colspan="2" %) |
4438 |Parameter 3| | | | | | | | | | | | | | | | |●|●| |●|●|●|●|(% colspan="2" %) |(% colspan="2" %) |
4439 |Parameter 4| | | | | | | | | | | | | | | | |●|●| |●|●| | |(% colspan="2" %) |(% colspan="2" %) |
4440 |Parameter 5| | | | | | | | | | | | | | | | |●|●| |●|●|●|●|(% colspan="2" %) |(% colspan="2" %) |
4441
4442 Features
4443
4444 ▪Read the value according to the servo station number (S4), object dictionary index (S1), object dictionary subindex (S2), and length (S3) to the set device (D1).
4445
4446 (% class="box infomessage" %)
4447 (((
4448 ✎Note:
4449
4450 ▪When there is the corresponding object dictionary set in PDO, there may be a situation where SDO cannot read it.
4451 )))
4452
4453
4454 === **MC_WRITESD0 writes SDO data** ===
4455
4456 ----
4457
4458 MC_WRITESDO
4459
4460 This instruction is used to write the value of the servo object dictionary.
4461
4462 -[MCWRITESDO (S1) (S2) (S3) (S4) (S5)]
4463
4464 Content, range and data type
4465
4466 |=**Parameter**|=**Content**|=**Range**|=**Data type**|=**Data type (Table)**
4467 |(S1)|Object dictionary index|-|Unsigned BIN16|ANY16_U
4468 |(S2)|Object dictionary sub-index|-|Unsigned BIN16|ANY16_U
4469 |(S3)|Length (BYTE unit)|-|Unsigned BIN16|ANY16_U
4470 |(S4)|The value to be written|-|Define the size according to S3.|-
4471 |(S5)|Specify the servo station number|-|Signed BIN16|ANY16_S
4472
4473 Device used
4474
4475 |=**Instruction**|=**Parameter**|=(% colspan="24" %)**Devices**|=**Index modification**|=**Pulse expansion**
4476 | | |**X**|**Y**|**M**|**S**|**SM**|**T(bit)**|**C(bit)**|**LC(bit)**|**HSC(bit)**|**D.b**|**KnX**|**KnY**|**KnM**|**KnS**|**T**|**C**|**D**|**R**|**SD**|**LC**|**HSC**|**K**|**H**|**E**|**[D]**|**XXP**
4477 |(% colspan="1" rowspan="5" %)MC_READSDO|Parameter 1| | | | | | | | | | | | | | | | |●|●| |●|●|●|●| | |
4478 |Parameter 2| | | | | | | | | | | | | | | | |●|●| |●|●|●|●| | |
4479 |Parameter 3| | | | | | | | | | | | | | | | |●|●| |●|●|●|●| | |
4480 |Parameter 4| | | | | | | | | | | | | | | | |●|●| |●|●| | | | |
4481 |Parameter 5| | | | | | | | | | | | | | | | |●|●| |●|●|●|●| | |
4482
4483 Features
4484
4485 ▪The value of the device (S4) is written to the positions of the servo station number (S5), the object dictionary index (S1), the object dictionary sub-index (S2), and the length (S3).
4486
4487 (% class="box infomessage" %)
4488 (((
4489 ✎Note:
4490
4491 ▪When there is the corresponding object dictionary set in PDO, there may be a situation where SDO cannot write to it.
4492 )))
4493
4494 [[image:file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml15884\wps1.png]]
4495
4496 == **Built-in variables of pulse axis system** ==
4497
4498 The current state of the axis can be monitored in the program by its system variables.
4499
4500
4501 |**Name**|**Data type**|**Function**
4502 |Cfg|AXIS_INFO_CFG_T|Axis configuration
4503 |wAxisID|WORD|Axis number (Read only)
4504 |wVersion|WORD|Version number (Read only)
4505 |wAxisType|WORD|Axis type (Read only): Bus servo axis Bus encoder axis
4506 |nEtherCATNo|DINT|EtherCAT axis number
4507 |nLocalID|DINT|(((
4508 Local axis ID.
4509
4510 Y0/Y1 is 0;
4511
4512 Y2/Y3 is 1;
4513
4514 Y4/Y5 is 2;
4515
4516 Y6/Y7 is 3.
4517 )))
4518 |bVirtualAxis|BOOL|Virtual axis or not
4519 |Cmd|AXIS_INFO_CMD_T| Setting value
4520 |fSetPosition|LREAL|Setting position (Read only)
4521 |fSetVelocity|LREAL|Setting speed (Read only)
4522 |fSetAcceleration|LREAL|Setting acceleration (Read only)
4523 |fSetDeceleration|LREAL|Actual deceleration (Read only)
4524 |fSetJerk|LREAL|Setting jerk (Read only)
4525 |fSetTorque|LREAL|Setting torque (Read only) Reserved
4526 |nLocalAxisSetPos|DINT|Local pulse axis setting position (Read only)
4527 |Act|AXIS_INFO_ACT_T|Current value
4528 |fActPosition|LREAL|Current position (Read only)
4529 |fActVelocity|LREAL|Current speed (Read only)
4530 |fActAcceleration|LREAL|Actual acceleration (Read only)
4531 |fActDeceleration|LREAL|Actual deceleration (Read only)
4532 |fActJerk|LREAL|Actual jerk (Read only)
4533 |fActTorque|LREAL|(((
4534 Current torque (Read only)
4535
4536 Reserved
4537 )))
4538 |fFollowPos|LREAL|Following error (Read only)
4539 |nLocalAxisActPos|DINT|Local pulse axis current position (Read only)
4540 |nLocalAxisActFrequency|DINT|Local pulse axis current frequency (Read only)
4541 |Status|AXIS_INFO_STATUS_T|Axis status
4542 |wAxisState|WORD|Axis status (Read only)
4543
4544 |**Name**|**Data type**|**Function**
4545 |wAxisError|DWORD|Axis error code (Read only)
4546 |wMotionState|WORD|Motion status (Read only)
4547 |bPowerState|BOOL|Axis enabled status (Read only)
4548 |bphLimit|BOOL|Hardware positive limit (Read only)
4549 |bnhLimit|BOOL|Hardware reverse limit (Read only)
4550 |bHomeState|BOOL|Homing limit (Read only)
4551 |bPsLimit|BOOL|Software positive limit (Read only)
4552 |bnsLimit|BOOL|Software reverse limit (Read only)
4553 |bTarDir|BOOL|Direction of motion (Read only)
4554 |Dbg|AXIS_DEBUG_T|Axis debugging information
4555 |bAxisDebug|BOOL|Axis debugging switch
4556 |bPower|BOOL|Axis enable
4557 |bStop|BOOL|Axis stop
4558 |bReset|BOOL|Axis reset
4559 |bJogP|BOOL|JOG+
4560 |bJopN|BOOL|JOG-
4561 |bHome|BOOL|Homing
4562 |bSetPos|BOOL|Set the current position
4563 |bAbsPos|BOOL|Absolute positioning
4564 |bRevPos|BOOL|Reciprocating motion:
4565 |bRelPos|BOOL|Relative positioning
4566 |bVelocity|BOOL|Continuous motion
4567 |bTorque|BOOL|(((
4568 Torque Mode
4569
4570 Reserved
4571 )))
4572 |fPresetPosition|LREAL|Preset position
4573 |fJogVelocity|LREAL|JOG speed
4574 |fPositionOffser|LREAL|Homing mode offset
4575 |fTarPosition|LREAL|Target position
4576 |fTarVelocity|LREAL|Target velocity
4577 |fTarAcceleration|LREAL|Target acceleration
4578 |fTarDeceleration|LREAL|Target deceleration
4579 |fTarJerk|LREAL|Target jerk
4580 |fTarPosition2|LREAL|Target position 2
4581
4582 |**Name**|**Data type**|**Function**
4583 |fTarVelocity2|LREAL|Target speed 2
4584 |fTarAcceleration2|LREAL|Target jerk 2
4585 |fTarDeceleration2|LREAL|Target deceleration 2
4586 |fTarJerk2|LREAL|Target jerk 2
4587 |fTarTorque|LREAL|(((
4588 Target torque
4589
4590 Reserved
4591 )))
4592 |fTarTorqueSlop|LREAL|(((
4593 Torque ramp
4594
4595 Reserved
4596 )))
4597 |fLimitVelocity|LREAL|(((
4598 Limit the speed.
4599
4600 Reserved
4601 )))
4602 |Pdo|AXIS_INFO_PDO_T|PDO information
4603 |wControlWord|WORD|Control word
4604 |wStatusWord|WORD|Status word
4605 |nSetPosition|DINT|Setting position
4606 |nActPosition|DINT|Current position
4607 |nSetVelocity|DINT|Setting speed
4608 |nActVelocity|DINT|Current speed
4609 |nSetTorque|DINT|(((
4610 Setting torque (Read only)
4611
4612 Reserved
4613 )))
4614 |nActTorque|DINT|(((
4615 Current torque
4616
4617 Reserved
4618 )))
4619 |nDO|DINT|(((
4620 Digital output
4621
4622 Reserved
4623 )))
4624 |nDI|DINT|(((
4625 Digital input
4626
4627 Reserved
4628 )))
4629 |wModesOfPperation|WORD|Control mode
4630 |wModesOfPperationDisplay|WORD|Current control mode
4631 |wTouchFunction|WORD|Touch probe function settings
4632 |wTouchStaus|WORD|Probe touch status
4633 |nTouch1PPos|DINT|Rising edge position of touch probe 1
4634 |nTouch1NPos|DINT|Falling edge position of touch probe 1
4635 |nTouch2PPos|DINT|Rising edge position of touch probe 2
4636 |nTouch2NPos|DINT|Falling edge position of touch probe 2
4637 |nMaxVelocity|DINT|(((
4638 Maximum velocity
4639
4640 Reserved
4641 )))
4642 |pParam|AXIS_MODEPARAM_INFO_T|Parameter information
4643 |nEncoderMode|BYTE|Encoder model.
4644
4645 |**Name**|**Data type**|**Function**
4646 | | |(((
4647 0: Incremental mode
4648
4649 1: Absolute mode.
4650 )))
4651 |nModeSet|BYTE|(((
4652 Mode settings.
4653
4654 0: Linear mode
4655
4656 1: Rotation mode.
4657 )))
4658 |dRotatePeriod|LREAL|Rotation cycle
4659 |nSpeedADType|BYTE|(((
4660 Speed acceleration and deceleration type.
4661
4662 0: Default mode;
4663
4664 1: T-curve;
4665
4666 2: S-curve.
4667 )))
4668 |bEnSwLimit|BOOL|Whether to enable software limit
4669 |dSwPLimit|LREAL|Positive limit unit
4670 |dSwNLimit|LREAL|Reverse limit unit
4671 |dFollowThreShold|LREAL|Following error threshold Unit
4672 |dAxisMaxSpeed|LREAL|Axis maximum velocity unit/s
4673 |dAxisMaxASpeed|LREAL|Axis maximum acceleration unit/s^2
4674 |dAxisMaxJogSpeed|LREAL|Axis Jog Maximum Speed Unit/s
4675 |nPMaxTorque|DINT|Positive torque maximum*0.1%
4676 |nNMaxTorque|DINT|Negative torque maximum*0.1%
4677 |bNoInErrorStop|BOOL|(((
4678 Don’t enter ErrorStop after hitting the limit
4679
4680 status.
4681
4682 Reserved
4683 )))
4684 |bHdPLimit|BOOL|(((
4685 Hardware positive limit
4686
4687 0: Positive logic;
4688
4689 1: Negative logic;
4690
4691 Reserved: Not in use yet.
4692 )))
4693 |bHdNLimit|BOOL|(((
4694 Hardware reverse limit (Read-only)
4695
4696 0: Positive logic;
4697
4698 1: Negative logic;
4699
4700 Reserved: Not in use yet.
4701 )))
4702 |bEnProbe1|BOOL|(((
4703 Touch probe 1 enable
4704
4705 Reserved
4706 )))
4707 |bEnProbe2|BOOL|(((
4708 Touch probe 2 enable
4709
4710 Reserved
4711 )))
4712 |sProbe1|ARRAY[O..5] OF BYTE|Touch probe 1, X0 to X7.
4713 |sProbe2|ARRAY[O..5] OF BYTE|Touch probe 2, X0 to X7.
4714 |nOutputWay|DWORD|(((
4715 Output mode
4716
4717 0: Pulse+Direction; 1: CW/CCW.
4718 )))
4719 |nCounterMode|DWORD|(((
4720 Counting mode
4721
4722 0: A/B phase 1 times frequency;
4723 )))
4724
4725 |(% style="width:187px" %)**Name**|(% style="width:215px" %)**Data type**|(% style="width:361px" %)**Function**
4726 |(% style="width:187px" %) |(% style="width:215px" %) |(% style="width:361px" %)(((
4727 1: A/B phase 2 times frequency;
4728
4729 2: A/B phase 4 times frequency;
4730
4731 3: CW/CCW;
4732
4733 4: Pulse+Direction;
4734
4735 5: Single phase count.
4736 )))
4737 |(% style="width:187px" %)(((
4738
4739
4740
4741 nSignalSource
4742 )))|(% style="width:215px" %)(((
4743
4744
4745
4746 DWORD
4747 )))|(% style="width:361px" %)(((
4748 Signal source
4749
4750 0: X0-Phase A;
4751
4752 1: X1-Phase B;
4753
4754 2: X2-Phase A;
4755
4756 3: X3-Phase B.
4757 )))
4758 |(% style="width:187px" %)bEnPreSet|(% style="width:215px" %)BOOL|(% style="width:361px" %)Preset enable
4759 |(% style="width:187px" %)sInputTermial|(% style="width:215px" %)ARRAY[O..5] OF BYTE|(% style="width:361px" %)Input terminal
4760 |(% style="width:187px" %)bEnCmpOutput|(% style="width:215px" %)BOOL|(% style="width:361px" %)Compare output enable
4761 |(% style="width:187px" %)dPulseWidth|(% style="width:215px" %)LREAL|(% style="width:361px" %)Pulse width
4762 |(% style="width:187px" %)sOutputTermial|(% style="width:215px" %)ARRAY[O..5] OF BYTE|(% style="width:361px" %)Output terminal
4763 |(% style="width:187px" %)sCmpOutputUnit|(% style="width:215px" %)ARRAY[O..4] OF BYTE|(% style="width:361px" %)Compare output units ms/Unit
4764 |(% style="width:187px" %)nFiltTime10ns|(% style="width:215px" %)DINT|(% style="width:361px" %)Filtering time design 10us unit
4765 |(% style="width:187px" %)nFreqFilterTime|(% style="width:215px" %)DINT|(% style="width:361px" %)Velocity filtering time constant
4766 |(% style="width:187px" %)pOrigin|(% style="width:215px" %)AXIS_ORIGINRET_INFO_T|(% style="width:361px" %)Homing information
4767 |(% style="width:187px" %)nOriginSignal|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4768 Homing signal
4769
4770 0: Not assigned;
4771
4772 1: Not used;
4773
4774 2: In use.
4775 )))
4776 |(% style="width:187px" %)nZSingal|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4777 Z signal.
4778
4779 0: Not assigned;
4780
4781 1: Not used;
4782
4783 2: In use.
4784 )))
4785 |(% style="width:187px" %)nPLimit|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4786 Positive limit
4787
4788 0: Not assigned;
4789
4790 1: Not used;
4791
4792 2: In use.
4793 )))
4794 |(% style="width:187px" %)nNLimit|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4795 Negative limit
4796
4797 0: Not assigned;
4798
4799 1: Not used;
4800
4801 2: In use.
4802 )))
4803 |(% style="width:187px" %)nDirection|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4804 Homing direction:
4805
4806 0: Not assigned;
4807
4808 1: Forward;
4809
4810 2: Reverse
4811 )))
4812 |(% style="width:187px" %)nInputCheckDirection|(% style="width:215px" %)BYTE|(% style="width:361px" %)(((
4813 Enter the detection direction.
4814
4815 0: Not assigned;
4816 )))
4817
4818 |**Name**|**Data type**|**Function**
4819 | | |(((
4820 0: Positive
4821
4822 2: Reverse
4823 )))
4824 |nReturnList|BYTE|Homing list Homing mode 1 to 35
4825 |(((
4826
4827
4828 nReturnZero
4829 )))|(((
4830
4831
4832 BYTE
4833 )))|(((
4834 Homing mode
4835
4836 0: Absolute homing 1: Relative homing.
4837 )))
4838 |dReturnSpeed|LREAL|Homing speed Unit/s
4839 |dReturnAccelerate|LREAL|Homing acceleration Uint/s^2
4840 |dReturnNearSpeed|LREAL|Homing approach velocity Unit/s
4841 |nReturnTimeOut|DINT|Homing overtime time ms
4842 |bEnPLimit|BOOL|Positive limit enables
4843 |bEnNLimit|BOOL|Negative limit enable
4844 |bEnSignalLimit|BOOL|Homing signal enable
4845 |sPLimitAddr|ARRAY[O..5] OF BYTE|(((
4846 Positive limit address X0~~X1023.
4847
4848 (The local pulse axis currently only supports hardware limit X0-X7)
4849 )))
4850 |sNLimitAddr|ARRAY[O..5] OF BYTE|(((
4851 Reverse limit address X0~~X1023.
4852
4853 (The local pulse axis currently only supports hardware limit X0-X7)
4854 )))
4855 |sSignalLimitAddr|ARRAY[O..5] OF BYTE|(((
4856 Homing signal address X0 to X1023
4857
4858 (The local pulse axis currently only supports hardware limit X0-X7)
4859 )))
4860 |nPLimitLogic|BOOL|(((
4861 Forward limit logic
4862
4863 0: Forward logic;
4864
4865 1: Reverse logic.
4866 )))
4867 |nNLimitLogic|BOOL|(((
4868 Negative limit logic.
4869
4870 0: Positive logic;
4871
4872 1: Negative logic.
4873 )))
4874 |nSignalLogic|BOOL|(((
4875 Homing signal logic
4876
4877 0: Positive logic;
4878
4879 1: Negative logic.
4880 )))
4881 |pUnit|AXIS_UNITCONV_INFO_T|Unit information
4882 |bReverse|BOOL|Reverse or not
4883 |bEnGearBox|BOOL|Enable gearbox
4884 |nRotatePulseNum|DINT|The number of pulses for one revolution of the motor/encoder
4885 |dRotateMoveAmount1|LREAL|Movement amount 1 in one rotation
4886 |dRotateMoveAmount2|LREAL|Movement amount 2 in one rotation
4887 |nGearRatioM|INT|Gear ratio molecule
4888 |nGearRatioD|INT|Gear ratio denominator
4889
4890 == **Others** ==
4891
4892 ----
4893
4894 === **Single axis motion control status diagram** ===
4895
4896 ----
4897
4898 (% style="text-align:center" %)
4899 [[image:123.png||height="659" width="621"]]
4900
4901 **✎Note**: Continuous line arrows indicate transitions via command. Dashed line arrows indicate automatic transitions, which occur when a command on an axis ends or a related system transition occurs (e.g., a related error).
4902
4903 ① The transition condition for any state to fault stop or deceleration stop is: a fault occurs on the axis.
4904
4905 ② The transition condition for any state to off is: MC_Power.Enable = FALSE and there is no fault on the axis.
4906
4907 ③ MC_Reset = FALSE and MC_Power.Status = FALSE.
4908
4909 ④ MC_Reset = TRUE, MC_Power.Status = TRUE, and MC_Power.Enable = TRUE.
4910
4911 ⑤ MC_Power.Enable = TRUE and MC_Power.Status = TRUE.
4912
4913 ⑥ MC_Stop.Done = TRUE and MC_Stop.Execute = FALSE.
4914
4915 === **Axis group motion control status diagram** ===
4916
4917 ----
4918
4919 (% style="text-align:center" %)
4920 [[image:234.png||height="405" width="669"]]
4921
4922 **✎Note**: For all states in the diagram could be transitioned to GroupDisabled state by MC_GroupDisable or MC_UngroupAllAxes.
4923
4924 ① Applies to all non-administrative (i.e., motion control) function blocks.
4925
4926 ② In the GroupErrorStop or GroupStopping state, all function blocks can be invoked, although they are not executed (except that MC_GroupReset is executed in the GroupErrorStop state and any other errors are generated). In exceptional cases, GroupErrorStop or GroupStopping will transition to GroupStandby or GroupErrorStop accordingly.
4927
4928 ③ MC_GroupStop.Done = TRUE and MC_GroupStop.Execute = FALSE.
4929
4930 ④ The state transition is available if the last axis is removed from the axis group.
4931
4932 ⑤ The transition is available when the axis group is non-empty.
4933
4934 === **Arc mode description** ===
4935
4936 ----
4937
4938 |=**Mode**|=**Border (CircMode=0)**|=**Circle center (Circmode=1)**|=**Diameter (CircMode=2)**
4939 |(((
4940
4941
4942
4943 Features
4944 )))|(((
4945 The arc path consists of the starting point, auxiliary points, and ending point.
4946 )))|(((
4947
4948
4949 The arc path consists of the starting point, the center point, and theending point.
4950
4951
4952
4953 )))|(((
4954 The arc is determined by its starting point, ending point, and the normal vector of the plane containing the circle.
4955
4956 The direction of the vector determines the direction of CW and CCW circles.
4957
4958 The vector length is the radius of the arc.
4959 )))
4960 |(((
4961
4962
4963
4964 Description
4965 )))|[[image:1709016369357-809.png]]|[[image:1709016369360-366.png]]|[[image:1709016369361-660.png]]
4966 |Auxpoint|Arc path point|Center point of arc|Normal vector of the plane where the space arc lies
4967 |(((
4968
4969
4970 Path choice
4971 )))|Invalid|(((
4972 CW and CCW circles
4973
4974 CCW mode
4975
4976 CW mode
4977 )))|(((
4978 Major and minor arcs
4979
4980 1: Minor arc
4981
4982 0: Major arc
4983 )))
4984 |Characteristics|Restriction of angle less than 2π for single instruction|Restriction of angle less than 2π and nor equal to π for single instruction|(((
4985 Restriction of angle less than 2π for single instruction
4986
4987 The vector perpendicular to the circular plane must be calculated.
4988 )))
4989
4990 === **Transition mode description** ===
4991
4992 ----
4993
4994 Detailed explanation of transition mode: Transition parameters are additional parameters of transition modes, which take effect according to different transition modes.
4995
4996 |=**TransitionMode**|=**0 (No buffer mode)**|=**1 (Largest velocity to buffer)**|=**2 (Specified velocity buffer)**
4997 |TransitionParameter|Invalid|Invalid|Specified velocity
4998
4999 === **Mode selection instructions** ===
5000
5001 ----
5002
5003 [[image:1709016491129-791.png]]
5004
5005 (% style="width:659px" %)
5006 |=(% style="width: 656px;" %)**Caution**
5007 |(% style="width:656px" %)(((
5008 It should be noted that if the moving function block is interrupted by another function block, the following error will occur: braking distance is insufficient due to the limitation of deceleration;
5009
5010 Note that in all the sequence diagrams explained below, some of the sequence diagrams for the status word feedback are incorrect. For example, in Figure 8-2, the start signal is not automatically set by the system after triggering, but controlled by the user. Function block triggers execution logic when on the rising edge.
5011
5012 Likewise, the Done signal is not set automatically. When the function block ends, Done will be set until the falling edge of Execute is generated!
5013 )))
5014
5015 (1) mcAborting
5016
5017 It is an agreed pattern without buffering. When the status of the application axis is changed to "ErrorStop", all motion control function blocks with buffer mode will enter mcAborting.
5018
5019 At this time, the function block output "Error" in mcAborting is set. Its subsequent commands are rejected because the output Error is set, so Active is reset.
5020
5021 The following figure illustrates the function connection of the front and back function block instances in mcAborting.
5022
5023 Figure8-1
5024
5025 (% style="text-align:center" %)
5026 [[image:1709016579583-740.png]]
5027
5028
5029 As shown in Figure 8-1, the previous and next motion control function blocks are MC_MoveAbsolute, and both adopt mcAborting.
5030
5031 The following Figure 8-2 shows the sequence diagrams of function block instances FB1 and FB2. Figure 8-2(a) shows the sequence diagram of two absolute position motion function blocks under normal working conditions, i.e., the motion controlled by FB2 is carried out after the motion controlled by FB1 is completed.
5032
5033 When on the Start_1=TRUE rising edge, the function block instance FB1 is activated. At the same time, the outputs Busy_1 and Active_1 are set. The motion process of the axis is as follows: the velocity increases to 100u/s according to the acceleration of 100u/s2, and keep the axis move at constant velocity. Then the velocity decreases to 0 with deceleration of 100u/s2, thus moving the axis to 1000u.
5034
5035 Then the output Done 1 is set, and Busy 1 and Active 1 are reset.
5036
5037 Axis position is 1000u.
5038
5039 Figure8-2 The sequence diagram of normal working condition and mcAborting
5040
5041 (% style="text-align:center" %)
5042 [[image:1709016808830-880.png]]
5043
5044
5045 When on the Start_2=TRUE rising edge, the second function block instance FB2 is activated. The output Busy_2 and Active 2 are set. According to the acceleration of 50u/s2, the axis velocity increases to the constant velocity of 50u/s. Then the axis velocity decreases to 0 at the deceleration of 50u/s. The axis position is from 1000u to 2000u.
5046
5047 Since the absolute position has been reached, output Done_2 is set and Busy_2 and Active_2 are reset. Axis position is 2000u.
5048
5049 Figure 8-2(b) shows the sequence diagrams of two absolute position motion function blocks in mcAborting. On the rising edge of start1 = TRUE, the function block instanceFB1is activated.
5050
5051 At the same time, the output Busy_2 and Active_1 are set. The axis motion velocity increases according to the acceleration of 100u/s2. But in this process, the output start 2 of the function block instance FB2 is set, which abort the motion of the previous function block instance FB1. At this time, the axis dose not reach the required position 1000u and is aborted to stop.
5052
5053 As the function block instance FB2 is activated, Busy_2 and Active_2 are set. According to the requirement of the function block instance FB2, the velocity of the axis decreases to the input value of 50u/s2 according to its deceleration of 50u/s2. Keep it move at the constant velocity of 50u/s so that it will finally reach the position 2000u.
5054
5055 It can be seen that the activation of the next function block causes the previous function block to stop its motion, and the aborting command immediately affects the motion of the axis.
5056
5057 This buffer mode is called mcAborting.
5058
5059 (2) mcBuffered
5060
5061 The command of the next function block is stored in the buffer area. The command of the buffer area is executed only after the motion of the previous function block is completed. Therefore, this mode is called mcBuffered.
5062
5063 The BufferMode input for the next function block is set to be buffered mode (mcBuffered). Figure 8-3shows the setting for the connection of two function blocks.
5064
5065 The sequence diagram of mcBuffered is shown in Figure 8-4. In the figure, FB1 is activated when the input start 1=TRUE of the previous function block instance is on the rising edge. When this function block instance FB1 control the axis to move, the start 2 of the next function block instance FB2 is set. Due to the FB2 buffer mode is set to mcBuffered, the activation of FB2 does not abort the control of FB1 to the axis. Although the output Busy_2 of FB2 is set, the function block is not activated, namely, the output Active_2 is still FALSE.
5066
5067 Therefore, FB1 continues to control the motion of the axis until the axis reaches the set position 1000u. Then FB2 is immediately activated to work, and the velocity of the axis is not delayed. Increase the velocity to 50u/s based on the acceleration of 50u/s2 directly and then keep it move at the constant velocity of 50u/s, so that it will finally reach the position of 2000.
5068
5069 Figure8-3 Connections in mcBuffered
5070
5071 (% style="text-align:center" %)
5072 [[image:1709016841335-589.png]]
5073
5074 It can be seen from the figure that the buffer mode of the rear function block is set to mcBuffered, which means that the rear function block cannot interrupt the motion of the previous function block. And once the previous function block completes its task.
5075
5076 and Done_1 is set, the work of the next function block will start immediately.
5077
5078 The mcBuffered indicates that the motion command of the next function block has been stored in the buffer area, which does not affect the control and operation of previous motion control function block over the axis. It can execute subsequent commands after the executed function block outputs Done or Inxxx becomes TRUE.
5079
5080 Figure 8-4
5081
5082 (% style="text-align:center" %)
5083 [[image:1709016882878-958.png]]
5084
5085 mcBlending
5086
5087 There are four options for mcBlending of the previous and next function blocks. The mcBlending represents the blending of the velocity of the previous and next functional blocks. In this case, the previous function block interrupts its motion, and the next function block controls the subsequent motion, but its initial velocity is called blending velocity or mixing velocity.
5088
5089 The mixing velocity can adopt the velocity of two function blocks (whichever is lower or higher) or it can be directly specified that the velocity of the previous function block or the velocity of the next function block is adopted.
5090
5091 Therefore, the mcBlending is divided into four types.
5092
5093 (1) mcBlendingLow.
5094
5095 The blending velocity is the lower of the set velocity of the two function blocks. This mcBlending can be random. If the set velocity of the previous function block is lower than that of the next function block, the blending velocity adopts the velocity of the previous function block.
5096
5097 On the contrary, if the set velocity of the previous function block is higher than that of the next function block, the blending velocity adopts the velocity of the next function block.
5098
5099 When the buffer mode of the next function block is set to be mcBlendingLow, it means that the next function block will not interrupt the work of previous function block if the work of the previous function block is not completed; when the velocity of the previous function block decreases to the lower velocity of the previous and next function blocks, the next function block can continue to control the motion of the axis.
5100
5101 Figure 8-5 shows the connection diagram of three motion blocks, and the mode of latter two function blocks are set to be mcBlendingLow.
5102
5103 Figure 8-5 The connection of mcBlendingLow
5104
5105 (% style="text-align:center" %)
5106 [[image:1709016915405-788.png]]
5107
5108
5109 Figure 8-6 shows the sequence diagram of mcBlendingLow. To illustrate maBlendingLow, two subsequent function block instance FB2 and FB3 are used in the figure. In the figure, FB1 is activated when start_1 is set on the rising edge and then its BusY_1 is set. When FB1 controls the axis to move, start=2 of the FB2 instance is also set on the rising edge. FB1 does not complete the axis motion, so the Buffer-Mode of FB2 is set to mcBlendingLow.
5110
5111 Therefore, FB1 adopts the minimum velocity after blending FB1 and FB2, namely, the set velocity of FB2 of 50u/s.
5112
5113 It means that in the subsequent motion of FB1, the velocity of the axis is reduced to 50u/s according to the deceleration of FB2. When the axis velocity drops to the mixed low velocity, the FB1 control axis moves to the set position of 1000u, and the output Done_1 of FB1 is set, which indicates the end of its controlled motion.
5114
5115 FB2 immediately controls the axis to move at a constant velocity of 50u/s, and the axis is moving to specified position of 2000u.
5116
5117 At this time, if the Start_3 of the function block instance FB3 is set, since FB2 has not reached its position of 2000u, and the Buffer-Mode of FB3 is set to be mcBlendingLow, when the Start_3 of FB3 is set, the moving axis will control the axis according to the set velocity of FB2 and FB3 (whichever is lower) until the position of the axis reaches the set position of 2000u, then the output Active_2 is reset when FB2 is activated.
5118
5119 At this time, if the Start_3 of the function block instance FB3 is set, since FB2 has not reached its position of 2000u, and the Buffer-Mode of FB3 is set to be mcBlendingLow, when the Start_3 of FB3 is set, the moving axis will control the axis according to the set velocity of FB2 and FB3 (whichever is lower) until the position of the axis reaches the set position of 2000u, then the output Active_2 is reset when FB2 is activated. Then under the control of the FB3 function block instance, increase the velocity of the axis to 100u/s; then keep the axis move at constant velocity, and finally reduce the velocity to 0u/s; at this time the axis reaches the set position of 3000u.
5120
5121 Figure 8-6 The sequence diagram of mcBlendingLow
5122
5123 (% style="text-align:center" %)
5124 [[image:1709016951924-811.png||alt="Figure 8-6 The sequence diagram of mcBlendingLow"]]
5125
5126 mcBlending means that due to the difference in the set velocity of the previous and next function blocks, when the Execute rising edge input of the next function block is set, the system will determine what velocity should be adopted to control the axis according to the BufferMode parameter set by the next function block.
5127
5128 The aforesaid mcBlendingLow adopts the set velocity of the two function blocks (whichever is lower).
5129
5130 The previous function block will complete the subsequent motion under the control of blending velocity until it reaches the set position, and the subsequent function block will continue to control the axis. mcBlendingPrevious: the blending velocity adopts the velocity set by the previous function block.
5131
5132 mcBlendingPrevious
5133
5134 As shown in Figure 8-5, if the BufferMode parameter of FB2 and FB3 is set to be mcBlendingPrevious, the blending velocity directly adopts the velocity of the previous function block.
5135
5136 Figure 8-7 shows the timing diagram of the mcBlendingPrevious.
5137
5138 When analyzing the sequence diagram, pay attention to the change of blending velocity. As shown in Figure 8-7, in the timing diagram of the mcBlendingPrevious, when FB1 is in buffer mode, the axis moves according to the velocity of the previous function block FB1, i.e., 100u/s, until it reaches the set position of 1000u.
5139
5140 When FB2 is in buffer mode, the axis moves according to the velocity of the previous function block FB2, i.e., 50u/s, until it reaches the set position of 2000u.
5141
5142 Therefore, the axis velocity is100u/s when FB1 output Active is reset, and the axis velocity is 50u/s when FB2 output Active is reset.
5143
5144 Figure 8-7 Sequence diagram of mcBlendingPrevious
5145
5146 (% style="text-align:center" %)
5147 [[image:1709017101626-838.png]]
5148
5149 mcBlendingNext
5150
5151 As shown in Figure 8-5, if the BufferMode parameter of FB2 and FB3 is set to be mcBlendingNext, the blending velocity directly adopts the velocity of the next function block.
5152
5153 Figure 8-8 shows the timing diagram of the mcBlendingNext.
5154
5155 As shown in Figure 8-8, in the timing diagram of the mcBlendingNext, when FB1 is in buffer mode, the axis moves according to the velocity of the next function block FB2, i.e., 50u/s,
5156
5157 until it reaches the set position of 1000u. When FB2 is in buffer mode, the axis moves at 100U/S according to the velocity of the next function block FB3, until it reaches the set position of 2000U. Therefore, the axis velocity is 50u/s when the FB1 output Active is reset, and the axis velocity is 50u/s when FB2 output Active is reset.
5158
5159 As shown in Figure 8-6 of the sequence diagram of the mcBlendingLow, when FB1 is in buffer mode, the axis buffers at the low blending velocity and moves at 50U/S according to the velocity of FB2, until it reaches the set position of 1000U.
5160
5161 When FB2 is in buffer mode, the axis buffers at the low blending velocity and moves at 50U/S according to the velocity of the FB2, until it reaches the set position of 2000U.
5162
5163 Therefore, the axis velocity is 50u/s when the FB1 output Active is reset, and the axis velocity is 50u/s when FB2 output Active is reset.
5164
5165 == **Error Code Cross-reference Table** ==
5166
5167 ----
5168
5169 |=**Error Code**|=**Error Definition**|=**Interpretation**
5170 |(% colspan="3" %)**Normal**
5171 |0x00|MC_ERROR_ID_SUCCESS|No error
5172 |(% colspan="3" %)**Run-time error**
5173 |0x00200000|MC_ERROR_ID_SCURVE_NOTFEASIBLE|(((
5174 Not feasible to compute
5175
5176 S-curve
5177 )))
5178 |0x00200001|MC_ERROR_ID_SCURVE_MAXVEL_NOTREACHED|Not reach maximum velocity
5179 |0x00200002|MC_ERROR_ID_SCURVE_MAXACC_NOTREACHED|Not reach maximum acceleration
5180 |0x00200003|MC_ERROR_ID_SCURVE_FINDMAXACC_FAILED|Fail to find maximum velocity
5181 |0x00200004|MC_ERROR_ID_SCURVE_INVALIDINPUT|Invalid constraint for S-curve planning
5182 |(% colspan="3" %)**PLCOpen State-machine error**
5183 |0x00300000|MC_ERROR_ID_AXIS_STATE_VIOLATION|Invalid axis state violation
5184 |0x00300001|MC_ERROR_ID_POWER_ON_OFF_FROM_ERROR_STOP|Try to power on the servo at ErrorStop
5185 |0x00300002|MC_ERROR_ID_INVALID_STATE_FROM_STOPPING|Invalid state transition at Stopping
5186 |0x00300003|MC_ERROR_ID_INVALID_STATE_FROM_ERROR_STOP|Invalid state transition at ErrorStop
5187 |0x00300004|MC_ERROR_ID_INVALID_STATE_FROM_DISABLED|Invalid state transition at Disabled
5188 |0x00300005|MC_ERROR_ID_INVALID_STATE_FROM_POWERED|Invalid state transition at Powered
5189 |0x00300006|MC_ERROR_ID_INVALID_STATE_FROM_SYNC|Invalid state transition at Sync
5190 |0x00300007|MC_ERROR_ID_INVALID_STATE_NOT_HOME|Invalid state transition when not home
5191 |0x00300008|MC_ERROR_ID_INVALID_STATE_TO_DISABLED|Invalid state transition to Disabled
5192 |0x00300009|MC_ERROR_ID_INVALID_STATE_TO_ERRORSTOP|Invalid state transition to ErrorStop
5193 |0x0030000A|MC_ERROR_ID_INVALID_STATE_TO_STANDSTILL|Invalid state transition to StandStill
5194 |0x0030000B|MC_ERROR_ID_INVALID_STATE_TO_HOMING|Invalid state transition to Homing
5195 |0x0030000C|MC_ERROR_ID_INVALID_STATE_TO_STOPPING|Invalid state transition to Stoppping
5196 |0x0030000D|MC_ERROR_ID_INVALID_STATE_TO_DISCRETE|Invalid state transition to DiscreteMotion
5197 |0x0030000E|MC_ERROR_ID_INVALID_STATE_TO_SYNC|Invalid state transition to SynchronizedMotion
5198 |0x0030000F|MC_ERROR_ID_INVALID_STATE_TO_CONTINUOUS|Invalid state transition to ContinuousMotion
5199 |(% colspan="3" %)**Error due to user/system limitations**
5200 |0x00400000|MC_ERROR_ID_MOTION_LIMIT_ERROR|Velocity, acceleration or position over limit
5201 |0x00400001|MC_ERROR_ID_INVALID_DIRECTION_POSITIVE|No positive direction motion allowed
5202 |0x00400002|MC_ERROR_ID_INVALID_DIRECTION_NEGATIVE|No negative direction motion allowed
5203 |0x00400003|MC_ERROR_ID_VELOCITY_OVER_LIMIT|Velocity over limit
5204 |0x00400004|MC_ERROR_ID_ACCELERATION_OVER_LIMIT|Acceleration over limit
5205 |0x00400005|MC_ERROR_ID_POSITION_OVER_POSITIVE_LIMIT|Position over positive limit
5206 |0x00400006|MC_ERROR_ID_POSITION_OVER_NEGATIVE_LIMIT|Position over negative limit
5207 |0x00400007|MC_ERROR_ID_POSITION_LAG_OVERLIMIT|Position lag over limit
5208 |0x00400008|MC_ERROR_ID_TORQUE_OVER_LIMIT|Torque over limit
5209 |(% colspan="3" %)**Error Stop**
5210 |0x00500000|MC_ERROR_ID_AXIS_ERROR_STOP|Axis error stopped
5211 |(% colspan="3" %)**Error from servo**
5212 |0x00600000|MC_ERROR_ID_AXIS_ERROR_STOP|Servo has no error
5213 |0x00600001|MC_ERROR_ID_SERVO_FIELDBUS_INIT_ERROR|Servo fieldbus initialize error
5214 |0x00600002|MC_ERROR_ID_SERVO_POWER_ERROR|Servo power error
5215 |0x00600003|MC_ERROR_ID_SERVO_POWERING_ON_ERROR|Servo has error during powering on
5216 |0x00600004|MC_ERROR_ID_SERVO_ERROR_WHEN_POWERED_ON|Servo has error after powered on
5217 |0x00600005|MC_ERROR_ID_SERVO_POWERING_OFF_ERROR|Servo has error during powering off
5218 |0x00600006|MC_ERROR_ID_SERVO_PDO_NOT_MAP|Servo PDO not map
5219 |0x00600007|MC_ERROR_ID_SERVO_PDO_READ_ERROR|Servo PDO read error
5220 |0x00600008|MC_ERROR_ID_SERVO_PDO_WRITE_ERROR|Servo PDO write error
5221 |0x00600009|MC_ERROR_ID_SERVO_POWER_OFF|Servo can’t run in power off
5222 |0x0060000A|MC_ERROR_ID_SERVO_ERROR_HOME_STATE|Servo has error when homing state
5223 |0x0060000B|MC_ERROR_ID_SERVO_HOME_MODE_SWITCH|Servo mode switch error
5224 |0x0060000C|MC_ERROR_ID_SERVO_HOME_CTRLWORD|Servo set homing mode error
5225 |0x0060000D|MC_ERROR_ID_SERVO_HOME|Servo homing error
5226 |0x0060000E|MC_ERROR_ID_SERVO_PDO_READ_BUSY|Servo PDO read busy
5227 |0x0060000F|MC_ERROR_ID_SERVO_TOUCHPROBE_NOTFIND|Fail to find Servo TouchProbe
5228 |0x00600010|MC_ERROR_ID_SERVO_PARAREAD|Read Servo parameter error
5229 |0x00600011|MC_ERROR_ID_SERVO_PARAWRITE|Write Servo parameter error
5230 |0x00600012|MC_ERROR_ID_LOCAL_PULSE_HOME_TIMEOUT|Time out when origin regression
5231 |0x00600013|MC_ERROR_ID_LOCAL_PULSE_HOME_NOT_TOUCH_LIMI|The execution has not encountered the limit
5232 |0x00600014|(((
5233 MC_ERROR_ID_LOCAL_PULSE_HOME_VELOCITY_
5234
5235 OVER_LIMIT
5236 )))|Pulse shaft HOME Velocity over limit
5237 |0x00600015|(((
5238 MC_ERROR_ID_LOCAL_PULSE_HOME_ACC_
5239
5240 OVER_LIMIT
5241 )))|Pulse shaft HOME Acceleration over limit
5242 |0x00600020|(((
5243 MC_ERROR_ID_MODE_SWITCH_NEEDPDO_
5244
5245 NOTMAP
5246 )))|(((
5247 There is no required PDO for the mode
5248
5249 corresponding to mode switching.
5250 )))
5251 |0x006000FF|MC_ERROR_ID_SERVO_LOST|Servo lost
5252 |(% colspan="3" %)**Axis’s error**
5253 |0x00700000|MC_ERROR_ID_AXIS_GENERAL_ERROR|Axis's general error
5254 |0x00700001|MC_ERROR_ID_AXIS_ADD_QUEUE_ERROR|Axis’ add error
5255 |0x00700002|MC_ERROR_ID_AXIS_IS_UNHEALTHY|Axis is unhealthy
5256 |0x00700003|MC_ERROR_ID_AXIS_IS_OVER_LIMIT|Axis's motion instruction is over limit
5257 |0x00700004|MC_ERROR_ID_AXIS_FALLINGEDGE_ERROR|Axis error when on the falling edge
5258 |0x00700005|MC_ERROR_ID_AXIS_NOTFIND|Not find the axis
5259 |0x00700006|MC_ERROR_ID_AXIS_IS_INGROUP|Axis is in Group
5260 |0x00700007|MC_ERROR_ID_AXIS_CAN_NOT_SETPOS|Axis cannot be set position in current state
5261 |0x00700008|MC_ERROR_ID_AXIS_NOT_POWER|Axis does not power on yet
5262 |0x00700009|MC_ERROR_ID_AXIS_NOT_SUPPORTED_TOUCH|Not support the bound touch probe number
5263 |0x0070000A|MC_ERROR_ID_AXIS_IS_COMBINED|Axis is combined
5264 |0x0070000B|(((
5265 MC_ERROR_ID_AXIS_CAN_NOT_COMBINE_WHILE_RU
5266
5267 N
5268 )))|(((
5269 Axis can't combine while
5270
5271 running
5272 )))
5273 |0x0070000C|MC_ERROR_ID_AXIS_GROUP_NOTFIND|Not find axis group number
5274 |(% colspan="3" %)**General FB error**
5275 |0x00800000|MC_ERROR_ID_FB_GENERAL_ERROR|User's FB run error
5276 |0x00800001|MC_ERROR_ID_FB_READ_PARAM_ERROR|User's FB read error
5277 |0x00800002|MC_ERROR_ID_FB_STOP_ERROR|User's FB stop error
5278 |0x00800003|MC_ERROR_ID_FB_NOT_BIND_AXIS|User's FB does not bind the logic axis
5279 |0x00800004|MC_ERROR_ID_FB_NOT_SET_PARAMETER_ID|User's FB dose not set the read parameter
5280 |0x00800005|MC_ERROR_ID_FB_NOT_IN_QUEUE|User's FB has already done and can't update
5281 |0x00800006|MC_ERROR_ID_FB_PARAMETER_ERROR|User's FB parameter error
5282 |0x00800007|MC_ERROR_ID_FB_PLAN_FAILED|User's FB error due to parameter when executing planning
5283 |0x00800008|MC_ERROR_ID_FB_REPLACE_AXIS_IN_RUN|User's FB replace axis in running
5284 |0x00800009|MC_ERROR_ID_FB_HALTSUPERIMPOSED_ERROR|Stop virtual superimposed error
5285 |0x0080000A|MC_ERROR_ID_FB_NOT_BIND_AXIS_GROUP|User's FB isn't binding axis in axis group
5286 |0x0080000B|MC_ERROR_ID_FB_BIND_AXIS_IS_ERROR|The bound axis has error
5287 |0x0080000C|MC_ERROR_ID_FB_MINE_AXIS_IS_ERROR|Fb’s planning axis has error
5288 |0x0080000D|MC_ERROR_ID_FB_NOT_BIND_MASTER|FB does not bind master axis
5289 |0x0080000E|MC_ERROR_ID_FB_NOT_BIND_SLAVE|FB does not bind slave axis
5290 |0x0080000F|MC_ERROR_ID_FB_CAN_NOT_BIND_ENCODERAXIS|FB can't bind encoder axis
5291 |0x00800010|MC_ERROR_ID_FB_NOT_BIND_TRIGGER_INFO|FB does not bind trigger information
5292 |0x00800011|MC_ERROR_ID_FB_NOT_SUPPORTED_TRINUM|Bound trigger number is not supported
5293 |0x00800012|MC_ERROR_ID_FB_CAN_NOT_CHANGE_WHILE_RUN|FB’ bound parameter cannot change at running
5294 |0x00800013|MC_ERROR_ID_FB_RANGE_SET_ERROR|FB parameter range has error. Maximum value may be less than minimum value.
5295 |0x00800014|MC_ERROR_ID_FB_MASTER_SLAVE_ARE_SAME|FB master and slave axis are consistent
5296 |0x00800015|MC_ERROR_ID_FB_MASTER_AUXILIARY_ARE_SAME|FB master and auxiliary axis are consistent
5297 |0x00800016|MC_ERROR_ID_FB_AUXILIARY_SLAVE_ARE_SAME|FB auxiliary and slave axis are consistent
5298 |0x00800017|MC_ERROR_ID_FB_MASTER_SLAVE_NOT_ASCENDING|FB master and slave id are not in ascending order
5299 |(% colspan="3" %)**General axis group error**
5300 |0x00900000|MC_ERROR_ID_AXIS_GROUP_GENERAL_ERROR|Group general error
5301 |0x00900001|MC_ERROR_ID_AXIS_GROUP_ADD_QUEUE_ERROR|Group fb add error
5302 |0x00900002|MC_ERROR_ID_AXIS_GROUP_REMOVE_ERROR|Group remove logic axis error
5303 |0x00900003|MC_ERROR_ID_AXIS_GROUP_ENABLE_ERROR|Group enable error
5304 |0x00900004|MC_ERROR_ID_AXIS_GROUP_DISABLE_ERROR|Group disable error
5305 |0x00900005|MC_ERROR_ID_AXIS_GROUP_STOP_ERROR|Group stop error
5306 |0x00900006|MC_ERROR_ID_AXIS_GROUP_AXIS_INSINGLEMOVE|Group is to run, but axis is in single axis controlled
5307 |0x00900007|MC_ERROR_ID_AXIS_GROUP_AXIS_INGROUPMOVE|Axis is bound in axis group
5308 |0x00900008|MC_ERROR_ID_AXIS_GROUP_IS_UNHEALTHY|Group's any axis is error or any error in group
5309 |0x00900009|MC_ERROR_ID_AXIS_GROUP_CAN_NOT_SETPOT|Group can't set position
5310 |0x0090000A|MC_ERROR_ID_AXIS_GROUP_INVALID_STATE_TRANS|Group is to switch to the unallowed state
5311 |0x0090000B|MC_ERROR_ID_AXIS_GROUP_NOT_BIND_AXIS|Group does not bind axis
5312 |0x0090000C|MC_ERROR_ID_AXIS_GROUP_IS_DISABLED|Group is disabled
5313 |(% colspan="3" %)**Single axis planner error**
5314 |0x00A00000|MC_ERROR_ID_PLANNER_DIST_IS_ZERO|Planner position is 0
5315 |0x00A00001|MC_ERROR_ID_PLANNER_SPPED_IS_ZERO|Planner velocity is 0
5316 |0x00A00002|MC_ERROR_ID_PLANNER_ACC_DES_IS_ZERO|Planner acceleration is 0
5317 |0x00A00003|MC_ERROR_ID_PLANNER_JERK_IS_ZERO|Group general error
5318 |0x00A00004|MC_ERROR_ID_PLANNER_CURRENT_DIFF_LAST|Planner synchronization error, current position is inconsistent with the last position
5319 |0x00A00005|MC_ERROR_ID_PLANNER_SPPED_OVER_LIMIT|Planner input velocity is over limit
5320 |0x00A00006|MC_ERROR_ID_PLANNER_ACC_DES_OVER_LIMIT|Planner input acceleration and deceleration is over limit
5321 |0x00A00007|MC_ERROR_ID_PLANNER_JERK_OVER_LIMIT|Planner input Jerk is over limit
5322 |0x00AFFFFF|MC_ERROR_ID_PLANNER_SG_CULCULATE|Planner single axis calculate error
5323 |(% colspan="3" %)**Axis group planner error**
5324 |0x00B00000|MC_ERROR_ID_PLANNER_SP_SAME_START_END|Planner space curve’ start and end are the same
5325 |0x00B00000|MC_ERROR_ID_PLANNER_SP_NOT_IN_SAME_PLANE|Planner space curve is not in the same plane
5326 |0x00BFFFFF|MC_ERROR_ID_PLANNER_SP_CULCULATE|Planner space curve calculate error
5327 |(% colspan="3" %)**ECAM or EGEAR error**
5328 |0x00C00000|MC_ERROR_ID_AXIS_MASTER_AND_SLAVE_IS_SAME|Planner master and slave is the same
5329 |0x00C00001|MC_ERROR_ID_AXIS_MAX_ACC_OR_DEC_OR_VEL_IS_ZERO|Planner axis's max acc/dec/vel is zero
5330 |0x00C00002|MC_ERROR_ID_CAM_TABLE_IS_INEXISTENCE|Planner the camtable is inexistence
5331 |0x00C00003|MC_ERROR_ID_CAM_NODENUM_OVER_NODE_SIZE|Planner the cam node num is over actual cam node size
5332 |0x00C00004|MC_ERROR_ID_CAM_NODENUM_OR_NODESIZE_IS_ERROR|Planner the cam node num or cam node size is error
5333 |0x00C00005|MC_ERROR_ID_CAM_FIRST_NODE_POS_NON_ZERO|Planner the cam first node's master position or slave position non-zero
5334 |0x00C00006|MC_ERROR_ID_CAM_NODE_PARAMETER_IS_ERROR| Planner the cam node parameter is error
5335 |0x00C00007|MC_ERROR_ID_CAM_UPDATE_CAM_TABLE_IS_ERROR|Planner the update cam table is error
5336 |0x00C00008|MC_ERROR_ID_CAM_SAVE_CAM_TABLE_IS_ERROR|Planner the save cam table is error
5337 |0x00C00009|MC_ERROR_ID_CAM_GET_AXIS_VEL_AND_POS_ERROR|Planner get master and slave vel/pos is error
5338 |0x00C0000A|MC_ERROR_ID_BUFFER_MODE_IS_NOT_ABORTING|Planner the buffer mode is not aborting
5339 |0x00C0000B|MC_ERROR_ID_CAM_AXIS_SCALING_IS_ZERO|Planner the cam master scaling or slave scaling is zero
5340 |0x00C0000C|MC_ERROR_ID_CAM_TABLE_IS_NOT_BIND|Planner the cam table is not bind
5341 |0x00C0000D|MC_ERROR_ID_THE_AXIS_IS_NOT_IN_CAM_STATE|Planner the axis is not in the cam state
5342 |0x00C0000E|MC_ERROR_ID_THE_AXIS_IS_NOT_IN_GEAR_STATE|Planner the axis is not in the gear state
5343 |0x00C0000F|MC_ERROR_ID_CAM_IN_PARAMETER_IS_ERROR|Planner the camin parameter is error
5344 |0x00C00010|MC_ERROR_ID_GEAR_IN_PARAMETER_IS_ERROR|Planner the gearin parameter is error
5345 |0x00C00011|MC_ERROR_ID_GEAR_IN_POS_PARAMETER_IS_ERROR|Planner the gearinpos parameter is error
5346 |0x00C00012|MC_ERROR_ID_CAM_TABLE_IS_UPDATE|Planner the cam table is updating
5347 |0x00C00013|MC_ERROR_ID_GET_CAM_TABLE_POS_IS_ERROR|Planner the get cam table position is error
5348 |0x00C00014|MC_ERROR_ID_CAM_TABLE_PHASE_IS_OUT_OF_RANGE|Planner the get cam table position is error
5349 |0x00C00015|MC_ERROR_ID_CAM_TABLE_NODE_IS_NOT_ADJOIN|Planner the cam table node is not adjoin
5350
5351