跳转至

Controller.Commands 命令

Controller.Commands 是命令系统的根入口,按任务和轴两层组织。本页是总索引:命令树、轴选择方式、各家族命令一览。每个命令的签名、生成指令、语义与示例见其独立说明页。

命令树结构

Controller.Commands[TaskId]
├── .Axes[axisNames / axisIndexes / axisMasks]  → AxesRootCommands
│   ├── .Motion   → AxesMotionCommands(.Setup 子类别)
│   └── .IO       → AxesIOCommands
├── .Motion       → MotionCommands(.Setup 子类别)
├── .Status       → StatusCommands
├── .IO           → IOCommands
├── .PCO          → PCOCommands
└── .Execute(code)   → object(执行任意指令字符串)

轴选择索引器

Controller.Commands.Axes 支持三种轴选择方式:

controller.Commands.Axes["X", "Y"]           // 轴名字符串数组
controller.Commands.Axes[0, 1]              // 轴编号整型数组
controller.Commands.Axes[new AxisMask(1), new AxisMask(2)]  // 轴掩码数组
controller.Commands.Axes.Select("X", "Y")   // 等效显式调用 Select

选定轴后,Axes[...].Motion / Axes[...].Motion.Setup / Axes[...].IO 上的方法不再接受轴参数,作用对象即已选轴组。同一命令的「全局形式」(Commands[TaskId].Motion.X(...),轴作参数)与「轴组形式」生成相同的指令字符串。

Commands.Motion(运动)

点位与协调运动

方法 说明
MoveAbs 绝对点位运动(单轴)
MoveInc 增量点位运动(单轴)
Rapid 快速点位,各轴按 MaxSpeedClamp 限速,可逐轴给速
Linear 多轴协调直线,前瞻规划
CWCenter / CCWCenter 顺/逆时针圆弧(IJ 圆心法)
FreeRun / FreeRunStop 持续速度输出 / 停止

轴状态控制

方法 说明
Enable / Disable 使能 / 禁用轴(CiA402)
Home / HomeConditional 回零 / 条件回零
FaultAck 清除轴故障
Abort 中止轴运动

Commands.Motion.Setup(运动模态设置)

入口 Commands[TaskId].Motion.SetupCommands.Axes[...].Motion.Setup

方法 说明
Scurve S 曲线平滑百分比(0~100)
RampType 斜坡类型(Linear / Scurve / Sine)
RampRate 加减速率(全局标量或逐轴)
RampRateAccel / RampRateDecel 只设加速度 / 只设减速度

Commands.Status(状态查询)

详见 Status(信号枚举表、状态字位定义、MoveDone 轮询模式)。

方法 说明
AxisStatus 读轴状态信号(位置反馈、速度、电流、状态字等)
TaskStatus 读任务状态信号

Commands.IO(轴抱闸)

方法 说明
Brake 抱闸吸合/释放(轴组形式在 Commands.Axes[...].IO

Commands.PCO(位置比较输出)

入口 Commands[TaskId].PCO。详见 PCO

根命令(Commands[TaskId])

成员 说明
Execute(code) 执行任意指令字符串,返回 $return 变量的值(若有)
double result = (double)controller.Commands[TaskId.T01].Execute("MOVEABS X 10 10");

部分词汇没有强类型方法,只能经 Execute 下发:DWELL(等待毫秒)、F / XF(进给速度)、VELOCITY ON / VELOCITY OFF(拐角平滑开关)、ABS / INC(模态)。

相关页面