You are on page 1of 144

GUA

VAL 2

MANUAL N 1
Copyright 1992 by STUBLI S.A.
D.280.172.05. (A)
NDICE

A. Introduccin ......................................................................................3
B. Presentacin y arquitectura general .................................................4
C. La seguridad .....................................................................................8
D. Puesta en marcha y paro de la unidad de mando ............................10
E. Referencias, caractersticas y definicin de los ngulos ...................17
F. Cmo poner en movimiento el brazo del robot, examen de
los mandos manuales, convenios de escritura .................................22
G. Como lanzar un programa ................................................................27
Como ejecutar un programa durante su ejecucin ...........................29
Modos de funcionamiento ................................................................31
Como crear un programa ..................................................................32
H. Comandos de edicin .......................................................................33
I. Estructura y operaciones con el contenido en memoria ....................47
Variable punto .................................................................................49
Punto de precisin ...........................................................................50
Variable real y operaciones matemticas ........................................52
Variable dimensionada .....................................................................55
Visualizacin de ttulos y contendo (LISTP, LISTR, etc,) .................56
Declaracin de programas y variables .............................................57
RENAME, COPY, DELETE .............................................................59
Carcter de control del terminal (pantalla / teclado) ........................61
J. Instrucciones del lenguaje VAL II .......................................................62
Generalidades sobre la ejecucin de instrucciones .........................63
MOVE, MOVES ................................................................................65
APPRO, APPROS ............................................................................66
DEPART, DEPARTS ........................................................................67
SPEED .............................................................................................68
OPEN, CLOSE, OPENI, CLOSEI ......................................................69
DELAY, SET, DEST .........................................................................70
Listado de las palabras clave ...................................... ....................73
SHIFT ................................................................................................74
DRIVE ...............................................................................................75
Presentacin de programas .............................................................76
Como comentar un programa ..........................................................78
Interrupcin de un programa con PAUSE, HALT ............................79
K. Los subprogramas ............................................................................80
L. Los saltos condicionales e incondicionales .......................................82
Operadores lgicos y relacionales .....................................................83
M. Comunicacin pantalla /teclado ........................................................84
PROMPT ..........................................................................................85
TYPE .................................................................................................86
TPMESS ...........................................................................................89
N. Entrada / salida exteriores (todo o nada) .........................................91
Entradas por escrutinio: IF SEG, WAIT ............................................92
Entrada por interrupcin: REACT, REACTI ......................................93
Salidas: SIGNAL RESET, RUNSIG ...................................................96

1
O. Cambio de referencia .......................................................................99
Cmo desplazar la referencia de base ............................................100
Cmo desplazar la referencia til ....................................................101
Transformadas compuestas ...........................................................102
FRAME ...........................................................................................105
P. Control ..............................................................................................106
READY ...........................................................................................107
ALIGN .............................................................................................108
ABOVE, BELOW ............................................................................109
RIGHTY , LEFTY ............................................................................110
FLIP, NOFLIP .................................................................................111
Q. Control de trayectoria ........................................................................112
COARSE, FINE ..............................................................................113
DISABLE CP, ENABLE CP, NULL, NONULL .................................114
INTOFF, INTON, BREAK ................................................................115
ELSPON, ELSPOFF .......................................................................116
PAYLOAD .......................................................................................117
R. Operaciones con disquetes ...............................................................118
FORMAT, LISTF, STORE, LOAD, DELETE, COMPRESS, RENAMEF
S. Procedimiento AUTOSTART .............................................................127
Su papel, su procedimiento .............................................................128
T. Comandos especficos: STATUS, FREE, DONE, ZERO, WHERE ...130
AN. Anexa: Ejemplo de aplicacin ...........................................................132
Diversas
- cableado de entradas
- cableado de salidas
- cableado del conector para impresora

2
INTRODUCCIN

Estos fascculos se han concebido como soporte del curso para asegurar la formacin de los usuarios
de robots en lenguaje VAL II VAL +.

Sirven para complementar el "PROGRAMMING MANUAL" suministrado con coda robot y en ningn
caso pueden sustituirlo.

El numero de estos fascculos es de tres, correspondiendo cada uno a un curso.

Se han dividido los cursos sobre robots que utilizan el lenguaje VAL II o VAL + en tres partes.

1. Un curso que permite la utilizacin de funciones bsicas del robot. Es el curso n 1, suficiente para la
gran mayora de las aplicaciones industriales.

2. Un curso sobre todas las instrucciones y posibilidades del lenguaje. Comprende tambin la
modificacin de trayectorias en tiempo real. Es el curso n 2.

3. Un curso sobre la funcin supervisor, (comunicacin y pilotaje a travs de otro ordenador), es el curso
n 3.

Nota importante.

Para seguir los cursos n2 y n3, se necesita poseer bien las bases definidas en el curso n1.

P.S.: La parte posterior de cada hoja se ha dejado voluntariamente en blanco a fin que usted pueda
escribir sus anotaciones personales durante el curso.

Todas las instrucciones descritas en este fascculo corresponden a la versin 2.0 del logiciel VAL II VAL
+.

3
PRESENTACIN GENERAL

4
CONFIGURACIN MATERIAL

5
LA SEGURIDAD EN GENERAL

Regla n 1: Vigilar que no haya nadie en el permetro del robot en el momento de puesta en marcha de
este.

Regla n 2: En la ejecucin de un programa, SIEMPRE se deber arrancar a VELOCIDAD LENTA. Una


vez completado un ciclo se puede aumentar progresivamente la velocidad hasta el valor final deseado.

Regla n 3: Durante la puesta a punto de un programa, estar SIEMPRE preparado para pulsar el
BOTON OFF y como ltimo recurso, pulsar uno de los BOTONES ROJOS situados en el armario de
mandos.

Regla n 4: Al finalizar el desplazamiento del robot con el mando manual, poner la velocidad lenta.

8
REGLAS DE SEGURIDAD
CONCERNIENTES AL PERSONAL DE MANTENIMIENTO

Regla n 1: Antes de cualquier intervencin sobre el brazo cortar la alimentacin de ste.

Regla n 2: Antes de desmontar un motor, desconectar:

1. la alimentacin (conector grande).


2. el encoder (conector pequeo).

Regla n 3: Antes de cualquier intervencin dentro del armario de la unidad de mandos, cortar la
alimentacin general.

Regla n 4: Despus de montar los encoders del motor verificar que los conectores estn bien
conectados.

Regla n 5: En todos los casos, cuando se ponga bajo tensin la unidad central, asegurarse de que no
hay nadie en el radio de accin del brazo.

9
PUESTA EN MARCHA DE LA UNIDAD DE MANDOS

1. Poner en el estado 1, el interruptor general (1) detrs de la unidad de mandos del robot.

2. Verificar que el testigo (2) en la parte anterior, est encendido.

3. Poner en el estado 1 la consola de visualizacin (3) y esperar que aparezca un punto luminoso
en la pantalla.

4. Girar la llave (4) (situada en la parte anterior del robot), que permite la alimentacin general de la
unidad central.

5. Esperar la aparicin del mensaje sobre la pantalla:

*VAL II BOOT V1.2 16 APR 84*


LOAD VAL II FROM FLOPPY (Y/N) ?

- Usted deber teclear sobre el teclado Y (tecla Y) y ( significa pulsar la tecla return a la
derecha del teclado). Si desea cargar el logiciel VAL II del disquete a la unidad central (caso de
una mquina con memoria voltil).

- En este caso aparecer:

ROBOT SERIAL # ?

Entonces usted deber indicar el nmero de serie del robot situado detrs del armario de
mandos y esperar, despus de la carga:

INITIALIZE (Y/N) ?

(ver Pg.)

- Usted deber teclear sobre el teclado N si dispone de una versin Cmos en la que el logiciel
ha sido cargado anteriormente (al menos una vez).

Usted vera aparecer su pantalla:

VAL II T56O.1.3. H/W-O 26 Oct.84 28KW


Versin del logiciel Tipo de robot Cdigo interno Fecha de elaboracin del logiciel Nmero de palabras disponibles
(cantidad de memoria
disponible)
(24 KW real)

COPYRIGHT 1981 UNIMATION Inc._________________________________________________


Ao de deposito legal Constructor

10
INITIALIZE (Y/N) ?

Usted debe responder por Y o N.

- Si teclea y se destruyen todos los programas que hay en la memoria de la mquina.

- Si teclea N los programas existentes todava presentes se conservan.


En los dos casos, la mquina responder con el mensaje:

LOADING OVERLAY DATA, TYPE C TO ABORT

La mquina estar cargando la correccin de linearidad de los distintos encoders del robot.
Si se quiere interrumpir este proceso, pulsar la tecla CTRL y la tecla C simultneamente.

6. Se debe alimentar el brazo pulsando el botn verde (el testigo verde se ilumina).

Atencin: Estar preparado para pulsar el botn rojo en caso de comportamiento aleatorio.

7. Pulse el botn Comp en el mando manual si su testigo no estuviera iluminado.

Nota: Si, por cualquier razn, no se carga el fichero OVERLAY; o si usted quiere cargar un
nuevo fichero de OVERLAY a cambio del antiguo, se puede cargar en modo COMANDO
utilizando:

OVERLAY XXXX

con XXXX nombre del fichero de OVERLAY elaborado por el proceso "POTCAL".

Este comando debe ir seguido generalmente de un calibrado.

11
8. Prodecer a un calibrado tecleando CAL , la mquina responder :

ARE YO SURE (Y/N) ?

Verificar la posicin del robot (obstculos).

Si Usted responde Y el robot se desplazar ligeramente sobre todos sus ejes, efectundose el
calibrado.

