Hello,
Someone could help me to run the gripper key on KR15, KRC1, V4.1.4?
I used to parameter the output of my gripper, but when I press the buttons gripper nothing happens
thank you
Hello,
Someone could help me to run the gripper key on KR15, KRC1, V4.1.4?
I used to parameter the output of my gripper, but when I press the buttons gripper nothing happens
thank you
Please check Submit interpreter running correctly.
hi,
please attach your config.dat file or at least the piece of code with gripper configuration.
Regards
hi,
please attach your config.dat file or at least the piece of code with gripper configuration.
Regards
[noae]
&REL 3
DEFDAT $CONFIG
;FOLD BAS GLOBALS;%{E}%V3.2.0,%MKUKATPBASIS,%CGLOBALS,%VGLOBALS,%P
;==================================
; Default parameters for movement
; These values shouldn't be changed
;==================================
; EDITOR-Modes
;----------------------------------
INT $EDIT_MODE=1
;----------------------------------
; general MOVEMENT - parameters:
;----------------------------------
INT DEF_OV_PRO=100
INT DEF_ADVANCE=3
; PTP - MOVEMENTS
;----------------------------------
INT DEF_VEL_PTP=100
INT DEF_ACC_PTP=50
; CP - MOVEMENTS
;----------------------------------
DECL CIRC_TYPE DEF_CIRC_TYP=#BASE
REAL DEF_VEL_CP=2.0
REAL DEF_VEL_ORI1=200.0
REAL DEF_VEL_ORI2=200.0
REAL DEF_ACC_CP=2.29999995
REAL DEF_ACC_ORI1=100.0
REAL DEF_ACC_ORI2=100.0
REAL DEF_VEL_FACT=1.0
; APO - parameters
;--------------------------------
INT DEF_APO_CPTP=50
INT DEF_APO_CVEL=100
REAL DEF_APO_CDIS=3.0
REAL DEF_APO_CORI=5.0
;==================================
; Structures:
;==================================
ENUM BAS_COMMAND INITMOV,ACC_CP,ACC_PTP,VEL_CP,VEL_PTP,ACC_GLUE,TOOL,BASE,EX_BASE,PTP_DAT,CP_DAT,OUT_SYNC,OUT_ASYNC,GROUP,FRAMES
ENUM OUT_MODETYPE TRIGGER_,CONT_,STOP_
ENUM IPO_M_T NONE,TCP,BASE
STRUC DIG_OUT_TYPE INT FIRST_BIT,LENGTH,PARITY,CODING
STRUC CTRL_IN_T INT IN_NR,CHAR NAME_NAT[20]
STRUC CTRL_OUT_T INT OUT_NR,BOOL INI,CHAR NAME_NAT[20]
STRUC FCT_OUT_T INT NO,REAL PULS_TIME,BOOL STATE
STRUC FCT_IN_T INT NO,BOOL STATE
STRUC EX_AX_DATA_T FRAME ROOT,ESYS EX_KIN,FRAME OFFSET
STRUC PDAT REAL VEL,ACC,APO_DIST
STRUC LDAT REAL VEL,ACC,APO_DIST,APO_FAC
STRUC FDAT INT TOOL_NO,BASE_NO,IPO_MODE IPO_FRAME
STRUC ODAT INT OUT_NO,BOOL STATE,REAL PULSE_TIME,OUT_MODETYPE OUT_MODE,REAL TIME_DELAY,OFFSET
STRUC BASIS_SUGG_T CHAR POINT1[24],POINT2[24],CP_PARAMS[24],PTP_PARAMS[24],CONT[24],CP_VEL[24],PTP_VEL[24]
STRUC OUT_SUGG_T CHAR PARAMS[24]
;==================================
; External declarations:
;==================================
EXT BAS (BAS_COMMAND :IN,REAL :IN )
EXT IR_STOPM ( )
;====================
; Signal declarations
; Do not change !!!!!
;====================
SIGNAL CHANNEL_1 $ANOUT[1]
SIGNAL CHANNEL_2 $ANOUT[2]
SIGNAL CHANNEL_3 $ANOUT[3]
SIGNAL CHANNEL_4 $ANOUT[4]
SIGNAL CHANNEL_5 $ANOUT[5]
SIGNAL CHANNEL_6 $ANOUT[6]
SIGNAL CHANNEL_7 $ANOUT[7]
SIGNAL CHANNEL_8 $ANOUT[8]
;==================================
; Variables:
;==================================
DECL PDAT PDEFAULT={VEL 100.0,ACC 100.0,APO_DIST 100.0}
DECL LDAT LDEFAULT={VEL 2.0,ACC 100.0,APO_DIST 100.0,APO_FAC 50.0}
DECL FDAT FDEFAULT={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE}
DECL FDAT FHOME={TOOL_NO 1,BASE_NO 0,IPO_FRAME #BASE}
DECL ODAT ODEFAULT={OUT_NO 1,STATE TRUE,PULSE_TIME 0.0,OUT_MODE #STOP_,TIME_DELAY 0.0,OFFSET 0.0}
DECL PDAT PDAT_ACT
DECL LDAT LDAT_ACT
DECL FDAT FDAT_ACT
DECL ODAT ODAT_ACT
DECL INT ACT_DELAY
DECL INT ACT_DISTANCE
;GROUP-Definitions
;----------------------------------
INT COMPL_GROUP='B0001'
INT DEF_GROUP[10]
DEF_GROUP[1]='B1111' ; complete
DEF_GROUP[2]='B0001' ; robot only
DEF_GROUP[3]='B0011' ; robot and track
DEF_GROUP[4]='B0111' ; robot, track and ext. axis2
DEF_GROUP[5]='B1011' ; robot, track and ext. axis3
DEF_GROUP[6]='B1111' ; robot, track and ext. axis2+3
DEF_GROUP[7]='B1111' ; complete
DEF_GROUP[8]='B1111' ; complete
DEF_GROUP[9]='B1111' ; complete
DEF_GROUP[10]='B1111' ; complete
INT $ACT_GROUP='B0001'
; HOME POSITION
;----------------------------------
E6AXIS XHOME={a1 -10.6309299,a2 -89.0041504,a3 90.676178,a4 3.760741,a5 89.0900497,a6 -234.162994,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME1={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME2={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME3={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME4={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME5={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
E6AXIS XHOME6={a1 0.0,a2 -90.0,a3 90.0,a4 0.0,a5 0.0,a6 0.0,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
; REFERENCE POINTS
;----------------------------------
DECL FRAME REF_PT[16]
REF_PT[1]={x 910.206909,y 165.001358,z 514.170837,a 49.3186951,b 3.91517019,c 93.2118225}
REF_PT[2]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[3]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[4]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[5]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[6]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[7]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[8]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[9]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[10]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[12]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[13]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[14]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[15]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
REF_PT[16]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
FRAME REF_TOOL={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
; TOOL and BASE data
;----------------------------------
BOOL AUTO_IPO_M=FALSE
BOOL STOPM_FLAG=TRUE
BOOL TOOL_CORR_ON=FALSE
BOOL BASE_CORR_ON=FALSE
FRAME TOOL_CORR={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
FRAME BASE_CORR={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
INT COR_TOOL_NO=0
INT MAX_TOOL=16
DECL FRAME TOOL_DATA[16]
TOOL_DATA[1]={x -18.7721291,y -17.8448238,z 62.0485382,a 0.0,b 0.0,c 0.0}
TOOL_DATA[2]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[3]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[4]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[5]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[6]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[7]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[8]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[9]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[10]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[11]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[12]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[13]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[14]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[15]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
TOOL_DATA[16]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
DECL CHAR TOOL_NAME[16,24]
TOOL_NAME[1,]="Pince"
TOOL_NAME[2,]=" "
TOOL_NAME[3,]=" "
TOOL_NAME[4,]=" "
TOOL_NAME[5,]=" "
TOOL_NAME[6,]=" "
TOOL_NAME[7,]=" "
TOOL_NAME[8,]=" "
TOOL_NAME[9,]=" "
TOOL_NAME[10,]=" "
TOOL_NAME[11,]=" "
TOOL_NAME[12,]=" "
TOOL_NAME[13,]=" "
TOOL_NAME[14,]=" "
TOOL_NAME[15,]=" "
TOOL_NAME[16,]=" "
DECL LOAD LOAD_DATA[16]
LOAD_DATA[1]={M 15.0,CM {x 120.0,y 0.0,z 150.0,a 0.0,b 0.0,c 0.0},J {X 0.224999994,Y 0.224999994,Z 0.224999994}}
LOAD_DATA[2]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[3]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[4]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[5]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[6]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[7]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[8]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[9]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[10]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[11]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[12]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[13]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[14]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[15]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
LOAD_DATA[16]={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL IPO_M_T TOOL_TYPE[16]
TOOL_TYPE[1]=#BASE
TOOL_TYPE[2]=#NONE
TOOL_TYPE[3]=#NONE
TOOL_TYPE[4]=#NONE
TOOL_TYPE[5]=#NONE
TOOL_TYPE[6]=#NONE
TOOL_TYPE[7]=#NONE
TOOL_TYPE[8]=#NONE
TOOL_TYPE[9]=#NONE
TOOL_TYPE[10]=#NONE
TOOL_TYPE[11]=#NONE
TOOL_TYPE[12]=#NONE
TOOL_TYPE[13]=#NONE
TOOL_TYPE[14]=#NONE
TOOL_TYPE[15]=#NONE
TOOL_TYPE[16]=#NONE
DECL LOAD LOAD_A1_DATA={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL LOAD LOAD_A2_DATA={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
DECL LOAD LOAD_A3_DATA={M -1.0,CM {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},J {X 0.0,Y 0.0,Z 0.0}}
INT MAX_BASE=16
DECL FRAME BASE_DATA[16]
BASE_DATA[1]={x 908.897278,y 156.833099,z 602.352173,a -84.8961258,b -0.466028988,c -1.845034}
BASE_DATA[2]={x 328.906708,y -949.030579,z -179.274094,a -168.465363,b -1.40468299,c 0.0341640003}
BASE_DATA[3]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[4]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[5]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[6]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[7]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[8]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[9]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[10]={x 328.906708,y -949.030579,z -179.274094,a -168.465363,b -1.40468299,c 0.0341640003}
BASE_DATA[11]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[12]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[13]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[14]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[15]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
BASE_DATA[16]={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}
DECL CHAR BASE_NAME[16,24]
BASE_NAME[1,]="Prise boite"
BASE_NAME[2,]="Roller 1"
BASE_NAME[3,]=" "
BASE_NAME[4,]=" "
BASE_NAME[5,]=" "
BASE_NAME[6,]=" "
BASE_NAME[7,]=" "
BASE_NAME[8,]=" "
BASE_NAME[9,]=" "
BASE_NAME[10,]="Offset_Z Roller_1"
BASE_NAME[11,]=" "
BASE_NAME[12,]=" "
BASE_NAME[13,]=" "
BASE_NAME[14,]=" "
BASE_NAME[15,]=" "
BASE_NAME[16,]=" "
DECL IPO_M_T BASE_TYPE[16]
BASE_TYPE[1]=#BASE
BASE_TYPE[2]=#BASE
BASE_TYPE[3]=#NONE
BASE_TYPE[4]=#NONE
BASE_TYPE[5]=#NONE
BASE_TYPE[6]=#NONE
BASE_TYPE[7]=#NONE
BASE_TYPE[8]=#NONE
BASE_TYPE[9]=#NONE
BASE_TYPE[10]=#NONE
BASE_TYPE[11]=#NONE
BASE_TYPE[12]=#NONE
BASE_TYPE[13]=#NONE
BASE_TYPE[14]=#NONE
BASE_TYPE[15]=#NONE
BASE_TYPE[16]=#NONE
;External AXIS data
;----------------------------------
INT MAX_EX_BASE=6
DECL EX_AX_DATA_T EX_AX_DATA[6]
EX_AX_DATA[1]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #EASYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
EX_AX_DATA[2]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #EBSYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
EX_AX_DATA[3]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #ECSYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
EX_AX_DATA[4]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #EDSYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
EX_AX_DATA[5]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #EESYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
EX_AX_DATA[6]={ROOT {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0},EX_KIN #EFSYS,OFFSET {x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0}}
DECL CHAR EX_AX_NAME[6,24]
EX_AX_NAME[1,]=" "
EX_AX_NAME[2,]=" "
EX_AX_NAME[3,]=" "
EX_AX_NAME[4,]=" "
EX_AX_NAME[5,]=" "
EX_AX_NAME[6,]=" "
DECL IPO_M_T EX_AX_TYPE[6]
EX_AX_TYPE[1]=#NONE
EX_AX_TYPE[2]=#NONE
EX_AX_TYPE[3]=#NONE
EX_AX_TYPE[4]=#NONE
EX_AX_TYPE[5]=#NONE
EX_AX_TYPE[6]=#NONE
;******************************************
; Variables for axis CALIBRATING
;******************************************
DECL INT CAL_AXIS
BOOL CONST_SPEED
;******************************************
; Variables for added TechPackages
;******************************************
ENUM A_BOOL_T ACTIVE,IDLE
ENUM A_FG_TYPE FG_MECHANIC,FG_THERMAL
DECL A_BOOL_T A_HOT_WELD=#IDLE ; Status of HPU Weld key
DECL A_BOOL_T A_HPU_DRY_RN=#IDLE ; DRY_RUN functionality
INT A_HPU_WFD=0
DECL A_BOOL_T A_OLD_WELD=#ACTIVE ; PLC control status of change
DECL A_BOOL_T A_ISR_ACTION=#ACTIVE ; PLC control like a busy flag
BOOL ANA_CLC_ON=TRUE
BOOL PROC_IN_T1=FALSE
BOOL PROC_ENABLE=TRUE
BOOL TECH_MOTION=FALSE ; flag for technology motions
REAL A_AP_DIS_TCH=5.0 ; ARCTECH specified rough positioning parameter
REAL DRY_RN_VEL=0.150000006
INT MAX_RETRY=3
INT MAX_ERROR=5
INT RETRY_COUNT=0
INT ERROR_COUNT=0
INT POWER
;******************************************
; Variables Tool Correction
;******************************************
BOOL FLAG=FALSE
INT MAX_CRASH=5
;External for weaving-generator
EXT WEAV_DEF (A_FG_TYPE :IN,INT :IN,INT :IN,INT :IN,INT :IN )
;******************************************
; Variables for Displaying and Konfiguring
;******************************************
DECL INT I[10]
I[1]=0
I[2]=0
I[3]=0
I[4]=0
I[5]=0
I[6]=0
I[7]=0
I[8]=0
I[9]=0
I[10]=0
;******************************************
; all for UserStatKeys
;******************************************
ENUM COMMAND OPN,CLO
INT ZANGEN_FUNKT=1
INT AKT_ZANGE=1
;******************************************
; all for InterBus Mapping on optional segments
;******************************************
DECL INT IBUS_SEGMENT[16]
IBUS_SEGMENT[1]=0
IBUS_SEGMENT[2]=0
IBUS_SEGMENT[3]=0
IBUS_SEGMENT[4]=0
IBUS_SEGMENT[5]=0
IBUS_SEGMENT[6]=0
IBUS_SEGMENT[7]=0
IBUS_SEGMENT[8]=0
IBUS_SEGMENT[9]=0
IBUS_SEGMENT[10]=0
IBUS_SEGMENT[11]=0
IBUS_SEGMENT[12]=0
IBUS_SEGMENT[13]=0
IBUS_SEGMENT[14]=0
IBUS_SEGMENT[15]=0
IBUS_SEGMENT[16]=0
;ENDFOLD
;FOLD AUTOEXT GLOBALS;%{E}%V3.2.0,%MKUKATPBASIS,%CGLOBALS,%VAUTOEXT,%P
;==================================
; Structures:
;==================================
ENUM FUNCT_TYPE PGNO_GET,PGNO_ACKN,PGNO_FAULT
ENUM P00_COMMAND INIT_EXT,EXT_PGNO,CHK_HOME,EXT_ERR
STRUC SPS_PROG_TYPE INT PROG_NR,CHAR PROG_NAME[12]
;==================================
; External declarations:
;==================================
EXT P00 (P00_COMMAND :IN,FUNCT_TYPE :IN,CHAR [],INT :IN )
;External declaration for Submit controlled AutoExt
EXT P00_SUBM (P00_COMMAND :IN,FUNCT_TYPE :IN )
;==================================
; Variables:
;==================================
; Variables for internal
; Communication:
;----------------------------------
BOOL ERROR_FLAG
BOOL CHECK_HOME=TRUE
BOOL PROG_CONTROL=FALSE
DECL CHAR PRO_NAME1_L[8]
PRO_NAME1_L[]=" "
DECL CHAR PRO_NAME1_A[8]
PRO_NAME1_A[]=" "
INT PGNO=0 ;copy of ext. pgno
INT PGNO_ERROR=0 ;transmission error
INT PGNO_TYPE=1 ;coding type of ext. pgno
INT REFLECT_PROG_NR=0 ; enable mirroring of program number inputs (1=enabled, 0=disabled)
; Variables for External
; Communication: I/O-Interface
;----------------------------------
INT PGNO_FBIT=33 ;first bit of ext. pgno input $IN[]
INT PGNO_FBIT_REFL=999 ;first bit of ext. pgno reflection output $OUT[]
INT PGNO_LENGTH=8 ;length of ext. pgno (max. 16)
INT PGNO_PARITY=41 ;parity bit of ext. pgno
INT PGNO_REQ=33 ;request ext. pgno input
INT PGNO_VALID=42 ;validate ext. pgno input
INT APPL_RUN=34 ;application program is running output
INT ERR_TO_PLC=35 ;error output to PLC
INT P01_STEP
INT CHK_STEP
INT PGNO_FLAG
; Table for assign SPS program number to program name
INT MAX_SPS_PROG=12
DECL SPS_PROG_TYPE SPS_PROG[12]
SPS_PROG[1]={PROG_NR 1,PROG_NAME[] "HP01() "}
SPS_PROG[2]={PROG_NR 2,PROG_NAME[] "HP02() "}
SPS_PROG[3]={PROG_NR 3,PROG_NAME[] "HP03() "}
SPS_PROG[4]={PROG_NR 4,PROG_NAME[] "HP04() "}
SPS_PROG[5]={PROG_NR 5,PROG_NAME[] "HP05() "}
SPS_PROG[6]={PROG_NR 6,PROG_NAME[] "HP06() "}
SPS_PROG[7]={PROG_NR 7,PROG_NAME[] "HP07() "}
SPS_PROG[8]={PROG_NR 8,PROG_NAME[] "HP08() "}
SPS_PROG[9]={PROG_NR 9,PROG_NAME[] "HP09() "}
SPS_PROG[10]={PROG_NR 10,PROG_NAME[] "HP10() "}
SPS_PROG[11]={PROG_NR 62,PROG_NAME[] "HP62() "}
SPS_PROG[12]={PROG_NR 63,PROG_NAME[] "HP63() "}
DECL CHAR TMPNAME[128]
TMPNAME[]=" "
;ENDFOLD
;FOLD GRIPPER GLOBALS;%{E}%V3.2.0,%MKUKATPGRP,%CGLOBALS,%VGLOBALS,%P
;==================================
; Structures:
;==================================
ENUM ON_OFF_TYP ON,OFF,MID
ENUM APO_TYP YES,NO
STRUC GRP_TYP APO_TYP G_APO,REAL TIME,ON_OFF_TYP CTRL,INT DLY,INT DST
; structure for gripper definition
STRUC GRP_TYPES INT TYPE,OUT1,OUT2,OUT3,OUT4,IN1,IN2,IN3,IN4,GRP_OLD
; structure for last values
STRUC GRP_SUGG_T CHAR NUMBER[24],STATE[24],PARAMS[24]
;==================================
; External declarations:
;==================================
EXT H50 (INT :IN,INT :IN,INT :IN,GRP_TYP :IN )
EXT USER_GRP (INT :IN,INT :IN,INT :IN,GRP_TYP :IN )
;==================================
; Variables:
;==================================
; instruction codes
INT GRP=1
INT CHK_APO=2
INT GRP_APO=3
INT CHK_APO_UP=4
;==================================
; Variables:
;==================================
DECL GRP_TYP GDEFAULT={G_APO #NO,TIME 0.200000003,CTRL #OFF,DLY 0,DST 1}
INT DUMMY=0
;constant for time out in sec
REAL TIME_OUT=3.0
INT CHK_CODE=0
BOOL APO_CHK_ON=FALSE
BOOL H50_FERTIG=FALSE
;==================================
; Options:
;==================================
BOOL APO_CHK_OPT=TRUE
;==================================
; Definition of grippers
;==================================
INT MAXGRIPPER=16
DECL GRP_TYPES GRIPPER[16]
GRIPPER[1]={TYPE 1,OUT1 17,OUT2 999,OUT3 999,OUT4 999,IN1 14,IN2 15,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[2]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[3]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[4]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[5]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[6]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[7]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[8]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[9]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[10]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[11]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[12]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[13]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[14]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[15]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
GRIPPER[16]={TYPE 0,OUT1 999,OUT2 999,OUT3 999,OUT4 999,IN1 0,IN2 0,IN3 0,IN4 0,GRP_OLD 1}
REAL GRP_PULSE_TI=0.5 ; pulse time for gripper type 5
;ENDFOLD
;FOLD PERCEP GLOBALS;%{E}%V3.2.0,%MKUKATPBASIS,%CGLOBALS,%VPERCEPT,%P
;==============================
; External declarations:
;==============================
EXT PERCEPT (INT :IN,INT :IN,INT :IN,INT :IN,INT :IN,INT :OUT )
;==============================
; Variables:
;==============================
INT PERCEPT_32
INT PERCEPT_33
INT PERCEPT_34
REAL PERCEPT_REL
FRAME PERCEPT_KOR
;ENDFOLD
;FOLD SPOT GLOBALS;%{E}%V.2.2,%MKUKATPSPOT,%CGLOBALS,%VGLOBALS,%P
;==================================
; Structures:
;==================================
ENUM S_COMMAND SPOT,RETR,PRESPOT,INIT,ADVSPOT
ENUM S_PAIR_SLCT FIRST,SECOND,BOTH
STRUC SPOT_SUGG_T CHAR GUN[24],RETR_CMD[24],CHOISE[24],CLO_TM[24],PGNO1[24],PRESS1[24],PGNO2[24],PRESS2[24],SPOT_PARAMS[24]
STRUC SPOT_TYPE INT GUN,S_PAIR_SLCT PAIR,COMMAND RETR,INT CLO_TM,INT PGNO1,REAL PRESS1,INT PGNO2,REAL PRESS2
;==============================
; External declarations:
;==============================
EXT USERSPOT (S_COMMAND :IN,SPOT_TYPE :IN )
;==============================
; Variables:
;==============================
DECL SPOT_TYPE SDEFAULT={GUN 1,PAIR #FIRST,RETR #OPN,CLO_TM 0,PGNO1 1,PRESS1 0.0,PGNO2 0,PRESS2 0.0}
DECL SPOT_TYPE S_ACT
DECL INT S_ACT_DELAY
DECL BOOL S_READY
INT BOSCHCMD_OK=534
INT BOSCHSTAT_OK=528
;==============================
; all for Bosch-Serial-Interface
;==============================
EXT BOSCH (INT :IN,INT :IN,INT :OUT )
; BOSCH-OUTWORD 1 (513-528) param
SIGNAL BOSCHPAR $OUT[513] TO $OUT[528]
; BOSCH-OUTWORD 2 (529-544) command
SIGNAL BOSCHCMD $OUT[529] TO $OUT[533]
; BOSCH-INWORD 1 (513-528) status+validbit
SIGNAL BOSCHSTAT $IN[513] TO $IN[527]
;ENDFOLD
;FOLD A10 GLOBALS;%{E}%V3.2.0,%MKUKATPARC,%CGLOBALS,%VGLOBALS,%P
;===========
; Structures
;===========
STRUC A_STRT_T REAL GAS_PRE_T,START_T,ANA1,ANA2,ANA3,ANA4,ANA5,ANA6,ANA7,ANA8
STRUC A_WELD_T REAL VEL,ANA1,ANA2,ANA3,ANA4,ANA5,ANA6,ANA7,ANA8,INT WEAVFIG_MECH,REAL WEAVLEN_MECH,WEAVAMP_MECH,WEAVANG_MECH,INT WEAVFIG_THER,REAL ANA1_THERM,ANA2_THERM,WEAVLEN_THER,BURNBACK_T,ANA1_BB,ANA2_BB,ANA3_BB,ANA4_BB,ANA5_BB,ANA6_BB,ANA7_BB,ANA8_BB
STRUC A_END_T REAL END_TI,BURNBACK_T,GAS_POST_T,ANA1_E,ANA2_E,ANA3_E,ANA4_E,ANA5_E,ANA6_E,ANA7_E,ANA8_E,ANA1_BB,ANA2_BB,ANA3_BB,ANA4_BB,ANA5_BB,ANA6_BB,ANA7_BB,ANA8_BB
STRUC A_ANA_DEF_T REAL PARA,VAL
STRUC A_ANA_VAL_T REAL M,N
STRUC USR_MSG_T CHAR MSG[7],INT S_LENGTH
STRUC ARC_SUGG_T CHAR WELD_MODE[24],CHAR WELD_SET[24],CHAR START_SET[24],CHAR END_SET[24],CHAR COMMENT[24],CHAR VEL[24]
ENUM A_CMD_T GAS_PRE,PRE_ARC_ON,ARC_STRT,PRE_ARC_OFF,ARC_SEAM,ARC_OFF,PRE_ARC_SWI,IR_ERROR,APPL_ERROR,I_PRET_STP,HPU_ARC,CLEAN_OFF,IR_RESTART
ENUM A_BB_TYPE SSDV8_MODE,ACT_PAR,REDUCE
ENUM A_RESTART_T COLD_SEAM,RESTART,LIM_RESTART,USR_SEAM,USR_START
ENUM A_START_T RESTART,USR_START ;Restart on start error
ENUM A_TECH_STS_T ACTIVE,DISABLED
ENUM A_APPL_T THIN,THICK
ENUM MSG_CALL_T SAF_CYCFLAG,GIVE_USR_MSG,DEF_USR_MSG
;==========
; Variables
;==========
DECL A_BOOL_T A_F_WLD_COND=#ACTIVE ; Flag for check WELDER Ready
DECL A_BOOL_T A_STRT_BRAKE=#ACTIVE ; BRAKE-Option at ARC_START (HPU control)
DECL A_BOOL_T A_END_BRAKE=#ACTIVE ; BRAKE-Option at ARC_OFF (HPU control)
DECL A_BOOL_T A_WLD_ACTIV=#IDLE ; Status of running ARC application
DECL A_BOOL_T A_GAS_FLOW=#IDLE ; Flag for Gas Flow
DECL A_BOOL_T A_CLD_TSTP=#IDLE ; Flag to compute the TECHSTOP_SUB subroutine
DECL A_BOOL_T A_COLD_SEAM=#IDLE ; #IDLE --> HOT, #ACTIVE --> #COLD
DECL A_BOOL_T A_ISR4_FLAG=#ACTIVE ; Flag for seam control interrupt
DECL A_BOOL_T A_SV_WLD_STS=#IDLE ; Status of WLD_ACTIV in TECH_STP_SUB
DECL A_BOOL_T A_TCHSTP_STS=#IDLE ; Trigger ARCSPS-TECHSTOP-OFF
DECL A_BOOL_T A_BRN_FR_OPT=#IDLE ; Burnfree Option
DECL A_BOOL_T A_FLY_ARC_ON=#IDLE ; Trigger OUTPUT( Signal Declaration )
DECL A_BOOL_T A_SAFE_ISR4=#IDLE ; Flag for ISR condition for seam control
DECL A_BOOL_T A_WELD_MEM=#IDLE ; Flag for WELD_STS in TECHSTP
DECL A_BOOL_T A_SPS_ACTION ; Flag for SUBMIT control-ISR
DECL A_BOOL_T A_TSTOP_CONT ; Trigger ARCSPS-TECHSTOP-ON
DECL A_BOOL_T A_HOT_T_STOP=#IDLE ; Flag for RESTART from TECHSTOP
DECL A_BOOL_T A_HPU_CMD=#IDLE ; Flag for marking HPU task
DECL A_BOOL_T A_ARC_SWI=#IDLE ; Flag for ARC_SWITCH command
DECL A_BOOL_T A_ANA_CLC_ON=#IDLE ; Flag for calculating controller lines
DECL A_BOOL_T A_INTR_MODE=#IDLE ; Flag of interrupt event
DECL A_BOOL_T A_SWINDL_OPT=#ACTIVE ;Seam control interrupt in rough process
DECL A_BOOL_T A_PRE_WR_OPT=#IDLE ;Option for reduction WFD in start process
DECL A_BOOL_T A_HOT_SELECT=#IDLE ; block select with start possibility
DECL A_BOOL_T A_CLEANER=#IDLE ; cleaner procedure state
BOOL A_ISR_SELECT
BOOL A_RAMP_OPTION=FALSE ; Ramp functionality at chane of parameters
BOOL A_PR_GAS_OPT=TRUE ; Enable for flying gas flow
BOOL A_TH_WEAVE_OPT=FALSE ;Thermal weaving
BOOL A_SYNERG_OPT=FALSE ; Synergetic welder
BOOL A_DEF_USRMSG=FALSE ;define user defined text
INT A_FLT_SV_FCT=0 ; Number of user defined FLT_SERV-Subroutine
INT A_ARC_INSTR=0
INT A_ARC_IDLE=0
INT A_ARC_ON=1
INT A_ARC_SEAM=2
INT A_ARC_OFF=3
INT A_TECH_STOP=4
INT A_SEAM_RDY=5
INT A_ACT_W_MODE=1 ; Actual Weld Mode [PS/MM]
INT A_BB_CHANNEL=0
INT A_WF_CHANNEL=0 ; WireFeed Channel in case of a seperate Channel
INT A_WEAV_GEN[6]
A_WEAV_GEN[1]=1 ; A_FG_MECH1
A_WEAV_GEN[2]=2 ; A_FG_MECH2
A_WEAV_GEN[3]=3 ; A_FG_THERM
A_WEAV_GEN[4]=4 ; A_FG_SENSOR
INT A_FG_MECH1=1 ; Mechanical function generator 1
INT A_FG_MECH2=2 ; Mechanical function generator 2
INT A_FG_THERM=3 ; Thermal function generator
INT A_LST_M1_FIG=0
INT A_LST_M2_FIG=0
INT A_LST_TH_FIG=0
INT A_FIFO_READ=1
INT A_FIFO_WRITE=1
INT A_FIFO_MAX=6 ; FIFO CONTROL size
INT A_SEAM_CTRL=0 ; setinfo production screen
INT A_FILTER_OLD=96 ; Filter value as save value
INT A_WEAVE_FILT=108 ; Filter for mechanical weaving
INT A_ACT_AN_MAX=2 ; Maximum number of analog channels enfluence to user interface also
INT A_PR_GAS_TIM ; Pre gas flow time [msec]
INT A_PRE_WIRE=16 ; PRE WIRE Value in per cent of reduction of WFD Channel
INT A_CTRL_DELAY=1200 ;[ms]
INT SAVE_OVR=-1 ; prepared to online optimizing
REAL A_TH1_ACT_O,A_TH2_ACT_O,A_TH1_ACT_G,A_TH2_ACT_G ; actual value of cycling ANOUTS
REAL A_SWINDL_TIM=0.0500000007 ; Time to ignore a seam error [sec]
REAL A_TIME_OUT1=200.0 ; TIMEOUT for digital input [10 ms * 200 -> 2.0 sec]
REAL A_BB_VAL=1.0 ; Burnback value for own controlled Burnback at own Channel
REAL A_WF_VALUE=0.0 ; Wirefeed value for own Channel
REAL A_REDUCE=0.200000003 ; 20 percent reduction of voltage
REAL A_BBT_MAX=0.5 ; Burnback time for 10V analog voltage Specials for SSDV8
REAL A_BRN_FREE_T=0.200000003 ; BurnFree Time [sec]
REAL A_E_PR_GAS_T=0.150000006 ; Constant of delay from gas valves
DECL A_STRT_T A_S_PARA_ACT={GAS_PRE_T 0.100000001,START_T 0.100000001,ANA1 100.0,ANA2 1000.0,ANA3 0.0,ANA4 0.0,ANA5 0.0,ANA6 0.0,ANA7 0.0,ANA8 0.0}
DECL A_END_T A_E_PARA_ACT={END_TI 0.100000001,BURNBACK_T 0.100000001,GAS_POST_T 0.200000003,ANA1_E 70.0,ANA2_E 600.0,ANA3_E 0.0,ANA4_E 0.0,ANA5_E 0.0,ANA6_E 0.0,ANA7_E 0.0,ANA8_E 0.0,ANA1_BB 25.0,ANA2_BB 350.0,ANA3_BB 0.0,ANA4_BB 0.0,ANA5_BB 0.0,ANA6_BB 0.0,ANA7_BB 0.0,ANA8_BB 0.0}
DECL A_WELD_T A_W_PARA_ACT={VEL 1.04999995,ANA1 10.1999998,ANA2 120.0,ANA3 0.0,ANA4 0.0,ANA5 0.0,ANA6 0.0,ANA7 0.0,ANA8 5.0,WEAVFIG_MECH 0,WEAVLEN_MECH 11.0,WEAVAMP_MECH 2.0,WEAVANG_MECH 0.0,WEAVFIG_THER 0,ANA1_THERM 10.0,ANA2_THERM 100.0,WEAVLEN_THER 11.3999996,BURNBACK_T 0.0,ANA1_BB 35.0,ANA2_BB 250.0,ANA3_BB 0.0,ANA4_BB 0.0,ANA5_BB 0.0,ANA6_BB 0.0,ANA7_BB 0.0,ANA8_BB 0.0}
DECL A_STRT_T BDEFAULT={GAS_PRE_T 0.100000001,START_T 0.200000003,ANA1 24.0,ANA2 450.0,ANA3 0.0,ANA4 0.0,ANA5 0.0,ANA6 0.0,ANA7 0.0,ANA8 0.0}
DECL A_END_T EDEFAULT={END_TI 0.100000001,BURNBACK_T 0.0500000007,GAS_POST_T 0.200000003,ANA1_E 22.0,ANA2_E 400.0,ANA3_E 0.0,ANA4_E 0.0,ANA5_E 0.0,ANA6_E 0.0,ANA7_E 0.0,ANA8_E 0.0,ANA1_BB 0.0,ANA2_BB 0.0,ANA3_BB 0.0,ANA4_BB 0.0,ANA5_BB 0.0,ANA6_BB 0.0,ANA7_BB 0.0,ANA8_BB 0.0}
DECL A_WELD_T WDEFAULT={VEL 0.5,ANA1 22.5,ANA2 430.0,ANA3 0.0,ANA4 0.0,ANA5 0.0,ANA6 0.0,ANA7 0.0,ANA8 5.0,WEAVFIG_MECH 'H0',WEAVLEN_MECH 14.0,WEAVAMP_MECH 2.0,WEAVANG_MECH 0.0,WEAVFIG_THER 'H0',ANA1_THERM 0.0,ANA2_THERM 0.0,WEAVLEN_THER 4.0,BURNBACK_T 0.300000012,ANA1_BB 24.0,ANA2_BB 400.0,ANA3_BB 0.0,ANA4_BB 0.0,ANA5_BB 0.0,ANA6_BB 0.0,ANA7_BB 0.0,ANA8_BB 0.0}
;Restart Mode at seam error
DECL A_RESTART_T A_RESTRT_OPT=#LIM_RESTART ;COLD_SEAM,RESTART,LIM_RESTART,USR_SEAM
;Restart Mode at start error
DECL A_START_T A_S_ERR_OPT=#RESTART ;#RESTART,#USR_START
;Burnback Mode operation
DECL A_BB_TYPE A_BB_MODE=#ACT_PAR ;#SSDV8_MODE,ACT_PAR,REDUCE
DECL A_APPL_T A_APPLICAT=#THIN ;#thin,#thick
DECL A_TECH_STS_T A10_OPTION=#DISABLED ; #active, #disabled
DECL INT A_ANAOUT_NO[8] ; Indexed adressing of analog channels: 0 -> not used
A_ANAOUT_NO[1]=1
A_ANAOUT_NO[2]=2
A_ANAOUT_NO[3]=3
A_ANAOUT_NO[4]=4
A_ANAOUT_NO[5]=5
A_ANAOUT_NO[6]=6
A_ANAOUT_NO[7]=7
A_ANAOUT_NO[8]=8
DECL INT A_ANA_MAX_D[2,8] ;maximum number of points to define a controller line
A_ANA_MAX_D[1,1]=2
A_ANA_MAX_D[1,2]=2
A_ANA_MAX_D[1,3]=2
A_ANA_MAX_D[1,4]=2
A_ANA_MAX_D[1,5]=2
A_ANA_MAX_D[1,6]=2
A_ANA_MAX_D[1,7]=2
A_ANA_MAX_D[1,8]=2
A_ANA_MAX_D[2,1]=2
A_ANA_MAX_D[2,2]=2
A_ANA_MAX_D[2,3]=2
A_ANA_MAX_D[2,4]=2
A_ANA_MAX_D[2,5]=2
A_ANA_MAX_D[2,6]=2
A_ANA_MAX_D[2,7]=2
A_ANA_MAX_D[2,8]=2
DECL A_ANA_DEF_T A_ANA_DEF[2,8,5] ;WELD_Mode,Channel,Points of controler line
;Mode1 Channel1 command value
A_ANA_DEF[1,1,1]={PARA 13.0,VAL 0.0}
A_ANA_DEF[1,1,2]={PARA 39.0,VAL 1.0}
A_ANA_DEF[1,1,3]={PARA 40.0,VAL 0.0}
A_ANA_DEF[1,1,4]={PARA 41.0,VAL 0.0}
A_ANA_DEF[1,1,5]={PARA 42.0,VAL 0.0}
;Mode1 Channel2 wire feed [IPM]
A_ANA_DEF[1,2,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,2,2]={PARA 1000.0,VAL 1.0}
A_ANA_DEF[1,2,3]={PARA 1001.0,VAL 0.0}
A_ANA_DEF[1,2,4]={PARA 1002.0,VAL 0.0}
A_ANA_DEF[1,2,5]={PARA 1003.0,VAL 0.0}
;Mode1 Channel3
A_ANA_DEF[1,3,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,3,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,3,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,3,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,3,5]={PARA 80.0,VAL 0.800000012}
;Mode1 Channel4
A_ANA_DEF[1,4,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,4,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,4,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,4,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,4,5]={PARA 80.0,VAL 0.800000012}
;Mode1 Channel5
A_ANA_DEF[1,5,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,5,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,5,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,5,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,5,5]={PARA 80.0,VAL 0.800000012}
;Mode1 Channel6
A_ANA_DEF[1,6,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,6,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,6,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,6,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,6,5]={PARA 80.0,VAL 0.800000012}
;Mode1 Channel7
A_ANA_DEF[1,7,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,7,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,7,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,7,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,7,5]={PARA 80.0,VAL 0.800000012}
;Mode1 Channel8
A_ANA_DEF[1,8,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[1,8,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[1,8,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[1,8,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[1,8,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel1 command value
A_ANA_DEF[2,1,1]={PARA 13.0,VAL 0.0}
A_ANA_DEF[2,1,2]={PARA 39.0,VAL 1.0}
A_ANA_DEF[2,1,3]={PARA 40.0,VAL 0.0}
A_ANA_DEF[2,1,4]={PARA 41.0,VAL 0.0}
A_ANA_DEF[2,1,5]={PARA 42.0,VAL 0.0}
;Mode2 Channel2 wire feed [IPM]
A_ANA_DEF[2,2,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,2,2]={PARA 1000.0,VAL 1.0}
A_ANA_DEF[2,2,3]={PARA 1001.0,VAL 0.0}
A_ANA_DEF[2,2,4]={PARA 1002.0,VAL 0.0}
A_ANA_DEF[2,2,5]={PARA 1003.0,VAL 0.0}
;Mode2 Channel3
A_ANA_DEF[2,3,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,3,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,3,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,3,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,3,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel4
A_ANA_DEF[2,4,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,4,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,4,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,4,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,4,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel5
A_ANA_DEF[2,5,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,5,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,5,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,5,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,5,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel6
A_ANA_DEF[2,6,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,6,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,6,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,6,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,6,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel7
A_ANA_DEF[2,7,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,7,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,7,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,7,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,7,5]={PARA 80.0,VAL 0.800000012}
;Mode2 Channel8
A_ANA_DEF[2,8,1]={PARA 0.0,VAL 0.0}
A_ANA_DEF[2,8,2]={PARA 20.0,VAL 0.200000003}
A_ANA_DEF[2,8,3]={PARA 40.0,VAL 0.400000006}
A_ANA_DEF[2,8,4]={PARA 60.0,VAL 0.600000024}
A_ANA_DEF[2,8,5]={PARA 80.0,VAL 0.800000012}
DECL A_ANA_VAL_T A_ANA_VAL[2,8,4] ; Results of controller characteristics y=mx + b form ( M + N )
; outputs for gas preflow
DECL FCT_OUT_T A_O_GAS_PRE[3]
A_O_GAS_PRE[1]={NO 'H2',PULS_TIME 0.0,STATE TRUE}
A_O_GAS_PRE[2]={NO 'H0',PULS_TIME 0.0,STATE TRUE}
A_O_GAS_PRE[3]={NO 'H0',PULS_TIME 0.0,STATE TRUE}
; outputs for MODE1 welding
DECL FCT_OUT_T A_O_MODE1[3]
A_O_MODE1[1]={NO 'H3',PULS_TIME 0.0,STATE TRUE}
A_O_MODE1[2]={NO 'H0',PULS_TIME 0.0,STATE TRUE}
A_O_MODE1[3]={NO 'H0',PULS_TIME 0.0,STATE TRUE}
; outputs for MODE2 welding
DECL FCT_OUT_T A_O_MODE2[3]
A_O_MODE2[1]={NO 'H3',PULS_TIME 0.0,STATE FALSE}
A_O_MODE2[2]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
A_O_MODE2[3]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
; outputs for weld start
DECL FCT_OUT_T A_O_WLD_STRT[3]
A_O_WLD_STRT[1]={NO 'H1',PULS_TIME 0.0,STATE TRUE}
A_O_WLD_STRT[2]={NO 'H2',PULS_TIME 0.0,STATE TRUE}
A_O_WLD_STRT[3]={NO 'H0',PULS_TIME 0.0,STATE TRUE}
; outputs burn back starts
DECL FCT_OUT_T A_O_SEAM_END[3]
A_O_SEAM_END[1]={NO 'H1',PULS_TIME 0.0,STATE FALSE}
A_O_SEAM_END[2]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
A_O_SEAM_END[3]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
; outputs gas post flow starts
DECL FCT_OUT_T A_O_POST_ON[3]
A_O_POST_ON[1]={NO 'H2',PULS_TIME 0.150000006,STATE TRUE}
A_O_POST_ON[2]={NO 'H0',PULS_TIME 0.150000006,STATE TRUE}
A_O_POST_ON[3]={NO 'H0',PULS_TIME 0.150000006,STATE TRUE}
; outputs gas post flow ends
DECL FCT_OUT_T A_O_POST_OFF[3]
A_O_POST_OFF[1]={NO 'H2',PULS_TIME 0.200000003,STATE TRUE}
A_O_POST_OFF[2]={NO 'H0',PULS_TIME 0.200000003,STATE TRUE}
A_O_POST_OFF[3]={NO 'H0',PULS_TIME 0.200000003,STATE TRUE}
; outputs fault while arc on
DECL FCT_OUT_T A_O_FLT_ON[3]
A_O_FLT_ON[1]={NO 'H1',PULS_TIME 0.0,STATE FALSE}
A_O_FLT_ON[2]={NO 'H2',PULS_TIME 0.0,STATE FALSE}
A_O_FLT_ON[3]={NO 'H7',PULS_TIME 0.0,STATE TRUE}
; switch off outputs after fault
DECL FCT_OUT_T A_O_DISBL_P[3]
A_O_DISBL_P[1]={NO 'H4',PULS_TIME 0.0,STATE FALSE}
A_O_DISBL_P[2]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
A_O_DISBL_P[3]={NO 'H0',PULS_TIME 0.0,STATE FALSE}
; outputs acknowledge fault
DECL FCT_OUT_T A_O_ACK_FLT[3]
A_O_ACK_FLT[1]={NO 'H5',PULS_TIME 0.5,STATE TRUE}
A_O_ACK_FLT[2]={NO 'H0',PULS_TIME 0.5,STATE TRUE}
A_O_ACK_FLT[3]={NO 'H0',PULS_TIME 0.5,STATE TRUE}
; output for fault message
DECL FCT_OUT_T A_O_FLT_SIGN={NO 'H6',PULS_TIME 0.0,STATE TRUE}
; output for fault at start procedure
DECL FCT_OUT_T A_O_FLT_STRT={NO 'H7',PULS_TIME 0.0,STATE TRUE}
; output for fault application error message
DECL FCT_OUT_T A_O_FLT_APPL={NO 'H8',PULS_TIME 0.0,STATE TRUE}
; output for interpreter stop
DECL FCT_OUT_T A_O_IR_STOP={NO 'H9',PULS_TIME 0.0,STATE TRUE}
; signal for periphery in case of aluminium start
DECL FCT_OUT_T A_O_ALU_STRT={NO 'HA',PULS_TIME 0.0,STATE TRUE}
;=====================
; Aluminium Options:
;=====================
DECL A_BOOL_T A_ALU_OPTION=#IDLE
REAL A_ALU_S_TIME=0.200000003
REAL A_ALU_DELY_T=0.300000012
;WIREFEED control
DECL FCT_OUT_T A_O_WRFEDP={NO 15,PULS_TIME 0.200000003,STATE TRUE}
DECL FCT_OUT_T A_O_WRFEDN={NO 16,PULS_TIME 0.200000003,STATE TRUE}
;for controls of peripheries on a seam
DECL INT A_FLT_NUM[4]
;inputs for controls of peripheries on a seam
DECL FCT_IN_T A_FLT_CYCFLG[4]
A_FLT_CYCFLG[1]={NO 13,STATE TRUE} ;e.g. collection failure
A_FLT_CYCFLG[2]={NO 2,STATE TRUE} ;e.g. current
A_FLT_CYCFLG[3]={NO 11,STATE TRUE} ;e.g. gas
A_FLT_CYCFLG[4]={NO 10,STATE TRUE} ;e.g. water
;inputs as condition befor weld can start
DECL FCT_IN_T A_I_WLD_COND[3]
A_I_WLD_COND[1]={NO 1,STATE TRUE} ; source okay
A_I_WLD_COND[2]={NO 10,STATE TRUE} ; water available
A_I_WLD_COND[3]={NO 11,STATE TRUE} ; gas available
;inputs start moving
DECL FCT_IN_T A_I_STRT_MOV[3]
A_I_STRT_MOV[1]={NO 'H2',STATE TRUE}
A_I_STRT_MOV[2]={NO 'H0',STATE TRUE}
A_I_STRT_MOV[3]={NO 'H0',STATE TRUE}
;inputs for weld in ended
DECL FCT_IN_T A_I_WELD_END[3]
A_I_WELD_END[1]={NO 'H2',STATE FALSE}
A_I_WELD_END[2]={NO 'H0',STATE FALSE}
A_I_WELD_END[3]={NO 'H0',STATE FALSE}
;input for external disable weld
DECL FCT_IN_T A_I_EN_W_EXT={NO 5,STATE TRUE}
;input for test of burn free from workpiece
DECL FCT_IN_T A_I_BRN_FREE={NO 7,STATE TRUE}
;Digital outputs
;----------------------------------
DECL CTRL_OUT_T A_WLD_OUT[16]
A_WLD_OUT[1]={OUT_NR 0,INI FALSE,NAME_NAT[] "WELD_START "}
A_WLD_OUT[2]={OUT_NR 0,INI FALSE,NAME_NAT[] "GAS PREFLOW "}
A_WLD_OUT[3]={OUT_NR 0,INI FALSE,NAME_NAT[] "WELD_MODE PS/MM"}
A_WLD_OUT[4]={OUT_NR 0,INI FALSE,NAME_NAT[] "CLEANER "}
A_WLD_OUT[5]={OUT_NR 0,INI FALSE,NAME_NAT[] "RECEIPT ERRORS "}
A_WLD_OUT[6]={OUT_NR 0,INI FALSE,NAME_NAT[] "ERR MESSG_SIGNAL"}
A_WLD_OUT[7]={OUT_NR 0,INI FALSE,NAME_NAT[] "START ERROR "}
A_WLD_OUT[8]={OUT_NR 0,INI FALSE,NAME_NAT[] "APPL_ERROR "}
A_WLD_OUT[9]={OUT_NR 0,INI FALSE,NAME_NAT[] "INTERPRETER-STOP"}
A_WLD_OUT[10]={OUT_NR 0,INI FALSE,NAME_NAT[] "ALU_START"}
A_WLD_OUT[11]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
A_WLD_OUT[12]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
A_WLD_OUT[13]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
A_WLD_OUT[14]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
A_WLD_OUT[15]={OUT_NR 0,INI FALSE,NAME_NAT[] "WFD + "}
A_WLD_OUT[16]={OUT_NR 0,INI FALSE,NAME_NAT[] "WFD - "}
; Digital inputs
;----------------------------------
DECL CTRL_IN_T A_WLD_IN[16]
A_WLD_IN[1]={IN_NR 0,NAME_NAT[] "WELDER READY "}
A_WLD_IN[2]={IN_NR 0,NAME_NAT[] "ARC ESTABLISHED "}
A_WLD_IN[3]={IN_NR 0,NAME_NAT[] "SEAM_ERROR "}
A_WLD_IN[4]={IN_NR 0,NAME_NAT[] "CURRENT OVER "}
A_WLD_IN[5]={IN_NR 0,NAME_NAT[] "KEY SWITCH HOT/COLD "}
A_WLD_IN[6]={IN_NR 0,NAME_NAT[] " "}
A_WLD_IN[7]={IN_NR 0,NAME_NAT[] "BURN FREE INP_SIGNAL"}
A_WLD_IN[8]={IN_NR 0,NAME_NAT[] " "}
A_WLD_IN[9]={IN_NR 0,NAME_NAT[] " "}
A_WLD_IN[10]={IN_NR 0,NAME_NAT[] "WATER AVAILABLE "}
A_WLD_IN[11]={IN_NR 0,NAME_NAT[] "GAS AVAILABLE "}
A_WLD_IN[12]={IN_NR 0,NAME_NAT[] "WIRE AVAILABLE "}
A_WLD_IN[13]={IN_NR 0,NAME_NAT[] "COLLECTION FAILURE "}
A_WLD_IN[14]={IN_NR 0,NAME_NAT[] " "}
A_WLD_IN[15]={IN_NR 0,NAME_NAT[] " "}
A_WLD_IN[16]={IN_NR 0,NAME_NAT[] " "}
;======================
; External declarations
;======================
EXT A10 (A_CMD_T :IN,A_STRT_T :IN,A_WELD_T :IN,A_END_T :IN,INT :IN )
EXT FLT_SERV (A_BOOL_T :IN,A_BOOL_T :IN ) ; A_WLD_ACTIVE,ARC_ON_ERROR
EXT NEW_SERV (A_RESTART_T :IN,INT :IN ) ;strategy number / [delay ms]
EXT A10_INI ( )
EXT ARC_MSG (MSG_CALL_T :IN )
;====================
; Signal declarations
;====================
SIGNAL A_O_ANA1 $ANOUT[1]
SIGNAL A_O_ANA2 $ANOUT[2]
SIGNAL A_O_ANA3 $ANOUT[3]
SIGNAL A_O_ANA4 $ANOUT[4]
SIGNAL A_O_ANA5 $ANOUT[5]
SIGNAL A_O_ANA6 $ANOUT[6]
SIGNAL A_O_ANA7 $ANOUT[7]
SIGNAL A_O_ANA8 $ANOUT[8]
SIGNAL A_FLY_ARC $OUT[817]
E6POS A_SERVICE={x 0.0,y 0.0,z 0.0,a 0.0,b 0.0,c 0.0,s 0,t 0}
;ENDFOLD
;FOLD A50 GLOBALS;%{E}%V3.2.0,%MKUKATPARC,%CGLOBALS,%VGLOBALS,%P
STRUC A_SENSOR_T REAL BIAS,H_GAIN,V_GAIN,A_BOOL_T ACCUM_OFS,STS
STRUC SEN_SUGG_T CHAR SENS_SET[24],CHAR TRACK_MODE[24]
ENUM SENS_CMD_T SENS_ADV_DEF,SEN_PRE_ON,SEN_FIFO_ACT,SENSOR_OFF,INIT_SENSOR,SENS_SUB_SPS,I_SENSOR_OFF,I_SENSOR_ON,SENSOR_ON,SENS_SUB_INI,BLOCK_SELECT,PRE_SENS,DRY_WEAVE,SYNC_START,SEN_TSTOP,SYNC
DECL A_SENSOR_T TDEFAULT={BIAS 0.0,H_GAIN 50.0,V_GAIN 45.0,ACCUM_OFS #IDLE,STS #ACTIVE}
DECL A_SENSOR_T SEN_IDLE_PAR={BIAS 0.0,H_GAIN 0.0,V_GAIN 0.0,ACCUM_OFS #IDLE,STS #IDLE}
DECL A_SENSOR_T PS_TEMP_SET={BIAS 0.0,H_GAIN 50.0,V_GAIN 45.0,ACCUM_OFS #IDLE,STS #IDLE}
DECL A_TECH_STS_T A50_OPTION=#DISABLED ;active, disabled
BOOL A_HOT_TAST=FALSE
BOOL USR_DEF_ITV=FALSE
BOOL SEN_DLY_OPT=TRUE ; Sensor active after "A_SENS_DELAY" patterns
INT A_SENS_DELAY=2 ;number of idle patterns
BOOL SYNC_OPT=TRUE ; synchronization after every arc command
INT A_FG_SENSOR=4 ; function generator seam tracking
REAL IR_ITV_TIME=168.0
EXT A50 (SENS_CMD_T :IN,REAL :IN,REAL :IN,REAL :IN,INT :IN ) ; velocity,amplitude,weave length,pattern
;ENDFOLD
;FOLD A20 GLOBALS;%{E}%V3.2.0,%MKUKATPA20,%CGLOBALS,%VGLOBALS,%P
;==================================
; STRUCTURES:
;==================================
STRUC WELD_ST INT PRG_NO,REAL VELOCITY,START_TIME,INT WEAVFIG_MECH,REAL WEAVLEN_MECH,WEAVAMP_MECH,WEAVANG_MECH,END_TIME
STRUC WELD_FI INT PRG_NO,REAL VELOCITY,INT WEAVFIG_MECH,REAL WEAVLEN_MECH,WEAVAMP_MECH,WEAVANG_MECH,END_TIME
STRUC A20_SUGG_T CHAR WELD_MODE[24],CHAR WELD_SET[24],CHAR START_SET[24],CHAR END_SET[24],CHAR COMMENT[24],CHAR PRG_NO[24],CHAR V_ARC[24],CHAR PGNO[24]
;==================================
; external declarations:
;==================================
EXT A20 (INT :IN,WELD_ST :IN,WELD_FI :IN,INT :IN )
;==================================
; Variables:
;==================================
; Data for online correction of weld parameters
DECL WELD_ST ADEFAULT={PRG_NO 0,VELOCITY 0.600000024,START_TIME 0.0,WEAVFIG_MECH 0,WEAVLEN_MECH 0.0,WEAVAMP_MECH 0.0,WEAVANG_MECH 0.0,END_TIME 0.0}
DECL WELD_ST ST_ACT={PRG_NO 1,VELOCITY 5.0,START_TIME 0.0,WEAVFIG_MECH 0,WEAVLEN_MECH 5.0,WEAVAMP_MECH 10.0,WEAVANG_MECH 0.0,END_TIME 0.0}
DECL WELD_FI MDEFAULT={PRG_NO 0,VELOCITY 0.600000024,WEAVFIG_MECH 0,WEAVLEN_MECH 0.0,WEAVAMP_MECH 0.0,WEAVANG_MECH 0.0,END_TIME 0.0}
DECL WELD_FI FI_ACT={PRG_NO 15,VELOCITY 0.600000024,WEAVFIG_MECH 0,WEAVLEN_MECH 5.0,WEAVAMP_MECH 10.0,WEAVANG_MECH 0.0,END_TIME 0.0}
;==================================
; SIGNALS :
;==================================
; DIGITAL OUTPUTS
;----------------------------------
DECL CTRL_OUT_T O_WELD_CTRL[15]
O_WELD_CTRL[1]={OUT_NR 0,INI FALSE,NAME_NAT[] "START WELDING "}
O_WELD_CTRL[2]={OUT_NR 0,INI FALSE,NAME_NAT[] "ROBOT IN POSITION "}
O_WELD_CTRL[3]={OUT_NR 0,INI FALSE,NAME_NAT[] "TRIGGER PRG-NUMBER "}
O_WELD_CTRL[4]={OUT_NR 0,INI FALSE,NAME_NAT[] "ACKN POWER SUPPLY "}
O_WELD_CTRL[5]={OUT_NR 0,INI FALSE,NAME_NAT[] "SNEEZER "}
O_WELD_CTRL[6]={OUT_NR 0,INI FALSE,NAME_NAT[] "CLEANER MOTOR "}
O_WELD_CTRL[7]={OUT_NR 0,INI FALSE,NAME_NAT[] "SPRAYER "} ;
O_WELD_CTRL[8]={OUT_NR 0,INI FALSE,NAME_NAT[] "WIREFEED MANUAL "}
O_WELD_CTRL[9]={OUT_NR 0,INI FALSE,NAME_NAT[] "GAS PURGE "}
O_WELD_CTRL[10]={OUT_NR 0,INI FALSE,NAME_NAT[] "WELD ERROR MESSAGE "}
O_WELD_CTRL[11]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
O_WELD_CTRL[12]={OUT_NR 0,INI FALSE,NAME_NAT[] "TARGET POINT REACHED"}
O_WELD_CTRL[13]={OUT_NR 0,INI FALSE,NAME_NAT[] "IGNITION ERROR "}
O_WELD_CTRL[14]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
O_WELD_CTRL[15]={OUT_NR 0,INI FALSE,NAME_NAT[] " "}
; DIGITAL INPUTS
;----------------------------------
DECL CTRL_IN_T I_WELD_CTRL[15]
I_WELD_CTRL[1]={IN_NR 0,NAME_NAT[] "POWER SUPPLY READY "}
I_WELD_CTRL[2]={IN_NR 0,NAME_NAT[] "CURRENT AVAILABLE "}
I_WELD_CTRL[3]={IN_NR 0,NAME_NAT[] "CURRENT OVER "}
I_WELD_CTRL[4]={IN_NR 0,NAME_NAT[] "ERROR-INP1 PERIPHERY"}
I_WELD_CTRL[5]={IN_NR 0,NAME_NAT[] "ERROR-INP2 PERIPHERY"}
I_WELD_CTRL[6]={IN_NR 0,NAME_NAT[] "KEY SWITCH WELDING "}
I_WELD_CTRL[7]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[8]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[9]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[10]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[11]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[12]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[13]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[14]={IN_NR 0,NAME_NAT[] " "}
I_WELD_CTRL[15]={IN_NR 0,NAME_NAT[] " "}
; outputs weld start
DECL FCT_OUT_T O_WELD_START[3]
O_WELD_START[1]={NO 1,PULS_TIME 0.0,STATE TRUE}
O_WELD_START[2]={NO 0,PULS_TIME 0.0,STATE TRUE}
O_WELD_START[3]={NO 0,PULS_TIME 0.0,STATE TRUE}
; outputs acknowledge start move
DECL FCT_OUT_T O_ACK_START[3]
O_ACK_START[1]={NO 2,PULS_TIME 0.300000012,STATE TRUE}
O_ACK_START[2]={NO 0,PULS_TIME 0.0,STATE TRUE}
O_ACK_START[3]={NO 0,PULS_TIME 0.0,STATE TRUE}
; strobe prg. number
DECL FCT_OUT_T O_STROB_PGNO[3]
O_STROB_PGNO[1]={NO 3,PULS_TIME 0.300000012,STATE TRUE}
O_STROB_PGNO[2]={NO 0,PULS_TIME 0.300000012,STATE TRUE}
O_STROB_PGNO[3]={NO 0,PULS_TIME 0.300000012,STATE TRUE}
; outputs weld end
DECL FCT_OUT_T O_SEAM_END[3]
O_SEAM_END[1]={NO 1,PULS_TIME 0.0,STATE FALSE}
O_SEAM_END[2]={NO 0,PULS_TIME 0.0,STATE FALSE}
O_SEAM_END[3]={NO 0,PULS_TIME 0.0,STATE FALSE}
; outputs acknowledge weld_end
DECL FCT_OUT_T O_ACK_WELD_E[3]
O_ACK_WELD_E[1]={NO 12,PULS_TIME 0.5,STATE TRUE}
O_ACK_WELD_E[2]={NO 0,PULS_TIME 0.5,STATE TRUE}
O_ACK_WELD_E[3]={NO 0,PULS_TIME 0.5,STATE TRUE}
; outputs fault while arc on
DECL FCT_OUT_T O_FLT_ARC_ON[3]
O_FLT_ARC_ON[1]={NO 13,PULS_TIME 0.0,STATE TRUE}
O_FLT_ARC_ON[2]={NO 1,PULS_TIME 0.0,STATE FALSE}
O_FLT_ARC_ON[3]={NO 0,PULS_TIME 0.0,STATE FALSE}
; outputs stop weld after interrupt on seam
DECL FCT_OUT_T O_FLT_WELD[3]
O_FLT_WELD[1]={NO 1,PULS_TIME 0.0,STATE FALSE}
O_FLT_WELD[2]={NO 10,PULS_TIME 0.0,STATE TRUE}
O_FLT_WELD[3]={NO 0,PULS_TIME 0.0,STATE FALSE}
; outputs stop cleaner after interrupt
DECL FCT_OUT_T O_FLT_CLEAN[3]
O_FLT_CLEAN[1]={NO 6,PULS_TIME 0.0,STATE FALSE}
O_FLT_CLEAN[2]={NO 0,PULS_TIME 0.0,STATE FALSE}
O_FLT_CLEAN[3]={NO 0,PULS_TIME 0.0,STATE FALSE}
; outputs acknowledge fault
DECL FCT_OUT_T O_ACK_FLT[3]
O_ACK_FLT[1]={NO 4,PULS_TIME 1.0,STATE TRUE}
O_ACK_FLT[2]={NO 13,PULS_TIME 1.0,STATE FALSE}
O_ACK_FLT[3]={NO 0,PULS_TIME 1.0,STATE TRUE}
; output for fault message
DECL FCT_OUT_T O_FLT_SIGNAL={NO 10,PULS_TIME 0.0,STATE TRUE}
; inputs as condition befor weld can start
DECL FCT_IN_T I_WELD_COND[3]
I_WELD_COND[1]={NO 1,STATE TRUE}
I_WELD_COND[2]={NO 0,STATE TRUE}
I_WELD_COND[3]={NO 0,STATE TRUE}
; inputs start moving
DECL FCT_IN_T I_START_MOVE[3]
I_START_MOVE[1]={NO 2,STATE TRUE}
I_START_MOVE[2]={NO 0,STATE TRUE}
I_START_MOVE[3]={NO 0,STATE TRUE}
; inputs weld is ended
DECL FCT_IN_T I_WELD_END[3]
I_WELD_END[1]={NO 2,STATE FALSE}
I_WELD_END[2]={NO 0,STATE FALSE}
I_WELD_END[3]={NO 0,STATE FALSE}
;Counter for Interrupt definition
DECL INT FLT_NUM[3]
; inputs telling faults while welding
DECL FCT_IN_T I_WELD_FLT[3]
I_WELD_FLT[1]={NO 2,STATE TRUE}
I_WELD_FLT[2]={NO 4,STATE TRUE}
I_WELD_FLT[3]={NO 5,STATE TRUE}
; input for external enable weld
DECL FCT_IN_T I_ENB_W_EXT={NO 6,STATE TRUE}
;current instruction
INT ARC_INSTR=0
; instruction code
INT ARC_INI=1
INT ARC_ON=2
INT ARC_OFF=3
INT ARC_SWI_F=4
INT ARC_SWIP=5
INT TECH_STOP1=6
INT TECH_STOP2=7
INT TECH_STOP=9
INT ARC_OFF_P=10
INT ARC_OFF_V=12
INT ARC_START=13
INT ARC_SWI_T=14
INT ARC_OFF_T=15
INT PRGNO=0
INT TMP_PRG=0
BOOL B_RESTART=FALSE
BOOL FLY_WELD=FALSE
BOOL ARC20=FALSE
BOOL WELD_ACTIVE=FALSE
BOOL T1_L
BOOL T_STOP=FALSE ;flag for $CYCFLAG to avoid
;ENDFOLD
;FOLD TOUCHSENSE GLOBALS;%{E}%V3.2.0,%MKUKATPTS,%CGLOBALS,%VGLOBALS,%P
;==================================
; Structures:
;==================================
STRUC TS_SUGG_T CHAR CD[24],PA[24]
STRUC POS_XYZ REAL X,Y,Z
STRUC SRCH_TYP_3 INT MODE,SECMODE,APO,REAL DIST,VEL,TOL,INT RET
STRUC SRCH_TYP_2 INT OPT,BOOL CAL_MODE,SRCH_OK,REAL CAL_VAL,MES_VAL,OFFSET,REAL TCH_RESULT_A,TCH_RESULT_B,TCH_RESULT_C,TCH_RESULT_D,TCH_RESULT_E,TCH_RESULT_F,B_X,B_Y,B_Z,W_X,W_Y,W_Z,REF_X,REF_Y,REF_Z,MES_X,MES_Y,MES_Z
STRUC CTRL_TOUCH_O INT OUT_NR,BOOL INI,CHAR NAME_NAT[20]
STRUC CTRL_TOUCH_I INT IN_NR,CHAR NAME_NAT[20]
;==================================
; External declarations:
;==================================
EXT H70 (INT :IN,SRCH_TYP_2 :OUT,E6POS :IN,SRCH_TYP_3 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,SRCH_TYP_2 :IN,INT :IN )
;==================================
; Variables:
;==================================
DECL FRAME HILF_BASE,Y_VEK,WORLD_POS
REAL RELAY_TIME=0.100000001 ;SEC FOR DELAY RELAIS
REAL ROT_A,ROT_B
REAL TCH_OFS_LEAV=400.0
REAL TCH_RET_ACC=15.0
REAL DELAY_TIME=0.0 ; Delay to load capacity
REAL TCH_MaxCorrVector=100.0 ;[mm] Maximum of allowed correction frame
INT FG_TOUCH=6
INT TOUCH_OUT=1
INT DOUBLE_TOUCH=0
INT TOUCH_ACTIVE=1 ; configuration
INT TOUCH_RED=100
INT OV_PRO_OLD=100
INT ADV_OLD=3
BOOL H70_OPTION=FALSE
BOOL ERROR_TOL=FALSE
BOOL TOUCH=TRUE
BOOL NOTAUS_TOUCH=FALSE
BOOL FG_ON_WORK=FALSE
BOOL SUCHWEG_ENDE=FALSE
BOOL NEW_REF=FALSE
BOOL TOUCH_ON=TRUE
BOOL HIT_TARGET=TRUE ; Decision flag
BOOL DECIDE_MODE=FALSE ; Decision on demand
POS DISTC_EXACT={x -0.300000012}
DECL SRCH_TYP_2 VDEFAULT={OPT 0,CAL_MODE TRUE,SRCH_OK FALSE,CAL_VAL 0.0,MES_VAL 0.0,OFFSET 0.0,TCH_RESULT_A 0.0,TCH_RESULT_B 0.0,TCH_RESULT_C 0.0,TCH_RESULT_D 0.0,TCH_RESULT_E 0.0,TCH_RESULT_F 0.0,B_X 0.0,B_Y 0.0,B_Z 0.0,W_X 0.0,W_Y 0.0,W_Z 0.0,REF_X 0.0,REF_Y 0.0,REF_Z 0.0,MES_X 0.0,MES_Y 0.0,MES_Z 0.0}
DECL SRCH_TYP_3 ZDEFAULT={MODE 1,SECMODE 0,APO 0,DIST 20.0,VEL 55.0,TOL 20.0,RET 1}
DECL SRCH_TYP_2 CD0={OPT 0,CAL_MODE FALSE,SRCH_OK TRUE,CAL_VAL 0.0,MES_VAL -1.0,OFFSET 0.0,TCH_RESULT_A 0.0,TCH_RESULT_B 0.0,TCH_RESULT_C 0.0,TCH_RESULT_D 0.0,TCH_RESULT_E 0.0,TCH_RESULT_F 0.0,B_X 0.0,B_Y 0.0,B_Z 0.0,W_X 0.0,W_Y 0.0,W_Z 0.0,REF_X 0.0,REF_Y 0.0,REF_Z 0.0,MES_X 0.0,MES_Y 0.0,MES_Z 0.0}
DECL SRCH_TYP_3 PA0={MODE 1} ;,SECMODE 0,APO 0,DIST 75.5,VEL 55.0,TOL 52.5,RET 0}
DECL SRCH_TYP_2 CD_GLOBAL
DECL SRCH_TYP_3 PA_GLOBAL
DECL E6POS START_POS={x 1348.53003,y -113.153999,z 759.72998,a -78.172699,b 28.6000996,c -114.376999,s 6,t 19,e1 0.0,e2 0.0,e3 0.0,e4 0.0,e5 0.0,e6 0.0}
DECL E6POS POS_DUMMY={x 0.0}
DECL POS_XYZ DELTA_DT,REF_DT1,MES_DT1,INT_POS1,INT_POS2
DECL POS BASE_POS
DECL CTRL_TOUCH_O TOUCH_O[4]
TOUCH_O[1]={OUT_NR 999,INI FALSE,NAME_NAT[] "1. TOUCH-SPANNUNG"}
TOUCH_O[2]={OUT_NR 999,INI FALSE,NAME_NAT[] "2. TOUCH-SPANNUNG"}
TOUCH_O[3]={OUT_NR 999,INI FALSE,NAME_NAT[] "3. TOUCH-SPANNUNG"}
TOUCH_O[4]={OUT_NR 999,INI FALSE,NAME_NAT[] "4. TOUCH-SPANNUNG"}
DECL CTRL_TOUCH_I TOUCH_I[4]
TOUCH_I[1]={IN_NR 1,NAME_NAT[] "1. TOUCH-EINGANG"}
TOUCH_I[2]={IN_NR 1,NAME_NAT[] "2. TOUCH-EINGANG"}
TOUCH_I[3]={IN_NR 1,NAME_NAT[] "3. TOUCH-EINGANG"}
TOUCH_I[4]={IN_NR 1,NAME_NAT[] "4. TOUCH-EINGANG"}
;ENDFOLD
;FOLD USER GLOBALS;%E{O},%P___$$$___CONFIG.USB___start___
;==================================
; Userdefined Types
;==================================
;==================================
; DECLARATION des ENTREES/SORTIES
;==================================
SIGNAL BP_FIN_CAMPAGNE $IN[10]
SIGNAL BP_DEM_ACCES $IN[11]
SIGNAL BP_ROLLER_EVACUES $IN[12]
SIGNAL AUTORISATION_PRISE_BOITE $IN[13]
SIGNAL SQ1 $IN[14]
SIGNAL SQ2 $IN[15]
SIGNAL SQ3 $IN[16]
SIGNAL FERMETURE_PINCE $OUT[17]
SIGNAL HL_ROLLERS_PLEIN $OUT[18]
SIGNAL HL_AUTORISATION_ACCES $OUT[19]
SIGNAL HL_FIN_CAMPAGNE $OUT[20]
;==================================
; Userdefined Externals
;==================================
;==================================
; Userdefined Variables
;==================================
DECL FRAME OFFSET
DECL BOOL DEM_ACCES
DECL BOOL FIN_CAMPAGNE
BOOL COLONNE_2=FALSE
REAL OFFSET_X=300.0
REAL OFFSET_Y=0.0
REAL OFFSET_Z=200.0
REAL OFFSET_A=0.0
REAL OFFSET_B=0.0
REAL OFFSET_C=0.0
INT NB_RANGEE=0
INT NB_COLONNE=1
INT ROLLER_PLEIN=5
;ENDFOLD;___$$$___CONFIG.USB___end_____
ENDDAT
Display More
[/noae]
Hi again,
did you try to command the gripper out in in/out window?
If not go to input/output window, in T1 mode and command it.
The output configured is 17.
Also remember you need the deadman pulled in (i.e. drives on) as well as being in T1/2
No you can declare it as signal and use it in grippertec .
Sent from my GT-I9000 using Tapatalk 2
yes the submit is running and i pulled deadman but not working!!
are you sure that gripper itself is ok and wired correctly? (can you verify if you can control it by toggling outputs?)
Yes it work correctly when the outpout is on
Is it because i modify my SPS at this line "GESTION_ACCES ( )"?
&ACCESS RVO
&COMMENT PLC on control
DEF SPS ( )
;FOLD DECLARATIONS;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BASIS DECL;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
DECL INT WFD_PLUS,WFD_MINUS,OLD_WFD
;Automatik extern
DECL STATE_T STAT
DECL MODUS_T MODE
;ENDFOLD (BASIS DECL)
;FOLD USER DECL;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;Default value MSG_T
$MSG_T={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
;FOLD AUTOEXT INIT;%{E}%V3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
INTERRUPT ON 91
$LOOP_MSG[]=" "
MODE=#SYNC
$H_POS=$H_POS
TECH_MOTION=FALSE
;Automatik extern
IF $MODE_OP==#EX THEN
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
ENDIF
;ENDFOLD (AUTOEXT INIT)
;FOLD USER INIT;%{E}%V3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
; Please insert user defined initialization commands
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
WAIT FOR NOT($POWER_FAIL)
;FOLD ARC20 PLC;%{E}%V3.2.0,%MKUKATPA20,%CSPS,%VSPS,%P
IF ((ARC20==TRUE) AND (A10_OPTION==#DISABLED)) THEN
A20_TECH ( )
ENDIF
;ENDFOLD (ARC20 PLC)
;FOLD TOUCH PLC;%{E}%V3.2.0,%MKUKATPTS,%CSPS,%VSPS,%P
IF H70_OPTION THEN
IF ( NOT ($PRO_ACT) AND FG_ON_WORK AND ($OV_PRO==0)) THEN
IF (TOUCH_ACTIVE>0) AND (TOUCH_ACTIVE<5) THEN
IF TOUCH_O[TOUCH_ACTIVE].OUT_NR>0 THEN
$OUT[TOUCH_O[TOUCH_ACTIVE].OUT_NR]=FALSE
ENDIF
ENDIF
NOTAUS_TOUCH=TRUE ; error flag
$OV_PRO=OV_PRO_OLD
ENDIF
ENDIF
;ENDFOLD (TOUCH PLC)
;FOLD GRP PLC;%{E}%V3.2.0,%MKUKATPGRP,%CSPS,%VSPS,%P
IF (ZANGEN_FUNKT>0) THEN
H50 (5,AKT_ZANGE,DUMMY,GDEFAULT )
ZANGEN_FUNKT=0
ENDIF
;ENDFOLD (GRP PLC)
;FOLD SPOT PLC;%{E}%V3.2.0,%MKUKATPSPOT,%CSPS,%VSPS,%P
;Make your modifications here
;ENDFOLD (SPOT PLC)
;FOLD USER PLC;%{E}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Make your modifications here
;ENDFOLD (USER PLC)
GESTION_ACCES ( )
ENDLOOP
;FOLD ;%{H}
;FOLD
END
;ENDFOLD
DEF A20_TECH ( )
IF ($PRO_STATE1==#P_STOP) THEN
A20 (TECH_STOP )
ENDIF
END
DEF RESET_OUT ( )
INT N
$LOOP_MSG[]=" "
IF REFLECT_PROG_NR == 1 THEN
FOR N = 0 TO PGNO_LENGTH - 1
$OUT[PGNO_FBIT_REFL + N] = FALSE
ENDFOR
ENDIF
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ELSE
IF (PGNO_REQ<0) THEN
$OUT[-PGNO_REQ]=TRUE
ENDIF
ENDIF
END
;FOLD USER SUBROUTINE;%{H}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
;ENDFOLD
Display More
&ACCESS RVO
&PARAM TEMPLATE = C:\KRC\Roboter\Template\submit
&PARAM EDITMASK = *
DEF GESTION_ACCES( )
;FOLD DECLARATIONS;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD USER DECL;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI;%{PE}%3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD USER INIT;%{E}%3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
DEM_ACCES = FALSE
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
;FOLD USER PLC;%{PE}%3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Make your modifikations here
;ENDFOLD (USER PLC)
IF $IN[11] == TRUE THEN
DEM_ACCES = TRUE
ENDIF
IF $IN[10] == TRUE THEN
FIN_CAMPAGNE = TRUE
ENDIF
ENDLOOP
;FOLD ;%{H};
END
;ENDFOLD
;FOLD USER SUBROUTINE;%{H}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
Display More
Hi,
The program gestion_acess() it's a closed loop! Just comment the line in sps and see the result.
Regards
Neranol
It's ok thanks
i make that in my sps
&ACCESS RVO
&COMMENT PLC on control
DEF SPS ( )
;FOLD DECLARATIONS;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;FOLD BASIS DECL;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
DECL INT WFD_PLUS,WFD_MINUS,OLD_WFD
;Automatik extern
DECL STATE_T STAT
DECL MODUS_T MODE
;ENDFOLD (BASIS DECL)
;FOLD USER DECL;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
; Please insert user defined declarations
;ENDFOLD (USER DECL)
;ENDFOLD (DECLARATIONS)
;FOLD INI;%{PE}%V3.2.0,%MKUKATPBASIS,%CINIT,%VCOMMON,%P
;Default value MSG_T
$MSG_T={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}
;FOLD AUTOEXT INIT;%{E}%V3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
INTERRUPT DECL 91 WHEN $PRO_STATE1==#P_FREE DO RESET_OUT ()
INTERRUPT ON 91
$LOOP_MSG[]=" "
MODE=#SYNC
$H_POS=$H_POS
TECH_MOTION=FALSE
;Automatik extern
IF $MODE_OP==#EX THEN
CWRITE($CMD,STAT,MODE,"RUN /R1/CELL()")
ENDIF
;ENDFOLD (AUTOEXT INIT)
;FOLD USER INIT;%{E}%V3.2.0,%MKUKATPBASIS,%CSPS,%VAUTOEXT,%P
; Please insert user defined initialization commands
;ENDFOLD (USER INIT)
;ENDFOLD (INI)
LOOP
WAIT FOR NOT($POWER_FAIL)
;FOLD ARC20 PLC;%{E}%V3.2.0,%MKUKATPA20,%CSPS,%VSPS,%P
IF ((ARC20==TRUE) AND (A10_OPTION==#DISABLED)) THEN
A20_TECH ( )
ENDIF
;ENDFOLD (ARC20 PLC)
;FOLD TOUCH PLC;%{E}%V3.2.0,%MKUKATPTS,%CSPS,%VSPS,%P
IF H70_OPTION THEN
IF ( NOT ($PRO_ACT) AND FG_ON_WORK AND ($OV_PRO==0)) THEN
IF (TOUCH_ACTIVE>0) AND (TOUCH_ACTIVE<5) THEN
IF TOUCH_O[TOUCH_ACTIVE].OUT_NR>0 THEN
$OUT[TOUCH_O[TOUCH_ACTIVE].OUT_NR]=FALSE
ENDIF
ENDIF
NOTAUS_TOUCH=TRUE ; error flag
$OV_PRO=OV_PRO_OLD
ENDIF
ENDIF
;ENDFOLD (TOUCH PLC)
;FOLD GRP PLC;%{E}%V3.2.0,%MKUKATPGRP,%CSPS,%VSPS,%P
IF (ZANGEN_FUNKT>0) THEN
H50 (5,AKT_ZANGE,DUMMY,GDEFAULT )
ZANGEN_FUNKT=0
ENDIF
;ENDFOLD (GRP PLC)
;FOLD SPOT PLC;%{E}%V3.2.0,%MKUKATPSPOT,%CSPS,%VSPS,%P
;Make your modifications here
;ENDFOLD (SPOT PLC)
;FOLD USER PLC;%{E}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Make your modifications here
;ENDFOLD (USER PLC)
IF $IN[11] == TRUE THEN
DEM_ACCES = TRUE
ENDIF
IF $IN[10] == TRUE THEN
FIN_CAMPAGNE = TRUE
ENDIF
ENDLOOP
;FOLD ;%{H}
;FOLD
END
;ENDFOLD
DEF A20_TECH ( )
IF ($PRO_STATE1==#P_STOP) THEN
A20 (TECH_STOP )
ENDIF
END
DEF RESET_OUT ( )
INT N
$LOOP_MSG[]=" "
IF REFLECT_PROG_NR == 1 THEN
FOR N = 0 TO PGNO_LENGTH - 1
$OUT[PGNO_FBIT_REFL + N] = FALSE
ENDFOR
ENDIF
IF (PGNO_REQ>0) THEN
$OUT[PGNO_REQ]=FALSE
ELSE
IF (PGNO_REQ<0) THEN
$OUT[-PGNO_REQ]=TRUE
ENDIF
ENDIF
END
;FOLD USER SUBROUTINE;%{H}%V3.2.0,%MKUKATPUSER,%CSPS,%VSPS,%P
;Integrate your user defined subroutines
;ENDFOLD (USER SUBROUTINE)
;ENDFOLD
Display More