hey guy could do with pointing in the right direction. I need the robot to wait for an input to be on for 10 seconds before it continues with its program how would i go about this many thanks on advance p
kuka robot needs to wait for an input to be on for a certain amount of time
- n_makin
- Thread is Unresolved
-
-
-
use timer. if signal drops reset timer. when timer is done you are good to go.
-
-
Actually ,there is a system build-in function for timer limit: EXTFCTP BOOL TIMER_LIMIT (REAL SECONDS:IN)
It returns true , when the timer is out. FOR EXAMPLE:
WAIT FOR $IN[1] AND TIMER_LIMIT(10)
-
Well! Learn something every day. That one doesn't appear to be documented in any of my manuals -- I wonder how long it's been around?
-
and which timer it refers to? last initialized one?
-
This system build-in function should have been there for really a long time, i believe(I had idea about it around 2011).There are many system build-in functions/subprograms you can refer to the data file Operate.dat,but it has been hidden in the KRC4 systems.
This timer function has nothing to do with the 64 system $TIMER[], and it must be used together with WAIT FOR command,you can use it in Robot/submit interpreter.Even if the timer limit is used in SPS and over 16 ms,it could not stop sps program.Thus i believe it's based on system time, and has nothing to do with interpreter time.
Below is part of system functions and subprograms i took out from data file:
SQL
Display MoreDELETE_BACKWARD_BUFFER ( ) DIAG_START(DIAGPAR_T PAR :OUT,DIAGOPT_T OPT :OUT) DIAG_STOP() GET_DIAGSTATE() GETSYSSTATE(CHAR CMD[64] :IN,INT IPAR :OUT,REAL RPAR :OUT) IS_KEY_PRESSED(INT KEY :IN) GETCYCDEF(INT INDEX :IN) GET_DECL_PLACE(CHAR VARNAME[80] :IN) CHECKPIDONRDC() PIDTORDC(CHAR STRVAR[470] :IN) DELETE_PID_ON_RDC() CAL_TO_RDC() SET_MAM_ON_HD(E6AXIS VALUES :IN) COPY_MAM_HD_TO_RDC() CREATE_RDC_ARCHIVE() RESTORE_RDC_ARCHIVE() DELETE_RDC_CONTENT() RDC_FILE_TO_HD(CHAR FILENAME[128] :IN) CHECK_MAM_ON_RDC() GET_RDC_FS_STATE() SET_SYSTEM_DATA(CHAR OWNER_NAME[16] :IN,CHAR OWNER_AXNAME[5] :IN,CHAR VAR_NAME[64] :IN,REAL VALUE :IN) SET_SYSTEM_DATA_DELAYED(CHAR OWNER_NAME[16] :IN,CHAR OWNER_AXNAME[5] :IN,CHAR VAR_NAME[64] :IN,REAL VALUE :IN) GET_SYSTEM_DATA(CHAR OWNER_NAME[16] :IN,CHAR OWNER_AXNAME[5] :IN,CHAR VAR_NAME[64] :IN,INT STATUS :OUT) ERR_CLEAR (ERROR_T PERR :OUT ) ERR_RAISE (ERROR_T PERR :OUT ) EXTFCTP REAL ABS(REAL X :IN) EXTFCTP REAL SQRT(REAL X :IN) EXTFCTP REAL SIN(REAL X :IN) EXTFCTP REAL COS(REAL X :IN) EXTFCTP REAL TAN(REAL X :IN) EXTFCTP REAL ACOS(REAL X :IN) EXTFCTP REAL ATAN2(REAL X :IN,REAL Y :IN) EXTFCTP INT MBX_REC(INT MBX_ID :IN,STOPMESS MESS :OUT) EXTFCTP FRAME TOOL_ADJ(FRAME X :OUT) EXTFCTP FRAME EK(FRAME TKRWE :IN,ESYS EXKIN :IN,FRAME TBAFL :IN) EXTFCTP FRAME LK(FRAME ROOT :IN,CHAR IP_ADDR[24] :IN,FRAME OFFSET :IN,ESYS EXKIN :IN) EXTFCTP E6AXIS INVERSE(E6POS TOOLPOS :IN,E6AXIS START_AXIS :IN,INT STATUS :OUT) EXTFCTP E6POS FORWARD(E6AXIS AXVAL :IN,INT STATUS :OUT) EXTFCTP E6POS INV_POS(E6POS POS_VALUES :IN) EXTFCTP INT IOCTL(CHAR DRVNAME[256] :IN,INT REQUEST :IN,INT ARGUMENT :IN) EXTFCTP INT CIOCTL(INT HANDLE :IN,INT REQUEST :IN,INT ARGUMENT :IN,CHAR PARAM[128] :IN,INT RETVAL :OUT) EXTFCTP INT SYNC() EXTFCTP VAR_STATE VARSTATE(CHAR VAR_STR[80] :IN) EXTFCTP BOOL WSPACEGIVE(INT SPACEID :IN) EXTFCTP BOOL WSPACETAKE(INT SPACEID :IN,INT ADVANCE :IN) EXTP SYNCCMD (SYNCTYPE SYNC_T :IN,CHAR ID_NAME[64] :IN,INT COOP_LIST :IN ) EXTFCTP RET_C_PSYNC_E CANCELPROGSYNC(CANCEL_PSYNC_E CMD :IN,CHAR ID_NAME[64] :IN) EXTFCTP BOOL REMOTECMD(CHAR IP_ADDR[24] :IN,CHAR CMD[128] :IN) EXTFCTP CHAR REMOTEREAD(CHAR IP_ADDR[24] :IN,CHAR VARIABLE[128] :IN,INT ERROR :OUT) EXTFCTP INT STRLEN(CHAR STRVAR[2047] :IN) EXTFCTP INT STRDECLLEN(CHAR STRVAR[2047] :OUT) EXTFCTP BOOL STRCLEAR(CHAR STRVAR[2047] :OUT) EXTFCTP INT STRADD(CHAR STRDEST[2047] :OUT,CHAR STRTOADD[2047] :IN) EXTFCTP INT STRFIND(INT STARTAT :IN,CHAR STRVAR[2047] :IN,CHAR STRFIND[2047] :IN,CASE_SENSE_T CASE_MODE :IN) EXTFCTP BOOL STRCOMP(CHAR STRCOMP[2047] :IN,CHAR STRCOMP2[2047] :IN,CASE_SENSE_T CASE_MODE :IN) EXTFCTP BOOL STRCOPY(CHAR STRDEST[2047] :OUT,CHAR STRSOURCE[2047] :IN) EXTFCTP BOOL ISMESSAGESET(INT MESSAGENO :IN) EXTFCTP BOOL TIMER_LIMIT(REAL SECONDS :IN) EXTFCTP INT SET_KRLMSG(EKRLMSGTYPE TYPE :IN,KRLMSG_T MSG :OUT,KRLMSGPAR_T PAR[3] :OUT,KRLMSGOPT_T OPT :OUT) EXTFCTP BOOL EXISTS_KRLMSG(INT NHANDLE :IN) EXTFCTP BOOL CLEAR_KRLMSG(INT NHANDLE :IN) EXTFCTP INT SET_KRLDLG(KRLMSG_T MSG :OUT,KRLMSGPAR_T PAR[3] :OUT,KRLMSGDLGSK_T SK[7] :OUT,KRLMSGOPT_T OPT :OUT) EXTFCTP BOOL SET_KRLDLGANSWER(INT NHANDLE :IN,INT ANSWERSK :IN) EXTFCTP BOOL EXISTS_KRLDLG(INT NHANDLE :IN,INT ANSWER :OUT) EXTFCTP INT GET_MSGBUFFER(MSGBUF_T MSGBUF[100] :OUT) EXTFCTP BOOL STRTOREAL(CHAR STRVAR[256] :IN,REAL RETVAL :OUT) EXTFCTP BOOL STRTOBOOL(CHAR STRVAR[256] :IN,BOOL RETVAL :OUT) EXTFCTP BOOL STRTOINT(CHAR STRVAR[256] :IN,INT RETVAL :OUT) EXTFCTP BOOL STRTOSTRING(CHAR STRVAR[256] :IN,CHAR RETVAL[256] :OUT) EXTFCTP BOOL STRTOFRAME(CHAR STRVAR[256] :IN,FRAME RETVAL :OUT) EXTFCTP BOOL STRTOPOS(CHAR STRVAR[256] :IN,POS RETVAL :OUT) EXTFCTP BOOL STRTOE3POS(CHAR STRVAR[256] :IN,E3POS RETVAL :OUT) EXTFCTP BOOL STRTOE6POS(CHAR STRVAR[256] :IN,E6POS RETVAL :OUT) EXTFCTP BOOL STRTOAXIS(CHAR STRVAR[256] :IN,AXIS RETVAL :OUT) EXTFCTP BOOL STRTOE3AXIS(CHAR STRVAR[256] :IN,E3AXIS RETVAL :OUT) EXTFCTP BOOL STRTOE6AXIS(CHAR STRVAR[256] :IN,E6AXIS RETVAL :OUT) EXTFCTP VAR_TYPE VARTYPE(CHAR VAR_STR[80] :IN) EXTFCTP REAL FRAND(REAL MIN_VAL :IN,REAL MAX_VAL :IN) EXTFCTP INT GETVARSIZE(SYS_VARS MESSAGENO :IN) EXTFCTP INT MAXIMIZE_USEDXROBVERS() EXTFCTP INT SET_USEDXROBVERS(INT MAJORVERS :IN,INT MINORVERS :IN) EXTFCTP INT SET_OPT_FILTER(E6POS TARGETPOS :IN)
-
yup, just tried it in OL. it is addon to WAIT FOR and starts timing when WAIT FOR is reached.
-
Nice! I always had to build my own functions for that before. I wonder why they wouldn't document that?
-
and timers are confusing for plenty of people.... i don't know what they are thinking when coming up with various terms. specially when doing negatives.
$TIMER_STOP is bad, $TIMER_RUN is better
$ALARM_STOP is bad, $ESTOP_OK is better
etc.
-
... data file Operate.dat,but ...
Took me some broken F12 key caps to realize there is this hidden dat file. Very useful indeed.
Create an account or sign in to comment
You need to be a member in order to leave a comment