martes, 24 de marzo de 2015

Prog_2_2 - Código


DEF  Program_2_2 ( )
  
   INT I, J, X, Y, Z, PIEZAS
   REAL LARGO, ANCHO, ALTO
   POS CINTA, PALET
  
INI

PTP HOME  Vel= 100 % DEFAULT
   $Tool = TOOL_DATA[2]
   FOR I = 1 TO 6
      $ACC_AXIS[I] = 50
      $VEL_AXIS[I] = 50
   ENDFOR
  
   LARGO = 80
   ANCHO = 41
   ALTO = 40
   CINTA.X = (9*ANCHO) - (ANCHO/2)
   CINTA.Y = (2*LARGO) - (LARGO/2)
   CINTA.Z = ALTO + 50
   PALET.X = (3 * ANCHO) - (ANCHO/2)
   PALET.Y =  (2 * LARGO) - (LARGO/2)
   PALET.Z = ALTO + 50
   PIEZAS = 0
  
   $BASE = BASE_DATA[4]
   PTP{X 340, Y 120, Z 90, A 0, B -90, C -180, S 'B110', T 'B110010'}
  
   FOR Z = 1 TO 3
      FOR Y = 1 TO 2
         FOR X = 1 TO 3
            PIEZAS = PIEZAS +1
           
            SWITCH PIEZAS
               CASE 2, 4, 6, 8, 10, 12, 14, 16, 18
                  CINTA.Y = LARGO/2
                 
                 
                  $BASE = BASE_DATA[4]
                 
                  LIN_REL CINTA.X
                  LIN_REL CINTA.Y
                  LIN_REL CINTA.Z
                  LIN_REL {Z -50}
                  COGER()
                  LIN_REL {Z 100}
                  CINTA.X = CINTA.X - ANCHO
                 
               CASE 1, 3, 5, 7, 9, 11, 13, 15
                 
                  CINTA.Y = LARGO * 1.5
                 
                  $BASE = BASE_DATA[4]
                 
                  LIN_REL CINTA.X
                  LIN_REL CINTA.Y
                  LIN_REL CINTA.Z
                  LIN_REL {Z -50}
                  COGER()
                  LIN_REL {Z 100}
                 
                 
            ENDSWITCH
           
           
            $BASE = BASE_DATA[5]
            LIN PALET
            LIN_REL {Z -50}
            SOLTAR()
            LIN_REL {Z 50}
            PALET.X = PALET.X - ANCHO
         ENDFOR
         PALET.X = (3 * ANCHO) - (ANCHO/2)
         PALET.Y = PALET.Y - LARGO
      ENDFOR
      PALET.Y = (2 * LARGO) - (LARGO /2)
      PALET.Z = PALET.Z + ALTO
   ENDFOR

FOLD PTP HOME  Vel= 100 % DEFAULT
  
END

DEF COGER()
  
   $OUT[2]=TRUE
   $OUT[5]=FALSE
   WAIT SEC 1.000000
  
END

DEF SOLTAR()
  
   $OUT[2]=FALSE
   $OUT[5]=TRUE
   WAIT SEC 1.000000
END

No hay comentarios:

Publicar un comentario