EL LENGUAJE V+
AUTORES: JAUME YEBRA PEREZ
NURIA LAGOS FERNÁNDEZ
PROFESOR: PERE PONSA
MANERAS DE COMUNICARSE
CON EL ROBOT
•
SISTEMAS DE RECONOCIMIENTO DE VOZ
•
ENSEÑANZA Y REPETICION (GUIADO)
•
LENGUAJES DE PROGRAMACION
TIPOS DE PROGRAMACIÓN


Gestual o Directa (Guiado)
 Programación por aprendizaje directo
 Programación mediante un dispositivo de
enseñanza (Botonera)
Textual
 Textual Explicita
 Textual especificativa
U N IV E R S ID A D
/F A B R IC A N T E
O R IG E N Y C A R A C T E R ÍS T IC A S
A P L IC A C IO N E S
W A V E (1 9 7 3 )
S ta n ford
- M a n ip u la ción d e
p iez a s m ecá n ica s.
- M on ta je d e bom ba d e
agua.
- E n sa m bla je.
A L (A ssem bly
L a n g u a g e) (1 9 7 4 )
S ta n ford
- N ivel a ctu a d or
- C om p ila d or a socia d o a l robot.
- S in ta x is sim p le: M O V E , S E A R C H ,
CEN TER.
- O bjetos tra ta d os: con sta n tes, va ria bles,
vectores, con ta d ores
- B a sa d o en P A S C A L .
- N ivel a ctu a d or.
- T ra n sform a d or d e coord en a d a s.
- S in ta x is com p leja : M O V E T O , M O V E V IA ,
etc., S E A R C H , A C R O S S S E A R C H ,
W IT H O U T ..., C E N T E R O N ...
- O bjetos tra ta d os: los d e W a ve m á s p la n os,
tra sla cion es, rota cion es.
- E stru ctu ra A lg ol.
- In terp rete escrito en A P T .
- N ivel objeto.
- S e p a rtió d e A L , p ero u tiliz a n d o B A S IC .
- N ivel a ctu a d or.
- T ra n sform a d or d e coord en a d a s.
- In stru ccion es d e m ovim ien to y d e con trol
(M O V E -, D E P A R T -).
- in stru ccion es A ritm ética s.
- E stru ctu ra A lg ol.
- D esa rrollo p or IC A M y rea liz a d o en F ortra m
- R obot P u m a d e
U n im a tion
- A lto n ivel in tera ctivo estru ctu ra d o.
- N ivel objeto.
- C om p ila d or a l n ivel.
- S in ta x is evolu cion a d a , com o coloca r X sobre
Y a lin ea n d o Z y T .
- D esa rrolla d o en cola bora ción con la
U n iversid a d d e M on tp ellier.
- L en g u a je tex tu a l d e a lto n ivel.
- E jecu ción d e va rios p rog ra m a s a l m ism o
tiem p o (m u ltita rea ).
- P roceso a sín cron o o ejecu ción d e ru tin a s d e
rea cción a n te d eterm in a d os even tos.
- L en g u a je tex tu a l d e a lto n ivel a lta m e n te
estru ctu ra d o.
- E stru ctu ra m od u la r d el p rog ra m a .
- U so d e estru ctu ra s p red efin id a s p a ra
esp ecifica r la con fig u ra ción d el robot y la s
ca ra cterística s d e la h erra m ien ta .
- B a sa d o en P A S C A L .
- S op orta la m u ltita rea .
- E stru ctu ra d e d a tos a socia d os m od ifica ble.
- B a sa d o en el está n d a r IR L , d escrito en la
n orm a D IN 6 6 3 1 2 , lo q u e a p orta
tra n sp orta bilid a d .
- C orresp on d e a l n ivel
d e d escrip ción d e la s
g a m a s d e m on ta je
a ctu a les.
L E N G U AJE
R A P T (1 9 7 8 )
V A L I (1 9 7 9 )
V A L II (1 9 8 3 )
MCL
A M L (1 9 7 9 )
FUN K Y
M A PLE
A U T O P A S S (1 9 7 7 )
S istem a s d e
T ou lou se
(U n iversid a d d e
E d im bu rg o)
U n im a tion
C in cin n a ti
M ila cron
IB M
LRP
ACMA
V + (1 9 8 9 )
A D E PT
R A P ID (1 9 9 4 )
K A REL
K RL
A BB
FA N UC
KUKA
- M a n ip u la ción d e
p iez a s m ecá n ica s.
- S istem a d e d esa rrollo
d e p rog ra m a s P oin ty.
- R obots U n im a tion .
- M on ta je
- U sa d o en A d ep t y
S ta ü bli
EL LENGUAJE V+
El lenguaje V+ aparece después de reemplazar el lenguaje VAL II, que a su
vez, Val II reemplazó a VAL.
El lenguaje V+ proporciona una gran interacción entre el hombre y el robot.
Presenta las siguientes aportaciones más relevantes:
• Inteligibilidad: Nos puede proporcionar una buena documentación,
además de un diseño ordenado y coherente del programa.
• Fiabilidad: Sobre todo en sistemas que deben responder a situaciones
imprevistas.
• Adaptabilidad: Se pueden mejorar, ampliar y modificar los programas con
poco esfuerzo.
• Transportabilidad: Los programas se pueden desarrollar en computadoras
(ej: un PC) para poder introducirlos, posteriormente, en el controlador del
sistema a través de un disquete.
LAS POSIBILIDADES DEL V+
- Programas de aplicación accesibles al operador mediante mouse,
ventanas y gráficos en color.
- Modificación de la trayectoria en tiempo real,
- Acceso a comunicación con el BUS VME.
- Cálculos booleanos, funciones matemáticas, funciones geométricas, etc..
- Funciones gráficas para crear ventanas, iconos, gestión de eventos,...
- Construcción estructurada.
- Movimientos continuos.
-7 tareas paralelas (con posible extensión a 28 tareas).
- Acceso a 256 entradas/ 256 salidas digitales externas, a 28 entradas / 16
salidas analógicas, 4 (ó 5) puertos de comunicación serie.
- Gestión de ejes suplementarios y de encoders externos
- Matrices de hasta 3 dimensiones.
- Variables numéricas de 32 bits, coma flotante, simple y doble precisión.
- Manipulación de cadenas de caracteres. Herramientas de detección de
errores.
- Los programas pueden ser escritos off-line en otros ordenadores
TIPOS DIFERENTES DE
PROGRAMAS CON V+
•Programas de control del robot: Estos programas controlan
directamente el robot y pueden contener cualquier instrucción,
además de las instrucciones de movimiento del robot.
• Programas de control de propósito general: Estos programas
no son controlados por el robot, y pueden ejecutarse al mismo
tiempo. Pueden controlar procesos externos a través delineas
binarias externas y comunicarse con el programa de control
mediante variables compartidas y señales de software.
• Programas de comandos del monitor: Estos programas se
componen de comandos de monitor, más que de instrucciones
de programa y, se usan, para realizar secuencias de comandos
del monitor.
TABLA DE OPERACIONES DE CONTROL DE
PROGRAMAS:
Palabra Clave
Tipo
Función
Estructura
ABORT
Instrucción de Programa
Terminal de ejecución de programa
GOTO label
CALL
Instrucción de Programa
Suspende la ejecución del programa actual y continua la
ejecución con un nuevo programa (es decir, un subprograma).
Ej: CALL check_data(locx, locy,
length)
CALLS
Instrucción de Programa
Suspende la ejecución del programa actual y continua la
ejecución con un nuevo programa
$program_name =
$program_list[program_select]
CASE
Instrucción de Programa
Proceso iniciado con una estructura del CASE definiendo el
valor de interés.
CLEAR.EVEN
T
CYCLE.END
Instrucción de Programa
Despeja un acontecimiento asociado a la tarea especificada.
Instrucción de Programa
Termina el programa de control especificado la próxima vez
que ejecuta una instrucción del programa de PARADA
DO
Instrucción de Programa
Introduce una estructura DO.
EXECUTE
Instrucción de Programa
Empieza la ejecución de un programa de control.
EXECUTE
Comando de Monitor
Empieza la ejecución de un programa de control.
EXIT
Instrucción de Programa
Sale de una estructura de control FOR, DO ...WHILE.
FOR
Instrucción de Programa
Ejecuta un grupo de instrucciones de programa un cierto
número de veces.
GET.EVENT
Función de valor Real
Devuelve acontecimientos que se fijan para la tarea
GOTO
Instrucción de Programa
Realiza un parte del programa identificado por la etiqueta
HALT
Instrucción de Programa
Para la ejecución de programa
IF...GOTO
Instrucción de Programa
IF...THEN
Instrucción de Programa
Mira si el valor de la etiqueta especificada de una expresión
lógica es TRUE
Ejecuta un grupo de instrucciones condicionales (o uno de dos
grupos) dependiendo del resultado de una expresión lógica.
EJ: DO.
code block
.
UNTIL expression
Ej: FOR index = start_val TO end_val
STEP incr
.
code block
.
END
IF logical_expression GOTO 100
TABLA DE OPERACIONES DE CONTROL DE
PROGRAMAS:
INT.EVENT
Instrucción de Programa
Envía una instrucción de SET.EVENT a la tarea actual si una interrupción ocurre en
un vector especificado del bus de VME.
LOCK
Instrucción de Programa
Fija la prioridad del cierre de la reacción del programa al valor dado.
MCS
Instrucción de Programa
Invoca un comando de control del monitor
NEXT
Instrucción de Programa
Rompe una estructura FOR, DO, o WHILE y comienza la iteración siguiente de la
estructura del control.
PAUSE
Instrucción de Programa
Para la ejecución de programa y no permite que el programa sea reasumido.
PRIORITY
Función de valor Real
Devuelve la prioridad actual del cierre de la reacción hacia el programa.
REACT / REACTI
Instrucción de Programa
Inicia el control continuo de una señal numérica especifica y acciona automáticamente
una llamada de subprograma si las transiciones de señal son correctas.
REACTE
Instrucción de Programa
Inicia la supervisión de los errores que ocurren durante la ejecución de la tarea del
programa actual.
REALASE
Instrucción de Programa
Permite la tarea siguiente disponible del programa para funcionar.
RETRY
Instrucción de Programa
Controla si la PROGRAM START causa un resumens de programa .
RETURN
Instrucción de Programa
Termina la ejecución de la ejecución actual del subprograma y de la ultima ejecución
del programa en el siguiente paso de la instruccion
RETURNE
Instrucción de Programa
Termina la ejecución de la ejecución actual del subprograma y de la ultima ejecución
del programa en el siguiente paso de la instrucción que causa la subrutina invocada.
RUNSIG
Instrucción de Programa
Enciende o apaga la señal digital mientras la ejecución de la tarea invocada continua.
SET.EVENT
Instrucción de Programa
Fija un acontecimiento asociado a la tarea especificada.
STOP
Instrucción de Programa
Termina la ejecución del ciclo del programa
WAIT
Instrucción de Programa
Pone en el programa un lazo de espera hasta que la condición es TRUE.
WAIT.EVENT
Instrucción de Programa
Suspende la ejecución de un programa hasta que ha ocurrido un acontecimiento
especificado, o hasta que ha transcurrido una cantidad de tiempo especificada.
WHILE
Interruptor de sistema
Inicia un proceso con la estructura WHILE si la condición es TRUE o salta la
estructura del WHILE si la condición es inicialmente FALSA.
TABLA DE FUNCIONES PARA VALORES
NUMÉRICOS
Palabra
Clave
Función
ABS
Retorna un valor absoluto
ATAN2
Devuelve el tamaño del ángulo (grados) que tiene la tangente trigonometrica igual a
value_1/value_2.
BCD
Convierte un valor real a formato de Código Decimal binario (BCD).
COS
Retorna el cosinos trigonométrico del ángulo dado.
DCB
Convierte digitos BCD a un número entero equivalente.
FRACT
Retorna la parte fraccionada de un argumento.
INT
Retorna la parte entera de un número.
INTB
Retorna el valor de dos bytes de un string interpretado
MAX
Devuelve el valor máximo contenido en la lista de valores.
MIN
Devuelve el valor mínimo contenido en la lista de valores.
OUTSIDE
Comprueba un valor para ver si es exterior al rango especificado.
PI
Devuelve el valor de la constante matemática pi (3,141593).
RANDOM
Devuelve un número pseudoaleatorio.
SIGN
Devuelve el valor 1 con la señal del parámetro del valor.
SIN
Devuelve el seno trigonométrico de un ángulo dado.
SQR
Devuelve el cuadrado del parámetro.
SQRT
Devuelve la raíz cuadrada del parámetro.
Tabla de funciones de sistemas
de control:
Palabra clave
Función
DEFINED
Determina si se ha definido una variable.
ERROR
$ERROR
Devuelve el número del error de un error reciente que causó una parada mientras se ejecutaba el programa o causó una
reacción de REACTE.
Retorna el mensaje de error asociado con el código de error.
FREE
Devuelve la cantidad de espacio de almacenaje libre inutilizado de la memoria.
GET.EVENT
Retorna acontecimientos que se fijan para la tarea especificada.
ID
Devuelve los que identifican la configuración del sistema actual.
$ID
Devuelve la fecha de creación del sistema y la información de edit/revision.
LAST
Devuelve el índice más alto usado para una matriz (dimensión).
PARAMETER
Devuelve el ajuste actual del parámetro nombrado del sistema.
PRIORITY
Devuelve la prioridad actual del cierre de la reacción para el programa.
SELECT
Devuelve el número de la unidad que es seleccionado actualmente por la tarea actual para el dispositivo nombrado.
STATUS
Retorna la información de estado para una aplicación de programa.
SWITCH
Devuelve una indicación del ajuste de un interruptor del sistema.
TAS
TASK
Devuelve el valor actual de una variable de valor real y le asigna un nuevo valor. Las dos acciones se hacen indivisiblemente,
así que, ninguna otra tarea del programa puede modificar la variable en el mismo tiempo.
Retorna información sobre una tarea de la ejecución de programa.
TIME
Devuelve un valor del número entero que representa la fecha o la hora especificada en el parámetro dado, de la secuencia.
$TIME
Devuelve un valor de la secuencia que contiene la fecha actual del sistema y hora o la fecha y la hora especificadas.
TIMER
Devuelve el valor del tiempo actual (en segundos) del contador de tiempo especificado del sistema.
TPS
Devuelve el número de las señales del reloj del sistema que ocurren por segundo (señales por segundo).
APLICACIONES
• Aplicaciones en fundición.
• Aplicaciones de Soldadura
• Aplicación de Pintura, Esmalte, Partículas de
metal, etc.
• Alimentación de máquinas.
• Corte.
• Montaje / Ensamblaje
• Paletización
• Pick and place
Aplicaciones en fundición.
La fundición de materiales por
inyección fue el primer proceso
robotizado en 1960.
Los robots, en estos procesos son
utilizados para el transporte de las
piezas a un lugar de enfriado y
posteriormente a otro proceso
(desbardado, corte, etc.).
Aplicaciones de Soldadura
La tarea más robotizada dentro de la
fabricación de automóviles es la
soldadura de carrocerías.
Los robots de soldadura por puntos
precisan capacidad de cargas del orden
de los 50-100 Kg. y estructura articular,
con suficientes grados de libertad (5 o 6)
como para posicionar y orientar la pinza
de soldadura (o pieza según el caso) en
lugares de difícil acceso.
Aplicación de Pintura,
Esmalte, Partículas de metal,
etc.
Los robots de pintura suelen ser robots
articulares, ligeros, con 6 o más grados de
libertad que les permiten proyectar pintura en
todos los huecos de la pieza. Cuentan con
protecciones especiales para defenderse de las
partículas en suspensión dentro de la cabina
de pintura y sus posibles consecuencias
(explosiones, incendio, deterioro mecánico).
También tienen una accionamiento hidráulico
por el riesgo de incendio.
Alimentación de máquinas.
La utilización de robots para alimentar
máquinas aparece por la peligrosidad y
monotonía de las operaciones de carga y
descarga de maquinas.
Los robots usados en estas tareas son de baja
complejidad, precisión media, numero reducido
de grados de libertad y un control sencillo,
basado, en ocasiones, con manipuladores
secuenciales y con un campo de acción grande.
Las estructuras mas frecuentemente utilizadas
son la cilíndrica, esférica y articular. También
la cartesiana puede aportar solución.
Corte.
El corte de materiales mediante el robot
es una aplicación reciente, gracias a la
capacidad de reprogramación del robot y
su integración en un sistema que hace
que sea el elemento ideal para transportar
la herramienta de corte sobre la pieza,
realizando con precisión un programa de
corte desde un sistema de diseño asistido
por computador (CAD).
Montaje / Ensamblaje.
Las operaciones de montaje, por la gran
precisión y habilidad que normalmente
exigen, presentan grandes dificultades
para su automatización flexible.
El tipo SCARA ha alcanzado gran
popularidad en este tipo de tareas por su
bajo coste y buenas características. Estas
se consiguen por su adaptabilidad
selectiva, presentando facilidad para
desviarse, por una fuerza externa, en el
plano horizontal y una gran rigidez para
hacerlo en el eje vertical.
Paletización
La paletización es un proceso
básicamente de manipulación,
consistente en disponer de piezas sobre
una plataforma o bandeja (palet).
Generalmente, las tareas de paletización
implican el manejo de grandes cargas, de
peso y dimensiones elevadas. Por este
motivo, los robots empleados en este tipo
de aplicaciones acostumbran a ser robots
de gran tamaño, con una capacidad de
carga de 10 a 150 kg aproximadamente.
Pick and place
La misión de un robot trabajando en
un proceso de pick and place
consiste en recoger piezas de un
lugar y depositarlas en otro
El propio robot gestiona las líneas de
alimentación de las cajas y de palets,
a la vez que toma las decisiones
necesarias para situar la caja en el
palet con la posición y orientación
adecuadas de una manera flexible.
EJEM PLO D E M EN U
.P R O G R A M su b .m e n u ()
;
;
;
;
;
;
;
;
D E S C R IP C IÓ N : E ste p ro g ra m a o fre ce a l o p e ra rio u n m e n ú co n la s
o p cio n e s q u e p u e d e se le ccio n a r, d e sd e su te rm in a l d e u su a rio
(b o to n e ra / P C ).
D e sp u é s d e in tro d u cir u n a e n tra d a d e sd e e l te c la d o , e l p ro g ra m a
e je cu ta rá la o p e ra ció n se le ccio n a d a .
E l m e n ú in clu ye la e je cu ció n d e l p ro g ra m a d e p ick a n d p la ce , m o stra r
lo s p u n to s, y vo lve r a l m e n u p rin cip a l.
S U P O N E M O S : L a s fu n cio n e s p ick.p la ce () y te a ch () d e fin id a s.
A U T O o p cio n , sa lir, $ fra se
sa lir = F A L S E
DO
TYPE
TYPE
TYPE
TYPE
/C 2 ,
/C 1 ,
/C 1 ,
/C 1 ,
"M E N U D E O P E R A C IÓ N P IC K A N D P L A C E "
" 1 = > In icia liza r p ick a n d p la ce "
" 2 = > M o stra r lo ca liza ció n p u n to s"
" 3 = > V o lve r a l m e n u p rin cip a l", /C 1
P R O M P T "S e le ccio n a u n a o p cio n y p re sio n a IN T R O : ", $ fra se
o p cio n = V A L ($ fra se )
;C o n vie rte u n strin g e n u n n u m e ro
C A S E o p cio n O F
;e n tra m o s e n e l m e n u ...
VALUE 1:
;...se le ccio n 1
T Y P E /C 2 , "In icia n d o o p e ra cio n ..."
C A L L m o ve .p a rts()
VALUE 2:
;...se le ccio n 2
C A L L te a ch ()
VALUE 3:
;...se le ccio n 3
sa lir = T R U E
ANY
;...si se p re sio n a cu a lq u ie r o tra te cla
T Y P E /B , /C 1 , "** E N T R A D A N O V A L ID A E R R O R **"
END
;F in d e l C A S E
U N T IL sa lir
;F in d e l D O
.E N D
E s te p ro g ra m a p e rm ite a l o p e ra rio g ra b a r la s
p o s ic io n e s d e p ic k , p la c e y s ta rt, c o n la p a le ta d e
c o n tro l m a n u a l.
.P R O G R A M te a c h (p ic k , p la c e , s ta rt)
; A B S T R A C T : E s te p ro g ra m a s e u s a p a ra g ra b a r la s p o s ic io n e s
;"p ic k ", "p la c e ", y "s ta rt" d e l "m o v e .p a rts " p ro g ra m a .
; P A R Á M E T R O S D E E N T R A D A : N in g u n o
; P A R Á M E T R O S D E S A L ID A : p ic k , p la c e , y e m p e z a r
; E F E C T O S S E C U N D A R IO S : E l ro b o t e s tá in a c tiv o m ie n tra s la ru tin a e s tá
; a c tiv a d a .
A U T O $ b o rra r.d is p la y
;v a ria b le
$ b o rra r.d is p la y = $ C H R (1 2 )+ $ C H R (7 )
A T T A C H (1 )
D E T A C H (0 )
;D e s a c tiv a e l c o n tro l a u to m a tic o d e l ro b o t
;R e a liz a e l c o n tro l m a n u a l d e l ro b o t
; S a lid a e n e l d is p la y d e l c o n tro l m a n u a l.
W R IT E (1 ) $ b o rra r.d is p la y , "M u e v e e l ro b o t a la p o s ic io n 'S T A R T ' & p u ls a
RECORD"
W R IT E (1 ) /X 1 7 , "R E C O R D ", $ C H R (5 ), /S
W R IT E (1 ) $ C H R (3 0 ), $ C H R (3 ), /S ;P a rp a d e a e l le d d e la p a le ta d e c o n tro l
W A IT P E N D A N T (3 )
H E R E s ta rt
;E s p e ra r q u e u n a te c la s e a p u ls a d a
;G ra b a la p o s ic ió n "s ta rt"
; A v is o , e n e l d is p la y d e la s e g u n d a lo c a liz a c ió n
W R IT E (1 ) $ b o rra r.d is p la y , "M u e v e e l ro b o t a la p o s ic io n 'P IC K ' y p u ls a
RECORD"
W R IT E (1 ) /X 1 7 , "R E C O R D ", $ C H R (5 ), /S
W A IT P E N D A N T (3 )
H E R E p ic k
; E s p e ra r q u e u n a te c la s e a p u ls a d a
;G ra b a la p o s ic ió n "p ic k "
; A v is o , e n e l d is p la y d e la te rc e ra lo c a liz a c ió n
W R IT E (1 ) $ b o rra r.d is p la y , "M u e v e e l ro b o t a la p o s ic ió n 'P L A C E ' y p u ls a
RECORD"
W R IT E (1 ) /X 1 7 , "R E C O R D ", $ C H R (5 ), /S
W A IT P E N D A N T (3 )
; E s p e ra r q u e u n a te c la s e a p u ls a d a
H E R E p la c e
;G ra b a la p o s ic io n "p la c e "
A T T A C H (0 )
D E T A C H (1 )
;A c tiv a e l c o n tro l a u to m a tic o d e l ro b o t
;A n u la e l c o n tro l m a n u a l d e l ro b o t
RETURN
.E N D
;V u e lv e a lla m a r a l p ro g ra m a
; F in a liz a e l p ro g ra m a
E je m p lo d e P a le tiz a c ió n
.P R O G R A M m o v e .p a rts ()
;D E S C R IP C IO N :
E s te p ro g ra m a c o g e c a ja s e n la lo c a liz a c ió n “p ic k ”
; y la s d e p o s ita e n “p la c e ”, in c re m e n ta n d o la z d e p la c e , y a s í a p ila n d o
; la s c a ja s e n e l p a le t.
p a rts = 6
; n º d e c a ja s a a p ila r
h e ig h t1 = 3 0 0
; a ltu ra d e “a p p ro a c h /d e p a rt” e n “p ic k ”
h e ig h t2 = 5 0 0
; a ltu ra d e “a p p ro a c h /d e p a rt” e n “p la c e ”
p a ra m e te r H A N D .T IM E = 0 .1 6
; m o v im ie n to d e l b ra z o le n to
OPEN
; a p e rtu ra d e p in z a
R IG H T Y
; s e le c c io n a m o s c o n fig u ra c ió n d e re c h a
M O V E s ta rt
; m o v e r a la lo c a liz a c ió n s e g u ra d e in ic io
F O R i = 1 T O p a rts
; in ic ia r e l a p ila d o d e c a ja s
A P P R O p ic k , h e ig h t1
; ir a “p ic k -u p ”
M O V E S p ic k
; m o v e r h a c ia la c a ja
CLO SEI
; c e rra r la p in z a
D E P A R T S h e ig h t1
; v o lv e r a la p o s ic ió n a n te rio r
A P P R O p la c e , h e ig h t2
; ir a “p u t-d o w n ”
M O V E S p la c e
; m o v e r a la lo c a liz a c ió n d e d e s tin o
OPENI
; a b rir la p in z a
D E P A R T S h e ig h t2
; v o lv e r a la p o s ic ió n a n te rio r
S H IF T h e ic h t2 B Y 0 .0 0 , 0 .0 0 , 3 0 0
END
T Y P E “F in d e ta re a . ”, /IO , p a rts , “ c a ja s a p lia d a s .”
RETURN
; fin d e l p ro g ra m a
.E N D
Descargar

EL LENGUAJE V+