AxisStatus(C#)
签名:(入口 controller.Commands[TaskId.T01].Status)
public double AxisStatus(string Axis, AxisStatusSignal DataItem)
public double AxisStatus(int Axis, AxisStatusSignal DataItem)
public double AxisStatus(string Axis, AxisStatusSignal DataItem, int AdditionalData)
public double AxisStatus(int Axis, AxisStatusSignal DataItem, int AdditionalData)
读取轴状态信号(位置反馈、速度、电流、状态字等),立即返回。
所属:Controller.Commands · 状态查询
参数
| 参数 | 说明 |
|---|---|
Axis |
轴名("X")或轴编号(0) |
DataItem |
AxisStatusSignal 枚举信号项,常用项见 Status 信号表 |
AdditionalData |
可选。扩展信号的附加索引 |
生成的指令
$return = AXISSTATUS(<轴>, <信号编号>[, <附加数据>])
信号枚举经 EnumToBase 转为数值下发(如 AxisStatusSignal.PositionFeedback → 0),与 Terminal 的信号名形式等价。
返回值
double,含义取决于 DataItem(位置类为位置值,状态字类为位编码整数)。
说明
- 即时查询,不进入指令队列,不受运动串行约束。
- 运动完成判定:查询
AxisStatusSignal.AxisStatus并测MoveDone位(0x400000),完整轮询模式见 Status。 - 客户 API 无事件通知,轴故障与运动完成一律状态查询。
示例
var status = controller.Commands[TaskId.T01].Status;
double pos = status.AxisStatus("X", AxisStatusSignal.PositionFeedback);
double word = status.AxisStatus("X", AxisStatusSignal.AxisStatus);
bool moveDone = ((int)word & 0x400000) != 0;
相关页面
- Status — 信号枚举表、状态字位定义、MoveDone 轮询模式
- Terminal AXISSTATUS — 字符串指令语法
- TaskStatus — 任务状态