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

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

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

提前谢谢!
嗨,氮氧化物,

您应该正确地将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
这就是问题所在,我不擅长快速修改这个,以便让它工作,显然只是取消注释这些行并不能解决错误…
# 8
嗨,氮氧化物,

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

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


num:= 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客人(年代)