9. Eventualmente teclear SP 20 arrancar un programa con el mximo de seguridad (SP 20 pide a la


mquina que se desplace lentamente).

Entonces, el robot est preparado para aceptar sus instrucciones.

Nota: todos los mensajes subrayados son los mensajes enviados por la mquina.

12
SIGNIFICADO DEL CALIBRADO

Inicialmente el robot no conoce su posicin en el espacio, ste puede saber su posicin consultando
sus potencimetros situados al extremo de cado uno de sus motores. Una vez memorizada su posicin,
todos los desplazamientos sern relativos a esta posicin (y incrementados o decrementados por el
encoder incremental).

13
EN RESUMEN: COMO PONER EN MARCHA EL ROBOT?

1. Poner el interruptor en el estado 1.

2. Poner la pantalla de visualizacin en el estado 1.

3. Poner la llave del armario en la posicin 1.

4. *VAL II BOOT V1.2 16 APR 84*


LOAD VAL II FROM FLOPPY (Y/N) ?
Responder Con Y o N

5. VAL II T560.1.3.H/W-0 26 Oct.84 28 KW


COPYRIGHT 1981 UNIMATION Inc.
INITIALIZE (Y/N) ?
Responder Con Y o N

6. LOADING OVERLAY DATA, TYPE LC TO ABORT


La mquina est cargando el fichero OVERLAY.
Teclear: control C si se quiere interrumpir el proceso de carga.

7. Poner la alimentacin del brazo en la posicin 1.

8. Calibrar

9. Poner a velocidad baja.


SPEED 20 (o SP 20)

14
CMO PARAR EL ROBOT?

1. Cortar la alimentacin del brazo.

2. Cortar la alimentacin de la unidad de mandos (llave en la posicin 0).

3. Apagar la consola de visualizacin.

4. Cortar la alimentacin general (interruptor de la parte posterior).

15
ATENCIN

A partir de la versin 2.0, si se responde Y a la pregunta:

LOAD VAL II FROM FLOPPY (Y/N)

Aparecer :

LANGUAGE FOR VAL II ERROR MESSAGES:


English (0), French (1), German (2), Spanish (3) ?

Seleccione el nmero correspondiente al idioma deseado: de esta manera, todos los mensajes
de error aparecern en el idioma escogido.

16
LAS REFERENCIAS

El robot dispone de 2 sistemas de referencia:

- una referencia universal, - una referencia til.

17
DEFINICIN DE LOS NGULOS O, A, T

18
19
LAS CARACTERSTICAS DE LOS DESPLAZAMIENTOS ANGULARES

20
LIMITES ANGULARES

21
CMO PONER EN MOVIMIENTO EL BRAZO DEL ROBOT?

Una vez que la unidad de control se ha puesto en marcha:

Hay dos sistemas.

a) por el mando manual.

b) ejecutando un programa grabado anteriormente en la unidad de control.

Examinemos el desplazamiento del robot por el mando manual.

Se puede disponer de 2 tipos de mando manual:

-1 mando standard: con botones e interruptores (ver dibujo).


-1 mando estanco: con teclas de membranas estancas para la utilizacin en condiciones
particularmente severas (ver dibujo).

22
MANDO STANDARD

23
MANDO STANDARD

24
EXAMEN DE LAS DISTINTAS FUNCIONES

Nota: Para otras funciones especficas del mando estanco, ver la documentacin tcnica entregada con
la mquina.

25
CONVENIO DE ESCRITURA

Vamos a pasar lista de las distintas instrucciones y comandos del lenguaje VAL II.

Por razones de simplificacin, vamos a utilizar signos que acompaan los parmetros de estas
instrucciones.

[] Este smbolo significa que los parmetros inscritos entre parntesis son opcionales.

<> Este smbolo sirve para delimitar los distintos parmetros de la instruccin.

EXECUTE Los caracteres en negrilla definen la sintaxis mnima de la instruccin;

Ejemplo: EXECUTE [<TOTO>],[<3>],[<2>]

significa que el nombre del programa TOTO, es opcional as como 3 y 2.

Nota: Usted encontrar la sintaxis mnima de cada instruccin en el anexo, de todas formas no
recomendamos su utilizacin antes de haber adquirido una cierta experiencia en programacin.

26
CMO LANZAR UN PROGRAMA?

Con el comando:

EXECUTE < NOMBRE PROG>, <n de bucles>,<paso del 1 er bucle>

Ejemplo 1:
EX TOTO, 3, 4

Se desea la ejecucin del programa TOTO, 3 veces (si se hubiera introducido un nmero negativo,
tendramos la ejecucin de un nmero ilimitado de bucles) a partir del paso 4, solo para la ejecucin de
primer bucle.

Ejemplo 2:
EX TOTO, 1, 2 OU EX TOTO ,, 2

Se desea la ejecucin del programa TOTO solamente una vez a partir del paso n2 (para el primer
bucle).

Ejemplo 3:
EX TOTO, 1
EX TOTO

Se desea la ejecucin del programa TOTO solamente una vez a partir del paso n1.

Observacin :

Si el programa ya se ha ejecutado una vez y desea volver a ejecutarlo teclear solamente EX .

El paso se refiere al nmero de lnea.

27
COMO EJECUTAR UN PROGRAMA PASO A PASO?

Mediante el comando:

XSTEP < Nombre prog >, < n de bucles >, < STEP >

Este comando es idntico, en la descripci6n de los parmetros y en su accin al comando EXECUTE


visto anteriormente salvo que solamente se ejecuta una instruccin cada vez.

Para ejecutar el paso siguiente basta con teclear X.

Cmo seguir la ejecucin de un programa ?

- En modo comando.

Mediante el comando:

EN TRACE

De esta forma se vern aparecer en pantalla las distintas instrucciones que tienen lugar durante la
ejecucin.

Para volver al modo normal, utilizar el comando:

DIS TRACE

28
COMO PARAR UN PROGRAMA DURANTE SU EJECUCIN?

- Pulsando el botn OFF del mando manual, si se desea una detencin inmediata del
movimiento del brazo y del programa.

- Tecleando ABORT sobre el teclado, si la detencin se debe hacer al final de la instruccin de la


presente instruccin.

Cmo continuar un programa interrumpido?

- Si el programa se ha interrumpido mediante OFF

Sea por: ATENCIN

En el caso de RETRY se vuelve a ejecutar la nstruccin interrumpida En el caso de PROCEED se ejecuta la nstruccin siguiente

- Si el programa se ha interrumpido por ABORT

Se puede utilizar RETRY o PROCEED

29
PANIC

Este comando tiene la misma funcin que pulsar el botn OFF. Provoca bajo control del logiciel interno,
el paro inmediato del movimiento del robot y de la detencin del programa en jecucin a partir de la
pantalla / teclado.

30
SE DISPONE DE 3 MODOS DE FUNCIONAMIENTO

1. Modo comando: Visualizado en la pantalla por un punto [.].

La unidad de comando espera una orden como DIR, LISTP, DELETEP, etc.

2. Modo editor: visualizado en pantalla por un [?].

La unidad de comando esta cargando programas.

3. Modo ejecucin visualizado en pantalla por [*].

La unidad de comando est ejecutando un programa, aunque algunas rdenes son asimilables
paralelamente a esta ejecucin.

31
COMO CREAR UN PROGRAMA ?

Se har con la ayuda del programa llamado EDITOR, que reside en la mquina.

Este programa editor comporta cierto nmero de comandos.

32
COMANDOS DE EDICIN

Estos comandos slo sirven en modo EDICIN (presencia de "?" a la izquierda) para permitir la
introduccin de ordenes VAL en el robot stas permiten:

- modificar un programa,
- insertar nuevas instrucciones,
- suprimir instrucciones,
- buscar ciertas instrucciones,
- etc...

Vamos a ver estas instrucciones de edicin.

33
PROCEDIMIENTO PARA CARGAR UN PROGRAMA

1a Etapa

Si se est en modo ejecucin (*) o en modo comando (.), se pasa al modo de edicin tecleando :

ED < NOMBRE PROG >, <n>

n: n de la lnea donde se desea ir en un


programa anteriormente editado.

Ejemplo: ED TOTO, 7

Hay 12 comandos editores :

- C para cambiar de programa


- D para suprimir una o varias lneas
- E para salir de la edicin
- I para insertar
- L para ir hacia otras lneas
- S para buscar una lnea
- P para visualizar
- R para remplazar un carcter
- M para remplazar un bloque de caracteres
- F para encontrar un bloque de caracteres
-T
para aprender puntos
-TS

Vamos a analizarlas una a una.

34
C (CHANGE)

Forma general :

C NOM, n

n: n de lnea donde se desea ir del programa TOTO

Ejemplo: C TOTO, 7

nombre de un programa (cualquiera)

ED TITI

PROG TITI

1 ? MOVE A
2 ? MOVE B
3 ? MOVE C
4 ? C TOTO, 7 PROG TOTO

7 ? MOVE B4

Lnea n 7 del PROG TOTO (si TOTO exista anteriormente).

35
D (DELETE)

Forma general

Dn

n: numero de lneas

Ejemplo: D4

Suprime 4 lneas a partir de la presente.

Ejemplo:

ED TITI

1 ? MOVE A
2 ? MOVE B
3 ? MOVE C
4 ? MOVE O
5 ? MOVE F
6 ? MOVE G

Si en la lnea 2 ? MOVE B
tecleamos 2 ? D 3
Se suprime la lnea 2 y las 2 siguientes.

Donde : 1 ? MOVE A
2 ? MOVE F
3 ? MOVE G

36
E (EXIT)
Este comando permite salir del modo de edicin para volver al modo de comando del robot, o sea para
pasar de (?) a (.).

