讨论

PLC故障复位程序到底咋写才靠谱?

谢辉
谢辉
2026/05/16 21:42

刚入行做机器人应用,接手一台旧设备改造,原来的PLC程序里故障复位就是一通复位所有输出然后回到初始步,跑起来问题挺多——有时候故障还没真清掉就继续跑了,有时候复位动作把正在动的轴给打断了。

想问下各位,标准的故障复位流程一般是啥样的?要不要先停轴再清故障?故障确认是看反馈信号还是定时器?有没有通用的模板或者思路可以参考下?

21 4

全部回复 (4)

宋志勇
宋志勇#1

我这边搞欧姆龙CP1H的,故障复位一般分三步:第一步把所有运动轴发停止指令,确认轴真的停了(看轴停止标志位FB或者伺服ready信号),没停就一直在停机态;第二步清故障标志M区,先把故障源复位掉,再清故障锁存位,顺序不能反;第三步才能复位输出回到初始步。千万别一上来就清M区,那叫瞎搞。

还有一个关键的:故障源没消除的话,复位程序要做一个再检测——复位完等100-200ms再读一次故障输入,如果故障还在就不要再往下走,直接跳回故障显示,不然就是你说的那种故障没清掉还继续跑的情况。模板我手上有一个三菱FX5U的,你要的话明天发你看看。

2026/05/17 08:20
a740869
a740869#2

你这描述我越看越觉得原来那程序就是用SFC写的吧?很多老工程师偷懒直接在SFC里加一步复位步,所有输出用ZRST一下就完事了,这写法小设备没事,碰到有伺服的或者有机械手联动的基本都会出问题。

2026/05/17 15:24
彬姐
彬姐#3

得看你什么PLC。三菱和西门子写法完全不一样,西门子用FB块封装的话故障复位就是一个带优先级的东西,欧姆龙又不一样。你先说型号我才能跟你说咋写。

2026/05/18 09:08
小胡
小胡#4

我们厂里搞西门子1500的,故障复位这块直接做成FB了,接口就3个——故障复位触发、故障源确认、复位完成输出。FB里面自己去停伺服、清Fault、回到Home位,主程序就一行调用。我个人觉得别在主程序里写一堆复位逻辑,做成FB以后所有机型都能复用,也好维护。

2026/05/20 17:17