PCO 指令(位置比较输出)
PCO 在轴经过指定位置时由硬件直接输出脉冲,与上位机无关,时间精度由 FPGA 保证。9 个指令覆盖:单位、触发间隔、脉冲波形、窗口门控、臂控、计数。点击指令名查看独立介绍页。
配置流程
PcoUnit(0) -- 单位:0=用户单位(EU)
PcoConfig(X, 10) -- 每 10 EU 触发一次
PcoPulse(X, 100) -- 脉宽 100 µs
PcoWindow(X, 200, 800) -- 只在 200~800 counts 区间内输出
PcoArm(X) -- 打开(Arm)
-- …运动…
PcoDisarm(X) -- 关闭
Print("fired: " .. PcoCount(X))
指令一览
| 指令 | 签名 | 说明 |
|---|---|---|
PcoUnit |
PcoUnit(u) |
距离单位:0=EU,1=EU/1000,2=counts。全局生效,重启后复位 |
PcoConfig |
PcoConfig(轴, 间隔 [, 方向]) |
标量触发间隔。方向:0=双向(默认),1=正向,2=负向 |
PcoConfigV |
PcoConfigV(轴A, 轴B, 节距) |
矢量模式:按两轴轨迹长度触发。两轴须在同一驱动器且 CountsPerUnit 相同;方向仅支持 0 |
PcoPulse |
PcoPulse(轴, 脉宽µs [, 周期µs [, 次数]]) |
波形:脉宽 ≥ 0.02 µs;周期 ≥ 脉宽;次数 1~255 |
PcoWindow |
PcoWindow(轴, 下限, 上限) |
窗口门控(counts),须先 PcoConfig |
PcoWindowOff |
PcoWindowOff(轴) |
关闭窗口 |
PcoArm |
PcoArm(轴) |
打开 PCO(内部先 Disarm 再 Arm 产生锁存沿);轴状态字 PcoArmed 位置位 |
PcoDisarm |
PcoDisarm(轴) |
关闭 PCO |
PcoCount |
次数 = PcoCount(轴) |
读已触发次数(即时 SDO 读,不入队列);无总线/无驱动时返回 nil |
注意事项
- PCO 指令随运动流按序执行(配置先于其后的运动生效),配置写入超时 2 s,超时脚本报 ProgramTimeout。
- 计数
PcoCount是即时读取,可在运动中随时调用。 - 完整的打标/栅格扫描示例见 例程。