Ejemplo: 1 ? MOVE A
2 ? MOVE B
3 ? E

Este comando se utiliza cuando se termina de escribir o modificar un programa.

37
I (INSERT)

Forma general :

Ejemplo: ED TOTO
1 ? MOVE A
2 ? MOVE B
3 ? MOVE C MOVE C1
4 ? MOVE D MOVE C2
5 ? MOVE E

Entonces:
4 ? MOVE D
4? I
4 ? MOVE C1
5 ? MOVE C1
5 ? MOVE C2
5?

Resultado:
ED TOTO
1 ? MOVE A
2 ? MOVE B
3 ? MOVE C
4 ? MOVE C1
5 ? MOVE C2
6 ? MOVE D
7 ? MOVE E

OBSERVACIN : Ntese que para salir del modo insercin slo se necesita teclear .

38
L (LAST)

Forma general:

Esta instruccin permite volver a la lnea anterior.

Ejemplo:

ED TOTO

1 ? MOVE
2 ? MOVE B
3 ? MOVE C
4 ? MOVE D
4 ? L
3 ? MOVE C

Ntese que slo se puede ir hacia atrs de lnea en lnea.

39
S (SEARCH)

Forma general :

Sn

n : n de lnea.

Esta instruccin permite buscar el n de lnea deseado.

Ejemplo 1: Ejemplo 2:

ED TOTO ED TOTO

1 ? MOVE A 1 ? MOVE A
2 ? MOVE B 2 ? MOVE B
3 ? MOVE C 3 ? MOVE C
4 ? MOVE D 4 ? MOVE D
5 ? S2R 5 ? MOVE E
2 ? MOVE B 6 ? S 20 R
20 ? MOVE K

Salto hacia arriba o salto hacia abajo

40
P (PRINT)

Forma general

Pn

n: numero de lneas.

Ejemplo: P3

ED TOTO
1? MOVE A
1? P3

1 ? MOVE A
2 ? MOVE B
3 ? MOVE C

Nota: Si slo se escribe P, solamente se visualiza la lnea en que se sita el comando.

41
R (REPLACE)

Forma general :

R caracteres

Este comando permite remplazar caracteres de una instruccin.

Ejemplo 1:

ED TOTO
1 ? MOVE A

R SA
1 ? MOVES A

Ejemplo 2:

ED TOTO

1 ? MOVE A

Se deseara obtener

1 ? 30 MOVE A

etiqueta

Entonces:

1 ? MOVE A

1 ? CB 30 nos dar el resultado deseado:


1 ? 30 MOVE A

42
M (MODIFY)

Forma general :

M / antiguo carcter / nuevo carcter

Este comando permite sustituir un bloque de caracteres por otro nuevo.

Ejemplo: ED TOTO
1 ? APPRO A,30,
1 ? M/30/200 dar:
1 ? APPRO A,200

NOTA: La barras se pueden sustituir por cualquier otro carcter especial.

Ejemplo: M+30, 20
M?30?, 20
M+30+,20
etc ...

Pero, para simplificar, es aconsejable utilizar las barras.

43
F (FIND)

Forma general :

F/ bloque de caracteres/

Este comando permite encontrar la lnea de instruccin que contiene el bloque de caracteres indicados
detrs de la letra F y comprendido entre las barras.

Ejemplo: EO TOTO

1 ? APPRO A,10
2 ? MOVE D
3 ? APPRO A, 21
4 ? MOVE G
5 ? MOVE F

Si la lnea:

1 ? APPRO A, 10
1 ? F/21/ veremos aparecer
3 ? APPRO A, 21

ya que el bloque de caracteres 21 se ha encontrado en la lnea 3.

Atencin: el bloque de caracteres buscado siempre debe encontrarse despus de F/ bloque /.

44
T (TEACH)

Forma general :

T nombre variable

Permite memorizar las coordenadas de una serie de puntos y escribe automticamente la orden de
movimiento asociada a estos puntos (cada vez que se pulse el botn RECORD situado en el mando
manual).

Ejemplo: ED TOTO
1 ? MOVE A
2 ? MOVE B
3 ? MOVE C
3 ? T D1

Cuando se pulse el botn RECORD, veremos aparecer:

3 ? MOVET D1,0 si la pinza est cerrada


o MOVET D1,25.41 si la pinza est abierta

si pulsamos de nuevo RECORD obtendremos:

4 ? MOVET D2,0

etc...

Cada vez que se pulse RECORD se obtiene un incremento automtico del ndice del punto.

45
TS (TEACH STRAIGHT)

Forma general :

TS nombre variable

Este comando es idntico que T salvo que los desplazamientos que habr sern en lnea recta entre los
puntos memorizados.

Ejemplo: ED TOTO

1 ? TS P1 despus de pulsar RECORD, aparece


1 ? MOVEST P1 ,0

Importante: Ntese que slo en modo comando se dispone de una instruccin TEACH nombre variable
que hace la misma funcin.

46
OPERACIONES CON LA MEMORIA
DE LA UNIDAD DE MANDOS Y CARACTERES DE CONTROL DEL TERMINAL

(pantalla / teclado)

ATENCIN: estas instrucciones slo son validas en modo (.,*).

47
CONTENIDO DE LA MEMORIA RAM

48
Todos los programas cargados con la ayuda del editor, se guardan en la memoria RAMCMOS.

Lo mismo ocurre con las variables reales y las variables punto, asociadas a los programas de usuario
(tambin llamados programas de aplicacin).

Qu es una variable de punto?

Se trata de asociar a un nombre cualquiera de los valores X, Y, Z, O, A ,T de las coordenadas del punto
en cuestin.

Ejemplo: POINT A

Esta instruccin asigna las cotas en mm o en grados (segn los parmetros descritos) al nombre de la
variable punto llamada A.

Disponemos de dos posibilidades para asignar una variable punto.

1. Cargando las diversas coordenadas por parte del usuario.

Ejemplo: POINT A
X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6
0 0 0 90 -90 0

CHANGE?
10,30, -15,18

X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6


10 30 -15 18 -90 0

CHANGE?

De esta forma, hemos asignado las cotas X, Y, Z, etc... al punto llamado A.

- NOTA: Esta instruccin slo funciona en el modo comando.

49
2. Por aprendizaje

Consiste en desplazar el robot hasta el punto deseado y escribir en el teclado:

HERE A
X/JT1 Y/JT2 Z/JT3 O/JT4 A/JT5 T/JT6
120 12 -80 90 -90 0
CHANGE ?

De esta forma asignamos al punto A las coordenadas del punto donde se encuentra el robot en el
momento en que pulsamos la tecla (RETURN).

Recordamos que ya se ha utilizado implcitamente una variante de esta instruccin, se trata de la orden
TEACH en modo comando o T y TS en modo EDIT (ver el capitulo comando editor).

NOTA: La instruccin HERE funciona en modo comando y en programa.

Puntos de precisin

Un punto de precisin es un punto en el que las coordenadas no estn en mm respecto a los ejes X, Y,
Z, etc... sino en grados de ngulos con respecto a una posicin absoluta.

Se declara o reconoce como punto de precisin cuando aadimos # delante del nombre del punto.

Ejemplo: # A y A son 2 puntos distintos.

