Wiki source code of 08 Motion Control

Version 6.1 by Iris on 2025/10/22 15:18

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