首页 上一页 1 2 下一页 尾页

求助:库卡机器人被PLC控制随时制动停止的解决方案 点击:13653 | 回复:40



hj78032992

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:332
  • 历史总积分:1573
  • 注册:2012年6月09日
发表于:2016-03-30 10:54:44
楼主
求助帖30分-未结帖

请教各位哦:


比如机器人沿X轴正向一直运动,直到PLC通过网络通讯给KRC4一个开关量信号,机器人就立即停止动作,或跳转向其他程序。在编程过程中,该如何实现这个功能呢。


困惑:编程手册中的,无论是中断,条件停止还是其他手段都是执行完一个语句、动作(SPTP、SLIN。。。)之后再检测是否有停止信号,而我想实现的是停止信号有上升沿就立即停止或跳转到其它动作。


希望大家能够帮忙给与解答啊。谢谢!




hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-03-30 11:00:15
1楼

悬赏30分哦。。。

177511197

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 10回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2015年12月28日
发表于:2016-03-30 15:32:22
2楼

中断看看是否可以!在整个程序中加一个中断,跳入其他程序都可以。。。

hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-03-30 16:11:29
3楼

 

回复内容:

对: 177511197 中断看看是否可以!在整个程序中加一个中断,跳入其他程序... 内容的回复!

中断我试过了,不行。

 比如说正在执行 语句PTP_REL {X 120}   ,那么它至少要把这条语句执行完才会去扫描IN[xx]的状态,这样的话是不行的。根本不可能在去120的过程中停下来。。。

bingliang68

  • 精华:0帖
  • 求助:2帖
  • 帖子:3帖 | 15回
  • 年度积分:2
  • 历史总积分:92
  • 注册:2009年6月07日
发表于:2016-04-06 09:07:23
4楼

在KRC/R1/system文件夹下有个SPS.SUB,此程序在后台是一直循环扫描的,里边可以由用户自己编程,类似于PLC的程序执行(只要检测到条件满足就执行命令),但要注意里面不可以写机器人的运动语句(PTP、LIN等)

  可以给分吗

hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-04-06 09:11:57
5楼

回复内容:

对: bingliang68 在KRC/R1/system文件夹下有个SPS.SUB... 内容的回复!

 能再具体说下细节该怎么做吗,不胜感激!

zhousuncheng

  • 精华:0帖
  • 求助:3帖
  • 帖子:10帖 | 105回
  • 年度积分:0
  • 历史总积分:137
  • 注册:2010年4月01日
发表于:2016-04-06 09:44:53
6楼

在机器人程序中,使用这个A信号。每一步都检测这个A信号,只要有就继续,没有就停止或者跳转。  在X标准中,这个A信号通常是安全信号(机械安全或者电气安全)。只有这个方法。

贝赛尔☞马均成

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 15回
  • 年度积分:160
  • 历史总积分:181
  • 注册:2016年3月04日
发表于:2016-04-06 10:18:48
7楼

在作业中,X轴运动时编码器反馈信号,在程序中设置比较指令。得出真值并在程序中添加运动开点。开点为真关闭。具体应用程序设计会因工艺的需要有所不同。

hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-04-06 10:42:14
8楼

回复内容:

对: zhousuncheng 在机器人程序中,使用这个A信号。每一步都检测这个A信号... 内容的回复!

 我们现在的解决方案就是以这个信号为条件,循环PTP_REL{X 5}。但是这种方法动起来显得很傻。

hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-04-06 10:45:06
9楼

回复内容:

对: 贝赛尔☞马均成 在作业中,X轴运动时编码器反馈信号,在程序中设置比较指... 内容的回复!

 如果是将编码器值进行比较,那么这点就是已知的,或者是计算出来的。但目前我们的停止点是未知的,或者说是不可计算的。

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:10帖 | 269回
  • 年度积分:0
  • 历史总积分:773
  • 注册:2002年12月05日
发表于:2016-04-06 11:20:31
10楼

库卡机器没用过,如果是广数的机器人可以采用外接暂停信号先让机器人停止下来,然后用预约工位的方式切换程序。供你参考一下吧

zhousuncheng

  • 精华:0帖
  • 求助:3帖
  • 帖子:10帖 | 105回
  • 年度积分:0
  • 历史总积分:137
  • 注册:2010年4月01日
发表于:2016-04-06 19:35:09
11楼