Uno est definido en coordenadas angulares (#A) para cada eje.

El otro est definido en coordenadas cartesianas (A).

JT1 18 X 120 mm
JT2 -123 Y 12 mm
JT3 +14 Z 5 mm
MOVE # A JT4 90 MOVE A O 90
JT5 -90 A -90
JT6 0 T 0

Atencin

Es aconsejable asignar nombres diferentes a los nombres de variables punto, variables punto de
precisin, o variables reales, de otra forma en pantalla nos aparecer "DUPLICATE VARIABLE NAME".

50
Los puntos de precisin pueden permitir una precisin mayor que los puntos de coordenadas
cartesianas.

Los puntos de precisin son muy prcticos porque no tienen en cuenta las alineaciones de ejes (ver
debajo) pero no se pueden utilizar en instrucciones de decalajes {instrucciones SHIFT, TOOL, etc...).

Observacin: Cuando se realiza APPRO # A,50, la mquina convierte este punto en un punto de
coordenadas.

Atencin: En robots de 6 ejes, se debe evitar alinear el eje Z til con el antebrazo, ya que el robot
interrumpir su movimiento y quedar en falta (envio de un mensaje de error) .

Esta situacin se podr haber evitado con el empleo de un punto de precisin.

Para suprimir un punto de la memoria, utilizaremos la instruccin:

DELETEL nombre del punto [nombre del punto, ...]

(ver capitulo DELETE).

51
QUE ES UNA VARIABLE REAL?

Es la asignacin a un nombre cualquiera de un valor entero (ej: 123) o real (ej: 1,238).

Ejemplo: A = 12 significa que asignamos el valor 12 a la variable llamada A.

O sea que el valor contenido en la variable A es12.

NOTA: En el caso del VAL II, el valor debe estar comprendido obligatoriamente entre 6.0E39 y 2.854E +
38 para valores positivos y entre - 2.8545E + 38 + 38 y hasta -6.0E 39 para valores negativos.

Recordamos que, por ejemplo 2.1 E + 6 corresponde al nmero 2 100 000 y 2.1 E-6 a 0.0000021.

Esta notacin se llama notacin cientfica.

Ntese que la coma se debe simbolizar por un punto 1,238 1.238.

Qu operaciones matemticas se pueden realizar Con los reales ?

+suma Ex: X = 3+2


- resta Ex: X = (3 + 2) - 1
multiplicacin Ex: X = ((3 + 2) - 1) * 4
divisin Ex: X = ((3 + 2) - 1) /5

Y se pueden utilizar funciones matemticas particulares:

ABS (expr) Esta funcin da el valor absoluto de la expresin:

X = ABS (-5.462) X = 5.462


X = ABS (1.3E - 2) X = 1.3E - 2

SIGN (expr) Esta funcin da el signo de la expresin:

X = SIGN (0.12) X = 1
X = SIGN (-5.14) X = - 1

FRACT (expr) Esta funcin da la parte fraccionaria de la expresin:

X = FRACT (2.123) X = 0.123


X = FRACT (1.312E + 2) 0.2

52
INT (expr) Esta funcin da la parte entera de la expresin:
X = INT (0.123) X = 0
X = INT (1.312E + 2) X = 131

SQRT (expr) Esta funcin da la raz cuadrada de la expresin:


X = SQRT (0.123) X = 0.35071
X = SQRT (- 5.462) error

SQR (exp) Esta funcin da el cuadrado de la expresin:


X = SQR (0.123) X = 0.01513
X = SQR (1.13125E + 2) X = 1.7226E + 4

SIN (exp) Esta funcin da el seno de la expresin (en grados):


X = SIN (50.123) X = 0.00125
X = SIN (-5.482) X = 0.098

COS (expr) Esta funcin da el coseno de la expresin (en grados):


X = COS (0.123) X = 1
X = COS (- 5.462) X = 0.99546

ATAN2 (expr 1, expr 2) Esta funcin da la equivalencia en grados de la tangente expr 1, expr 2.

X = ATAN2 (0.123, 0.251) X = 26.10669 grados


X = ATAN2 (1.325E + 2, -1.3) X = - 89.4252

53
PI Esta funcin da el valor 3,14159
X=PI X=3.14159

RANDOM Esta funcin da un valor aleatorio comprendido entre 0 y 1:


X = RANDOM X = 0.3148 por ejemplo.

54
EN CONCLUSIN

Se deben distinguir bien las variables punto de las variables reales.

Ejemplo:
1...
2...
3 MOVE A A es el nombre de un punto donde el robot deber ir.
4... Comporta las coordenadas X, Y , Z, O, A, T expresadas en mm y en
grados.
5...
6... AE = 3.4 permite asignar el valor 3,4 a la variable "AE"
7 AE = 3.4
8...
9...

Adems los nombres de puntos y variables pueden llevar corchetes para indicar que son nombres de
variables dimensionadas.

Ejemplo: A [1]

Qu es una variable dimensionada?

Tomemos un ejemplo.

Sea la tabla llamada A:

1 18 A [1] = 18
2 287 A [2] = 287
3 14 A [3] = 14
4 1984
5 226
6 317
7 6

etc...

Constatamos que el ndice comprendido entre corchetes representa en este caso el nmero de lnea y
no el contenido de la casilla.

Veremos posteriormente que tambin se puede poner una variable como ndice.

Ejemplo: I = 3
A [I] = 14 (ver tabla superior)

Lo cual, a veces, facilita la escritura del programa.

55
CMO VISUALIZAR?

Cmo visualizar:

- los ttulos (nombres de programa)


- los contenidos
- de los programas situados en la memoria central ?

Slo se puede hacer en modo comando (.)

Para ver los ttulos se utiliza la orden DIR.

Ejemplo:
DIR
TOTO
TITI
TUTU

Para ver los contenidos se utilizan las ordenes :

LISTP OU PLIST para los contenidos de los programas,


LISTL o LLIST para los contenidos de las coordenadas de los puntos.
LISTR o RLIST para el contenido de las variables reales.

Ejemplo:
PLIST
PROG TOTO
1 MOVE A
2 MOVE B
PROG TITI
1 MOVE K
2 MOVE G
etc...

En el caso que slo se quiera conocer el contenido de uno, dos o tres programas, la instruccin es la
siguiente:

LISTP TOTO, TITI etc...

Para los puntos :

LLIST # A, S, C etc...

Para los reales

RLIST X, Y, Z etc...

56
Los sufijos que aparecen con los nombres de ficheros en visualizacin tienen el siguiente significado.

NOM PROG.XXX

sufijo

Ejemplo: TOTO.PG ficheros de aplicacin


TOTO.LC ficheros de puntos
TOTO.RV ficheros de variables reales.

Importante :

El nombre de los programas siempre debe:


1. Empezar por una letra y nunca por una cifra,
2. Comprender un nmero cualquiera de letras, cifras y eventualmente puntos.

Nombre de programa correcto :

TOTO.PROG1.TOTO
TOTO 12.
TOTO

En cambio: 1 TOTO o TOTO+ es incorrecto.

Observaciones importantes :

Las reglas anteriores son igualmente vlidas para los nombres de puntos y las variables reales
asociadas al programa, aunque hay algunos nombres de variables y de puntos que pueden confundirse
con ciertas "palabras reservadas" :

BASE
DEST
FALSE
HAND
HERE
NULL
PI
PRIORITY
RANDOM
TOANG
TODIS
TOOL
TPS
TRUE
COM
NOT

As que no se deben utilizar estos nombres...

57
TESTP <programa>

Este comando permite saber si el programa designado ya existe en la memoria de la mquina.

Ejemplo : TESTP TOTO

Si el programa TOTO ya existe en memoria, aparecer :

LOADED

Si no veremos :

UNDEFINED NAME.

58
RENAME <nombre del nuevo programa> = <nombre del antiguo programa>

Ejemplo : RENAME TOTO = TUTU

Una vez ejecutada esta instruccin, el PROG TUTU se llamar TOTO.

COPY <nombre del nuevo prog> = <nombre del prog ya existente>

Ejemplo: COPY TOTO = TUTU

Se obtiene un doble del programa TUTU que se llamar TOTO.

DELETE <prog 1 >[,, <prog n>]

Borra los programas designados de la memoria central, as como los datos, puntos y variables reales
asociados.

PDELETE <prog 1 >[,...,<prog n>]

Instruccin idntica a la anterior pero nicamente se borran los programas de aplicacin (o sea slo
aquellos seguidos por el sufijo.PG).

Ejemplo: PDELETE TOTO slo suprime TOTO.PG

Ntese que tambin se podra haber escrito DELETEP .

LDELETE<puntos>[,...,<puntos>]

Instruccin idntica a la anterior pero s1o se destruyen las coordenadas de los puntos designados.

Ejemplo: LDLETE A,#P1,B6

Suprime los puntos A,#P1 y B6.

Ntese que tambin podramos haber escrito DELETEL.

59
RDELETE <variable real>[,...,<variable real>]

Instruccin idntica a la anterior pero slo se destruyen los contenidos de las variables reales
designadas.

Ejemplo: RDELETE C,D, A[1]

Suprime las variables reales C, D, A[1].

Si hubiramos escrito A[ ], todas las variables dimensionadas A[1], A[2], ...,


A[n] hubieran sido destruidas.

Ntese que tambin podramos haber escrito DELETER.

60
CARACTERES DE CONTROL DEL TERMINAL

(pantalla - teclado)

Estos caracteres de control son operativos cuando se presiona la tecla CONTROL a la vez que la tecla
alfanumrica correspondiente. Facilitan la lectura de programas en pantalla.

Ejemplo: Para realizar C, hay que presionar sobre la tecla "CTRL" y la tecla "C".

- C: detiene la ejecucin que las instrucciones DIRECTORY, LISTP, STORE, etc... pero no la
ejecucin de un programa.
- Z: permite la detencin de un programa cuando ste espera datos despus de una orden
PROMPT.
- S: para la visualizacin de un programa.
- Q: relanza la visualizacin detenida por AS.
- W: relentiza la visualizacin para permitir leer los contenidos ms fcilmente. Un segundo AW
permite volver al estado anterior.
- R: revisualiza la lnea en el caso que se est esperando un dato.
- U: permite inhibir la respuesta pedida por la mquina y pasar a las instrucciones siguientes.

ATENCIN: Los cdigos anteriores no funcionan sobre todos los terminales.

61
INSTRUCCIONES DEL LENGUAJE VAL II

62
El logiciel VAL II reside sobre una estructura de varias tareas, de forma que ste, en paralelo, ejecuta
un programa de aplicacin que comporta movimientos del brazo del robot y un programa de clculo o de
gestin de entradas / salidas (ver curso n2 VAL II).

Tambin, cuando se ejecutan distintas instrucciones de movimientos, el robot no espera a finalizar el


movimiento en curso para analizar y ejecutar operaciones matemticas, gestin de entradas / salidas,
etc... Lo cual puede llevar, si no se tiene en cuenta, durante la ejecucin de las instrucciones, a
movimientos inesperados.

Por lo tanto, atencin:

En el caso del logiciel VAL II.

Debemos recordar que si insertamos instrucciones que no conllevan movimiento entre instrucciones de
movimientos, stas sern ejecutadas en paralelo.

Ejemplo :

MOVE A0
MOVE A1
TYPE "FIN DEL MOVIMIENTO A A1"
SIG 1,2
MOVE B

Constatamos que las instrucciones SIG 1,2 y TYPE "...", se ejecutaran durante el desplazamiento
hacia el punto A1.

Si no deseamos tener esta simultaneidad, insertamos una instruccin BREAK (ver capitulo (control de
trayectoria)).

Donde:

MOVE A0
MOVE A1
BREAK
TYPE "FIN DEL MOVIMIENTO A A1"
SIG 1,2
MOVE B

63
Igualmente, las siguientes instrucciones tendrn el mismo efecto que BREAK despus de un
movimiento.

BASE
BRAKE
NOALTER
PAUSE
DETACH
HALT
TOOL
RELAXI
OPENI
CLOSEI

La orden DO

Todas las instrucciones que vamos a ver se pueden ejecutar en modo comando si aadimos el prefijo
"DO".

Ejemplo: MOVE A se puede ejecutar en modo comando si escribimos.

DO MOVE A

Si no aparecer "illegal command".

Observacin: Si ejecutamos DO sin nada detrs y anteriormente se ha ejecutado un DO <instruccin>


este DO ser equivalente al DO <instruccin> precedente.

Ejemplo: DO B = (A * .4) /7 + 4 - 2 ((3 + 8) /4) 3

El resultado calculado al teclear se asignara a la variable B.

Si ahora tecleamos DO la mquina ejecutara de nuevo todos los clculos para asignar el resultado a
B, lo cual nos evita entrar de nuevo toda la frmula.

64
MOVE A

Esta instruccin ordena al robot desplazarse al punto A segn una trayectoria que no impone el usuario.

OR
A

MOVES A

Esta instruccin ordena al robot desplazarse al punto A siguiendo una lnea recta.

OR A

65
APPRO <punto>,<distancia en mm>

Ejemplo: APPRO A,50

Esta instruccin, que generalmente va seguida de MOVE, permite al robot acercarse a 50 mm del punto
A siguiendo el eje Z til.

APPROS <punto>, <distancia en mm>

Ejemplo: APPROS A,50

Idem a la instruccin anterior pero el acercamiento al punto A se hace en lnea recta.

66
DEPART <distancia en mm>

Ejemplo: DEPART 50

Es la funcin inversa de APPRO, ya que hace que el robot parta del punto donde se encuentra situado
en el momento de la ejecucin de la instruccin DEPART desplazndose a una distancia indicada en
mm segn el eje Z til.

DEPARTS <distancia en mm>

Idem a la instruccin anterior pero el desplazamiento se realiza siguiendo una lnea recta.

67
SPEED <valor> [unidades][always]

Se pueden producir 3 casos :

1. Si no se declara ninguna unidad en la instruccin, el valor se considera como un porcentaje de la


velocidad normal (100%), lo cual significa que, si la velocidad del monitor es del 40% y la velocidad del
programa del 60%, la velocidad de desplazamiento ser del 24% de la velocidad "normal".

2. Si se declara MMPS se trata de un desplazamiento expresado en m m por segundo, siempre y


cuando la velocidad de monitor sea 100.

3. Si se declara IPS se trata de un desplazamiento expresado en pulgadas por segundo siempre y


cuando la velocidad de monitor sea 100.

Si se indica ALWAYS, esta declaracin de velocidad ser vlida para todas las instrucciones de
movimiento siguientes, hasta una nueva declaracin de velocidad que conlleve ALWAYS.

Si se omite ALWAYS la velocidad solo concierne al movimiento siguiente.

<valor> puede ser una constante, una variable o una expresin matemtica cuyo valor debe estar
comprendido entre 0.39 y 12800.

Ejemplo :

1 SPEED 100 MMPS ALWAYS


2 MOVE A
3 TIMER 1 = 0
4 MOVE B
5 BREAK
6 TYPE "DURACION DEL DESPLAZAMIENTO", TIMER (1 )

Obtendremos 10,48 segundos para un desplazamiento de un metro. Si la velocidad monitor hubiera sido
de 50 habramos obtenido 20.85 seg.

68
INSTRUCCIONES DE MOVIMIENTOS DE PINZA

69
DELAY <tiempo>

Permite al robot detenerse durante el tiempo indicado en la instruccin. Este tiempo se debe dar en
segundos y estar comprendido entre 0.01 et 900 seg. (0.01 a 15 minutos).

Ejemplo:

MOVE A
DELAY 180
MOVE B

Atencin :

La instruccin DELA Y se debe considerar como una instruccin de movimiento para ir a ninguna parte.

70
SET <variable punto.1 > = <variable punto.2>

Esta instruccin permite asignar las coordenadas de la variable punto.2 a la variable punto.1.

Ejemplo 1: SET A = B

Despus de la ejecucin de esta instruccin al punto A se le asignan las coordenadas del punto B (las
coordenadas del punto B no se modifican).

71
DEST

Asignamos a la variable declarada las coordenadas del destino del robot en el momento en que se
ejecuta esta instruccin.

Ejemplo: SET G = DEST

Nota:

Si el destino fuera un punto de precisin, las coordenadas serian convertidas en cartesianas en DEST;

Aplicacin:

Ver ejemplo en curso n 2.

72
LISTADO DE LAS PALABRAS CLAVE

No se deben utilizar como nombres de variables punto o variables reales las palabras clave
siguientes :

BASE
DEST
FALSE
HAND
HERE
NULL
PI
PRIORITY
RANDOM
TOANG
TODIS
TOOL
TPS
TRUE
COM
NOT

73
SHIFT <punto> by [<exp 1 >],[<exp 2>],[<exp 3>])

