这个数据类型位于CODESYS SoftMotion 函数库 ⇘ SM3_CNC。SMC_XInterpolator 功能块实现了一个CAM 以及 CNC的混合。假设要移动的特殊位置 (G-code 描述)已经超出了工件,通过工件移动 - 另一个程序 - (例如沿着 X-轴) 以及其他轴 (Y, Z,等) 应该按照当前工件(X)的位置并在离线给出路径位置。
工件的运动通常跟随 X方向 ( 其他方向可以通过旋转被映射到这个方向)。
|
类型 |
初始值 |
描述 |
---|---|---|---|
VAR_IN_OUT |
|
|
|
X_AXIS |
AXIS_REF_SM3 |
|
X-轴,工件位置 |
VAR_IN |
|
|
|
bExecute |
BOOL |
FALSE |
当 TRUE 时,功能块被激活 |
poqDataIn |
POINTER TO ⇘ SMC_OUTQUEUE |
0 |
这个变量指向 ⇘ SMC_OUTQUEUE 结构体对象,其中包含路径的 SMC_GEOINFO-对象;通常情况下他指向预处理模块(例如:SMC_NCDecoder)的 DataOut 输出。 ⇘ SMC_OUTQUEUE应该定义一个适当的尺寸大小(见上文)! |
dLastWayPos |
LREAL |
0 |
这个输入允许用于测量插补计算的路径。输出 dWayPos是 dLastWayPos 以及当前圆周距离的总和。如果 dLastWayPos=0, dWayPos将会得到当前选择路径的长度。如果设置 dLastWayPos等于输出 dWayPos, dWayPos通常会被当前选择的路径更新并且将会得到总的路径长度。因此 dLastWayPos 通常被设置为 0 或者其他的值。 |
bAbort |
BOOL |
FALSE |
如果为 TRUE ,功能块当前的处理将会被中断 |
eDirection |
MC_DIRECTION |
positive |
此输入定义是否工作台沿着 X轴正向移动 (positive)或者反向移动 (negative) 。其他值不允许。 |
dXOffset |
LREAL |
0 |
相对于 X轴位置的偏移 |
VAR_OUT |
|
|
|
bDone |
BOOL |
FALSE |
如果输入数据...DataIn 被完全处理,那么这个变量将=会被设置为 TRUE 。因此在复位之前此模块不会执行其他动作。如果输入 bExecute 为 FALSE, bDone 将会被复位为 FALSE。 |
bBusy |
BOOL |
FALSE |
TRUE,功能块的处理没有完成 |
bError |
BOOL |
FALSE |
功能块内部发生错误信号 |
wErrorID |
SMC_ERROR |
SMC_NOERROR |
错误ID |
piSetPosition |
Pointer TO ⇘ SMC_POSINFO |
|
piSetPosition 包含根据当前命令定义的直接位置。piSetPosition 是一个 SMC_POSINFO-结构体并且不包含要被驱动的笛卡尔坐标,并且还包含附加轴的位置信息。 |
iStatus |
IPO_INIT |
这个 ENUM-变量描述了模块当前的状态。可能的状态: IPO_UNKNOWN (0) : 内部状态,在一个完整的 SMC_Interpolator 中不会发生 IPO_ACCEL (2) :当前加速度模块 IPO_CONSTANT (3) : 当前常量速度运行模块 IPO_DECEL (4) : 当前抱闸模块 IPO_FINISHED (5) :处理 GEOINFO列表结束。随后到达 DataIn 的 GEOINFO-对象将不会被处理。 |
|
bWorking |
BOOL |
FALSE |
只要列表开始进行处理此输出变量将会被设置为 TRUE,但是不会终止。 (IPO_ACCEL 或 IPO_CONSTANT 或 IPO_DECEL 或 IPO_WAIT)。否则 bWorking 为 FALSE。 |
iActObjectSourceNo |
INT |
-1 |
包含当前处理的 DataIn-队列 SMC_GEOINFO 对象的入口。如果 SMC_Interpolator 没有工作 (bWorking = FALSE) 那么此值将会被设置为“-1”。 |
dVel |
LREAL |
0 |
此变量包含当前速度结果值,如果对象按照时间 Ipo_Time from 进行移动坐标变换将转化到 piSetPosition。 |
vecActTangent |
|
这个结构体包含点 piSetPosition中的路径方向。如果 dVel = 0,那么 vecAct_Tangent 将只包含零点。 |
|
iLastSwitch |
INT |
0 |
这个变量包含最后处理的辅助标记。如果在一个周期内有多个标记被处理,那么只有最后一个将会被给出。 |
dwSwitches |
DWORD |
0 |
这个 DWORD 包含 1 到 32 之间的附加标记的开关状态。DWORD 的 Bit0 将会标记 1, Bit31 标记 32。 因此其他形式定义的 iLastHelpMark,将不会被作为附加标记。 |
dWayPos |
LREAL |
|
参阅输入 dLastWayPos。 |
如果 XInterpolator 被激活,将会在符合当前的x 位置的特殊路径上进行查找并且将会在 piSetPosition中设置当前的路径点。如果要针对每个 x位置实现一个路径的自由跳转那么必须存在一个路径位置。例如,以下路径是有效的: