讨论

ABB机器人置位复位那个指令到底咋用?搞晕了

日进斗金
日进斗金
2026/04/19 07:07

项目里有个小活,PLC给机器人一个启动信号,机器人跑完一个拾取放置循环后要回原位待机。现场是用一个DO做完成信号反馈给PLC的,我想在程序里用置位复位的方式控制这个DO,跑完置位、复位时再复位掉,但手头这台IRC5我翻手册翻半天也没整明白Set和Reset的具体格式,有没有哪个师傅能给个最简的代码片段?就是那种单个数字量输出置位复位的,注释清楚点我自己改就行。

另外顺带问下,这俩指令是只能在主程序里用还是也能塞进中断里?我看手册里好像有点啰嗦没看懂。

15 3

全部回复 (3)

梁秀峰
梁秀峰#1

提醒一下,如果那个完成信号是要给PLC做握手机制用的,光置位不复位很容易丢信号,建议你在循环结束的地方先Set一下,然后在程序最开始比如Routine入口的地方加一句Reset DO10; 做初始化,确保每次程序重启或者手动模式切自动的时候这个信号都是干净的。我之前调试的时候踩过坑,PLC那边一直收不到完成信号就是因为机器人这边一直置位着没复位,PLC逻辑写的是下降沿触发,结果就是一直没下降沿。

2026/04/19 15:51
wei99
wei99#2

你要是嫌Set Reset写起来不直观,用赋值也行,DO10 := 1; DO10 := 0; 效果一模一样,RAPID里数字输出本质上就是个布尔量。不过要是那个信号涉及到安全回路或者急停逻辑相关的部分,老老实实用Set Reset,别走赋值那条路,赋值在某些老版本控制器上行为不太一致,这个我吃过亏。

2026/04/19 20:21
haitao88
haitao88#3

你这个用法我咋感觉有点别扭,干嘛非要用置位复位?直接一个脉冲输出不就完了,机器人跑完动作之后Set一个标志位等PLC读完再Reset,或者干脆用PulseDO指令做一个固定时长的脉冲,PLC那边直接用上升沿触发逻辑,省得你还得手动管理那个DO的置复位状态。

2026/04/21 11:17