回复内容:现在kuka机器人编程德国也是这样做的。暂时没有其他更好的思路。机器人工位的节拍快,采用这样的思路是从安全角度考虑的,是由工艺决定的。

对: hj78032992 回复内容:对: zhousuncheng  在机器人程... 内容的回复!


hj78032992

  • 精华:0帖
  • 求助:2帖
  • 帖子:7帖 | 48回
  • 年度积分:333
  • 历史总积分:1574
  • 注册:2012年6月09日
发表于:2016-04-07 16:39:24
12楼

回复内容:

对: zhousuncheng 回复内容:现在kuka机器人编程德国也是这样做的。暂时... 内容的回复!

 thankyou!

哎呦,不错儿♪*^_^*♪……

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 122回
  • 年度积分:203
  • 历史总积分:2492
  • 注册:2016年3月14日
发表于:2016-04-07 16:59:59
13楼


引用 机器熊 的回复内容: 库卡机器没用过,如果是广数的机器人可以采用外接暂停信号...


明天的明天

  • 精华:0帖
  • 求助:0帖
  • 帖子:11帖 | 131回
  • 年度积分:8
  • 历史总积分:133
  • 注册:2006年2月25日
发表于:2016-04-07 17:08:47
14楼


引用 bingliang68 的回复内容: 在KRC/R1/system文件夹下有个SPS.SUB...


可可君是酱子

  • 精华:0帖
  • 求助:6帖
  • 帖子:13帖 | 137回
  • 年度积分:140
  • 历史总积分:888
  • 注册:2016年3月10日
发表于:2016-04-08 16:11:24
15楼

直接下一个断电的指令,或者全局停止,然后给个重启的指令

cqmaria

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:32
  • 注册:2012年2月17日
发表于:2016-10-14 22:53:40
16楼

回复内容:

对:hj78032992  回复内容:对: 177511197 中断看看是否可以!在整个程序中加一个中断,跳入其他程序... 内容的回复!中断我试过了,不行。 比如说正在执行 语句PTP_REL {X 120}   ,那么它至少要把这条语句执行完才会去扫描IN[xx]的状态,这样的话是不行的。根本不可能在去120的过程中停下来。。。     内容的回复:

用LIN_rel延着X方向移动,收到信号中断打开,中断程序打开后先关断,breakF,resume,waitsec0.1程序退出后要记录当前机器人位置,有一个读机器人位置的指令,然后让机器人移动到当前位置,然后等待或调用子程序就行了。

晨露未晞

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 51回
  • 年度积分:0
  • 历史总积分:58
  • 注册:2013年5月12日
发表于:2016-10-17 11:59:34
17楼

中断指令可以实现,我们用过自动抓件功能,可以实现随时停止。

域外来风

  • 精华:0帖
  • 求助:3帖
  • 帖子:12帖 | 1405回
  • 年度积分:638
  • 历史总积分:2502
  • 注册:2016年11月22日
发表于:2016-11-23 20:25:32
18楼

这是我写的一个库卡吸钢板的中断程序,一摞钢板越吸越少,通过中断功能,让机器人在感应到钢板就停下来,并记录当前坐标,并从当前坐标继续往后运行。给你参考。


&ACCESS RVP
&REL 93
&PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
&PARAM EDITMASK = *
DEF qc( )
;FOLD INI
  ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
  ;ENDFOLD (BASISTECH INI)
