Programación 2 ABB.
Aprender Lenguaje RAPID, podremos programar desde RobotStudio, o desde la FlexPendant.
- Instrucción TPReadFK; Mostrará en la pantalla de operador un mensaje con distintas opciones de respuesta. TReadFK se encarga de leer las teclas de función de la programadora, en primer lugar indicaremos la variable en la cual guardaremos la respuesta, a continuación indicaremos el texto que se mostrará en la pantalla, por ultimo tenemos 5 StEmpty con los que jugaremos para ir activando o desactivando botones. Si los dejamos por defecto no se mostrará ningún botón, si queremos mostrar un botón sustituiremos ese texto por el nombre que le queremos dar a nuestro botón, como veremos en el ejemplo. El formato de esta instrucción es :
TPReadFK <Variable>, "Texto a mostrar en la pantalla", StEmpty, StEmpty, StEmpty, StEmpty, StEmpty;
- Ejemplo usando esta instrucción TPReadFK; Si quiere realizar el ejemplo puede tomar como base el ejercicio Programación 1 ABB:
MODULE Module1 CONST robtarget Target_10:=[[547.330665099,0,451.64730631],[0.190808996,0,0.981627183,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20:=[[579.997326386,-300.000184257,-0.002460883],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30:=[[580.000005471,300.000017813,-0.000058921],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20_2:=[[580.004388386,-300.000173756,49.997538618],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30_2:=[[580.007086271,300.000028414,49.999940578],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_50:=[[339.99,300,0],[0.014306426,0.021153167,0.999670738,0.002507023],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_50_2:=[[339.99,300,50],[0.014306426,0.021153167,0.999670738,0.002507023],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_40:=[[589.999996765,300.000000063,-0.000079507],[0.014305147,0.021155022,0.999670717,0.002507207],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; VAR Num Numero := 0; !*********************************************************** ! ! Módulo: Module1 ! ! Descripción: ! <Introduzca la descripción aquí> ! ! Autor: Carlos Urrestarazu ! ! Versión: 1.0 ! !*********************************************************** !*********************************************************** ! ! Procedimiento Main ! ! Este es el punto de entrada de su programa ! !*********************************************************** PROC main() TPErase; TPReadFK Numero,"Seleccióne la secuencia a Realizar ", "Secuencia 1", "Secuencia 2",stEmpty,stEmpty,stEmpty; IF Numero = 1 THEN TPWrite "Soldando Derecha"; MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; ELSEIF Numero = 2 THEN TPWrite "Soldando Izquierda"; MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_30,v1000,fine,MyTool\WObj:=wobj0; ENDIF MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; !Añada aquí su código ENDPROC ENDMODULE
Programación 1 ABB.
Aprender Lenguaje RAPID, podremos programar desde RobotStudio, o desde la FlexPendant.
- Control de Flujo Compact IF; Ejecutará una instrucción solo si la condición se cumple:
IF "Condición" "Instrucción";
- Ejemplo Compact IF:
IF IN1 = 0 MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0;
- Control de Flujo IF; Ejecutará diferentes instrucciones, si la condición se cumple ejecutará las instrucciones situadas entre "THEN" y "ELSE", si no se cumple ejecutará las situadas entre "ELSE" y "ENDIF":
IF "Condición" THEN "Instrucciones que deseamos realizar si la Condición se cumple" ELSE "Instrucciones que deseamos realizar si la Condición NO se cumple" ENDIF
- Ejemplo IF:
IF IN1 = 0 THEN !Esto es un comentario en RAPID !Si la Condición "IN1 = 0" se Cumple se ejecutará la siguiente Instrucción: MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; ELSE !Si la Condición "IN1 = 0" NO se Cumple se ejecutará la siguiente Instrucción: MoveJ Target_20,v1000,fine,MyTool\WObj:=wobj0; ENDIF
- Instrucción para escribir un mensaje en la pantalla de operador TPWrite; Esta instrucción mostrará un mensaje en la pantalla del operador, de esta manera podemos informar de que proceso está realizando el Robot, o número de piezas realizadas..., formato de la instrucción:
TPWrite "Texto a Mostrar en la Pantalla de Operador";
- Ejemplo TPWrite:
TPWrite "Realizando Proceso de soldadura";
- Instrucción para borrar la pantalla de operador TPErase; Esta instrucción borrará la pantalla del operador:
TPErase;
- Ejemplo usando tres de las instrucciones anteriores IF, TPWrite & TPErase; Si quiere realizar el ejemplo puede tomar como base el ejercicio Simulación 2 ABB:
MODULE Module1 CONST robtarget Target_10:=[[547.330665099,0,451.64730631],[0.190808996,0,0.981627183,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20:=[[579.997326386,-300.000184257,-0.002460883],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30:=[[580.000005471,300.000017813,-0.000058921],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_20_2:=[[580.004388386,-300.000173756,49.997538618],[0.00007062,0.000000176,-0.999999998,0.000000105],[-1,1,-2,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_30_2:=[[580.007086271,300.000028414,49.999940578],[0.000070808,0.000000206,-0.999999997,0.000000106],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_50:=[[339.99,300,0],[0.014306426,0.021153167,0.999670738,0.002507023],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_50_2:=[[339.99,300,50],[0.014306426,0.021153167,0.999670738,0.002507023],[0,-1,1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; CONST robtarget Target_40:=[[589.999996765,300.000000063,-0.000079507],[0.014305147,0.021155022,0.999670717,0.002507207],[0,-1,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]; !*********************************************************** ! ! Módulo: Module1 ! ! Descripción: ! <Introduzca la descripción aquí> ! ! Autor: Carlos Urrestarazu ! ! Versión: 1.0 ! !*********************************************************** !*********************************************************** ! ! Procedimiento Main ! ! Este es el punto de entrada de su programa ! !*********************************************************** PROC main() TPErase; IF IN1 = 0 THEN TPWrite "Soldando Derecha"; MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_20_2,v1000,fine,MyTool\WObj:=wobj0; ELSE TPWrite "Soldando Izquierda"; MoveJ Target_30_2,v1000,fine,MyTool\WObj:=wobj0; MoveJ Target_30,v1000,fine,MyTool\WObj:=wobj0; ENDIF MoveJ Target_10,v1000,fine,MyTool\WObj:=wobj0; !AñadWa aquí W""digo ENDPROC ENDMODULE