KUKA 通信子程序 p00.src 注释

本文档详细注释了KUKA机器人通信子程序p00.src,涵盖了初始化、通信程序、错误检查等多个功能。通过CASE语句处理不同命令,如初始化外部接口(INIT_EXT)、执行通信程序(EXT_PGNO)和处理错误(EXT_ERR)。程序中包含了对PGNO_LENGTH、PGNO_FBIT、PGNO_REQ等参数的验证和操作。
摘要由CSDN通过智能技术生成

DEF  P00 (COMMAND :IN,PGNO_FUNCT :IN,P_ID[] :OUT,E_NO :IN )
  DECL P00_COMMAND COMMAND
  DECL FUNCT_TYPE PGNO_FUNCT
  DECL CHAR P_ID[]

  INT E_NO
  E6AXIS AK_AXIS   STRUC E6AXIS REAL A1,A2,A3,A4,A5,A6,E1,E2,E3,E4,E5,E6  $OPERATE.SRC
  REAL AX_DIST
    SWITCH  COMMAND
  CASE #INIT_EXT
    INIT_EXT ( )
  CASE #EXT_PGNO
    EXT_PGNO (PGNO_FUNCT )
  CASE #CHK_HOME
    CHK_HOME ( )
  CASE #EXT_ERR
    EXT_ERR (P_ID[],E_NO )
  ENDSWITCH
END

 

;********************************
  ; 函数:初始化外部接口

;********************************
DEF  INIT_EXT ( )
  BOOL ERROR
  INT N
  PGNO_ERROR=0
  ;********************************
  ;CHECK HOME
  ;********************************

  ;********************************
  ;INIT PGNO_REQ UND APPL_RUN
  ;********************************
  IF (PGNO_REQ>0) THEN
    $OUT[PGNO_REQ]=FALSE
  ENDIF
  IF (PGNO_REQ<0) THEN
    $OUT[-PGNO_REQ]=TRUE
  ENDIF
  IF (APPL_RUN>0) THEN
    $OUT[APPL_RUN]=FALSE
  ENDIF
  IF PLC_ENABLE AND (ERR_TO_PLC>0) THEN
    $OUT[ERR_TO_PLC]=FALSE
  ENDIF
  IF REFLECT_PROG_NR==1 THEN
    FOR N=0 TO PGNO_LENGTH-1
      $OUT[PGNO_FBIT_REFL+N]=FALSE
    ENDFOR
  ENDIF
  $LOOP_MSG[]="                                                            "
  ;*******************
  REPEAT
    ;***********************************************************
    ERROR=FALSE
    REPEAT
      IF ($I_O_ACTCONF==FALSE) THEN
        ERROR=TRUE
        P00_MSG (13)
      ENDIF
    UNTIL ($I_O_ACTCONF==TRUE)
    SWITCH  PGNO_TYPE
      ;*********************************************************
    CASE 1,2 ;bci-coding,bcd-coding
      ;*********************************************************
      ;***** CHECK PGNO_LENGTH *****
      IF (PGNO_LENGTH<1) THEN
        ERROR=TRUE ;pgno_length
        P00_MSG (2)
      ENDIF
      IF (PGNO_TYPE==1) THEN ;bci-coding
        IF (PGNO_LENGTH>16) THEN
          ERROR=TRUE ;pgno_length
          P00_MSG (2)
        ENDIF
      ENDIF
      IF (PGNO_TYPE==2) THEN ;bcd-coding
        SWITCH  PGNO_LENGTH
        CASE 4,8,12,16
        DEFAULT
          ERROR=TRUE ;pgno_length
          P00_MSG (3)
        ENDSWITCH
      ENDIF
      ;***** CHECK PGNO_FBIT *****
      IF (PGNO_FBIT<1) THEN
        ERROR=TRUE ;pgno_fbit
        P00_MSG (4)
      ENDIF
      ;***** CHECK PGNO_REQ *****
      IF (PGNO_REQ==0) THEN
        ERROR=TRUE ;pgno_req
        P00_MSG (7)
      ENDIF

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值