三菱 DDRVI 指令详解(FX3U/FX3G/FX3UC,FNC158 32 位相对增量定位)
DDRVI:Incremental 相对(增量)定位以当前停止位置作为起点,移动指定脉冲数;不参考原点,只走相对距离。 DDRVI 是 32 位版本;DRVI 是 16 位。FX2N 不支持 DDRVI。
1、指令格式
DDRVI S1 S2 D1 D2
示例:
X0 ----| |---- DDRVI K50000 K5000 Y0 Y4
表格
| 操作数 | 名称 | 说明 | FX3U 范围 |
|---|---|---|---|
| S1 | 移动脉冲数 (32 位) | 相对位移;正数正转,负数反转 | ‑999999 ~ +999999(FX3U) |
| S2 | 输出脉冲频率 (速度) | 脉冲输出频率,决定运行速度 | 10 ~100000 Hz(10‑100K) |
| D1 | 脉冲输出端子 | 只能是 Y0 / Y1(本体高速脉冲口,晶体管 PLC!) | Y0 或者 Y1 |
| D2 | 方向输出端子 | 普通 Y 点,输出高低电平控制伺服方向;S1 正负会自动改变 D2 输出状态 | Y2‑Y7 均可,不要占用 Y0/Y1 |
重点:S1 正负自动控制方向 D2,程序不用自己写方向逻辑。K+50000 正转;K‑50000 反转。
2、相对定位 vs 绝对定位(DDRVA)
DDRVI(相对):现在在哪,就从这里再走 N 个脉冲;多次执行每次都是移动 N。
例:当前在 10000;DDRVI K+20000 →结束位置 = 30000;再执行一遍又 + 20000→50000。
DDRVA(绝对):直接走到坐标值;不管现在在哪,目标坐标固定。
例:当前 10000;DDRVA K20000 →走到 20000;再执行一遍不动。
3、执行标志位
M8029:指令执行完成标志脉冲发完后 M8029 ON 一个扫描周期;用于复位驱动触点。
定位指令一定要自锁触发,并且用 M8029 复位,不能直接长通驱动。
标准示范梯形逻辑写法:
LD X0
OR M0
ANI M8029
OUT M0
LD M0
DDRVI K40000 K8000 Y0 Y4
按下 X0 自锁 M0,DDRVI 运行;脉冲输出结束 M8029 接通复位 M0。
轴忙标志(判断轴正在运动)
Y0 轴:M8147 ON = Y0 正在发脉冲(运行中)
Y1 轴:M8148 ON = Y1 正在发脉冲
程序互锁用:M8147 为 ON 的时候禁止再次触发同一定位指令,防止报错。
加减速时间寄存器
D8148:Y0 轴加减速时间(ms);默认 100ms;可修改范围 50‑5000ms
D8149:Y1 轴加减速时间(ms)
❗DDRVI 自带 S 型 / 直线加减速;启动从基底速度加速到 S2 设定频率,结束自动减速停止。
4、硬件前提(必看!)
PLC 必须是晶体管输出型(T);继电器 (R) 本体不能高速发脉冲!
脉冲输出固定本体 Y0,Y1;不能用扩展模块 Y;FX3U 最多同时 2 轴脉冲输出。
伺服驱动器脉冲模式设置为【脉冲 + 方向】模式;不要设成 CW/CCW 双脉冲!D2 就是方向信号。
5、常见坑 & 错误提醒
坑 1:驱动触点 M0 一直长通 ON。
如果驱动触点持续接通,DDRVI 执行完之后会立刻重新再跑一遍!正确:执行完 M8029 复位驱动,执行一次就停止。
坑 2:正在运行时再次触发 DDRVI。
轴忙 M8147=ON 时重复触发同轴定位指令,指令不执行,报错;编程前先判断 M8147 是否 OFF。
坑 3:S2 频率低于 10Hz,参数超出范围,指令不动作。
坑 4:伺服驱动器模式选错;如果伺服设成双脉冲 CW/CCW,D2 方向口无效,正负不会换向。
坑 5:断电之后 PLC 内部没有记忆当前机械坐标;DDRVI 是相对运行,断电重启原点丢失,必须回零 ZRN。
相对定位系统上电建议先 ZRN 回原点,再跑 DDRVI/DDRVA。
6、DDRVI 和 DRVI 区别
DRVI:16 位,脉冲范围 ±32767;短行程;
DDRVI:32 位;最大 ±999999 脉冲,适合长行程丝杆。
补充:FX5U 的 DDRVI 语法不一样,是轴号写法,和 FX3U 不能直接照搬。


