Wiki source code of 08 Motion Control

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