Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
VAL 2
MANUAL N 2
Copyright 1992 by STUBLI S.A.
D.280.172.05. (A)
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.
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.
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 !
1
SUMARIO
2
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
3
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.
4
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.
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.
5
FUNCIONAMIENTO EN MONO-TAREA
6
FUNCIONAMIENTO EN MULTI-TAREAS
7
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.
8
REPASO
IMPORTANTE
Pero es necesario:
Ejemplo: TOTO
TOTO.1
T1
ABZOARTUVHKLVUTRSKLOTUH.2
A
DUPONT.DURAND.TUTU.2
Etc...
9
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
Ejemplo: A = 23
Esta notacin es interesante para la manipulacin de entradas / salidas exteriores (ver captulo
correspondiente).
10
- En cdigo ASCII
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.
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
11
VARIABLES DIMENSIONADAS
12
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
Ejemplo : MOVE A [ I * 10 + J * 1]
13
LLAST (< nombre de variable punto [] <)
Gracias a esta instruccin, se puede obtener el valor mximo del ndice de una variable punto
dimensionada.
X Y Z O A T
A ... ... ... ... ... ...
B ... ... ... ... ... ...
X[1] ... ... ... ... ... ...
X[2] ... ... ... ... ... ...
C[2] ... ... ... ... ... ...
C ... ... ... ... ... ...
D ... ... ... ... ... ...
X[129] ... ... ... ... ... ...
Y[1] ... ... ... ... ... ...
G ... ... ... ... ... ...
Esta instruccin es idntica a la anterior, pero se refiere a las variables dimensionadas reales.
14
OPERADORES RELACIONALES
Operador
Descripcin Simbolo Ejemplo
De relacin
< Menor que A<B IF A < B GOTO 10
OPERADORES LGICOS
15
OPERACIONES MATEMATICAS
Operadores matemticas
Importante: Para las distintas operaciones matemticas, lgicas, etc ... se pueden agrupar las
operaciones con parntesis.
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=K6
16
OPERADORES BINARIOS
17
ORDEN RELACIONAL DE DESENCADENAMIENTO DE
OPERACIONES
Z=(A/3+25*3)+4
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.
18
FUNCIONES MATEMATICAS
Aparte de las cinco operaciones elementales, se pueden llamar funciones matemticas particulares.
19
20
PROGRAMAS ASINCRONOS
Unidad
PROG. PRINCIPAL PROG. AUXILIAR
Central
1 ? MOVE A 1?A=A+B+4*7
2 ? MOVE B 2 ? WAIT (SIG(2002) <> 0)
3 ? READY 3 ? TYPE <<PROGR PC>>
4 ? SIG 1, -2 4 =? TIMER 4 = 0
5 ? MOVE C 5 ? G = (A / 3) * 7
6 ? WAIT (SIG(1001) <> 0 6 ? SIG 1,3,8,19
7 ? TYPE ES MARAVILLOSO
8 ? TYPE TODO VA BIEN
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).
21
Adems, las instrucciones:
PCEXECUTE Y PCEND
Se pueden ejecutar en un programa principal para sincronizar los dos programas entre s.
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.
22
INSTRUCCIONES DE MOVIMIENTO
No volveremos sobre iinstruccin como MOVE, APPRO, DEPARTS, OPEN, etc (ver curso n 1).
Adems, la unidad central siempre anticipa el clculo del punto siguiente durante la ejecucin del
movimiento.
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 ().
23
STOP
Esta instruccin permite interrumpir la ejecucin de un programa. Se pueden distinguir dos casos:
En este caso, el programa acabar cuando se encuentra la instruccin STOP, incluso cuando esta
instruccin se encuentre en un subprograma.
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.
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
24
OPERACIONES MATEMATICAS CON LAS COORDENADAS DE
PUNTOS
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.
25
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
26
TRANS ({<expr>}, {<expr>}, {<expr>}, {<expr>})
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.
Ejemplo: MOVE # PPOINT (x[0], x[1] + 7, x[2]*sin(a), x[3], x[4], x[5] 28)
27
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.
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
28
INVERSE <punto>
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.
29
APLICACIN
Se puede escribir:
[I]
Matriz identidad
As:
[B] = [A-1].[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.
30
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).
Deseamos obtener las cotas del punto T con respecto a la referencia til situada en el punto A.
Se puede escribir.
Desconocido
Conocido
Conocido
Entonces B = A 1 . T
31
NORMAL (<punto>)
Esta instruccin permite reducir los errores del clculo en transformadas compuestas sucesivas.
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
32
NULL
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).
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
33
DISTANCE (<comp 1>, <comp 2>)
155 mm
34
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...
NOTA: Esta instruccin slo funciona con los puntos de transformada, y no con los puntos de
precisin.
35
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.
36
HAND
37
FUNCIONES DE CONTROL DEL ROBOT
38
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.
Si obtenemos en la variable X, el valor (20) deduciremos que el botn COMP del mando manual, ha
sido presionado.
39
40
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
41
ERROR (<expresin>)
Esta instruccin permite obtener un cdigo que indica el tipo del ltimo error que se ha producido.
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.
42
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
El programa de tratamiento provocado por un error, siempre debe empezar por la instruccin ATTACH.
43
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
Valor
Si la expresin es igual a 2
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.
44
Si la expresin es igual a 3
0 OFF
1 FREE
2 JOINT
3 WORLD
4 TOOL
5 COMP
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
45
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.
Es el modelo 560.
1 => Modelo
2 => N de serie
3 => Versin del logiciel
4 => Revisin
5 => Tipo de opcin
46
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.
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.
47
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:
48
TIMER nmero = valor
(-2 < 0 = nmero < 0 = 15) entero, real, expresin, etc ...
Ejemplo: TIMER 3 = 10
TIMER (<expresin>)
Esta instruccin permite recuperar un contenido (en segundos) de un TIMER designado por una
expresin.
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
- 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).
49
INSTRUCCIONES ESTRUCTURADAS DE TEST
50
INSTRUCCION
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).
- DO ... UNTIL
- WHILE ... DO ... END
- CASE ... OF ... VALUE ... END
- IF ... THEN .... ELSE ... END
- FOR ... TO ... STEP ... END
51
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.
EL CICLO SE HA TERMINADO.
52
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.
MOVE A
WHILE SIG (1001) DO
MOVE G
MOVE F
TYPE EJECUCION DEL CICLO
MOVE F3
END
TYPE EL CICLOS SE HA TERMINADO
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).
53
CASE <expresin> OF
{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
54
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:
55
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.
56
El programa ser el siguiente:
; Puesta a 0 de salidas
; Espera pulsar n
; Test del selector S1
57
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
58
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
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
59
LAS SEALES DE ENTRADAS Y SALIDAS EXTERIORES
TODO O NADA
60
ASIGNACIN GENERAL
Direccin Asignacin
61
ENTRADAS (1001 a 1032)
Si damos
Funcin Y
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.
62
BITS (<seal>, {<bits>})
Esta instruccin permite coger el estado de las entradas asignadas, para asignarlos a una variable real.
Ejemplo:
63
REACT < seal >, < programa>, [<PRIORIDAD>]
No volveremos sobre el principi de estas instrucciones que ya han sido analizadas en el curso VAL II n
1.
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)
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.
64
PRIORIDAD REACTI
1 Caso:
65
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.
66
PRIORIDAD REACT
1er caso.
67
PRIORIDAD REACT
2o caso:
68
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.
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
69
LOCK <PRIORIDAD>
- 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.
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
70
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
PROGRAM TUTU
71
2o caso: Deseamos
72
3er caso: deseamos:
73
SALIDAS (1 a 32)
Nos volvemos a las instrucciones vanales del tipo SIG, etc ..., que ya hemos visto en el curso 1.
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
74
IOPUT direccin = valor
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.
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.
75
LAS SEALES DE ENTRADAS Y SALIDAS EXTERIORES ANALGICAS
76
ENTRADAS ANALOGICAS
Forma general
ADC (<CANAL>)
De 0 a 15
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
77
CARACTERISTICAS PRINCIPALES DEL CONVERTIDOR
Tipo Valor
N Entradas 16
Impedancia de entradas 1M
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.
78
SALIDAS ANALOGICAS
79
CARACTERISTICAS PRINCIPALES DEL CONVERTIDOR
N de salidas 2
Impedancia de salida 0.1
Intensidad mximo de salida 5mA
Linearidad +/- 0.012%
Resolucin 12 bits
80
FUNCIONES DIVERSAS
81
PARAMETER <nombre parmetro > = valor
Ejemplo: 1 MOVE A
2 G = PARAMETER (ADC.GAIN)
3 TYPE VALOR DE LA GANANCIA , G
Ntese que esta funcin tambin funciona en modo comando, aunque entonces no hay parntesis.
82
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.
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.
ADC.GAIN
Se puede definir la ganancia de las entradas analgicas, los valores se deben escoger entre 0, 1, 2 y 3.
83
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.
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.
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
84
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
85
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
DIS MESSAGES
1 MOVE A
2 TYPE TODO VA BIEN
3 MOVE B
86
NETWORK, REMOTE.PIN, SUPERVISEUR
Estas tres funciones sirven, esencialmente cuando el robot comunica con un calculador u ordenador
exterior (ver curso sobre supervisor).
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.
87
Observaciones generales
Se pueden validar o inhibir varias funciones a la vez con la condicin de separarlas por comas.
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:
88
PCSTATUS
Se obtiene:
89
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.
200 ms
Salida n 1
Robot
90
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.
91
X = SPEED (argumento)
Si X = SPEED (1):
Si X = SPEED (2):
Si X = SPEED (3):
Si X = SPEED (4):
92
COMMANDS <programa>
Este comando permite realizar el encadenamiento de distintas tareas, tal y como lo hace el comando
AUTOSTART (ver curso n1 VAL II).
COMMADS FER
93
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:
94
MODIFICACION DE TRAYECTORIAS EN TIEMPO REAL
95
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.
96
DESCRIPCIN GENERAL
97
NOALTER
Esta instruccin o comando permite detener el control de la trayectoria en tiempo real (salir del MODO
ALTER).
En todos los casos, veremos aparecer ALTER PAUSING seguido de ALTER ENDING para indicar
que el comando ALTER esta invalidado.
Sintaxix Descripcin
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).
98
Correccin de trayectorias
Con la ayuda de la funcin ALTER interno (en modo WORLD coord. De base)
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)
Alter
Interno
99
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.
100
Organigrama: Principio de funcionamiento de la funcin Alter
101
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.
102
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.
103
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.
104
Mensaje inicial
105
Mensaje inicial
106
Mensaje final
Consiste simplemente en enviar el octeto de control al calculador, el cual no tiene que responder al
envo de este octeto.
107
COMUNICACION CALCULADOR
EXTERIOR HACIA VAL II
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.
108
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 calculador externo indica que todo es correcto y que est preparado para recibir los mensajes
corrientes.
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.
109
110
Observaciones importantes
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:
112
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.
113
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 15 7,3 ms
114
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.
115
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).
116
Conexin del cronmetro: debemos dar la hora, minutos y segundos.
PROGRAM ensayo 1
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
PROGRAM pp PROGRAM mt
117
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
2. Misma pregunta, pero con respecto a un nuevo tiedro previamente declarado en una orden
FRAME.
118
119
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
120
Programa correspondiente al ejercicio n 2, pregunta n 2
PROGRAM rosceas
END
PROGRAM text 1
END
PROGRAM text2
END
121
Ejercicio N 3
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.
122
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
123
Anexo 2
124
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.
125
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
126
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.
127
CONFIGURACIN DEL SISTEMA ANALGICO
128
Cableado de entradas analgicas
En modo referencial
129