状态与任务指令
等待运动完成
| 指令 | 说明 |
|---|---|
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让上位机/其他任务经全局变量中转。