Ejemplo 1: SET BL = SHIFT (AH BY 150, 10, -100)

Eje Eje Eje (del punto AH)

X Y Z

Esta instruccin aade o resta a las coordenadas del punto AH los valores indicados en cada
expresin.

Si deseamos hacer un decalage relativo con respecto al mismo punto, definimos la siguiente instruccion.

Ejemplo 2:

SET AH = SHIFT (AH BY 100,50' 0) MOVEAH


SET AH = SHIFT (AH BY 100' 50, 0) MOVEAH
etc ...

74
DRIVE <expr 1 >,<expr 2>,<expr 3>

Esta instruccin permite desplazar la articulacin designada por EXPR 1, un cierto ngulo EXPR 2, a un
porcentaje de la velocidad monitor EXPR 3.

Ejemplo 1:

DRIVE 6, 40, 50

El eje 6 se desplaza 40 grados a 50% de la velocidad monitor

Ejemplo 2: DRIVE JT, (D+41)/3)* 4, VIT

Se constata que podemos utilizar variables, expresiones matemticas o otros ...

Ejemplo 3: DRIVE 2,30,10

75
PRESENTACIN DE LOS PROGRAMAS

A partir de las especificaciones, se pretende realizar un programa que deber ejecutar el robot.

Cmo se puede realizar un programa a partir de la especificacin de las necesidades?

Hay 3 soluciones :

1. el mtodo emprico
2. el organigrama
3. el grafcet.

Hay partidarios de cada una de las 3 soluciones segn los gustos y aspiraciones de cada uno; de todas
formas se puede deducir que:

--la primera solucin es valida para resolver pequeos problemas, poco complicados, ya que al no ser
estructurado, rpidamente se complica.

--la segunda solucin tiene la ventaja de ser utilizada universalmente en informtica y automatismos
complejos, aunque a veces es pesada de aplicar.

--la tercera solucin se aplica sobretodo en los automatismos industriales y va entrando poco a poco en
las empresas. Se puede aplicar a la robtica si se vara alguna regla del grafcet.

76
Queremos desplazarnos del punto A al B, pero cuando pulse el botn BP1, debemos ir al punto C y
volver al principio.

Adems para facilitar la lectura de un programa, es interesante aadir comentarios.

77
COMO COMENTAR UN PROGRAMA

Separando los comentarios de las instrucciones por un punto y coma.

Ejemplo:

1; PROG COMENTARIO
2 MOVE A; se ejecuta un desplazamiento hacia A
2 MOVE B ; se ejecuta un desplazamiento hacia B

78
INTERRUPCION DE UN PROGRAMA

Con la ayuda de las instrucciones: PAUSE, HALT.

PAUSE

El programa se interrumpir cuando encuentre esta instruccin.

Ejemplo:

1 MOVE A
2 MOVE B
3 PAUSE Paro del programa en el paso 3
4 MOVE C

Continuaremos tecleando PROCEED.

HALT

Esta instruccin es idntica a la anterior pero no se puede continuar tecleando PROCEED: utilizaremos
EXECUTE.

79
LOS SUBPROGRAMAS

CALL<nombre prog>

Un Subprograma es un conjunto de instrucciones independientes que se pueden llamar desde un


programa principal.

Ejemplo:

PROG TOTO
1 MOVE A
2 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"
3 MOVE B
4 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"
5 MOVE C
6 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"
7 MOVE D
8 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"
9 MOVE E
10 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"
11 MOVE F
12 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"

Hubiera sido ms sencillo escribir

PROG TOTO SUBPROG TITI

1 MOVE A 1 TYPE "HE TERMINADO LA INSTRUCCION DE MOVIMIENTO"

2 CALL TITI 2 RETURN


3 MOVE B
4 CALL TITI
5 MOVE C
6 CALL TITI
7 MOVE D
8 CALL TITI
9 MOVE E
10 CALL TITI
11 MOVE F
12 CALL TITI

Igualmente, los subprogramas se emplean mucho para dividir un programa complejo en subconjuntos
independientes entre ellos y que se pueden probar fcilmente por separado.

80
ESTRUCTURA DE LOS SUBPROGRAMAS

PROG PRINCIPAL SUBPROGRAMASPROG

1 MOVE A 1 MOVE D
2... 2 MOVE F
3... 3
4... 4
5 CALL SPROG 5...
6... 6 RETURN
7...

ATENCIN:

Todos estos subprogramas se deben terminar obligatoriamente por RETURN , aunque cualquier
programa se puede terminar sin inconveniente con RETURN, incluso en el caso de que este nunca
sea llamado por otro programa.

81
LOS SALTOS

1. Saltos incondicionales

GOTO <etiqueta>

Ejemplo:

1 10 MOVE A
2 MOVE B
3 GOTO 10
4
.
.
.

Atencin:

El nmero que hay tras el GOTO es una etiqueta, y no el nmero de lnea definido por el editor.

2. Saltos condicionales

IF <expresion> GOTO < etiqueta>

Ejemplo:

9 16 MOVE A
10 MOVE B
11 IF N = <6 GOTO 16
12 12 DELAY 5
13
.
.
.

82
Los smbolos relacionales son los siguientes:

> mayor que

> = 0 => mayor o igual

== igual

<> distinto

< menor que

<=o=< menor o igual

Igualmente, se pueden asociar operadores lgicos :

AND Funcin lgica Y

OR Funcin lgica O

NOT Funcin lgica NO

Ejemplo:

10 MOVE A
IF (A>3) OR (B< = 7.82) GOTO 10
MOVE B

83
COMUNICACIN TECLADO - PANTALLA

84
PROMPT " (<MESSAGE)" (,<VARIABLE> (,...,<VARIABLE>)

Ejemplo 1: PROMPT "dame 3 valores", A, B, C

Esta instruccin permite, a partir del teclado, entrar los valores que se asignan a las variables. Aqu las
3 variables se llaman A, B y C.

Ejemplo 2: PROMPT " ",A

Cuando se ejecute esta instruccin, el robot asignar a la variable A el valor que se teclee
sin ningn mensaje en pantalla.

85
TYPE {/carcter de control} , {variable} , {etc.}

Esta instruccin permite hacer salir por pantalla un mensaje durante la ejecuci6n de un programa ylo
hacer salir en pantalla el contenido de una (o varias) variable(s) declarada(s).

Ejemplo: TYPE/B, "VALOR DE X = ",X

Escribir en pantalla: VALOR DE X = 3

(si el valor de X fuera 3) y sonar un pitido en el terminal. Los caracteres de control permiten :

/B hacer sonar un pitido en el terminal

/C<n> provocar n saltos de lnea (n veces CR y n veces LF);

/S mantenerse en la misma lnea (sin CR ni LF);

/O <n> dar el valor, segn una codificacin entera octal, cuyo campo es declarado por n;

Ejemplo
R =23
TYPE/O 10,R

23

dar: 10 espacios

/l<n> dar el valor, segn una codificacin entera decimal en que el campo viene declarado por
n.

Ejemplo 1:
R = 23
TYPE /l 10,R

23

dar: 10 espacios

Ejemplo 2 :
R = 4894
TYPE/l 2, r
dar : **
los asteriscos indican que el campo es demasiado pequeo.

86
/E <m>, <n> especificar el valor en notacin cientfica segn el formato declarado por m y n.
Ejemplo :
R = 1247.45
TYPE/E14.7,R dar :

campo de 14__________
.1247450E + 4

Nota: hay que considerar. 1247450 como 0.1247450 ;

/F <m>,<n> e especificar el valor en la forma fijada por m y n (con m para describir el campo y n para
describir el formato de la parte decimal).

Ejemplo :
R = 1247.45
TYPE /F 12.4,R

1247.4500 12 espacios

12 espacios

/G<m>,<n> especificar el valor segn un formato similar a /F<m>,<n>. En el caso que el valor no
pueda entrar en el campo m, este valor se definir segn un formato idntico a
/E<m>,<n>;

87
/D utilizar un formato por defecto (idem a /G 14.7);

/U<n> hacer subir el cursor n lneas;


Atencin: este carcter de control no funciona en todas las terminales (funcionamiento
asegurado en el terminal Unimation);

/X<n> generar n espacios

Ejemplo 1:
R = 1247.45
TYPE /X 10,R dar :
10 espacios 1247.45

Ejemplo 2 :
R1 = 3
R2 + 1247.45
TYPE R1,/X 10,R2 dar :
3. 10 espacios 1247.45

/N la unidad central no espera a haber terminado de imprimir el mensaje para ejecutar la


siguiente instruccin.

88
TPMESS"MENSAJE"

Esta instruccin es idntica a TYPE salvo que en este caso el mensaje sale en la pantalla del mando manual y no
en la consola de visualizacin.

El mensaje deber seguir los siguientes criterios:

1. ser una cadena en c6digo ASCII;


2. no debe comportar caracteres de control (/B, /C, etc...) en caso contrario sern ignorados,
aunque hay algunos que pueden perturbar el funcionamiento.

Atencin: Esta funcin solo existe a partir de la versin 2.0.

89
ENTRADAS

El numero de entradas es 32.

Sus direcciones son las siguientes :

1001 entrada n1
1002 entrada n2
1003 entrada n3
1004 entrada n4
1005 entrada n5
1006 entrada n6
etc ...
1032 6> entrada n32.

Entre estas entradas se distinguen dos modos de funcionamiento:

1. Modo de entrada por escrutinio

IF SIG (1001, etc...) GOTO 20


WAIT

2. Modo de entrada por interrupcin

REACT
REACTI
IGNORE

90
Entradas / Salidas

Exteriores (todo o nada).

91
ENTRADAS POR ESCRUTINIO

Es el programa quien, en un momento dado va a escrutar las distintas entradas.

1. IF SIG <expresin>,... GOTO etiqueta

Ejemplo: IF SIG (1001, -1003, 1002) GOTO 10

Si la entrada 1 est en el estado 1 y


la entrada 3 esta en el estado 0 y
la entrada 2 est en el estado 1 entonces el programa salta a la etiqueta 10.

En caso contrario se ejecuta la instruccin siguiente.

2. WAIT <expresin>

Ejemplo: WAIT SIG (1001, - 1003, 1002)

Esta instruccin interrumpir el programa hasta que las entradas 1 y 2 estn en el estado A y la 3 en el
estado 0.

Otros ejemplos:

WAIT (SIG (1001, 62) OR SIG (1008) < > 0


WAIT ((STA == 4) ANO (G > 120)) < > 0

NOTA: Si el resultado de una operacin es 0, la mquina considera que el resultado es falso .

Para cualquier otro valor el resultado ser considerado verdadero.

92
ENTRADAS POR INTERRUPCIN

REACT <seal>, <programas>, [<prioridad>]

Ejemplo: REACT 1003, TOTO, 25

Cuando el canal n 3 pase al estado 1, el programa, una vez terminada la instruccin que est
ejecutando, pasar a la ejecucin del programa TOTO.

La prioridad debe tener un valor entre 1 y 127 y permite, en el caso en que se indique jerarquizar las
llamadas a otros programas cuando son simultneas (ver curso n 2).

93
REACTI <seal>, <programa>, [<prioridad>]

La aplicacin de esta instruccin es idntica a la anterior aunque el salto al programa indicado se hace
inmediatamente en el momento en que la entrada en cuestin cambia de estado.

P.D.: Para ms informacin sobre las instrucciones REACT y REACTI ver el curso n2.

94
ATENCIN:
1. Slo se dispone de las primeras 16 entradas (n 1 hasta 16) para provocar reacciones.
2. El sistema slo reacciona ante cambios de nivel que se mantengan estables al menos 30 ms.
3. Para suprimir el escrutinio de entradas desde el programa, despus de la instruccin REACT o
REACTI, se utiliza la instruccin IGNORE.

IGNORE <seal>

Ejemplo: PROG PRINC


1 MOVE A
2 BREAK
3 REACT 1001,
TOTO
4 MOVE B
5 MOVE C
6 MOVE D
7 BREAK
8 IGNORE 1001
9 MOVE E

En este caso, el programa saltar al subprograma TOTO si actua la entrada 1001, pero slo durante los
movimientos B,C,D.

95
SALIDAS

Hay 32 salidas

Sus direcciones son las siguientes:

1 salida n1
2 salida n2
3 salida n3
4 salida n4
etc...
32 salida n32

Programacin de salidas

SIG 1, -2,..., 8
RESET
RUNSIG

96
SIGNAL <val 1>, [<val2>, <val3>, <...>]

Con distintos valores que pueden ser una constante, una variable o una expresin matemtica.

Ejemplo 1: SIG3, -1, 4

Las salidas n 3 y n 4 pasarn al estado 1 y la salida n1 al estado 0.

Ejemplo 2:1 ? S1 = -1
2 ? S2 = +4
3 ? S3 = 3
4 ? SIG S3, S1, S2

Este ejemplo provoca el mismo resultado que el ejemplo A.

Ejemplo 3: 1 ? S2 = 2
2 ? S3 = 2.5
3 ? SIG (-S2/2),(S3*2)

En este caso la salida n 1 pasar a 0 y la salida n5 pasar a 1.

RESET

Esta instruccin pone a cero todas las salidas.

NOTA: Estas dos instrucciones funcionan tanto en modo comando como en modo programa.

97
RUNSIG <expresin>

Ejemplo: RUNSIG 3
o RUNSIG TOTO

Esta instruccin pone al estado 1 la salida n 3 cuando el programa se est ejecutando.

Cuando la ejecucin del programa se interrumpe, esta salida pasa al estado 0.

En el ejemplo RUNSIG TOTO, TOTO deber ser:

- Una variable real.


- Una expresin matemtica

Pero el resultado de la empresin matemtica deber tener un valor positivo, entero y comprendido
entre 1 y 16.

98
CAMBIO DE REFERENCIA

99
COMO DESPLAZAR LA REFERENCIA DE BASE ?

Con la instruccin base, utilizable en modo programa o en modo (.,*)

BASE [<DX>], [<DY>], [<DZ>], [<rotacin>]

Ejemplo 1: BASE PUNTO 1, PUNTO 2, -50, 0

Ejemplo 2: BASE 0,0,100,0

ATENCIN: Consideramos que es la antigua base la que se desplaza respecto a la nueva (de aqu la
diferencia de signos.

Si se desea utilizar otra referencia en que los planos XZ, XY, etc... no sean paralelos respecto a la
referencia de base, se puede hacer con la instruccin FRAME.

100
COMO DESPLAZAR LA REFERENCIA UTIL ?

TOOL <nombre de la transformacin>

Ejemplo: TOOL TRANS

TRANS se deber haber definido previamente.

Si TRANS tiene la siguientes coordenadas.

Observacin: TOOL es una de las pocas instrucciones que se pueden utilizar en modo programa y
(.,*).

Esta instruccin es importante ya que permite pasar el extremo del soporte de la pinza (hasta entonces
tomado como referencia) al extremo del til, tanto a nivel dimensional como rotacional.

101
TRANSFORMADAS COMPUESTAS

102
En muchos casos, es ms ventajoso tragbajar segn la referencia til en el extremo del soporte de la
pinza que segn la referencia cartesiana de base.

El punto final donde debe llegar el robot, ser una composicin de las distintas cotas definidas segn el
eje X, Y, Z til asociado a las cotas X, Y, Z de coordenadas de base.
Hay una composicin de dos sistemas de referencia por lo que lo llamamos transformada compuesta.

MOVE A : B

Las cotas X, Y, Z del punto B, se definen en la referencia til


y con respecto al punto A.

Las cotas del punto A se definen en la referencia, con


respecto a su origen.

103
Tericamente, se pueden aadir tantas cotas como se quieran, aunque a partir de 3, se deben tener en
cuenta los errores que se van acumulando ...

Instrucciones que aceptan las transformadas compuestas:

MOVE A : B
APPRO A: B,50
SET = A : B
HERE A : B
TEACH A : B0
T Y TS comando editor

Se puede hacer una correccin de cotas segn el sistema de referencia del til, en modo comando o en
programa, con la instruccin TOOL.

104
FRAME (<comp 1>, <comp 2>, <comp 3>, <comp 4>)

Donde COMP 4 es un punto que define el origen de la nueva referencia en que:

1. El eje X es paralelo a una lnea que pasa por los puntos COMP 1 y COMP 2 (sentido positivo del
primero hacia el segundo).
2. El eje Y es perpendicular al eje X y pasa por COMP 3 (el sentido positivo viene definido por
COMP 3)
3. El plano X Y viene definido por los puntos COMP 1, COMP 2, COMP 3.

Ejemplo 1: HERE FRAME (CP1, CP2, CP3, CP4) : S1

S1 tendr las coordenadas relativas con respecto a este nuevo sist. De referencia.

Ejemplo 2: MOVE FRAME (CP1, CP2, CP3, CP4) : S1

Ejemplo 3: SET X = FRAME (CP1, CP2, CP3, CP4)


APPRO X : S1, 30
MOVE X : S1

105
CONTROL DE CONFIGURACIN

106
READY

Permite posicionar el brazo del robot en una posicin particular.

107
ALIGN

Permite poner el eje Z til paralelo al eje ms prximo del sist. de referencia de base (X, Y o Z)

108
Ejemplo:

PROG ENSAYO

1 BELOW
2 MOVE A ->
3 ABOVE
4 MOVE A ->

Porqu no funciona el programa siguiente?

PROG ENSAYO

1 MOVE A
2 BELOW
3 MOVE A
4 ABOVE

109
Ejemplo : PROG ESSAI

1 LEFTY
2 MOVE A
3 RIGHTY
4 MOVE A

RIGHTY-LEFTY

110
FLIP
NOFLIP

Esta funcin permite realizar una simetra respecto al eje 5 conservando los ngulos O, A, T en la
referencia de base.

FLIP da valores de ngulos negativos al eje 5

NOFLIP da valores de ngulos positivos al eje 5.

Ejemplo:

PROG FLIP

1 FLIP
2 MOVE A
3 NOFLIP
4 MOVE A

111
CONTROL DE TRAYECTORIA

112
COARSE [ALWAYS]

Esta instruccin permite, en el caso de que el robot no llegue a su posicin, que el ciclo no se detenga y
no aparezca mensaje de error.

X segundos despus de salir del punto A, deberamos encontrarnos en B. Si el robot est en B y si se


ha indicado previamente COARSE, contina hacia C.

Ejemplo:

COARSE ALWAYS
MOVE A
MOVE B
MOVE C

FINE [ALWAYS]

Es lo contrario de la instruccin anterior.

Nota: Las instrucciones subrayadas son las que la mquina toma por defecto.

113
ENABLE CP

Esta instruccin declara que el servosistema de velocidad es prioritario sobre el servosistema de


posicin.

DISABLE CP

Esta instruccin declara al robot que el servosistema de posicin es prioritario sobre el servosistema
de velocidad.

NULL [ALWAYS]

La unidad central, espera que los movimientos de los ejees haya finalizado antes de ejecutar la
siguiente instruccin.

NONULL [ALWAYS]

La unidad central espera que un slo movimiento llegue a su consigna para realizar la siguiente
instruccin, de forma que habr un ligero error de posicin.

114
INTOFF[ALWAYS]

Esta instruccin es idntica a COARSE, aunque se aplica al seguiente de la trayectoria y no a la


posicin final.

Si INTOFF ->La mquina acepta la desviacin.


Si INTON -> La desviacin hace que aparezca un mensaje y el movimiento cesa.

El error sobre la trayectoria puede venir provocado por un obstculo, inercia, etc.

INTO [ALWAYS]

Es el opuesto de la instruccin anterior.

BREAK

Esta instruccin permite hacer pasar en disable CP, slo para la instruccin de movimiento siguiente.

Ejemplo:

Adems, permite interrumpir la ejecucin del programa durante la bsqueda de su destino.

115
Las siguientes instruccines slo conciernen los modelos 761/763 a partir de las versiones 2.0H Y
2.0.J.

ELSPON

Por debajo de SPEED 10, si se desea un desplazamiento suave lineal, y progresivo se puede utilizar la
instruccin ELSPON.

Esta ser vlida hasta que encuentre:

ELSPOFF

Ntese que ELSPOFF es el valor que se toma por defecto y que una reinicializacin provoca el mismo
efecto que ELSPOFF.

116
PAYLOAD <valor> <unidad> unidad en Kg o en libras 0 < 0 = valor < 0 = 4kg.

Esta instruccin permite adaptar el robot a las condiciones reales de carga a transportar.

Funciona con los robots 562 y permite reducir el tiempo de desplazamiento.

Esta instruccin es valida en el caso de que la carga a transportar sea inferior al valor mximo que el
robot puede soportar.

MOVE A
MOVE B
MOVE C
BREAK
PAYLOAD 2 KG
MOVE D
MOVE E
BREAK
PAYLOAD 4 KG
MOVE F
MOVE G

Atencin: Si la carga real es superior a la inidcada por payload, el robot se puede estropear.

117
OPERACIONES CON DISQUETTES

Atencin: Las instrucciones siguientes slo funcionan en modo (.) o (*).

118
FORMAT

La mquina responder:

ARE YOU SURE (Y,N)?

Esta instruccin permite configurar un disquette nuevo para el posterior almacenamiento de


programas. La operacin de formateado define el nmero de pistas, nmero de sectores por pista, etc.

Atencin: Si se formatea un disquette que contenga ficheros, stos ser destrudidos.

119
LISTF ( O FLIST)

Visualiza los nombres de los ficheros contenidos en el disquette.

Atencin: LISTF no visualiza el contenido de cada fichero.

Ejemplo: LISTF

En pantalla aparecer:

TOTO.V2
TITI.V2
TUTU.V2
PRO1.V2
Etc...

120
STORE nombre de fichero = nombre prog 1, nombre prog 2, ...

Ejemplo: STORE FIC.1 = TOTO, TITI

Los programas TOTO.PG, TOTO.LC, TOTO.RV, y TITI.PG, TITI.LC, TITI.RV se grabarn bajo el
nombre de ARCHIVO FIC.1.V2.

STORE (o LSTORE)

Ejemplo: STORE FIC.1 = TOTO, TITI

La sintaxis es idntica a la instruccin STORE, salvo que aqu solo concierne a los ficheros de puntos
asociados al programa.

El nombre del fichero en el disco ser FIC.1.LC.

121
STORE (o PSTORE)

Idem a la instruccin STORE, salvo que sta slo concierne al almacenamiento de ficheros de
programas.

Ejemplo: STORE FIC.1 = TOTO, TITI

El nombre del fichero en el disco ser FIC.1.PG.

RESTORE (o STORER)

Idem a la instruccin STORE, salvo que sta slo concierne al almacenamiento de ficheros de
variables reales.

Ejemplo: STORER FIC.1 = TOTO, TITI

El nombre del fichero en el disco ser FIC.1.RV.

122
LOAD nombre de fichero

Ejemplo: LOAD FICH.1.PG El programa FICH.1.PG va a la memoria.

O LOAD FICH.1.LC El programa FICH.1.LC va a la memoria.

O LOAD FICH.1.RV El programa FICH.1.RV va a la memoria.

O LOAD FICH.1 En este ltimo caso, los programas FICH.1.PG., FICH.1.LC,


FICH.1/RV van a la memoria.

Atencin: Si en la memoria ya existe un programa con el mismo nombre, el nuevo sustituye al


antiguo.

123
FDELETE (o DELETEF)

Ejemplo: FDELETE FIC.1.PG

La mquina responder:

ARE YOU SURE (Y,N) ?

Si la respuesta es afirmativa, el fichero correspondiente ser destruido.

Atencin: Se debe indicar bien el sujeto LC, PG o RV que sigue al nombre del programa.

124
COMPRESS

La mquina responder por:

ARE YOU SURE (Y,N) ?

En el caso que el disco est lleno (en pantalla indica DISK FULL), utilizar la orden COMPRESS para
comprimir todos los programas y recuperar espaci.

125
RENAME <nombre del nuevo fichero> = < nombre del antiguo fichero>

Ejemplo: RENAME TOTO.PG = TITI.PG

El fichero del disco llamado TITI.PG pasa a llamarse TOTO.PG

Atencin: Este comando slo funciona a partir de la versin 2.0 del VAL II.

126
PROCESO DE AUTOSTART

127
EL AUTOSTART

Su papel:

Cuando se quiere arrancar el robot, al empezar la jornada, se deben hacer cierto nmero de
operaciones que pueden ser fastidiosas.

Estas operaciones se pueden reducir reagrupndolas en un fichero llamado AUTO.

Procedimiento:

1. Editar el programa que se desea utilizar en autostart (si ste no existe).

Ejemplo: ENSAYO

2. Editar bajo el nombre de AUTO (este nombre es indispensable) los distintos comandos que se
deseen, precedidos por las instrucciones MC.

Ejemplo: EDIT AUTO


1 ? MC CAL
2 ? MC LOAD ENSAYO
3 ? MC EX ENSAYO

3. Hacer arrancar la unidad de mando siguiendo el proceso siguiente:


a. Puesta en marcha de la pantalla /teclado
b. Mantener el botn AUTOSTART al mismo tiempo que alimentamos la unidad de control.

Atencin: No soltar antes de que el testigo AUTOSTART se encienda.

c. en pantalla aparece:

AUTO STARTUP: need ARM POWER & COM mode

o conectar la alimentacin del brazo.


o Aseguarse de que el testigo del mando manual est en el modo COMP.

d. el robot ejecutar los distintos comandos indicados en el programa AUTO.


Nota: El proceso AUTOSTART se puede realizar sin pantalla, sin mando manual y eventualmente sin
floppy (en el caso que todos los elementos necesarios para la ejecucin del programa AUTO
residan en memoria RAM registrados.

Observacin: Constatar que si se emplea DO delante de las instrucciones de programas que se


pueden mezclar rdenes de monitor y rdenes de programas en la elaboracin del
programa AUTO.

Ejemplo: PROG AUTO


1 ? MC CAL
2 ? MC SP 10
3 ? MC DO TYPE INSTRUCCION PROG
4 ? MC LOAD ENSAYO
5 ? MC EX ENSAYO, 1, 9

Atencin: A partir de la versin 2.0 se pueden aadir etiquetas en el programa autostart.

128
Ejemplo: MC CAL

1 MC DO READY
2 MC DO X = 0
3 8 MC DO X = X + 1
4 MC DO TYPE VALOR DE X = , X
5 MC IF X < 10 GOTO 8
MC DO TYPE FIN

129
COMANDOS ESPECIFICOS

STATUS

Este comando da el estado interno del robot.

Ejemplo : STATUS

ROBOT STATE : MANUAL MODE -> indica el modo del robot.


MONITOR SPEED : 20.00-> indica la velocidad del monitor.
PROGRAM CYCLES
COMPLETED : 1-> nmero de ciclos ejecutados
REMAINING : 0-> nmero de ciclos restantes
PROGRAM : NEXT STEP
CABS : 11 -> nombre y nmero de lnea en
que se ha detenido el programa.

FREE

Este comando da el estado de la memoria RAM.

Ejemplo: FREE
% UNUSED MEMORY : 98.21 98.21% de la memoria que queda libre.

DONE

Este comando permite pasar el lenguaje VAL al lenguaje mquina (O.D.T.)

ZERO

La mquina responde por:

ARE YOU SURE (Y,N)?

Este comando permite vaciar todo el contenido de la memoria, y las entradas / salidas exteriores.

130
WHERE

Esta instruccin permite conocer la posicin del robot en el momento en que se declara este comando.

Ejemplo : WHERE

Posicin % X Y Z O A T
En la referencia
De base (en mm) -> 45.53 35.28 -28.42 90 -85.32 17.427

Jt 1 Jt2 Jt3 Jt4 Jt5 Jt6


Posicin angular
En grados -> -3.47 -85.983 84.728 -69.46 6.438 5.87

WHERE 1

Este comando permite obtener dinmicamente los valores de WHERE.

Para salir de este modo teclear C.

131
EJEMPLO DE APLICACIN

Despaletizado de botellas de champaa

Se desea paletizar y despaletizar un contenedor de botellas segn el ciclo siguiente:

132
133
PLANO DE IMPLANTACIN

134
ELEMENTOS DE TOMA

135
ABACO DE TIEMPOS

136
PROGRAM princ

1 MOVE #13
2 Rang = 0
3 SET a1 = p1
4 SET a11 = p11
5 SET a3 = p3
6 SET a33 = p33
7 SET a2 = p2
8 SET a 22 = p22
9 SET a4 = p4
10 SET a 44 = p44
11 SET d1 = dg1
12 SET d11 = dg11
13 SET d2 = dg2
14 SET d22 = dg22
15 SET d3 = dg3
16 SET d33 = dg33
17 SET d4 = dg4
18 SET d44 = dg44
19 SET a1a = p1a
20 SET d1a = dg1a
21 SET a2a = p2a
22 SET d2a = dg2a
23 SET d13 = dg13
24 SET do = rot
25 TIMER (2) = 0
26 10 TIMER (1) = 0
27 TIMER (3) = 0
28 MOVE d33
29 MOVES a33
30 BREAK
31 SIGNAL 1
32 MOVES d33
33 CALL pose
34 MOVE d44
35 MOVES a11
36 BREAK
37 SIGNAL
38 MOVES D44
39 CALL pose
40 MOVE d11
41 MOVES a11
42 BREAK
43 SIGNAL 1
44 MOVES d11
45 MOVE d13
46 CALL posea
47 MOVE d22
48 MOVES a22
49 BREAK
50 SINGAL 1
51 MOVES d22
52 MOVE do
53 CALL pose
54 IF rang > 6 GOTO 20
55 MOVE d1
56 MOVES a1
57 BREAK
58 SIGNAL 1
59 MOVES d1
60 CALL pose
61 MOVE d2

62 MOVES a2
63 BREAK
64 SIGNAL 1
65 MOVES d2
66 CALL pOse
137
67 30 IF rang > 8 GOTO 40
68 MOVE d3
69 MOVES a3
70 BREAK
71 SIGNAL 1
72 MOVES d3
73 MOVE d13
74 CALL posea
75 MOVE d4
76 MOVES a4
77 BREAK
78 SIGNAL 1
79 MOVES d4
80 MOVE do
81 CALL pose
82 A = TIMER (1)
83 TYPE a
84 SET a1 = SHIFT (a1 BY,, -89)
85 SET a11 = SHIFT /A11 BY, , -89)
86 SET a3 = SHIFT (a3 BY ,, -89)
87 SET a33 = SHIFT (a33 BY ,, -89)
88 SET a2 = SHIFT (a2 BY,, -89)
89 SET a22 = SHIFT (a22 BY , , -89)
90 SET a4 = SHIFT (a4 BY, , -89)
91 SET a44 = SHIFT (a44 BY , , -89)
92 SET d1 = SHIFT(d1 BY , , -89)
93 SET d11 = SHIFT (d11 BY , , -89)
94 SET d2 = SHIFT (d2 BY , , -89)
95 SET d22 = SHIFT (d22 BY , , -89)
96 SET d3 = SHIFT (d3 BY , , -89)
97 SET d33 = SHIFT (d33 BY , , -89)
98 SET d4 = SHIFT (d4 BY , , -89)
99 SET d44 = SHIFT (d44 BY , , -89)
100 Rang = rang +1
101 IF rang > 5 GOTO 50
102 SET d13 = SHIFT (d13 BY, , -89)
103 SET do = SHIFT (do BY , , -89)
104 50 IF rang < 10 GOTO 10
105 20 rang1 = 0
106 OPEN
107 MOVE d1a
108 MOVE a1a
109 BREAK
110 SIGNAL 1
111 MOVES d1a
112 CALL pose
113 OPEN
114 MOVE d2a
115 MOVES a2a
116 BREAK
117 SIGNAL 1
118 MOVES d2a
119 CALL pose
120 SET a1a = SHIFT (a1a BY , , -89)
121 SET d1a = SHIFT (d1a BY , , -89)
122 SET a2a = SHIFT (a2a BY , , -89)
123 SET d2a = SHIFT (d2a BY, , -89)

138
124 Rang1 = rang1 + 1
125 GOTO 30
126 40 OPEN
127 MOVE #dg12
128 MOVE #dgo
129 MOVE dega1
130 MOVES pr1
131 BREAK
132 SIGNAL 1
133 MOVES dega1
134 MOVE #dgo
135 MOVE #dg12
136 CLOSE
137 CALL pose
138 OPEN
139 MOVE #dg12
140 MOVE #dgo!
141 MOVE dega2
142 MOVES pr2
143 BREAK
144 SIGNAL 1
145 MOVES dega2
146 MOVE #dgo1
147 MOVE #dg12
148 CLOSE
149 CALL pose
150 C = TIMER (3)
151 TYPE C
152 b = TIMER (2)
153 TYPE b

END

PROGRAM pose
1 MOVE #dg13
2 CLOSE
3 MOVE #apo12
4 MOVE #po12
5 COARSE
6 MOVES po12
7 BREAK
8 SIGNAL 1
9 FINE
10 MOVE #dg4
11 MOVE #dg13
12 RETURN

END

PROGRAM posea

1 MOVE #rot
2 MOVE #dg11
3 MOVE #apo10
4 COARSE
5 MOVES #po10
6 BREAK
7 SIGNAL 1
8 FINE
9 MOVES #dgr1
10 MOVE #rot
11 RETURN

END

139
CABLEADO DE ENTRADA

140
CABLEADO DE SALIDA

141
ESQUEMA DEL CABLEADO

142
TECNOLOGA DEL ENCODER

143
144

You might also like