Está en la página 1de 0

GUA

VAL 2
























MANUAL N 2

Copyright 1992 by STUBLI S.A.
D.280.172.05. (A)
1
INTRODUCCIN

Este curso es un complemento del curso n 1 VAL II, por lo tanto es aconsejable tener bien
aprendido el curso n 1 antes de abordar el curso n 2.

Este curso comporta las instrucciones necesarias para:

La programacin estructurada.
La conversin digital/analgica y analgica/digital.
La modificacin de trayectorias en tiempo real.
Las funciones de autmatas programables o tratamiento de informaciones asincronas con
respecto al programa de movimiento del robot.

Para todas las instrucciones bsicas referirse al curso n 1 VAL II.

Este fascculo est estructurado para responder cuestiones:

en la primera parte, descripcin de cada instruccin, en el caso en que pdra haber
ambigedad, un ejemplo de aplicacin lo ms simple posible.
En anexo 1, un conjunto de ejemplos de aplicaciones con ejemplos para ayudar a una buena
asimilacin de estas instrucciones.
En Anexo 2, algunos programas que contienen errores voluntarios de sintaxis y/o estructura,
unsted deber encontrarlas ...
En Anexo 3, lista de palabras clave.
En Anexo 4, empleo de instrucciones que permiten trabajar en lenguaje mquina.


Es posible que este fascculo contenga inexactitudes o errores tipogrficos. En ediciones posteriores
pueden aportarse modificaciones para mejorar su calidad.


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



Buena asimilacin !

2

SUMARIO

0. Convenios de escritura ................................................................................. 4 y 5
Funcionamiento en mono-tarea..................................................................... 6
Funcionamiento en multi-tarea...................................................................... 7 y 8
Repaso.......................................................................................................... 9
Las variables reales ...................................................................................... 10 y 11
Las variables dimensionadas ....................................................................... 12 y 13
1. LLAST, RLAST ............................................................................................. 14
Operadores de relacin y lgicos ................................................................. 15
Operadores matemticas ............................................................................. 16
Operadores binarios ..................................................................................... 17
Orden relacional de desencadenamiento de las operaciones ...................... 18
FuncIones matematlcas ................................................................................ 19 y 20
Programas asincronos .................................................................................. 21
PCEXECUTE y PCEND, BRAKE ................................................................. 22
2. Instrucciones de movimiento ........................................................................ 23
STOP............................................................................................................. 24
Operaciones matemticas con las coordenadas de los puntos .................... 25
DECOMPOSE ............................................................................................... 25
DX, DY, DZ.................................................................................................... 26
TRANS .......................................................................................................... 27
PPOINT ......................................................................................................... 27
SCALE........................................................................................................... 28
INVERSE....................................................................................................... 29 a 31
NORMAL........................................................................................................ 32
3. NULL.............................................................................................................. 33
DISTANCE..................................................................................................... 34
INRANGE....................................................................................................... 35
TODIS, TOANG.............................................................................................. 36
HAND............................................................................................................. 37
Funciones de control del robot ...................................................................... 38
PENDANT...................................................................................................... 39 y 40
DET ACH, A TTACH ..................................................................................... 41
ERROR.......................................................................................................... 42
4. REACTE......................................................................................................... 43
STATE ........................................................................................................... 44 y 45
ID ................................................................................................................... 46
TPS................................................................................................................ 47
STRANS......................................................................................................... 48
TIMER............................................................................................................ 49
5. Instrucciones estructuradas de test ............................................................... 50
Introduccin.................................................................................................... 51
DO ... UNTIL .................................................................................................. 52
WHILE ... DO ... END .................................................................................... 53
CASE...OF ... V ALUE...END ........................................................................ 54
IF... THEN...ELSE...END ............................................................................... 58
FOR... TO...END ........................................................................................... 59
6. Las seales de entradas y salidas exteriores "todo o nada" ......................... 60
Asignacin general ........................................................................................ 61
Entradas sincronas, BITS .............................................................................. 62
Entradas asincronas, REACT O REACTI ...................................................... 63
PRIORIDAD de las distintas llamadas............................................................ 64
3
PRIORITY....................................................................................................... 69
LOCK ............................................................................................................. 70
Aplicacion ...................................................................................................... 71
Salidas .......................................................................................................... 74
10PUT y 10GET............................................................................................. 75
7. Las senales de entradas y salidas "analgicas" ............................................ 76
Entradas analgicas ...................................................................................... 77
Caractesticas principales del convertidor de entrada................................... 78
Salidas analo.gicas ........................................................................................ 79
Caracteristicas principales del convertidor de salida...................................... 80
8. Funciones y comandos diversas.................................................................... 81
PARAMETER, TERMINAL, ADCGAIN, etc .................................................... 82
Interruptores software, DISK NET ................................................................. 84
DRY RUN....................................................................................................... 85
EHAND .......................................................................................................... 85
INTERACTIVE................................................................................................ 85
NETWORK, SRV ERR, etc ............................................................................ 87
SWITCH ........................................................................................................ 88
PCST A TUS ................................................................................................. 89
PULSE .......................................................................................................... 90
ULIMIT o LLIMIT ............................................................................................ 91
SPEED (argument) ....................................................................................... 92
COMMANDS ................................................................................................. 93
I0 .............................................................................................................. 94
9. Modificacin de trayectorias en tiempo real .................................................. 95
Principb ......................................................................................................... 96
Descripcion general ....................................................................................... 97
NOAL TER, AL TOUT ................................................................................... 98
Correccin en AL TER interno ...................................................................... 99
Correccin en AL TER externo ..................................................................... 100
Organigrama del principio de funcionamiento de la funcion AL TER ............ 101
Protocolo de envio de datas o mensajes ....................................................... 102
Comunicacin de VAL II hacia un calculador exterior ................................... 104
Mensaje inicial ............................................................................................... 105
Mensaje corriente .......................................................................................... 106
Mensaje final ................................................................................................. 107
Comunicacion de un calculador exterior hacia el V AL II ............................... 108
Serial de recibo del mensaje inicial ............................................................... 109
Mensajes corrientes ...................................................................................... 110
Observaciones importantes ........................................................................... 112
Tiempo necesario para las transmisiones ..................................................... 113
Tiempo de transmision de V AL II hacia un calculador exterior ..................... 114
Tiempo de transmision de un calculador exterior hacia el VAL II ................... 115
10. Anexo 1. Ejercicios de aplicacin cronmetro de ciclo ................................. 116
Figuras
Collage
11. Anexo 2. Encontrar el error ........................................................................... 124
4
CONVENIO DE ESCRITURA

Vamos a pasar revista de las distintas instrucciones del lenguaje VAL II,

Por simplificacin vamos a utilizar smbolos que rodean los parmetros de estas instrucciones.

[] Este smbolo significa que los parmetros del interior de estos corchetes son facultativos.

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


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

Significa que el nombre del programa TOTO, as como 3 y 2 son facultativos.


5
El lenguaje VAL II es un lenguaje adaptado a la robtica, destinado a hacer ejecutar al brazo del robot
o a las salidas de tareas especificadas.

El lenguaje VAL II posee su propia sntaxis o gramtica la cual rige su estructura.

No acepta ms de una instruccin por lnea y el formato de una lnea es el siguiente:

< nmero de lnea > < instruccin [; comentarios ]

Todas las instrucciones que componen un programa se ejecutan secuencialmente.

De todas formas, el ordenador a nivel interno anticipa ciertos clculos (ver curso n 1 VAL II).

El lenguaje VAL II tiene una estructura de funcionamiento mono o multi-tareas, es decir, que el
ordenador es capaz de ejecutar dos programas independientemente uno del otro o entrelazados, de
forma que se podra considerar que se trabaja con dos ordenadores separados.

6
FUNCIONAMIENTO EN MONO-TAREA


7

FUNCIONAMIENTO EN MULTI-TAREAS


8
Decimos Que el lenguaje VAL es un lenguaje interpretado ya que traduce cada lnea del programa
en lenguaje mquina que es el nico lenguaje aceptado por la unidad central, antes de encrutar la
siguiente instruccin.

Si todo el programa escrito en VAL II se tradujera a lenguaje mquina y luego se lanzara la ejecucin en
lenguaje mquina se tratara de lenguaje compilado. Si este procedimiento tiene la ventaja de ser
ms rapido en velocidad de ejecucin, tiene el inconveniente de necesitar mucha memoria y ser muy
poco interactivo de cara al usuario (en caso de modificacin del programa) esta razn es la que ha
llevado a la elaboracin de un lenguaje VAL II interpretado.

9
REPASO


Un programa de robtica escrito en lenguaje VAL II comporta tres partes:

Parte de programa (xxxxx.PG),
Parte de variables de posicin (xxxxx.LC)
Parte de variables reales (xxxxx.RV)


IMPORTANTE

Los nombres de programas, ficheros (Programas en disquette), variables reales o variables
puntos, pueden ser cualesquiera y comportar un nmero ilimitado de caracteres.

Pero es necesario:

1. Que el primer caracter sea obligatoriamente una letra.
2. Que los otros caracteres sean caracteres alfanumricos (A...Z, 0 ... 1) y/o puntos.
3. Para las variables reales o puntos, se pueden utilizar corchetes, pero en este caso se tratar de
variables con ndice.
4. Que el nombre no sea una palabra clave (ver anexo 3).


