技术干货

ABB RAPID里那个上升沿沿触发指令到底咋用?

小鹏
小鹏
2026/05/02 13:05

项目里有个码垛工位,用ABB IRB1200,IO板用的是标准DI/DO信号。想让一个气缸动作只在输入信号X上升沿那一下触发一次,平常一直保持OFF,等下一次上升沿再动作。我看手册里有个SetGO指令好像跟边沿有关,但是没太搞明白具体是边沿触发还是电平触发。直接在程序里用IF DI_10=1 THEN SetGO doCylinder,1;这种写法能实现沿触发吗?还是必须得用专门的边沿检测指令?手册翻了几遍感觉写得不太明白,有没有实际项目里用过的兄弟给个示例代码片段?

35 4

全部回复 (4)

小徐
小徐#1

IF DI_10=1 THEN SetGO doCylinder,1;这样写不行,这就是个纯电平触发,DI一直是高电平的话气缸就一直带电。ABB边沿检测要用EdgeRising这个函数,你定义个数字量变量比如bool bEdgeTrig,然后用IF EdgeRising(bEdgeTrig, DI_10) THEN SetGO doCylinder,1;就行。记得bEdgeTrig这个变量要声明成PERS bool类型,存到config里,不然重启就丢了。气缸动作完之后建议加个SetGO doCylinder,0;复位一下,不然下一个上升沿来之前它会一直吸着。

2026/05/03 11:59
laotao
laotao#2

说个不一样的,我们厂1200上码垛用的不是EdgeRising,是直接在TriggIO里配的边沿触发,把那个DI信号挂在trigg上去,跟move指令绑在一起,机器人到位才响应,逻辑比程序里写边沿干净。看你这工位如果是边走边等信号这种,TriggIO更合适,纯程序里检测边沿遇到高速信号容易漏。

2026/05/04 09:57
810126
810126#3

你那个SetGO是干嘛的?ABB标准库里没这个吧,第三方模块自己封的?

2026/05/13 03:43
知足常乐
知足常乐#4

码垛工位用沿触发干啥,气缸直接用置位复位不行吗,信号来了置位,限位到了复位,省得折腾边沿检测那些函数。我们这边1200码垛3年多了都这么干的,没出过问题。边沿那套东西实在没必要上,简单点稳一点。

2026/05/19 01:02