线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
ABB IRC5 - I/O问题
大家好,
我想知道在带IRC5紧凑型控制器的ABB机器人中使用数字输出的正确方法是什么。
我正在使用以太网连接(因此机器人中的驱动程序是RDK_DriverSocket.mod),关于连接和运动的一切都很好(这意味着我能够使用RoboDK毫无问题地移动机器人)。
现在我试图使用数字输出(我已经在机器人中配置了I/O系统),但是当我们使用python中的setDO函数甚至“设置或等待I/O指令”时,它似乎没有做任何事情……查看.mod文件,我意识到setDO函数实际上是注释的(从第273行开始):

代码:
121年情况:
COM_SendNum (121);
num1:= COM_ReadNum();
num2:= COM_ReadNum();
!DO_Signal:= num1;
!DIO_Value:= num2;
SetDO DO_Signal, DIO_Value;
TPWrite“实现设置数字输出”;
COM_SendNum (128);

好吧,我只是取消注释这3行,有一个错误消息(40223),所以显然这行被注释是因为一个问题??
有办法解决吗?

提前感谢!
# 2
嗨,氮氧化物,

您应该正确地将RoboDK提供的IO编号映射到相应的数字输入/输出和值变量(RAPID编程语言规定的dignaldi, signaldo和dionum类型)。

艾伯特
# 3
我已经设法连接和控制来自IRC5控制器的I/O,但问题是,当我尝试与RoboDK一起使用它们时,控制器不做任何事情,主要是因为您提供的驱动程序文件在那段代码中没有做任何事情,就像我说的,代码被注释,如果我取消注释这些行,控制器提示错误。
# 4
嗨,氮氧化物,
这周我可以试着看一下,但如果你赶时间,你可以自己纠正这种情况。
只需修改ABB IRC5后置处理器,就可以为您提供适当的I/O代码行。
I/O行被直接注释的事实来自于后处理器的行为。
如果找到了生成这些行的位置,还可以修改它们,使它们适合控制器I/O映射。

祝你今天愉快。
杰里米
# 5
我已经看到了后处理器,我认为它没有问题,我所展示的文件是机器人控制器内部的文件(RDK_DriverSocket.mod),这是显然不起作用的文件…
# 6
你说得对,是我的错。

但是,您可以修改驱动程序中的这些代码行,使它们与ABB/RAPID期望激活I/O的方式相匹配。
# 7
这就是问题所在,我在RAPID中不太擅长修改这个以使其工作,显然只是取消注释这些行并不能解决错误……
# 8
嗨,氮氧化物,

我看了一下情况我想我找到了激活你的数字输出的方法。

SetDo的代码看起来应该有点像这样。
代码:
Var di_value;


num1:= COM_ReadNum();
num2:= COM_ReadNum();


如果num2 = 0或num2 = 1,则
DIO_Value:= num2;
ENDIF

%"SetDO DO_Signal_" + NumToStr(num1) + ", DIO_Value;"%

还有WaitDI。
代码:
%"WaitDI DI_Signal_" + NumToStr(num1) + ", DIO_Value;"%

还有一些整合工作要做。
在控制器参数中,需要正确地映射I/ o。
您还需要为您的I/O指定与代码中的“DO_Signal_X”和“DI_Signal_X”匹配的名称。
(参见RAPID手册中的数据类型“signalxx”:https://library.e.abb.com/public/688894b...evJ_en.pdf

请注意,我没有测试该代码,可能需要进行一些修改。

祝你过得愉快。
杰里米
# 9
谢谢你杰里米!
今天晚些时候我将看一下这段代码,并对结果进行注释!
我试了你发过来的代码,还是不行
(图片:LAfrWf9.png)
由于VAR的错误,我不得不对第278行进行注释。
然后,由于语法错误,我还更改了%" "%。
“custom_DO_”上的红色线表示该函数期望“num”…




浏览此主题的用户:
1客人(年代)