### HW_PSWITCH -- 硬件位置比较输出

类型 | 轴指令
描述 | 硬件比较输出，不同的轴对应不同的输出口。 缺省轴 0-5 分别对应输出口 0 1 2 3 0 1。总共 4 个比较输出口。 可以连续调用两个 HW_PSWITCH 指令，通过函数方式可以获取能调用的指令个数。 每个比较点触发都会使得当前输出口电平翻转。 HW 缓冲数 1024 个，可以连续调用 1024 个 HW 指令。 HW 指令调用后,不受后面的坐标修改功能的影响，HW 指令 TABLE 存储的坐标必须在调用时是正确的，因此尽量手动修改坐标,要规避 HW 指令与坐标循环自动修改的随机冲突。 因为自动循环修改坐标不受程序控制，无法确定是在 HW 的前面还是后面，这样 TABLE 里面的坐标就无法确定。 此指令仅支持脉冲轴硬件位置比较输出，总线轴请使用 HW_PSWITCH2 指令。 使用脉冲型电机时只有 ATYPE 为 4 时才是比较反馈位置(MPOS)，默认出厂的 ATYPE 为 1 或 7 比较的是命令位置(DPOS)。
语法 | HW_PSWITCH(mode, direction, reserve, tablestart, tableend) Buff = HW_PSWITCH([axisnum]) mode：1-启动比较器，2- 停止并删除没完成的比较点 direction：0-坐标负向，1- 坐标正向，2-不判断方向 reserve：预留 tablestart：第一个比较点坐标所在 TABLE 编号 tableend：最后一个比较点坐标所在 TABLE 编号 HW_PSWITCH 没有比较完所有点的话，一定要设置 mode 值为 2，通过 HW_PSWITCH(2)指令停止并删除没有完成的比较点，否则后面此输出通道会工作不正常。
适用控制器 | 4 系列及以上产品，4 系列固件 20170704 及以上 ZMC420SCAN 不支持 HW_PSWTICH
例子 | 以下例程测试环境：ZMC432，固件：20170709（仿真器无法运行此指令）。 BASE(0) '选择轴 0 默认输出 OP(0) ATYPE=4 '采用编码器位置作比较输出参考点,无编码器改成脉冲轴类型 UNITS=100 SPEED=100 ACCEL=500 MPOS=0 OP(0,OFF) TABLE(0, 100,150,250,300,400,450) 'OP0 在 MPOS100-150 间打开，150-250 间关闭，250-300 间打开，300-400 间关闭，400-450 间打开，450 后关闭 HW_PSWITCH(2) '停止并删除没有完成的比较点 HW_PSWITCH(1, 1, 0, 0, 5) '启动比较输出 TRIGGER MOVEABS(500) 比较输出图 MPOS(0)垂直刻度 200 OP(0)垂直刻度 2
相关指令 | PSWITCH，HW_PSWITCH2