参数里明明设了软限位,还是撞了;或者反过来,一开机就报越界,机器动不了。两种现象都指向同一件事:软限位被当成了保险。
三层各管一段
| 层 | 防什么 | 典型失效方式 |
|---|---|---|
| 机械挡块 | 吸收动能,物理上挡住,别飞出导轨 | 撞上时已经晚了;挡块本身会被撞变形 |
| 限位开关 | 越界前让控制器停止或急停 | 开关坏、线断、被铁屑卡住、装反 |
| 软限位 | 在到达之前拒绝继续走 | 参数丢、没回零、坐标系错、余量设成 0 |
三层的顺序是:软限位最早发现,开关兜底,挡块兜最后的底。任何一层被当成唯一防线,都会在某个现场失效。
软限位的前提是位置可信
软限位比较的是「当前位置」和「允许范围」。没回零(回零为什么分两段速度)、掉电丢了位置、换过电机或丝杠、改过电子齿轮比,当前位置就不可信 —— 这时候软限位等于没设,而且它不会报错,只是默默地允许你走过去。
我们的实现方式
- 上下限不单独设,由行程两端各留一个余量算出来:软限位 = [负端 + 余量, 正端 − 余量]。
- 余量默认 30 个脉冲,按常见的 100 脉冲/mm 当量约 0.3 mm;上位机可改,改完持久化到配置。
- 只在「运动中且朝越界方向」时拦截。静止停靠在限位上不报错 —— 调机时把轴停在限位上是常事,这时候报警只会让人去关保护。
- 报警按方向区分:正限位、负限位各有各的码。现场看到码就知道撞的是哪一头,不用翻手册。
做法
- 调机结束把行程写进参数,再从两端各留一个余量。
- 余量必须大于「最高速减速到 0 的距离」,否则拦截时已经冲出去了。
- 手动点动到边界外 1 mm,应该被拒绝并报对应方向的码;不报就是没生效。
- 断电重启再回零,确认参数还在。参数不持久化,是软限位最常见的坑。
边界
软限位是提示与保护,不是安全功能。涉及人身安全的轴,要独立的安全回路或驱动器 STO,不能指望软件拦。机构改过(换丝杠、换减速比、加长行程)之后,行程与余量必须重设,否则软限位会拦在错误的位置上。
挡块管来不及,开关管马上停,软限位管别忘了。三层都得有。