您好!欢迎光临工博士智能制造网!平台热线:021-80392549
工博士机器人网
kuka库卡机器人服务商
产品:43  浏览:41834
4
您当前的位置:首页 » 新闻中心 » KUKA机器人-库卡机器人编程之信号等待超时
产品分类
新闻中心
KUKA机器人-库卡机器人编程之信号等待超时
发布时间:2022-01-04        浏览次数:585        返回列表

有些玩ABB机器人的小伙伴们,当开始玩我们库卡机器人的时候,时常会说ABB有等待超时的指令,你们库卡为什么没有。其实上ABB只是将该指令封装好了,用户拿来直接使用,每家的语言有自己的特色,库卡开放性好,只要你自己理解了功能逻辑原理也可以自己来封装。废话不多说,直接简单粗暴上代码:


DEF WaitForIn(Num:IN,State:IN,MaxWaitTime:IN,TimeOut:OUT )

;***************************************************

;* Customer     :                                  *

;* Roboter      :                                  *

;* Version      : Vxxxxxx                          *

;* Roboter Nr.  : xxxxxx                           *

;* Controller Nr: xxxxxx                           *

;* Autor        : xxxxxxx                          *

;* Company      :                                  *

;* Department   :                                  *

;* Telephone    : 86 ***-****-****                 *

;* Version      : 1.0                              *

;* Created      : 12.12.2018                       *

;* Modified     :                                  *

;* Project      :                                  *

;* Program Name : WaitForIn                        *

;* WAIT AN INPUT SIGNAL WITH A Timer;              *

;**************************************************

DECL INT Num

DECL BOOL State

DECL REAL MaxWaitTime

DECL BOOL TimeOut

DECL INT Num_Abs

TimeOut=FALSE

ConTINUE

IF VARSTATE("Num")<>#INITIALIZED THEN

  MsgQuit("Input channel not initialized!")

  HALT

ELSE

  Num_Abs=ABS(Num)

ENDIF

ConTINUE

IF (Num_ABS== 0) OR (Num_Abs> ($SET_IO_SIZE*1024)) THEN

  MsgQuit("Input channel Out of range!")

  HALT

ENDIF

ConTINUE

IF VARSTATE("State")<>#INITIALIZED THEN

  MsgQuit("Input Status not initialized!")

  HALT

ENDIF

ConTINUE

IF VARSTATE("MaxWaitTime")<>#INITIALIZED THEN

  MaxWaitTime=0

ENDIF

ConTINUE

IF MaxWaitTime==0 THEN

   IF ((State==(Num>0))==TRUE) THEN

       WAIT FOR $IN[Num_Abs]

     ELSE

       WAIT FOR NOT $IN[Num_Abs]

   ENDIF

 ELSE

   IF ((State==(Num>0))==TRUE) THEN

       WAIT FOR $IN[Num_Abs] OR   Timer_Limit(MaxWaitTime)

     ELSE

       WAIT FOR NOT $IN[Num_Abs] OR Timer_Limit(MaxWaitTime)

   ENDIF

   IF $IN[Num_Abs]<>(State==(Num>0)) THEN    

     TimeOut=TRUE

   ENDIF

ENDIF    

END



咨询详情:KUKA库卡机器人


 

联系热线:18684910472(微信同号) 联系人:刘爱芝 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六 8:00-22:00 kuka库卡机器人服务商