电话/手机:联系客服
用台达 B3 伺服做追剪/飞剪设备,遇到了软件坑。
因为材料规格经常变,需要用 PLC 动态修改伺服内部的电子齿轮比(N/M)。我把电子齿轮比切换引脚(如 GNUM0/GNUM1)接到了 PLC 输出。
伺服在静止(Servo ON,无脉冲输入)状态下,切换电子齿轮比,一切正常。
核心故障:当电机正在以 500rpm 低速旋转时,PLC 给出切换信号,伺服内部齿轮比一变,伺服驱动器瞬间闪红灯跳闸,报错 AL009(位置偏差过大)。
此时 PLC 的脉冲依然是连续平滑输出的,没有突变。
为什么在运行中动态切换齿轮比,会导致位置环内部的指令位置计数器(Command Counter)瞬间和实际位置脱节
优质评论内容
亲,这个不是 PLC 脉冲“不平滑”,而是你在运行中改电子齿轮比,相当于在伺服内部把“同一串脉冲的物理意义”突然改了。
先下结论:
电子齿轮比不适合在电机旋转、脉冲连续输入时硬切换。它不是无缝变速箱,而是脉冲到内部位置指令的比例尺。运行中一切换,伺服内部的位置命令速度、命令加速度,甚至命令计数基准都会突变,所以很容易直接 AL009 位置偏差过大。
台达 B3 手册说明,ASDA-B3 的电子齿轮是按 24-bit 分辨率换算的,1 圈对应 16,777,216 个内部计数;电子齿轮比用于把外部控制器脉冲换算成伺服内部位置命令,相关参数包括 P1.044 电子齿轮分子和 P1.045 分母。手册也提醒,较大的电子齿轮比会让运动曲线出现尖角、产生高 jerk,需要用 S 曲线命令滤波或低通滤波来缓和。
一、为什么静止切换没事,运行中切换就炸?
静止时:
Servo ON
无脉冲输入
命令位置不再增加
实际位置也不动
↓
电子齿轮比切换
↓
没有连续运动指令被重新解释
↓
所以看起来正常
运行中就完全不同了。
伺服内部大概是这样算的:
PLC 脉冲输入
↓
乘以电子齿轮比 N/M
↓
变成伺服内部位置命令
↓
位置环追这个命令
也就是:
位置命令增量 = 外部脉冲数 × N / M
当电机正在 500 rpm 跑时,PLC 脉冲虽然连续、平滑,但你突然把 N/M 改掉,伺服看到的不是“平滑脉冲”,而是:
同样的脉冲频率
↓
突然变成另一个命令速度
举个直观例子:
切换前:
1 个 PLC 脉冲 = 1 个内部单位
切换后:
1 个 PLC 脉冲 = 2 个内部单位
PLC 没有加速,脉冲频率没变,但伺服内部等效命令速度已经瞬间翻倍。
这对位置环来说就是:
命令速度阶跃
命令加速度近似无穷大
位置偏差瞬间拉开
↓
AL009
二、AL009 本质就是“命令位置和实际位置差太大”
台达 B3 的 AL009 对应的是 Excessive deviation of Position command,触发条件就是命令位置与反馈/响应之间的偏差超过允许范围,例如由 P2.035 设定的允许偏差。
所以这个报警很合理:
电子齿轮比切换
↓
内部位置命令突然改变斜率
↓
电机实际位置受惯量限制,不能瞬间跟上
↓
Command Counter 和反馈位置差值迅速变大
↓
超过位置偏差阈值
↓
AL009
不是驱动器软件崩了,是位置环在保护自己。
三、还有一个更隐蔽的坑:不是只影响“未来脉冲”
很多人以为:
电子齿轮切换后
只会改变后面新来的脉冲
不会影响已经累计的命令
但伺服内部不一定按你想象的“新旧完全分段”处理。
它可能同时存在几类量:
外部脉冲累计计数
电子齿轮换算后的内部命令计数
位置命令滤波器缓存
位置偏差计数器
插补/平滑队列
运行中一切换,可能出现:
前一部分命令按旧比例
后一部分命令按新比例
滤波器里还有旧比例的命令
当前脉冲边沿又按新比例进入
于是内部 Command Counter 不是平滑延续,而是被重新解释或突然改变增量。
在静止无脉冲时,这些动态缓存基本没有变化,所以你看不出问题;一旦旋转中切换,问题马上暴露。
四、GNUM0/GNUM1 也不是“无缝换挡信号”
GNUM0/GNUM1 这种电子齿轮选择 DI,本质是让驱动器选择不同的电子齿轮组。旧 ASDA-B 系列手册对 GNUM0 的说明里就明确写到,电子齿轮分子可由外部 DI 信号选择,并且电子齿轮设置错误会导致电机运行混乱;电子齿轮比范围也有限制。
它的设计用途更接近:
换规格
换分辨率
换机械单位
换批次产品
而不是:
电机正在跑
追剪正在同步
每隔一段时间在线换比例
如果 GNUM 在脉冲输入过程中切换,还会有时序问题:
某些脉冲按旧齿轮比计算
某些脉冲按新齿轮比计算
切换边沿附近被驱动器采样到不确定状态
位置命令出现一步跳变
所以这不是普通 DI 的问题,而是“比例尺切换”和“脉冲流”没有同步。
五、追剪/飞剪更不应该靠运行中切电子齿轮比
追剪、飞剪的核心是:
主轴材料位置
↓
从轴伺服按同步关系跟随
↓
在切割窗口内完成速度同步和相位同步
如果材料规格经常变,正确做法不是让伺服在运动中换电子齿轮,而是:
PLC 或运动控制器根据规格计算目标脉冲频率/脉冲数
伺服电子齿轮保持固定
也就是说:
规格变化
↓
PLC 改运动曲线
而不是
驱动器运行中改电子齿轮
电子齿轮最好作为“固定单位换算层”,不要作为“在线工艺变量”。
六、现场最快验证
你可以这样验证,基本一试就明白:
1. 记录切换瞬间的偏差计数
用 ASDA-Soft 或监控参数抓:
外部脉冲频率
命令位置
实际位置
位置偏差
实际速度
转矩电流
GNUM0/GNUM1 状态
AL009 发生时刻
如果切换瞬间位置偏差从很小突然跳大,就是电子齿轮切换造成命令阶跃。
2. 先停脉冲再切换
临时改 PLC 逻辑:
停止脉冲输出
等待电机到位 / 速度为 0
等待 INP 稳定
切换 GNUM0/GNUM1
等待 20~100ms
再恢复脉冲
如果这样不报 AL009,说明硬件没问题,根因就是运行中切换电子齿轮。
3. 切换前后保持等效速度不变
如果必须做在线切换,至少要让 PLC 同步改变脉冲频率:
旧齿轮比 K1
新齿轮比 K2
为了内部命令速度不突变:
新脉冲频率 = 旧脉冲频率 × K1 / K2
但这只是减少速度阶跃,仍然不能完全解决内部缓存、采样边沿和偏差计数问题。
七、建议整改方案
我会按安全程度排序:
第一方案:
电子齿轮比固定不变。
材料规格、追剪长度、同步比例全部在 PLC / 运动控制器里算。
伺服只接收连续、平滑的脉冲。
第二方案:
只允许在停止、到位、无脉冲输入时切换 GNUM。
切换后清楚确认当前命令位置、实际位置、偏差状态。
第三方案:
用总线运动控制、电子凸轮、同步轴功能。
让控制器做 cam / gear-in / gear-out,而不是靠伺服 DI 硬切电子齿轮。
第四方案:
如果必须运行中切换,则:
先进入低速窗口
停止脉冲或冻结脉冲
等待位置偏差接近 0
切换 GNUM
等待驱动器采样稳定
按新比例重新规划脉冲频率
再继续运行
不要这样做:
电机正在 500rpm 跑
PLC 脉冲连续输出
GNUM0/GNUM1 硬切
指望驱动器内部无缝接管
这基本就是在给位置环制造阶跃命令。
八、如果非要保留动态切换,要加保护
至少加这些条件:
1. 只在速度低于某阈值时允许切换
2. 只在位置偏差小于某阈值时允许切换
3. 切换前禁止脉冲输入
4. 切换后延时确认 GNUM 状态
5. 切换后重新建立命令基准
6. 必要时扩大 AL009 偏差阈值,但不能靠无限放大阈值掩盖问题
7. 加 S 曲线命令滤波或低通滤波
台达 B3 手册对电子齿轮比造成尖角和高 jerk 的提醒,正好说明这个问题:齿轮比变化会改变命令曲线形状,滤波只能缓和,不能把硬切变成真正无缝。
最可能的真实原因
第一:
运行中切换电子齿轮比,使内部位置命令增量突然变化,Command Counter 斜率突变。
第二:
驱动器内部滤波/命令缓存里残留旧齿轮比数据,新齿轮比一切入,位置命令不连续。
第三:
GNUM0/GNUM1 切换边沿与外部脉冲输入不同步,部分脉冲按旧比例、部分按新比例计算。
第四:
500rpm 下实际不是“低速”,位置环和机械惯量已经无法承受瞬时比例跳变。
第五:
AL009 是位置偏差保护,不是软件 Bug。
一句话:
电子齿轮比是脉冲到内部位置命令的比例尺,不是可以运行中随便切的无级变速器。PLC 脉冲再平滑,N/M 一变,伺服内部命令位置的斜率就会突变,实际位置跟不上,Command Counter 和反馈位置马上脱节,所以 AL009。追剪/飞剪要把电子齿轮固定,把规格变化放到 PLC/运动控制器里算,或者只允许在停止无脉冲时切换 GNUM。