Ejemplo: TOTO
TOTO.1
T1
ABZOARTUVHKLVUTRSKLOTUH.2
A
DUPONT.DURAND.TUTU.2
Etc...


Aunque A[1] solo se autoriza si se trata de una variable punto o real.

1TOTO esta prohibida ya que empieza por una cifra.

TOTO + 1 esta prohibido ya que el signo + no es un carcter alfanumrico ni un punto.


10
LAS VARIABLES REALES


Una variable real se puede atribuir explcitamente por el programador o como resultado de un clculo
ordenado por el programa.

CARACTER DE DECLARACIN

Implcitamente, una variable se expresa en base decimal. Por razones de comodidad, a veces, estas
variables se pueden definir en:

- Base octal


En este caso, el prefijo que aadimos ante el valor es .

Ejemplo: A = 23

(2 x 8
1
) + (3 x 8
0
) = 19 en base decimal
16 3

Esta notacin es interesante para la manipulacin de entradas / salidas exteriores (ver captulo
correspondiente).

11
- En cdigo ASCII


En este caso el prefijo es <<>>

Ejemplo : A = 1

Todos los caracteres alfanumricos o smbolos teienen una equivalencia binaria que se puede
codificar segn un cdigo internacional llamado ASCII con el fin de facilitar la transmisin de
informacin entre mquinas.

