这篇是实战篇,基础的看以下链接
https://blog.csdn.net/xm10282010/article/details/107554209
中断程序:
当满足声明中断时的条件后中断程序便会被启动,机器人将立即停止当前的工作,执行中断程序。
中断程序能写什么不能写什么呢?
中断程序:
-
不能使用联机表单
-
不允许修改$ADVANCE
-
允许使用BRAKE(stop2)、BRAKE F(stop1)
-
允许使用RESUME
-
允许处理信号
和中断相关的变量:
下面来个实际应用:
大家都知道机器人是顺序执行程序的,就是说一个信号如果条件满足后将不再检查其状态。因此有些需要一直检查的信号将无法执行
比如夹爪,抓到产品后有料信号满足后将不再检查,但是如果在过程中掉件机器人便不知道
因此我们可以利用中断来对其进行检查
以下为付费内容
DEF GROP( )
decl INTERRUPT 10 when $IN[130]==fasle do stop_robot( )
INTERRUPT OFF 10
; set outputs
do_OpenGrp=FALSE
do_CloseGrp=TRUE
; failcode input 129
WAIT FOR NOT $IN[129] and $IN[130] OR $TIMER_FLAG[1]
IF $TIMER_FLAG[1]==TRUE THEN
do_FailNo=1
ERROR(GROP)
ENDIF
INTERRUPT ON 10
END
再来一个实例:
有些时候机器人抓取的物料并不在确定的位置,那么这就需要机器人对位置进行探索,直到传感器有信号就认为探索到了产品,如果一定距离后没有信号表示没找到。
以下还是付费内容
DEF SEARCH ( )
INTERRUPT DECL 10 WHEN WithPart==TRUE DO SEARCH_STOP()
SEARCH_RUN(100)
INTERRUPT OFF 10
END
-------------------------------------------------------
DEF SEARCH_RUN (DIST)
INTERRUPT ON 10
ENDSEARCH=$POS_ACT
ENDSEARCH.Z=ENDSEARCH.Z-DIST
LIN ENDSEARCH
INTERRUPT OFF 10
ERROR(With OUT)
END
-------------------------------------------------------
GLOBAL DEF SEARCH_STOP()
INTERRUPT OFF 10
BRAKE F
START_POS=$POS_INT
RESUME
END
码字不容易,希望这文章对大家有用!!!
长按二维码关注我,机器人小农。。。大家可以用微信关注这个公众号