Wiki source code of 08 Motion Control

Version 9.1 by Iris on 2026/02/10 11:30

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