As, el carcter ~ tiene el valor 176 (base octal, mientra que 1 tiene el valor 61 (en base octal).

No busquemos ninguna correlacin entre estos valores ASCII y una base cualquiera se trata de una
tabla de equivalencia establecida de comn acuerdo entre los constructores de material informtico.

Usted encontrar esta tabla en el fasccula de programacin suministrado con el robot.

ATENCION: Una variable a la que no se ha asignado ningn valor u operacin no comporta el valor 0,
para la mquina tiene un valor indefinido.

Ejemplo : y = y + 8


Respuesta de la mquina: Hay que hacer
Y = 0
* UNDEFINITE VALUE * y = y + 8


12
VARIABLES DIMENSIONADAS

Se pueden asignar ndices a los nombres de variables reales y variables punto.

Ejemplo : A[l] = 3.14
o
MOVE B [l]

l en este caso se debe considerar como una variable entera.

La utilizacin de variables dimensionadas es interesante, ya que ms que asignar nombres distintos a
cada punto de una trayectoria, basta con incrementar el ndice de la variable, lo cual simplifica
considerablemente la programacin (ver los bucles FOR END, curso N 1).

As se obtiene una tabla que contiene 12 elementos.



13
Adems, vemos que se pueden utilizar varios ndices para una misma variable ya que se pueden
realizar operaciones matemticas en el interior de los corchetes.



Paleta


X J




I



Ejemplo : MOVE A [ I * 10 + J * 1]


J para asignar el nmero de puntos de la trayectoria de la mquina

I para asignar el tipo de mquina.


El ndice debe estar comprendido entre 0 y 63535 y ser un entero positivo.


14

LLAST (< nombre de variable punto [] <)

Gracias a esta instruccin, se puede obtener el valor mximo del ndice de una variable punto
dimensionada.

Ejemplo : Supongamos que tenemos en el fichero de puntos, las variables siguientes.


X Y Z O A T
A ... ... ... ... ... ...
B ... ... ... ... ... ...
X[1] ... ... ... ... ... ...
X[2] ... ... ... ... ... ...
C[2] ... ... ... ... ... ...
C ... ... ... ... ... ...
D ... ... ... ... ... ...
X[129] ... ... ... ... ... ...
Y[1] ... ... ... ... ... ...
G ... ... ... ... ... ...

Si en un programa, ejecutamos la instruccin:

VAR = LLAST (X[ ])

Obtendremos 129 en la variable real VAR.

RLAST (<nombre variable []>)

Esta instruccin es idntica a la anterior, pero se refiere a las variables dimensionadas reales.


15
OPERADORES RELACIONALES

Operador

De relacin

Descripcin


Simbolo

Ejemplo

<

Menor que A < B IF A < B GOTO 10
<= = <

Menor o
Igual que
A <= B (o A =< B) IF A <= B GOTO 10
== Igual que A == B


<> Distinto de

A <> B
>= = > Mayor o
Igual que
A>=B (o A=>B)
>

Mayor que A > B



OPERADORES LGICOS

Operadores

Funcin Ejemplo Descripcin
AND

Y IF ((B==3 AND (C==2)) GOTO 10 Si B = 3 Y C = 2
OR

O
(Inclusivo)
IF ((B==3 OR (C==2)) GOTO 10 Si B = 3 o C = 2
Iremos a 10
NOT

NO IF NOT (B == 3) GOTO 10 Si B es distinto a 3
Iremos a 10

















16
OPERACIONES MATEMATICAS

Operadores matemticas

Importante: Para las distintas operaciones matemticas, lgicas, etc ... se pueden agrupar las
operaciones con parntesis.

Ejemplo: En lugar de hacer:

A = 3 + B
G = 7 / 3 Se pueden hacer :
C + A * G
K = C / 2.4 P = (( 3 + B) * 7 / 3) / 2.4 ) - 6
P = K 6


Del mismo modo no se aceptan 2 operadores puntos.

Ejemplo: A = B + - 3 no se acepta pero A = B + (-3) si.



17
OPERADORES BINARIOS


18
ORDEN RELACIONAL DE DESENCADENAMIENTO DE
OPERACIONES

Cuando la mquina debe ejecutar una expresin del tipo:

Z = ( A / 3 + 2 5 * 3 ) + 4

Por qu operacin elemental empieza ?

Para el software VAL II, las operaciones se ejecutan en el orden siguiente:





Nota : En el caso de idntico nivel de prioridad, las operaciones, se realizan de izquierda a
derecha.


Consejo: Para evitar tener que conocer perfectamente la tabla superior, se pueden jerarquizar
las operaciones encuadrndolas entre parntesis (el calculador, efectua primero las operaciones de los
parntisis ms interiores.

19
FUNCIONES MATEMATICAS

Aparte de las cinco operaciones elementales, se pueden llamar funciones matemticas particulares.



20

21
PROGRAMAS ASINCRONOS


Ejecucin de dos programas simultneamente.




PROG. PRINCIPAL PROG. AUXILIAR











El programa PC (programa auxiliar) puede comportar las mismas instrucciones que el programa
principal excepto las siguientes:

INSTRUCCIONES DE MOVIMIENTO
REACT
REACTI
REACTE
ATTACH
DETACH
BASE
TOOL
PROMPT
BREAK
DELAY (esta instruccin se podra utilizar a partir de la versin 2.0).

El selector RESTART / HALT / RUN no afecta al programa PC.

Tabla comparativo funciones Principal Auxiliar


Lanzar un programa EXECUTE PROG, 3 PCEXECUTE PROG, 3
Detener un programa ABORTED PCABORTED
Reemprender un programa PROCEED PCPROCEED
Reemprender un programa RETRY PCRETRY
Paro inmediato del movimiento PANIC
Detencin al final del ciclo PCEND


Nota: Si el PC est bloqueado en un bucle interno, hacer C , seguido de PCABORT.

1 ? MOVE A
2 ? MOVE B
3 ? READY
4 ? SIG 1, -2
5 ? MOVE C
6 ? WAIT (SIG(1001) <> 0
7 ? TYPE ES MARAVILLOSO
8 ? TYPE TODO VA BIEN

Unidad
Central
1 ? A = A + B + 4 * 7
2 ? WAIT (SIG(2002) <> 0)
3 ? TYPE <<PROGR PC>>
4 =? TIMER 4 = 0
5 ? G = (A / 3) * 7
6 ? SIG 1,3,8,19
22
Adems, las instrucciones:

PCEXECUTE Y PCEND

Se pueden ejecutar en un programa principal para sincronizar los dos programas entre s.

Ejemplo: PROG TOTO PROG TITI

1? MOVE A 1? SIG1, -2
2? MOVE B 2? TIMER 3 = 0
3? PCEX TITI, -3 ejecucin 3? TWAIT TIMER (3)>=10
4? MOVE G 4? SIG 1, 2
5? MOVE D
6? PCEND paro ejecucin
7? MOVE K
8? DELAY 5
9? MOVE D3


OBSERVACIN:

Generalmente, se utiliza el programa auxiliar para asegurar las funciones de autmata programable en
paralelo o sincronizado con el programa de movimientos del robot.

Puede comunicarse con el programa de movimiento por medio de variables y/o bits de seales de
logiciel.

Puede ejercer un control sobre el brazo del robot por medio de BRAKE y/o ALTOUT.

Durante la ejecucin de un programa auxiliar, ste no tomar ms del 28% de los recursos de la unidad
central y pase lo que pase, no modificar la velocidad de los movimientos del brazo

BRAKE

Esta instruccin provoca el paro inmediato del brazo. As, en un programa PC, se puede provocar un
paro bajo condicin.
23
INSTRUCCIONES DE MOVIMIENTO

No volveremos sobre iinstruccin como MOVE, APPRO, DEPARTS, OPEN, etc (ver curso n 1).

De todas formas recordamos que si definen incrementos de movimientos, demasiado pequeos, el
robot no los ejecutar inmediatamente sino que los acumular de forma que la distancia entre dos
desplazamientos tenga al menos una duracin superiora 140 ms para lneas rectas (MOVES A) Y 60 ms
para movimientos de interpolaciones angulares (MOVE A o MOVE # A).






Adems, la unidad central siempre anticipa el clculo del punto siguiente durante la ejecucin del
movimiento.



MOVE A ! o APPRO A!, 50


Esta instruccin es idntica a MOVE A o APPRO A, 50, salvo que se asigne al punto A la posicin del
robot en el momento de teclear RETURN ().


Ejemplo: 18? MOVE A!


24
STOP

Esta instruccin permite interrumpir la ejecucin de un programa. Se pueden distinguir dos casos:

1er. Caso: la ejecucin del programa slo se ha pedido una vez.

En este caso, el programa acabar cuando se encuentra la instruccin STOP, incluso cuando esta
instruccin se encuentre en un subprograma.

Ejemplo: EX TOTO, 1 PROG TITI
1? MOVE A 1? MOVE G
2? MOVE B 2? STOP Paro
3? CALL TITI 3? TYPE HOLA
4? RETURN


2 CASO: Se ha pedido la ejecucin varias veces.

En este caso, la unidad central reemprender la ejecucin de las instrucciones a partir del principio del
programa principal, incluso si esta instruccin se encuentra en un subprograma.


Ejemplo: EX TOTO, -1 PROG TITI

1? MOVE A 1? MOVE G
2? MOVE B 2? STOP
3? CALL TITI 3? TYPE HOLA Vuelta al paso 1
4? RETURN del programa principal


25
OPERACIONES MATEMATICAS CON LAS COORDENADAS DE
PUNTOS


DESCOMPOSE <variable dimensionada> = <variable punto>


Esta instruccin permite asignar las coordenadas X, Y, Z, O, A, T del punto definido por variable punto
(o las coordenadas angulares de los 6 ejes, si se trata de un punto de precisin) a los seis primeros
elementos de la variable dimensionada.


Ejemplo: DESCOMPOSE Y [] = PTA

Y[0] <= X = 100 (en mm)
Y[1] <= Y = 30 (en mm)
Y[2] <= Z = 20 (en mm)
Y[3] <= 0 = 90 (en grados)
Y[4] <= A = -90 (en grados)
Y[5] <= T = 0 (en grados)

Esta funcin tambin vale para los puntos de precisin.

DESCOMPOSE TOTO [ ] = #PT 1

Aunque los valores asignados a la variable dimensionada TOTO sern en grados:

26
DX ( <COMP 1> )
DY ( <COMP 2> )
DZ ( <COMP 3> )

Esta instruccin es idntica por su efecto, a la orden DESCOMPOSE analizada anteriormente, pero solo
afecta al eje deseado (no funciona con los angulos O, A, T).


Ejemplo:

X = 100
Y = 30
Z = 20
Si PTA = 0 = 90
A = -90
T = 0


X1 = DX (PTA) => X1 = 100
X2 = DZ (PTA) => X2 = 20


27
TRANS ({<expr>}, {<expr>}, {<expr>}, {<expr>})


Es la operacin inversa de DESCOMPOSE, de esta forma, con la ayuda de valores, se puede
reconstituir un punto. Gracias a esta instruccin se pueden realizar operaciones matemticas con las
coordenadas de un punto y asignar el resultado a ste.


Ejemplo: MOVE A
MOVE TRANS (X * 1.27, X/cas (angle), Z* 3.29, 4*2, 20*3.28,0)


Pero ATENCIN, TRANS no funciona para puntos de precisin. En este caso utilizaremos la instruccin
PPOINT.


PPOINT (<expr>}, {<expr>},{<expr>}{<expr>}{<expr>}{<expr>}


Ejemplo: MOVE # PPOINT (x[0], x[1] + 7, x[2]*sin(a), x[3], x[4], x[5] 28)


28
SCALE (<transformada> BY <expresin>)


Esta instruccin permite una operacin matemtica (multiplicacin, divisin, etc...) con los valores de las
coordenadas X, Y, Z de los puntos designados.



Ejemplo: si el punto Q tiene por coordenadas:

X 300 X 600
Y 50 Y 100
Q Z 10 Q=SCALE(Q BY 2) Q Z 20
O 90 O 90
A -90 A -90
T 0 T 0


Constatamos que las coordenadas X, Y, Z se han multiplicado por Z (pero no O, A, T)
29
INVERSE <punto>


Ejemplo: SET G = INVERSE (A)

Si A es una transformacin que define un punto con respecto a la referencia de base, INVERSE (A)
definir la referencia del robot con respecto al punto A.



30
APLICACIN




Si deseamos obtener la transformacin B a partir de la transformada A y C, cmo lo haremos?

Se puede escribir:

[C] = [A].[B] as [A
-1
].[C] = [A
-1
].[A].[B]

[I]


Matriz identidad

As:

[B] = [A
-1
].[C]

por lo que es til la funcin INVERSE:

SET B = INVERSE (A):C

Recordamos que la multiplicacin no es commutativa para el producto matricial, lo caul significa que si
multiplicamos una expresin por una matriz a la derecha, deberemos multiplicar la otra por una matriz a
la derecha.

31
EJEMPLOS




Disponemos de las cotas del punto T con respecto a la ref de base O (estas cotas se han definido
previamente por una orden HERE, POINT, etc).

Se conocen las coordenadas del punto A.


Deseamos obtener las cotas del punto T con respecto a la referencia til situada en el punto A.

Se puede escribir.


B es la transformada entre el punto T y el punto A



Desconocido
Conocido
Conocido


En VAL II - - > SET T = A : B

Entonces B = A 1 . T

En VAL II => SET B = INVERSE (A) : T


Cotas del punto T con respecto al punto A.


T = A . B
32

NORMAL (<punto>)

Esta instruccin permite reducir los errores del clculo en transformadas compuestas sucesivas.

Ejemplo: MOVE A:B:C:D:E:F:G

Hemos visto que por encima de 5 transformaciones, se obtienen errores de cotas muy importantes.
Para reducirlas, tenemos la posibilidad de hacerlo con la instruccin NORMAL. Procederemos de la
manera siguiente:


SET X = A:B:C:D:E:F:G
MOVE A:B:C:D:E:F:G SET X = NORMAL (X)
MOVE X


33
NULL


Esta instruccin permite definir un vector NULL del tipo.


X Y Z O A T
0 0 0 90 -90 0

y representa por los ngulos 0, A, T la posicin READY del robot ya que READY representa la
posicin nula mecnicamente).


Ejemplo: SET B = NULL

A menudo, esta instruccin se utiliza para reinicializar una variable punto.


ANTES DESPUES

Punto B Punto B
X = 123 X = 0
Y = -17 Y = 0
Z = -127 SET B = NULL => Z = 0
0 = 90 0 = 90
A = -10 A = -90
T = +30 T = 0



34
DISTANCE (<comp 1>, <comp 2>)

Esta instruccin da la distancia en mm entre dos puntos.


Ejemplo 1 : X = DISTANCE (A,B)
A


155 mm




B



35
INRANGE ( C )
O
INRANGE (A:B)

Esta instruccin permite definir, en una variable, un cdigo el cual, segn su valor nos dir si el eje 1
est fuera del lmite, etc...

Ejemplo : ER = INRANGE (A:B)

ER podra tomar los siguientes valores:















Ejemplo: 20T = INRANGE (B)
IF (T ==0) GOTO 5
IF (T == 256) GOTO 10
.
.
.
5 TYPE TODO VA BIEN
GOTO 20
TYPE NO SE PUEDE LLEGAR AL PUNTO, ESTA DEMASIADO LEJOS DE LA
COLUMNA DEL ROBOT


NOTA: Esta instruccin slo funciona con los puntos de transformada, y no con los puntos de
precisin.


0 Se puede llegar al punto
1 El eje 1 estar en limite
2 El eje 2 estar en lmite
4 El eje 3 estar en lmite
8 El eje 4 estar en lmite
16 El eje 5 estar en lmite
32 El eje 6 estar en lmite
64 Reservado para aplicaciones futuras.
128 El punto estar demasiado cerca de la columna del robot
256 El punto estar demasiado lejos de la columna del robot.
36
TODIS


Esta instruccin nos da el factor de conversin que utiliza el calculador para convertir las dimensiones,
expresadas en mm para cada tipo de robot (260, 560, 761, 762, ...)






TOANG
Esta instruccin es identica a la anterior pero se refiere al coeficiente que afecte los ngulos.
37
HAND


Esta instruccin permite declarar el estado de la pinza en una variable.


38
FUNCIONES DE CONTROL DEL ROBOT


39
PENDANT (<expresin>)


Hemos visto que el robot se puede desplazar manualmente gracias al mando manual, por las teclas
situadas en este mando, o por el armario de mandos, por un cdigo que se puede detectar a travs de
un programa en lenguaje VAL II.






Ejemplo: X = PENDANT (2)

Si obtenemos en la variable X, el valor (20) deduciremos que el botn COMP del mando manual, ha
sido presionado.
40





41
DETACH


Esta instruccin ordena dar el control del brazo del robot al mando manual. As, el usuario podr en el
interior de un programa, desplazar el brazo manualmente para situarlo en el lugar deseado.


ATTACH

Esta instruccin permite dar control del brazo del robot a la unidad de mando.


Ejemplo: MOVE A
MOVE B
DETACH
TYPE DESPLAZARSE AL PUNTO C POR FAVOR
TYPE CON LA AYUDA DEL MANDO MANUAL
TYPE CUANDO LLEGUE, PRESIONAR COMP
* WAIT (PENDANT (2) BAND 20 <> 0
SET C = HERE
ATTACH
MOVE K
MOVE C

* Nota: Tambin podramos haber utilizado:
WAIT (STATE (3) == 5) <> 0


42
ERROR (<expresin>)


Esta instruccin permite obtener un cdigo que indica el tipo del ltimo error que se ha producido.

Si la expresin es 0, se trata del ltimo error encontrado en un programa robot.

Si la expresin es 1 se trata de un error en un programa PC.

Si la expresin es 1 se trata del ltimo error que se ha recibido de un calculador exterior a travs de la
funcin ALTER externa.


Ejemplo X = ERROR (0)
TYPE EL CODIGO DE ERROR ES EL SIGUIENTE , X


Ver el cuadro del fascculo de lenguaje VALII, apndice F.

43
REACTE <programa>


Si ocurre algn error despus de la ejecucin de esta instruccin, el programa se desviar hacia el
programa designado.


Ejemplo: 1 MOVE A
2 REACTE ACCIDENTE
3 MOVE B
error: 4 MOVE C -> PROG ACCIDENTE
Invalide -> 5 MOVE K 1 ATTACH
Solution 6 MOVE F 2 MOVE J3
3 TYPE HAY UN PROBLEMA
4 RETURN


De todas formas, un programa PC, no puede contener instrucciones REACTE.

El programa designado no se interrumpe nunca por consideraciones de prioridad.

El programa de tratamiento provocado por un error, siempre debe empezar por la instruccin ATTACH.

El objetivo de esta instruccin, es permitir el paro o la puesta en marcha de un proceso perirobtico
despus de un error. La ejecucin de esta instruccin con otros fines requiere extrema prudencia.

44
STATE (<expresin>)

El objetivo de esta instruccin, es conocer el estado de la unidad de comando (1), brazo del robot (2) o
mando manual (3).

Si la expresin es igual a 1

Ejemplo : X = STATE (1)


Nos referimos al cuadro inferior para interpretar el cdigo encontrado en la variable X.

Obtenemos el estado de la unidd de comando.


Valor

0 Sistema instalndose. Todava no hay alimentacin en el brazo.
1 Ha aparecido un FATAL ERROR y la alimentacin del brazo no se puede hacer.
2 En espera de que se presione el botn de alimentacin del brazo.
3 Se acaba de alimentar el brazo.
4 Se ha validado el modo manual.
5 Se est calibrando
6 Se esta efectuando el comando LIMP (robot 260)
7 El brazo est bajo el control de un programa de aplicacin.


Si la expresin es igual a 2

Nos obtenemos el estado del brazo del robot;


Valor
0 No se ha ejecutado ninguna instrucci de desplazamiento
1 Se est haciendo el clculo de la trayectoria.
2 El movimiento est detenido sobre un punto definido
3 No hay error de posicin en un punto final indefinido.
4 El movimiento se ha detenido sobre un punto indefinido.
5 Declaracin para situarse en modo HOLD.
6 Detencin en modo HALT.
7 Declaracin debida a la ejecucin de una instruccin REACTI o BRAKE
8 Paro debido a las instrucciones REACTI o BRAKE.
9 Deceleracin debida a un error generado por el sistema o paro PANIC.
10 Paro debido a un error generado por el sistema o paro PANIC.


45





Si la expresin es igual a 3


Obtenemos el estado del modo manual
Valor Modo










Ejemplo: V = STATE (3)

Si en la variable V encontramos el valor 4, significa que el mando manual est en modo TOOL.



Si la expresin es igual a 4
Valor Modo

0 No calibrado
1 Calibrado


Si la expresin es igual a 5

Para el robot 562 Para el robot 760

Valor Modo Valor Modo
0 PAYLOAD 4kg, ELSPOFF
1 PAYLOAD 4 kg, ELSPON
2 PAYLOAD 2,5 kg, ELSPOFF
3 PAYLOAD 2,5 kg, ESLPON

0 OFF
1 FREE
2 JOINT
3 WORLD
4 TOOL
5 COMP
0 ELSPOFF
1 ELSPON
46
ID (<expresin>)

Esta funcin describe la configuracin del robot: esta instruccin es til en el caso de un supervisor que
quiera conocer la configuracin del sistema supervisado.


Ejemplo: VA = ID (1) => VA = 560


Es el modelo 560.

Los argumentos son los siguientes:

1 => Modelo
2 => N de serie
3 => Versin del logiciel
4 => Revisin
5 => Tipo de opcin


47
TPS

Esta instruccin permite sabel el nmero de impulsos generados por el sistema de tiempo interno en la
unidad central, para el encadenamiento de las distintas secuencias.


VA = TPS => VA = 34.72222



Armario robot





Este valor corresponde al nmero de segmentos elementales de 28 ms) por unidad de tiempo (1 seg).

Nota: Se puede deducir que 2 ms es el perodo mientras 34.72222 la frecuencia del sistema de
tiempo interno.

48
STRANS <nombre variable > []

Esta instruccin permite obtener, en una tabla dimensionada, el modelo matemtico (la matriz de
transfert) de la posicin del robot en el momento en que esta instruccin se ejecuta.

Ejemplo: STRANS A []

A [] es un cuadro constituido por 12 elementos, de los cuales los 9 primeros representan la matriz de
rotacin y los 3 ltimos representan la matriz de traslacin.


Estos elementos se deben multiplicar por los coeficientes (TODIS para los elementos de traslacin) para
ser utilizables.


Nota: Esta instruccin tambin puede figurar en un programa PC pero slo funciona a partir de la
versin 2.0 de VAL II:
49
TIMER nmero = valor

(-2 < 0 = nmero < 0 = 15) entero, real, expresin, etc ...


Esta instruccin permite afectar un contador (TIMER) con un valor cualquiera.


Ejemplo: TIMER 3 = 10

Preselecciona el valor 10 segundas en el timer n 3 por lo tanto timer n 3 va a incrementarse en
segundos en paralelo al funcionamiento de la unidad de comandos y su contenido ser accesible por el
programa en el momento deseado.

TIMER (<expresin>)

Esta instruccin permite recuperar un contenido (en segundos) de un TIMER designado por una
expresin.

Ejemplo 1: TP = TIMER (3)
TYPE VALOR DEL TIMER (3) = , TP


Aparecer:
2648.458


As podemos hacer una temporizacin muy precisa con la ayuda del programa siguiente:

1 MOVE A
2 TIMER 4 + 0
3 WAIT TIMER (4) <= 5
4 MOVE B


Obtenendremos una temporizacin de 5 segundos entre el movimiento de A y el de B.

Los timers 0, -1, -2 son timers particulares:

- El TIMER (0) responde al reloj interno del sistema, y por lo tanto solo puede ser ledo.
- El TIMER (1) empieza a descontar el principio de un movimiento hasta llegar al valor 0 en el
momento en que se llega a destino, esto sirve para determinar el tiempo previsto para un
desplazamiento elemental.
- El TIMER (-2) es similar al TIMER (-1) salvo que el valor 0 se obtiene cuando empieza la
deceleracin de movimiento.


Observacin: Si los TIMERS (1) al (15) no se preseleccionan, tienen un valor identico a TIMER (0).


50
INSTRUCCIONES ESTRUCTURADAS DE TEST


51
INSTRUCCION


Estas instrucciones de test, se llaman estructuradas porque obligan al programador a estructurar
convenientemente su programa.


En efecto, un programa estructurado, permite una claridad mayo y, por lo tanto, una mayor facilidad
para todas las modificaciones posteriores (lo cual supone una ventaja no despreciable en robtica).


Las instrucciones de test estructuradas son las siguientes:

- DO ... UNTIL
- WHILE ... DO ... END
- CASE ... OF ... VALUE ... END
- IF ... THEN .... ELSE ... END
- FOR ... TO ... STEP ... END



52
DO
<bloque de paso de programa>
.
.
.
UNTIL < expresin lgica >


Esta instruccin permite realizar un bloque de paso de programa hasta que el resultado de la expresin
lgica sea cierto.


Constatamos que con este tipo de instruccin, el bloque de paso de programa se ejecuta al menos una
vez.


Ejemplo: PROG BUCLE 1
1 MOVE A
2 DO
3 MOVE G
4 MOVE F
5 TYPE EJECUCION DEL CICLO
6 MOVE F3
7 UNTIL SIG (1001)
8 TYPE EL CICLO SE HA TERMINADO



Cuando el nivel de la entrada 1001 est en el estado 1, en pantalla aparecer


EL CICLO SE HA TERMINADO.


53
WHILE <expresin lgica > DO
<bloque de paso de programa>
END


Esta instruccin permite (como la instruccin DO ... UNTIL), realizar un bloque de paso de programa,
hasta que el resultado de la expresin lgica sea falso (al contrario que la expresin DO ... UNTIL).


Cuando el resultado sea falso, el programa continuar ejecutando las instrucciones que siguen la
instruccin END.

Ejemplo: PROG BUCLE 2

MOVE A
WHILE SIG (1001) DO
MOVE G
MOVE F
TYPE EJECUCION DEL CICLO
MOVE F3
END
TYPE EL CICLOS SE HA TERMINADO

Cuando el nivel de la entrada 1001 pase al estado 0, en pantalla aparecer.

EL CICLO SE HA TERMINADO

De todas formas, aunque el principio parezca similar a la instruccin anterior (DO .. UNTIL) constatamos
que el programa no est obligado a ejecutar al menos una vez (caso en que SIG (1001) = 0, desde el
principio del programa).


54
CASE <expresin> OF

VALUE <expresin> {,... < expresin >};
<bloque de paso de programa>
.
.
.
VALUE <expresin> {... <expresin>}
<bloque de paso de programa>

{ANY}
{<bloque de paso de programa>}

END


Esta instruccin de test permite realizar un u otro bloque de instrucciones en funcin del valor declarado
en la lista que sigue VALUE.

Ejemplo:
PROG ELECCION

1 MOVE A
2 CASE TUTI OF
3 VALUE 1,2 :
4 TYPE EL VALOR DE TUTI ES 1 O 2
5 VALUE 3,4:
6 TYPE EL VALOR DE TUTI ES 3 O 4
7 ANY
8 TYPE EL VALOR DE TUTI ES DISTINTO A 1,2,3,4
9 END
10 TYPE HE TERMINADO



55
En el ejemplo anterior, vemos que en el caso que TUTI tenga el valor 3, el programa ir a ejecutar la
lnea 6 y saltar a la ejecucin de las diversas instrucciones que siguen la instruccin END.


Esta instruccin tiene la ventaja de realizar de una sola vez el organigrama siguiente:


56
Adems, esta instruccin es muy til para el tratamiento de procesos de automatismos industriales con
ramas paralelas selectivas (mtodo GRAFCET) ejecutado normalmente por un programa PC auxiliar.


Ejemplo: Deseamos hacer funcionar tres cilindros segn el ciclo:



b, c , d, e, f, g son los finales de carrera de los distintos cilindros.
M es el botn de inicio del ciclo.
S1 es un selector.
57
El programa ser el siguiente:


; Puesta a 0 de salidas
; Espera pulsar n
; Test del selector S1

; Salida del pistn V1
; Espera final carrera
; Entrada pistn V!
, Espera final carrera

; Salida del pistn V2
; Espera final carrera
; Entrada pistn V2
; Espera final carrera

; Salida del pistn V3
; Espera final carrera
; Entrada pistn V3
; Espera final carrera
; Retorno al inicio
58
IF ... THEN ... ELSE ... END


Ejemplo:



11 MOVE A
12 IF N> 6 THEN
13 TYPE N>6
14 SIG 2
15 ELSE
16 TYPE N<= 6
17 SIG 1
18 DELAY 3
19 END
20 MOVE B



Consejo:
Para facilitar la lectura de un programa, a veces es interesante presentar las
instrucciones ELSE, END con ligero decalaje. Esto se hace automticamente con el logiciel VAL II en el
caso de tests entrelazados.

9 MOVE A
10 IF N> 6 THEN
11 IF G < 2 THEN
12 TYPE SI
13 ELSE
14 TYPE NO
15 END
16 ELSE
17 TYPE DESCONOCIDO
18 END



59
FOR ... TO ...STEP ... END


Esta instruccin permite realizar un nmero de bucles de programa sin estar obligado a crear un puntero
contador.


Ejemplo: MOVE A
FOR I = 1 TO 10 STEP 1
MOVE B
MOVE C
END


El robot se desplazar entre los puntos B y C diez veces seguidas.

Los extremos inferiores y superiores, as como el paso, pueden ser variables que contengan valores
reales negativos o positivos.


Ejemplo:
MIN = 0.23
MAX = 19.72
FOR J = MAX TO MIN STEP 0.37
MOVE B
MOVE C
END


60
LAS SEALES DE ENTRADAS Y SALIDAS EXTERIORES
TODO O NADA


61
ASIGNACIN GENERAL

Direccin Asignacin


Pagina 0
Pagina 1
Pagina 2
Pagina 3






1 a 32 Salidas exteriores
1 001 a 1 032 Entradas exteriores
2 001 a 2 032 Bits internos
3 001
(Slo se puede leer)
Programa del robot activo
3 002
(Solo se puede leer)
Programa del robot en
posicin HOLD
62
ENTRADAS (1001 a 1032)





Si pulsamos sobre el detector exterior CP1 y no sobre CP2 obtenemos:

A = SIG (1001) => A = -1 (car. 1 = verdadero)
A = SIG (1002) => A = 0 ( car.0 = falso)

Si damos

A = SIG (1001, 1002) => A = 0

Funcin Y


Observacin : A = SIG (1, 1002)


Es una instruccin aceptada ya que, en este caso, consideramos el estado 1 de la salida n1 y el estado
1 de la entrada 1002.

63
BITS (<seal>, {<bits>})

Esta instruccin permite coger el estado de las entradas asignadas, para asignarlos a una variable real.


Ejemplo:



64
REACT < seal >, < programa>, [<PRIORIDAD>]

O REACTI <seal>, <programa>, [<PRIORIDAD>]





No volveremos sobre el principi de estas instrucciones que ya han sido analizadas en el curso VAL II n
1.

De todas maneras, vamos a desarrollar ms ampliamente la sutileza de estas instrucciones a nivel de
su prioridad.

Hay que considerar que el programa principal est implicitamente afectado por el valor de prioridad 0 (el
ms bajo).

Un subprograma conectado despus de la ejecucin de una instruccin REACT o REACTI sin ndice
de prioridad, es considerado como nivel de prioridad 1 y puede ser interrumpido por un subprograma
conectado por un REACT o REACTI que tenga un ndice de prioridad superior (maxi 127)

Este ndice de prioridad se puede actualizar en un subprograma con la instruccin LOCK .
ndice de prioridad


Ejemplo: REACTI 1001, TOTO 12
REACTO 1002, TUTU, 120
MOVE A
MOVE B


El programa TUTU ser prioritario con respecto al programa TOTO.

Observacin : T = 1001
REACTI T, TOTO

Funciona ya que la seal puede ser una variable, pero T debe estar
comprendido imperativamente entre 1001 y 1016.


1 < o PRIORIDAD < o = 127
65
PRIORIDAD REACTI

1 Caso:


















































66
PRIORIDAD REACTI

2. Caso :




Atencin:

Aunque la prioridad del programa TITI queda oculta por la del prog TOTO, sta provocar un
punto de paro y el ciclo encadenar la ejecucin del movimiento siguiente si DEST no est.

67
PRIORIDAD REACT


1er caso.





68
PRIORIDAD REACT


2o caso:




69
PRIORITY

Ejemplo : X = PRIORITY


Esta instruccin indica el valor del ndice de prioridad que se ha declarado para la ejecucin de la
instruccin REACT o REACTI.


Ejemplo: PROG PRINC

1 ? MOVE A
2 ? REACTI 1001, TOTO ? 12
3 ? MOVE B
4? MOVE C

PROG TOTO

1 ? MOVE G
2 ? Y = PRIORITY
3 ? TYPE EL COEFICIENTE DE PRIORIDAD ES
4 ? MOVE G
5 ? RETURN


Veremos aparecer el valor 12 en pantalla.
70
LOCK <PRIORIDAD>

La prioridad debe estar comprendida entre 0 y 127 y ser:

- un valor numrico
- un variable real
- una expresin aritmtica


Por esta instruccin se puede cambiar el valor de prioridad definido al ejecutar la instruccin REACT o
REACTI.

Esta instruccin se utiliza en el interior de un subprograma, llamado por la reaccin y asignar un nuevo
ndice de prioridad, que ser vlido hasta la ejecucin de la instruccin RETURN del subprograma en
cuestin.


Ejemplo: PROG PRINC

1 MOVE A
2 REACTI 1001, TOTO,12
3 MOVE B
4 REACTI 1002, TUTU, 20
5 MOVE C
6 MOVE D


PROG TOTO

1 MOVE G
2 MOVE DE
3 LOCK PRORITY + 30 <- El prog TOTO ver creer su prioridad en
4 MOVE K 30, ya no podr ser interrumpido por TUTU
5 MOVE F hasta RETURN
6 MOVE T
7 RETURN



71
Se puede desear, durante el empleo de las instrucciones REACT y REACTI, volver a puntos o
movimientos distintos a los que corresponden a la instruccin


Utilizacin de la instruccin REACT o REACTI


1er caso: Deseamos





Ejemplo: PROGRAM PRINC.0
1 REACTI 1001, TUTU
2 MOVE A
3 MOVE B
4 MOVE C
5 MOVE D
END


PROGRAM TUTU

1 TYPE ESTOY EN EL SUBPROGRAMA
2 MOVE A9
3 RETURN
END

72
2o caso: Deseamos


73
3er caso: deseamos:


74
SALIDAS (1 a 32)

Nos volvemos a las instrucciones vanales del tipo SIG, etc ..., que ya hemos visto en el curso 1.

PC <seal>, {<bits>} = <valor>

Esta instruccin permite asignar, sobre un conjunto de salidas en que el nmero de la primera salida es
declarado por seal y el nmero de salidas por la variable bits, el valor de una variable (que ser
convertido implicitamente en binario).


Ejemplo: A = 9
PC 15,4 = A 9 1001 en binario



75
IOPUT direccin = valor

Esta instruccin permite poner un valor en la direccin designada.

Esta direccin deber estar comprendida entre 57344 (160000 octal) y 65535 (177777 octal).

El valor, as como la direccin, puede ser una expresin aritmtica, un valor real o una variable.

IOGET (direccin)


Esta instruccin hace la funcin inversa a la anterior. De esta forma obtenemos el contenido de la
direccin designada.


Ejemplo: X + IOGET (direccin)

La direccin puede ser una expresin aritmtica, un valor real o una variable.

Esta funcin s util para saber el contenido de entradas en una tarjeta suplementaria de
entradas/salidas.

Para ms informacin sobre estas dos instrucciones, ver el manual de programacin.

76
LAS SEALES DE ENTRADAS Y SALIDAS EXTERIORES ANALGICAS


77
ENTRADAS ANALOGICAS


Estas entradas permiten convertir tensiones exteriores en valores numricas.


Forma general

ADC (<CANAL>)

De 0 a 15


Ejemplo : X = ADC (6)

X toma un valor entero entre 2048 y +2047 para una tensin exterior comprendida ente
10 V y +10 V (para una ganacia = 0)


Nota: Para obtener una mayor precisin se puede modificar la ganancia del convertidor con la
instruccin siguiente.


PARAMETER ADC.GAIN = 0

Valor GANANCIA Gama tensin (V) Resolucin
0 -10 V a 10 V 2.44 10
3
V
1 -5 V a 5 V 1.22 10
3
V
2 -2,5 V a 2,5 V 0.61 10
3
V
3 -1.25 V a 1,25 V 0.305 10
3
V


Por defecto el valor de la ganancia se toma 0.


78
CARACTERISTICAS PRINCIPALES DEL CONVERTIDOR


Tipo Valor
N Entradas 16
Impedancia de entradas 1 M
Capacidad < 50 pf
Error mximo 1LSB (1 bit menos significativo)
Codificacin Complemento verdad
Tensin que no hay que sobrepasar +/- 25 V
Resolucin 12 bits


Nota: Para los esquemas de cableado de entradas y salidas ver el captulo diversos al final de
este documento.


79
SALIDAS ANALOGICAS

Estas salidas permiten convertir expresiones numricas en tensiones directamente proporcionales.


80
CARACTERISTICAS PRINCIPALES DEL CONVERTIDOR


N de salidas 2
Impedancia de salida 0.1
Intensidad mximo de salida 5 m A
Linearidad +/- 0.012%
Resolucin 12 bits


81
FUNCIONES DIVERSAS


82
PARAMETER <nombre parmetro > = valor

Esta instruccin permite parametrizar funciones particulares.

Ejemplo: PARAMETER ADC.GAIN = 2

Ntese que esta funcin funciona en modo comando y en modo programa.





PARAMETER (nombre funcin)

Esta instruccin permite obtener el valor del elemento parametrizado.

Ejemplo: 1 MOVE A
2 G = PARAMETER (ADC.GAIN)
3 TYPE VALOR DE LA GANANCIA , G

Al ejecutar el programa aparecer 2 en pantalla.

Ntese que esta funcin tambin funciona en modo comando, aunque entonces no hay parntesis.


Ejemplo: . PARAMETER ADC.GAIN
. 2


83
Los elementos que se pueden parametrizar son:

HAND TIME


Esta instruccin determina la duracin de las instrucciones OPENI y CLOSEI, la cual debe estar
comprendida entre 0 y 32 767 veces 28 milisegundos.

El valor, por defecto es 6, as que, la duracin ser de 168 ms para la ejecucin de las operaciones
OPENI y CLOSEI.

Ejemplo: PARAMETER HAND.TIME = 12

TERMINAL

Esta instruccin permite transponer los distintos cdigos ASCII salidos de los terminales SOROC(0),
ADDS (1), HAZELTINE(2), VT 100 (3), de forma que estos terminales tengan las mismas posibilidades
que el terminal Unimation suministrado con el robot.


Ejemplo: PARAMETER TERMINAL = 1

ADC.GAIN

Se puede definir la ganancia de las entradas analgicas, los valores se deben escoger entre 0, 1, 2 y 3.

Para ms precisin, ver el captulo Entradas/Salidas analgicas.

Ejemplo: PARAMETER ADC.GAIN = 3

Por defecto la ganancia queda definida a 0.

84
INTERRUPTORES LOGICIELS


En el curso n1 VAL II hemos visto que con las instrucciones DISABLE y ENABLE, se poda conectar o
desconectar. La funcin CP (Continous Path).

Existen otras funciones que se pueden validar o no de esta forma. Estas funciones son las siguientes:

DISK.NET

Hasta que este comando sea validado, asociado con la validacin de NETWORK, el logiciel VAL II,
utiliza el lector de disquette para comunicarse, por eso, inicialmente, esta funcin est inhibida.

Ejemplo: ENABLE DISK.NET


DRY.RUN

Esta funcin permite la ejecucin de un programa VAL II sin desplazar el brazo del robot, a la vez que el
brazo del robot queda bajo el control del mando manual.

Ejemplo: Se desea simular el desplazamiento de distintos elementos perirobticos (pistones, motores,
detectores, ...) en una aplicacin en que la gestin del proceso se efectua por el programa
principal, pero se desea que el brazo del robot quede immovil aunque hay instrucciones de
desplazamiento.

PROG TOTO

1 10 MOVE A
2 IF SIG (1001, 1004) GOTO 14
3 MOVE B
4 GOTO 10
5 14 SIG 1, -2 ; salida del pistn 1 y entrada del pistn 2
5 WAIT (1005, 1006)
6
7 SIG 1, 2 ; Entrada del pistn 1 y salida del pistn 2


85
EN DRY.RUN

Ejemplo: TOTO, -9

El brazo del robot no se desplazar entre el punto A y el punto B pero se podra verificar el buen
funcionamiento de los pistones.


EHAND

Esta instruccin se debe utilizar nicamente para el empleo de una mano asistida. Permite validar el
servo.



INTERACTIVE

En lenguaje Val II, algunos comandos o instrucciones piden confirmacin para ejecutarse. En el caso en
que se inhiba la interactividad, estas demandas de confirmacin no aparecern ms.


Ejemplo: Inicialmente:

. CAL
ARE YOU SURE (Y/N) = Y

El calibrado se ejecuta,

Si .DIS INTERACTIVE
.CAL

el calibrado se ejecuta sin pedir si estamos seguros...


Nota: Inicialmente esta instruccin est validada.


86
MESSAGES


Esta funcin es similar a INTERACTIVE, pero solo afecta a los mensajes de las instrucciones TYPE o
PROMPT.

En el caso en que se inhiban (por medio de DIS MESSAGES), los comentarios contenidos entre
comillas no apareceran:


Ejemplo: EN MESSAGES
1 MOVE A
2 TYPE TODO VA BIEN
3 MOVE B


Durante la ejecucin, aparecer, TODO VA BIEN en pantalla.

DIS MESSAGES
1 MOVE A
2 TYPE TODO VA BIEN
3 MOVE B


Durante la ejecucin, TODO VA BIEN, no aparecer en pantalla.

87
NETWORK, REMOTE.PIN, SUPERVISEUR


Estas tres funciones sirven, esencialmente cuando el robot comunica con un calculador u ordenador
exterior (ver curso sobre supervisor).


Inicialmente, estas funciones son invalidadas.


SRV.ERR

La unidad de mando vigila constantemente la trayectoria del brazo del robot durante sus
desplazamientos y emite un mensaje si sta se separa demasiado de la consigna previamente
calculada (mensaje de estilo ENVELOPE ERROR JT 6).

Este seguimiento se asegura por un programa interno en la unidad de comando, pero se puede suprimir
declarando DISABLE SRV.ERR.


Inicialmente, esta funcin est validada.
88
Observaciones generales


Se pueden validar o inhibir varias funciones a la vez con la condicin de separarlas por comas.

Ejemplo: ENABLE SRV.ERR, DRY.RUN, DISK.NET

Ntese que ENABLE y DISABLE funcionan tanto en modo comando como en programa.

Adems, se puede visualizar el estado (ENABLE o DISABLE) de una o varias funciones, utilizando el
comando:

SWITCH {<funcion 1>}, {,..., <funcin n>}

Ejemplo: SWITCH CP, DRY.RUN

Visualizar los estados de CP y de DRY.RUN.




Ntese que SWITCH slo funciona en modo comando.

89
PCSTATUS


Este comando permite conocer el estado del programa complementario PC.

Se obtiene:

el estado de funcionamiento o no funcionamiento del PC.
El nmero de bucles ejecutados.
El numero de bucles por ejecutar.
El nombre del programa.
El paso del programa donde ste se ha detenido.


Ntese que PCSTATUTS solo funciona en modo comando.



90
PULSE < valor >

Con valor 1 o 2


Esta instruccin, que se puede emplear en el programa PC, permite generar una pulsacin de duracin
200 MS.

El valor representa el nmero de salida afectada por esta instruccin.


Nota: Esta instruccin se emplea sobretodo en la soldadura.

200 ms





Salida n 1










Robot
91
ULIMIT o LLIMIT

Esta instruccin permite conocer el lmite mximo (ULIMIT) y mnimo (LLIMIT) de cada articulacin y
eventualmente, modificar segn un procedimiento idntico a la orden POINT.

Tambin se puede restringir el campo de movimiento de una o varias articulaciones para no entrar en
una zona prohibida.





Nota: Este comando slo funciona en modo comando, pero se puede introducir en un programa
AUTOSTART.

92
X = SPEED (argumento)


Si X = SPEED (1):

- obtenemos en la variable X, la velocidad monitor.

Si X = SPEED (2):

- obtenemos en la variable X, la velocidad que hayamos definido en el programa (con la instruccin
SPEED <valor> ALWAYS).

Si X = SPEED (3):

- obtenemos en la variable X, la velocidad del ltimo movimiento o del movimiento actual.


Si X = SPEED (4):


- obtenemos en la variable X, la velocidad del programa del movimiento siguiente

93
COMMANDS <programa>

Este comando permite realizar el encadenamiento de distintas tareas, tal y como lo hace el comando
AUTOSTART (ver curso n1 VAL II).

La diferencia est en que el encadenamiento empezar a partir de la funcin COMMANDS, que
entremos por teclado, mientras que el proceso AUTOSTART, empieza cuando pulsamos el botn
situado en la parte frontal.


Adems, en este caso, el programa no se tiene que llamar obligatoriamente AUTO.


Ejemplo: PROG FER
1 ? MEC CAL
2 ? MC SP 10
3? MC DO TYPE ********
4? MC EX TOTO, 3







COMMADS FER

El robot asegurar su calibrado, se situar a velocidad monitor 10 y ejecutar el
programa TOTO, 3 veces seguidas.


Ntese que COMMANDS slo funciona en modo comando.


94
IO


Este comando permite visualizar en pantalla el estado de las entradas/salidas de una forma global. La
visualizacin en pantalla es dinmica. Se sale de este modo de visualizacin haciendo C.


Ejemplo:


32-29 28-25 24-21 20-17 16-13 12-09 08-05 04-01

00XX 0000 1100 0000 0000 0000 0000 0000 0000
10XX 0000 0000 0000 0000 0000 0000 0000 0000
20XX 0000 0000 0000 0000 0000 0000 0000 0000


Las salidas 27 y 28 estn en el estado 1.


Ntese que IO slo funciona en modo comando.
95
MODIFICACION DE TRAYECTORIAS EN TIEMPO REAL

96
PRINCIPIO


Sera interesante poder modificar, en cualquier momento, una trayectoria previamente definida. Esta
modificacin, podra tener lugar como resultado de indicaciones dadas por detectores, cmaras de
visin, etc, ... exteriores al robot (elementos perirobticos) o de parametros salidos del calculador
interno del robot, a travs de la funcin PC.

Esta modificacin de trayectoria en tiempo real solo puede tener lugar en DELAY o en movimientos en
lnea recta.




97
DESCRIPCIN GENERAL


El programa principal deber comportar la siguiente instruccin:





98
NOALTER


Esta instruccin o comando permite detener el control de la trayectoria en tiempo real (salir del MODO
ALTER).

Si el modo ALTER no est validado, esta instruccin no tiene ningn efecto.

En todos los casos, veremos aparecer ALTER PAUSING seguido de ALTER ENDING para indicar
que el comando ALTER esta invalidado.

ALTOUT <cdigo excepcin>, {<dx>,},{<dy>,},{<dz>,},{<rx>,}, {<ry>,},{<rz>,}

A partir del programa auxiliar PC se pueden transmitir los siguientes valores:


Sintaxix

Descripcin
DX Desplazamiento segn el eje X
DY Desplazamiento segn el eje Y
DZ Desplazamiento segn el eje Z
RX Rotacin alrededor del eje X
RY Rotacin alrededor del eje Y
RZ Rotacin alrededor del eje Z



Normalmente el cdigo de excepcin est a cero para toda operacin ALTER clsica. Si este cdigo
tiene un valor distinto de cero, el programa se desviar (como con la instruccin REACT) al
subprograma designado en la declaracin de la funcin ALTER y el cdigo se puede recuperar en la
funcin EXCEPTION.

Ejemplo: X = EXCEPTION

Si hay un error, el calculador exterior deber enviar un valor negativo y ste se podr recuperar por
ERROR (-1).


Ejemplo : X = ERROR (-1).


99
Correccin de trayectorias


Con la ayuda de la funcin ALTER interno (en modo WORLD coord. De base)


































Alter
Interno


0 x 1 <- bit 0 -> 0 -> Valor no acumulativo.
+ 1 x 2 <- bit 1 -> 1 -> WORLD
+ 0 x 4 <- bit 2 -> 0 -> Sin mensaje
+ 0 x 8 <- bit 3 -> 0 o 1 -> Sin importancia (no hay mensajes)
+ 1 x 16 <- bit 4 -> 1 -> Utiliza los datos de entradas Alter
= 18



PROG TRAJ


1 PCEND
2 PCEXECUTE MODIF, -1, 0
3 ALTER (-1, 18)
4 10 MOVE A
5 MOVES B
6 GOTO 10
PROG MODIF



1 COEF = 200
2 FOR ANG = 1 TO 360
3 X = SIN(ANG)*COEF
4 ALTOUT 0,0,0,X,0,0,0
5 END
ALTER (-1,18)
100
Correccin de trayectorias


Con la ayuda de la funcin ALTER externo (en modo WORLD coordenada de base).


El logiciel VAL II enva a un ordenador exterior mensajes (36 por segundo), el ordenador exterior debe
responder al envio de estos mensajes enviando los DX, DY, DZ, RX, RY, RZ esperados por el robot
para modificar la trayectoria en tiempo real. Este intercambio deber durar hasta que se slaga del modo
Alter, si no, aparecer un mensaje de error.








El desarrollo del proceso Alter se efectua de la forma siguiente:

101
Organigrama: Principio de funcionamiento de la funcin Alter


102
Protocolo de envo de datos o mensajes

Nota: El puerto n2, para conectarlo en serie, en tiempo real, debe estar configurado imperativamente
a 19 200 baudios.





103
Nota:

Si, en la transmisin de datos, aparece el valor 144 (en base 10) (DLE), el sistema reemite un
segundo valor 144 (DLE) que ser transparente para el octeto verificador.

Si en la recepcin de datos, el sistema ve aparecer dos valores 144 (DLE) sucesivos, evacuar
automticamente el segundo (siempre transparente para el octeto verificador).







Ntese que si el calculador exterior, no genera un segundo DLE en la transicin de datos puede haber
prdida de datos o aparicin de mensajes de error de transmisin.


104
Acabamos de ver que los distintos datos, se transmiten por la conexin RS 232 C segn un protocolo
estricto.


Vamos a ver los mensajes que puede enviar el Val II al ordenador exterior.







105
Mensaje inicial


106
Mensaje inicial

107
Mensaje final

Consiste simplemente en enviar el octeto de control al calculador, el cual no tiene que responder al
envo de este octeto.





108











Vamos a analizar los distintos mensajes que puede enviar el calculador exterior hacia el VAL II como
respuesta a los enviados por el VAL II.



COMUNICACION CALCULADOR
EXTERIOR HACIA VAL II
109
Seal de mensaje inicial recibido.


Cuando el VAL II, despus de la ejecucin de la funcin ALTER, enva el mensaje: ALTER Empieza el
calculador debe dar una seal de mensaje recibido en un tiempo dado, mediante un octeto de recibo.


El valor de este octeto puede tomar el siguiente valor:


1 (Base 10) - >


El calculador externo ha detectado un error en la comunicaicn y pide al Val II retransmitir el mensaje
inicial. Pasadas 4 tentativas el VAL II para y emite un mensaje de error.


0 (Base 10) - >


El calculador externo indica que todo es correcto y que est preparado para recibir los mensajes
corrientes.


-1 (Base 10) - >


El calculador externo indica que no ha podido entrar en modo ALTER y le pide al Val II que interrumpa
el proceso y el envo de mensaje de error.

0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
1 1 1 1 1 1 1 1
110
112
Observaciones importantes


1. Inicialmente los valores de los parmetros ejes estn puestos a cero.
2. En modo acumulativo los ejes no seleccionados son percibidos por el lenguaje Val II como si
estuvieran a cero.


En modo no acumulativo los ejes no seleccionados se consideran por VAL II como invariados.

3. los valores de los distintos parmetros de entradas (X, Y, Z, Rot. X, Rot. Y, Rot Z) se expresan
respectivamente: en mm X, Y, Z en grado Rot. X, Rot. Y, Rot. Z.


Aunque:

Para el robot modelo 260, estos valores enviados por el calculador se deben multiplicar por:









Para el robot modelo 560 estos son los valores:








32.00000 (+/- 1 024 mm) para X, Y, Z
182.0444 (+/- 180 grados) para Rot.X, Y, Z


48.81143 (+/- 700 mm) para X, Y, Z
182.0444 (+/- 180 grados) para Rot.X, Y, Z
113
TIEMPO NECESARIO PARA LAS TRANSMISIONES


Una vez empieza el proceso ALTER (se ejecuta la instruccin ALTER), y que la modificacin de la
trayectoria empieza, los intercambios entre VAL II y el calculador se efectuan en perodos de 28 ms.

Cada 28 milisegundo, el VAL II transmite un mensaje y espera una respuesta del calculador.

En modo acumulativo, el tiempo mximo que puede tardar el calculador exterior en transmitir su
respuesta (a partir del DLE emitido por el VAL II al final del mensaje) es de 16 ms.

En modo no acumulativo, esta respuesta se debe hacer en 18 ms.

Si se sobrepasan estos tiempos, aparece un ERROR TIMEOUT, y el programa se interrumpe despus
de 3 tentativas sucesivas con resultado de ERRORES TIMEOUT.



114
Tiempo de transmisiones VAL II -> calculador exterior


El tiempo necesario para que el Val II transmita totalmente un mensaje Alter al calculador exterior
depende del tipo de transformada, del nmero de octetos enviados. Escogiendo los casos ms
desfavorables obtenemos.


N Octetas Tiempo
Mensajes que no comportan datos de transformada

Mensajes que comportan datos de transformada
15

52
7,3 ms

27,1 ms


115
Tiempo de transmisiones calculador exterior -> Val II

Estos tiempos estn en funcin del modo y la longitud del mensaje utilizado.




Nota:
El tiempo definido anteriormente es el tiempo mximo del que debe disponer el calculador para
empezar a responder el mensaje enviado por VAL II.
Constatamos que cuanto ms largo sea el mensaje enviado por el ordenador, el calculador
dispondr de menos tiempo para responder.



116
ANEXO



Ejercicio n 1


CRONOMETRO ELECTRONICO







Para el clculo del tiempo de ciclo de un programa se desea cronometrar el tiempo de ciclo de un
programa cualquiera (en nuestro caso para la simulacin utilizamos un program MT).

117
Conexin del cronmetro: debemos dar la hora, minutos y segundos.


PROGRAM ensayo 1


1 PROMPT DAR LA HORA EN H, MN, S, h,m,s
2 Val = H * 3600 + m *60 + s
3 TIMER 3 = val
4 RETURN

END


Paro del cronmetro (por el robot): obtendremos la hora, minutos y segundos y la duracin del ciclo.

PROGRAM ensayo 2

1 x = TIMER
2 h = INT (x/3600)
3 y = x (h * 3600)
4 M= INT (y/60)
5 S = INT (x (h*3600 + m*60))
6 TYPE ES, h, HORA, m, MINUTOS, s, SEGUNDOS
7 dur = x val
8 TYPE DURACIN DEL CICLO
9 RETURN

END


Programa cronmetro completo Programa cualquiera para la simulacin

PROGRAM pp PROGRAM mt

1 CALL ensayo 1 1 MOVE mt
2 CALL mt 2 MOVE mt1
3 CALL ensayo 2 3 MOVE mt2
END 4 MOVE mt3
END


118
GRAFICOS ROBOTIZADOS


Se pide:


1. Establecer el programa de forma que, en funcin de los distintos parmetros entrados por
teclado, se puedan obtener las siguientes figuras

Nota: Estas figuras se realizarn con respecto a un punto relativo declarado y
segn la referencia til.

2. Misma pregunta, pero con respecto a un nuevo tiedro previamente declarado en una orden
FRAME.



119

120
Programa correspondiente al ejercicio n 2, pregunta n 1


PROGRAM ROSA.PARAM
1 MOVE INICIO 1
2 FOR T = 1 TO 5
3 TYPE
4 END
5 TYPEPROGRAMA DE ROSACEAS PARAMETRIZABLES
6 TYPE
7 TYPE
8 TYPERESPONDER A LAS PREGUNTAS POR FAVOR
9 TYPE
10 TYPE GRACIAS Y BUENOS DIAS...
11 TYPE
12 TYPE
13 PROMPTNUMERO DE PETALOS ( 1 al 10), A
14 PROMPT ANCHURA DE LOS PETALOS ( 0 A 10) , B
15 PROMPT NUMERO DE FIGURAS (1 A 10), P
16 PROMPT VALOR DEL PASO (0.1 A 1), PASO
17 PROMPT LONGITUD DE LOS PETALOS (5 A 100), K
18 R = K / (B + 1)
19 FOR I = 0 TO (360 * P) STEP PASO
20 X = R * (COS (A*1) + B) * COS (I)
21 Y = R * (COS (A *1) + B) * SIN (I)
22 MOVE D: TRANS (X,Y,0,90,-90,0)
23 END

END
121
Programa correspondiente al ejercicio n 2, pregunta n 2


PROGRAM rosceas

1 ; prog rosceas parametrizables
2 ; con respecto a un triedro cualquiera
3 ; en el espacio
4 CALL text 1
5 TYPE origen de la referencia
6 CALL text2
7 FOR y = 1 TO 40
8 TYPE
9 END
10 ELAY
11 SET or 4 = xyz
12 CALL text1
13 TYPE un punto situado en el eje
14 CALL text2
15 FOR t = 1 TO 40
16 TYPE
17 END
18 DELAY
19 SET or2 = xyz
20 CALL text1
21 TYPE un punto situado en el plano x,y
22 CALL text2
23 SET or3 = xyz
24 SET c = FRAME (or4, or2, or3, or4)
25 FOR t=1 TO 5
26 TYPE
27 END
28 TYPE programa de rosceas parametrizables
29 TYPE
30 TYPE
31 TYPE responde a las preguntas siguientes por favor
32 TYPE
33 TYPE gracias y buenos dias
34 TYPE
35 TYPE
36 PROMPT nmero de ptalos (1 a 10), a
37 PROMPT ancho de los petalos (0 a 10), b
38 PROMPT nmero de figuras (1 a 10), p; idntico a PE: perodo de la roscea
39 PROMPT valor del paso (0.1 a 1), paso; idem a PA
40 PROMPT longitud de los ptalos (5 a 100), k; idem a radio
41 r= k 7 (b+1)
42 FOR i = 0 TO (360 * p) STEP paso
43 x1 = r*(COS (a*i) + b) * COS (i)
44 y1 = r (COS (a*i) + b) * SIN (i)
45 MOVE c: TRANS (x1, y1, 0,90,0)
46 END

END


PROGRAM text 1

1 TYPE desplazar el robot para
2 TYPE situarlo en:
3 RETURN

END


PROGRAM text2

1 TYPE cuando este listo presionar
2 TYPE comp en el mando manual
3 DETACH
4 WAIT PENDANT (2) == 20
5 SET xyz = HERE
6 ATTACH
7 RETURN

END

122
Ejercicio N 3


Aplicacin utilizando la funcin ALTER INTERNO


Deseamos poner una junta de cola en una pieza de plstico triangular. Para que la junta sea
homognea, superponemos un movimiento en diente de sierra entre A y B y un movimiento en forma de
almena entre B1 y C, el movimiento entre A y C se har linealmente.



123
Pregunta: Si el programa cuadrado hubiera sido:


y = k1
TIMER 1 = 0
WAIT (TIMER (1) < 0.3) <> 0
ALTOUT 0,0,Y,0,0,0
y = -k1
TIMER 1 = 0
WAIT (TIMER (1) >= 0.3) <> 0
ALTOUT 0,0,Y0,0,0


Por que no habra funcionado?

124
Anexo 2

Encontrar el error ( o los errores) en los programas siguientes:

125
Ejercicio de despaletizacin de decapsuladores





Se pide:


1. Despaletizar los decapsuladores de un soporte para presentarlos al cliente cuando este pulse
BP1.
2. Si el cliente pulsa BP2, la pinza se abre y puede recuperarlo
3. Si pasan 10 seg. y no ha pulsado BP2, el decapsulador cae en una caja y el robot va a buscar
otro.
4. Cuando el palet est vacio indicar rellenar y Despus de rellenar, teclear PROCEED y pulsar
RETURN.


126
PROGRAM AERO

1 SPEED 30
2 MOVE R1, 40
3 3 OPENI
4 WAIT SIG (1001)
5 SPEED 30 ALWAYS
6 A1 = A
7 FOR L = 1 TO 4
8 FOR K = 1 TO 5
9 SPEED 100
10 APPRO A1, 100
11 MOVES A1
12 BREAK
13 CLOSEI
14 DEPARTS 100
15 SPEED 100
16 MOVES B
17 TIMER 1 = 0
18 2 X = TIMER (1)
19 IF SIG 1002 GOTO 1
20 IF X < 10 GOTO 2
21 1 OPENI
22 SET A1 = SHIFT (A1 BY 50,0,0)
23 END
24 SET A1 = SHIFT 5A1 BY 50, 0? 0)
25 END
26 SPEED 100
27 MOVE R1
28 TYPE RELLENAR CUIDADOSAMENTE EL PALET DE LA MESA
29 TYPE TECLEAR PROCEED PARA CONTINUAR
30 PAUSE
31 GOTO 3

END


Hay 5 errores .... Encontrarlos
127
Ejercicio de aplicacin




Deseamos perforar 5 agujeros en 4 coronas de quemador de gas, y esto, en 3 soportes de los cuales
uno (Ref 1) est situado verticalmente.
Realizar el programa utilizando la instruccin FRAME.


128
CONFIGURACIN DEL SISTEMA ANALGICO



129
Cableado de entradas analgicas

En modo referencial

También podría gustarte