1. Home
    1. Dashboard
    2. Search
  2. Forum
    1. Unresolved Threads
    2. Members
      1. Recent Activities
      2. Users Online
      3. Team Members
      4. Search Members
      5. Trophys
  3. Articles
  4. Blog
  5. Videos
  6. Jobs
  7. Shop
    1. Orders
  • Login or register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Blog Articles
  • Products
  • More Options
  1. Robotforum - Support and discussion community for industrial robots and cobots
  2. Forum
  3. Industrial Robot Support and Discussion Center
  4. KUKA Robot Forum
Your browser does not support videos RoboDK Software for simulation and programming
Visit our Mainsponsor
IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Sponsored Ads

gripper

  • job111a
  • May 22, 2014 at 8:54 PM
  • Thread is Resolved
  • job111a
    Trophies
    3
    Posts
    72
    • May 22, 2014 at 8:54 PM
    • #1

    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

  • M.Ozkan
    Reactions Received
    22
    Trophies
    5
    Posts
    538
    • May 22, 2014 at 11:00 PM
    • #2

    Please check Submit interpreter running correctly.

  • neranol
    Trophies
    3
    Posts
    33
    • May 23, 2014 at 7:53 AM
    • #3

    hi,

    please attach your config.dat file or at least the piece of code with gripper configuration.

    Regards

  • job111a
    Trophies
    3
    Posts
    72
    • May 23, 2014 at 1:10 PM
    • #4

    hi,

    please attach your config.dat file or at least the piece of code with gripper configuration.

    Regards

    [noae]

    Code
    &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]

  • neranol
    Trophies
    3
    Posts
    33
    • May 23, 2014 at 2:32 PM
    • #5

    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.

  • eusty
    Reactions Received
    6
    Trophies
    4
    Posts
    721
    • May 23, 2014 at 2:49 PM
    • #6

    Also remember you need the deadman pulled in (i.e. drives on) as well as being in T1/2 :icon_smile:

  • job111a
    Trophies
    3
    Posts
    72
    • May 23, 2014 at 6:01 PM
    • #7

    Yes i try to command the gripper out in in/out window.

    Is it because i declare it in my config.dat?

    Code
    SIGNAL FERMETURE_PINCE $OUT[17]
  • eusty
    Reactions Received
    6
    Trophies
    4
    Posts
    721
    • May 23, 2014 at 6:51 PM
    • #8

    No you can declare it as signal and use it in grippertec .

    Sent from my GT-I9000 using Tapatalk 2

  • job111a
    Trophies
    3
    Posts
    72
    • May 27, 2014 at 10:57 PM
    • #9

    yes the submit is running and i pulled deadman but not working!!

  • panic mode
    Reactions Received
    1,280
    Trophies
    11
    Posts
    13,086
    • May 28, 2014 at 3:22 AM
    • #10

    are you sure that gripper itself is ok and wired correctly? (can you verify if you can control it by toggling outputs?)

    1) read pinned topic: READ FIRST...

    2) if you have an issue with robot, post question in the correct forum section... do NOT contact me directly

    3) read 1 and 2

  • job111a
    Trophies
    3
    Posts
    72
    • May 28, 2014 at 10:19 PM
    • #11

    Yes it work correctly when the outpout is on

  • job111a
    Trophies
    3
    Posts
    72
    • June 3, 2014 at 2:12 PM
    • #12

    Is it because i modify my SPS at this line "GESTION_ACCES ( )"?

    Code
    &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
    Code
    &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
  • neranol
    Trophies
    3
    Posts
    33
    • June 21, 2014 at 12:31 AM
    • #13

    Hi,
    The program gestion_acess() it's a closed loop! Just comment the line in sps and see the result.
    Regards


    Neranol

  • job111a
    Trophies
    3
    Posts
    72
    • June 24, 2014 at 6:18 PM
    • #14

    It's ok thanks

    i make that in my sps

    Code
    &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

Advertising from our partners

IRBCAM
Robotics Channel
Robotics Training
Advertise in robotics
Advertise in Robotics
Advertise in Robotics

Job Postings

  • Anyware Robotics is hiring!

    yzhou377 February 23, 2025 at 4:54 AM
  • How to see your Job Posting (search or recruit) here in Robot-Forum.com

    Werner Hampel November 18, 2021 at 3:44 PM
Your browser does not support videos RoboDK Software for simulation and programming

Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000

Thread Tag Cloud

  • abb
  • Backup
  • calibration
  • Communication
  • CRX
  • DCS
  • dx100
  • dx200
  • error
  • Ethernet
  • Ethernet IP
  • external axis
  • Fanuc
  • help
  • hmi
  • I/O
  • irc5
  • IRVIsion
  • karel
  • kawasaki
  • KRC2
  • KRC4
  • KRC 4
  • KRL
  • KUKA
  • motoman
  • Offset
  • PLC
  • PROFINET
  • Program
  • Programming
  • RAPID
  • robodk
  • roboguide
  • robot
  • robotstudio
  • RSI
  • safety
  • Siemens
  • simulation
  • SPEED
  • staubli
  • tcp
  • TCP/IP
  • teach pendant
  • vision
  • Welding
  • workvisual
  • yaskawa
  • YRC1000
  1. Privacy Policy
  2. Legal Notice
Powered by WoltLab Suite™
As a registered Member:
* You will see no Google advertising
* You can translate posts into your local language
* You can ask questions or help the community with your knowledge
* You can thank the authors for their help
* You can receive notifications of replies or new topics on request
* We do not sell your data - we promise

JOIN OUR GREAT ROBOTICS COMMUNITY.
Don’t have an account yet? Register yourself now and be a part of our community!
Register Yourself Lost Password
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on Google Play
Robotforum - Support and discussion community for industrial robots and cobots in the WSC-Connect App on the App Store
Download