跳转至

状态与任务指令

等待运动完成

指令 说明
WaitMotion() 阻塞,直到本任务全部运动停止
WaitMotion(X) 阻塞,直到 X 轴停止

详见 WaitMotion

MoveAbs(X, 100, F, 500)
WaitMotion(X)          -- 到位后才执行下一行
Print("in position")

Home 本身是阻塞式的,不需要再跟 WaitMotion。

错误查询

指令 返回 说明
GetLastError code, command 返回最近一次失败的运动指令的错误码和指令内容。读取后清零;无错误时返回 0, ""
local code, cmd = GetLastError()
if code ~= 0 then
    Print("command failed: " .. cmd .. " error " .. code)
    FaultAck()
end

运动指令失败也会在下一次指令调用时以 Lua 错误抛出(信息含失败行号),任务进入 Error 状态。

任务信息

指令 返回 说明
GetTaskId 整数 当前脚本所在任务号

脚本读不到轴状态

脚本内没有读取轴位置/状态字的接口。需要轴反馈时:

  • WaitMotion 做完成同步;
  • 用上位机读取:C# Controller.Commands.Status.AxisStatus("X", AxisStatusSignal.PositionFeedback),C/C++ DLLStatusGetItem
  • 或通过 GetGlobal 让上位机/其他任务经全局变量中转。