&ACCESS ? RVO
&COMMENT PLC on control
DEF ? SPS ( )
? ?;FOLD DECLARATIONS
? ?;FOLD BASISTECH DECL
? ?;Automatik extern
? ?DECL STATE_T STAT
定義STATE_T類型的變量。該結構為:
STRUC STATE_T?
CMD_STAT RET1,? CMD_STAT是枚舉類型數據,組成了STATE_T結構的第一個數據RET1
INT HITS ,
INT LENGTH ?
其中CMD_STAT是枚舉類型的數據:
ENUM CMD_STAT ? CMD_OK, CMD_TIMEOUT, DATA_OK, DATA_BLK, DATA_END,? CMD_ABORT, CMD_REJ, CMD_PART, CMD_SYN, FMT_ERR?
與CWRITE有關的返回值如下表:
? ?? ? 變量類型? MODUS_T(結構類型)定義多少通道寫入,有下列值?SYNC語句直到數據發送還沒有執行?ASYNC語句沒有執行直到通道驅動已經證實數據已經被承認。
? ?? DECL MODUS_T MODE ?
? ?;ENDFOLD (BASISTECH DECL)
? ?;FOLD USER DECL
? ?;Please insert user defined declarations
? ?;ENDFOLD (USER DECL)
? ?;ENDFOLD (DECLARATIONS)
? ?;FOLD INI
? ?;FOLD DEFAULT MSG_T?
? ?? 信息顯示的結構:
? ?$MSG_T={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
? ?;ENDFOLD (DEFAULT MSG_T)
? ?;FOLD AUTOEXT INIT
? ?中斷函數聲明,當系統變量$PRO_STATE1(機器人解釋程序的進程狀態為P_FREE(不選擇程序)調用RESET_OUT ()):
? ?INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
? ?INTERRUPT ON 91
? ?$LOOP_MSG[]=" ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? "
? ?
? ?? 變量類型MODUS_T(結構類型)定義多少通道寫入,它有下面的值:SYNC? 語句直到數據已經發送還沒有執行。ASYNC? 語句沒有執行 ? ?? 直到通道驅動已經證實數據已經被承認。
? ?MODE=#SYNC ? ;
? ?$H_POS=$H_POS
? ?;Automatik extern?? 如果外部模式,則啟動CELL()。$CMD顯示命令通道的分配號。將CELL寫入命令通道,機器人上電啟動之后,如果$MODE_OP==#EX處于外部模式,則啟動CELL程序。 ? 命令通道可能為庫卡內部的命令切換通道。T1、T2、EXT?
? ?IF $MODE_OP==#EX THEN ? ?? ??
? ?? ?CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
? ?? ?注釋:STAT被調用后的返回值是否可以在這調用,例如 IF (STAT.RET1=CMD_OK) THEN $OUT[200]=TRUE 驗證是否調用成功
\KRC\STEU\Mada中定義的通道 ? ?? ?? ?? CMD通道的定義?
CHANNEL :SER_1 :SER_1 $PSER_1
CHANNEL :SER_2 :SER_2 $PSER_2
CHANNEL :SER_3 :SER_3 $PSER_3
CHANNEL :SER_4 :SER_4 $PSER_4
?
? ENDIF
? ?;ENDFOLD (AUTOEXT INIT)
? ?;FOLD USER INIT
? ?;Please insert user defined initialization commands
? ?;ENDFOLD (USER INIT)
? ?;ENDFOLD (INI)
? ?LOOP
? ?? ?? WAIT FOR NOT($POWER_FAIL) ? 掉電等待
? ?? ?? TORQUE_MONITORING() ? ?? ?? ?? 扭矩監視
? ?? ?? ;FOLD GRIPPER TECH PLC;%{E}%MKUKATPGRP,%CSPS,%VSPS,%P
? ?? ?IF (ZANGEN_FUNKT>0) THEN ? ?? ;;夾持技術
? ?? ?? ?? H50 (5,AKT_ZANGE,DUMMY,GDEFAULT )
? ?? ?? ?? ZANGEN_FUNKT=0
? ?? ?ENDIF
? ?? ? ;ENDFOLD (GRIPPERTECH PLC)
? ?? ?;FOLD USER PLC
? ?? ?;Make your modifications here
? ?? ?;ENDFOLD (USER PLC)
? ?ENDLOOP
END
中斷函數聲明,當系統變量$PRO_STATE1(機器人解釋程序的進程狀態為P_FREE(不選擇程序)調用RESET_OUT ()):
DEF ? RESET_OUT ( )
? ?INT N
? ?$LOOP_MSG[]=" ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? "
? ?INT REFLECT_PROG_NR=0 ; enable mirroring of program number inputs (1=enabled, 0=disabled)? ? 聲明于config.dat文件:
? ?使能程序號輸入鏡像,將輸入程序號返回PLC
? ?IF REFLECT_PROG_NR == 1 THEN?
? ?? ?FOR N = 0 TO PGNO_LENGTH - 1 ? ? config.dat文件:? PGNO_LENGTH=8 ;length of ext. pgno (max. 16)
? ?? ?? ?$OUT[PGNO_FBIT_REFL + N] = FALSE
config.dat文件:INT PGNO_FBIT_REFL=999 ;first bit of ext. pgno reflection output $OUT[]
? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ext. pgno? 輸出的第一位 ? ? output $OUT[1000]=FALSE?
? ?? ?ENDFOR
? ?ENDIF
? ?IF (PGNO_REQ>0) THEN ? INT PGNO_REQ=134 ;request ext. pgno input
? ?? ?? ?$OUT[PGNO_REQ]=FALSE ? ?? ?? ?? ? ? $OUT[134]=FALSE? 停止對PLC程序號請求
? ?? ?? ?ELSE ? ?? ?? ?? ?? 高電平請求有效/低電平請求有效
? ?? ?? ?? ?? IF (PGNO_REQ<0) THEN?? ?? ?
? ?? ?? ?? ?? ?? ?$OUT[-PGNO_REQ]=TRUE
? ?? ?? ?? ?? ENDIF
? ?ENDIF
END
;FOLD USER SUBROUTINE
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
;ENDFOL