名称:设置当前位置指令

符号:MC_SetPosition

说明:

        用于设置轴的当前位置，上升沿有效。
        只有当轴的PLCOpen状态处于Disabled、Standstill、Errorstop三种状态才可调用本指令设置轴的当前位置。
        当MODE=0（绝对模式）时，在EXECUTE的上升沿，指令将POS写入轴的当前位置。
        当MODE=1（相对模式）时，在EXECUTE的上升沿，指令在轴的当前位置基础上加上POS对应的值（需在当前位置已知的前提下才可调用本指令，否则指令报错）。

图片:

参数:

参数名称 | 数据类型 | IN/OUT | 参数作用 | 说明 | 默认值
--- | --- | --- | --- | --- | ---
AXISNO | UDINT | IN | 脉冲轴号 | 0-7 |
    无
EXECUTE | BOOL | IN | 功能块触发 | 上升沿触发指令执行 |
    FALSE
POS | REAL | IN | 目标位置 | 目标位置(正数/负数/0)，单位: unit |
    0
MODE | REAL | USINT | 模式选择 | 0-绝对模式，将POS的值写入当前位置；1-相对模式，在当前位置的基础上增加POS对应的值（轴当前位置已知的情况下），单位: unit |
    0
DONE | BOOL | OUT | 完成标志 | TRUE：轴位置设置完成 |
    FALSE
BUSY | BOOL | OUT | 忙标志 | TRUE：轴位置设置中 |
    FALSE
ERROR | BOOL | OUT | 出错标志 | TRUE：功能块调用出错 |
    FALSE
ERRORID | UINT | OUT | 错误码 | 0：正常；其它：错误码值 |
    0

示例:

LD:

ST:

MC_SetPosition_inst1(AXISNO := 0, EXECUTE := TRUE, POS := 0, MODE := 0, DONE => DoneOut, BUSY => BusyOut, ERROR => ErrorOut, ERRORID => ErrorIdOut);

解释:

       AXISNO为0，表示操作脉冲轴0；
       EXECUTE由FALSE->TRUE，启动轴位置设置指令；
       POS为0，表示目标位置为0unit;
       MODE为0，表示绝对模式，将POS的值写入当前位置，如果为1，表示相对模式，在轴当前位置的基础上增加POS对应的值；
       DoneOut为TRUE，表示轴位置设置指令执行完成；
       BusyOut为TRUE，表示轴位置设置中，完成后BusyOut复位；
       ErrorOut如果为TURE，表示存在错误，指令无法执行；
       ErrorIdOut为0，表示执行正常，非0，表示存在错误，无法执行。