1.有如下双工位生产
2.工艺过程如下:
人工完成1#工位上料后按按钮di_1(按钮不带保持,即人手松开信号为0))机器人焊接1#工位。
此过程中人工对2#工位上下料,完成后按di_2完成预约(即不需要等机器人完成1#工作)。
机器人完成1#工作后,由于收到过di_2预约信号,机器人自动去完成2#工位
3.我们通过中断来实现。
4.中断的意义为:
机器人后台在不断扫描(类似PLC),和机器人前台运动不冲突。后台实时扫描到信号就会去执行设定的中断程序,中断程序里没有运动指令,前台机器人不停,不影响运动
5.新建一个例行程序,取名tr_1,注意:类型选中断(trap)
6.进入中断程序,插入指令如下,即当机器人执行中断程序时,给bool量置true
7.进入主程序,设置中断及对应的io信号

37行的意思是,任何时候di_1信号0变1,就会触发执行tr_1中断程序,即置flag1为true
35-40行程序只要运行过一遍即可,类似于设置开关,不需要反复运行
8.主要程序如下。即如果没有人给di信号,机器人就在home位等待。
代码如下:
PROC main()
IDelete intn01;
CONNECT intn01 With tr_1;
ISignalDI di_1,1,intn01;
IDelete intn02;
CONNECT intn02 With tr_2;
ISignalDI di_2,1,intn02;
flag1:=FALSE;
flag2:=FALSE;
WHILE TRUE DO
MoveJ pHome,v1000,fine,tool0\wobj:=wobj0;
IF flag1 = TRUE THEN
flag1:=FALSE;
path_1;
MoveJ pHome,v1000,fine,tool0\wobj:=wobj0;
ENDIF
IF flag2 = TRUE THEN
flag2:=FALSE;
path_2;
MoveJ pHome,v1000,fine,tool0\wobj:=wobj0;
ENDIF
ENDWHILE
ENDPROC
声明:
本文采用
BY-NC-SA
协议进行授权,如无注明均为原创,转载请注明转自
我的知识库
本文地址: ABB机器人||双工位预约程序
本文地址: ABB机器人||双工位预约程序