;FOLD SPOTTECH INI
USERSPOT(#INIT)
;ENDFOLD (SPOTTECH INI)
;FOLD GRIPPERTECH INI
USER_GRP(0,DUMMY,DUMMY,GDEFAULT)
;ENDFOLD (GRIPPERTECH INI)
  ;FOLD USER INI
    ;Make your modifications here

  ;ENDFOLD (USER INI)
;ENDFOLD (INI)
LOOP
;FOLD OUT 1 ''  State= FALSE CONT;%{PE}%R 5.2.28,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:1, 3:, 5:FALSE, 6:CONTINUE
CONTINUE
$OUT[1]=FALSE
;ENDFOLD
;FOLD PTP P25  Vel= 20 % PDAT22 Tool[1]:Gun Base[1]:TT;%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P25, 3:, 5:20, 7:PDAT22
$BWDSTART = FALSE
PDAT_ACT=PPDAT22
FDAT_ACT=FP25
BAS(#PTP_PARAMS,20)
PTP XP25
;ENDFOLD
INTERRUPT DECL 20 WHEN $IN[4] AND $IN[6] DO Pk()
B()

;FOLD PTP P23  Vel= 5 % PDAT20 Tool[1]:Gun Base[0];%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P23, 3:, 5:5, 7:PDAT20
$BWDSTART = FALSE
PDAT_ACT=PPDAT20
FDAT_ACT=FP23
BAS(#PTP_PARAMS,5)
PTP XP23
;ENDFOLD
;FOLD PTP P24  Vel= 5 % PDAT21 Tool[1]:Gun Base[0];%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P24, 3:, 5:5, 7:PDAT21
$BWDSTART = FALSE
PDAT_ACT=PPDAT21
FDAT_ACT=FP24
BAS(#PTP_PARAMS,5)
PTP XP24
;ENDFOLD

;FOLD WAIT Time= 0 sec;%{PE}%R 5.2.28,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 2:0
WAIT SEC 0
;ENDFOLD
;FOLD OUT 1 ''  State= FALSE CONT;%{PE}%R 5.2.28,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:1, 3:, 5:FALSE, 6:CONTINUE
CONTINUE
$OUT[1]=FALSE
;ENDFOLD

;FOLD OUT 6 ''  State= FALSE CONT;%{PE}%R 5.2.28,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:6, 3:, 5:FALSE, 6:CONTINUE
CONTINUE
$OUT[6]=FALSE
;ENDFOLD

;FOLD WAIT Time= 1 sec;%{PE}%R 5.2.28,%MKUKATPBASIS,%CWAIT,%VWAIT,%P 2:1
WAIT SEC 1
;ENDFOLD
;FOLD PTP P23  Vel= 30 % PDAT23 Tool[1]:Gun Base[0];%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P23, 3:, 5:30, 7:PDAT23
$BWDSTART = FALSE
PDAT_ACT=PPDAT23
FDAT_ACT=FP23
BAS(#PTP_PARAMS,30)
PTP XP23
;ENDFOLD
ENDLOOP
END
DEF B()
;FOLD PTP P8  Vel= 30 % PDAT6 Tool[1]:Gun Base[1]:TT;%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VPTP,%P 1:PTP, 2:P8, 3:, 5:30, 7:PDAT6
$BWDSTART = FALSE
PDAT_ACT=PPDAT6
FDAT_ACT=FP8
BAS(#PTP_PARAMS,30)
PTP XP8
;ENDFOLD
INTERRUPT ON 20

;FOLD LIN P9  Vel= .1 m/s CPDAT6 Tool[1]:Gun Base[1]:TT;%{PE}%R 5.2.28,%MKUKATPBASIS,%CMOVE,%VLIN,%P 1:LIN, 2:P9, 3:, 5:.1, 7:CPDAT6
$BWDSTART = FALSE
LDAT_ACT=LCPDAT6
FDAT_ACT=FP9
BAS(#CP_PARAMS,.1)
LIN XP9
;ENDFOLD
WAIT SEC 0
INTERRUPT OFF 20
END
DEF pk()
BRAKE
PTP $POS_INT

;FOLD OUT 1 ''  State= TRUE CONT;%{PE}%R 5.2.28,%MKUKATPBASIS,%COUT,%VOUTX,%P 2:1, 3:, 5:TRUE, 6:CONTINUE
CONTINUE
$OUT[1]=TRUE
;ENDFOLD
WAIT SEC 0.5
RESUME

END

spmanhxd

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 11回
  • 年度积分:0
  • 历史总积分:69
  • 注册:2013年2月26日
发表于:2016-11-30 16:42:31
19楼

中断是可以做的,楼主说中断不行,我估计是开启中断的方法用错了,只要把中断申明和打开放在整个程序的开头部分,那么整个程序运行期间都可以随时中断;还有中断程序中如果没有brake语句的话,即使执行了中断程序,机器人的当前运行轨迹也不会停下来的。

zclys

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:51
  • 注册:2017年2月18日
发表于:2017-02-18 19:00:47
20楼


回复内容:

对: spmanhxd 中断是可以做的,楼主说中断不行,我估计是开启中断的方法... 内容的回复!



你好 

   我的interrupt经常失灵 重新启动程序后就可以,希望给些帮助 

                                         谢谢


相关主题

官方公众号

智造工程师
首页 上一页 1 2 下一页 尾页