Está en la página 1de 236

ACL

Lenguaje de Control Avanzado


para Controlador-B

Versión F2.28

GUIA DE REFERENCIA

Catálogo #100263 Rev.01


Copyright  2004 Intelitek Inc.

ACL para Controlador-B

Catálogo n° 100263 revisión A

Abril 2004
Se realizó todo esfuerzo posible para que este libro sea completo y tan exacto
como fuera posible. Sin embargo, no se da o implica ninguna garantía de
aplicabilidad, intención o conveniencia. Intelitek no será susceptible o
responsable a cualquier persona o entidad por pérdidas o daños en conexión con
o surgiendo del uso del software, hardware y/o la información contenida en esta
publicación.

Intelitek no asume responsabilidad por errores que podrían aparecer en esta


edición y se guarda el derecho de realizar cambios en el software y el manual sin
aviso previo.

INTELITEK INC.
444 East Industrial Park Drive
Manchester NH 03109-537
Tel: (603) 625-8600
Fax: (603) 625-2137
Página web www.intelitek.com
INDICE

CAPITULO 1

ACL: Referencia rápida 1-1


Tipos de Comandos .......................................................................1-2
Sistemas de Coordenadas ..............................................................1-2
Tipos de Datos ...............................................................................1-3
Variables .....................................................................1-3
Strings (Comentarios) .................................................1-3
Posiciones ...................................................................1-3
Parámetros ..................................................................1-3
Comandos de Control de Ejes .......................................................1-4
Comandos de Control de Programa y Tiempo Real .....................1-10
Comandos de Manipulación y Definición de Posición .................1-12
Comandos de Manipulación y Definición de Variable .................1-15
Comandos de Flujo de Programa ..................................................1-16
Comandos de Control I/O .............................................................1-18
Comandos de Manipulación de Parámetros .................................1-19
Comandos de Configuración .........................................................1-19
Comandos Informativos ................................................................1-20
Comandos de interface de Usuario y Pantalla ..............................1-22
Comandos de Comunicaciones RS232..........................................1-24
Funciones de Edición ....................................................................1-25
Comandos de Manipulación de Programas ..................................1-26
Comandos de Reserva/Restauración Externa ...............................1-27
Comandos de la Botonera de Enseñanza .......................................1-27

CAPITULO 2

Comandos: Tipos y Formatos 2-1


Tipos de Comandos .......................................................................2-1
Modo DIRECTO.........................................................2-1
Control Manual por Teclado .............................2-1
Control por Botonera de Enseñanza..................2-2

Guía de Referencia ACL para Controlador-B i


0404 Versión F2.28
Modo EDITOR ...........................................................2-3
Funciones de Edición ........................................2-4
Sistemas de Coordenadas ..............................................................2-5
Coordenadas cartesianas (XYZ) .................................2-5
Espacio XYZ...............................................................2-5
Coordenadas Ejes (Joints, de robot) ...........................2-8
Tipos de Datos ...........................................................................2-9
Variables .....................................................................2-9
Variables de Usuario .........................................2-9
Variables del Sistema ........................................2-10
Listado de Variables ..........................................2-10
Strings (Comentarios, cadenas ) .................................2-11
Posiciones ...................................................................2-11
Tipos de Posiciones ...........................................2-11
Definición de Posiciones ...................................2-12
Grabación de Posiciones ...................................2-13
Listado de Posiciones ........................................2-13
Parámetros ..................................................................2-14
Anotaciones utilizadas en este manual ..........................................2-15

CAPITULO 3

Los Comandos ACL 3-1


A(Abortar). ....................................................................................3-2
ANDIF ...........................................................................................3-3
APPEND........................................................................................3-4
ATTACH .......................................................................................3-5
AUTO ............................................................................................3-6
CLOSE...........................................................................................3-7
CLR................................................................................................3-8
CLRBUF........................................................................................3-9
CLRCOM ......................................................................................3-10
COFF .............................................................................................3-11
CON...............................................................................................3-12

ii ACL para Controlador -B Guía de Referencia


Versión F2.28 0404
CONFIG ........................................................................................3-13
CONTINUE ...................................................................................3-16
COPY.............................................................................................3-17
DEFINE .........................................................................................3-18
DEFP .............................................................................................3-19
DEL................................................................................................3-20
DELAY..........................................................................................3-21
DELETE ........................................................................................3-22
DELP .............................................................................................3-23
DELVAR .......................................................................................3-24
DIM................................................................................................3-25
DIMG.............................................................................................3-26
DIMP .............................................................................................3-27
DIR ................................................................................................3-28
DISABLE.......................................................................................3-29
DO .................................................................................................3-30
ECHO ............................................................................................3-31
EDIT ..............................................................................................3-32
ELSE..............................................................................................3-33
EMPTY..........................................................................................3-34
ENABLE........................................................................................3-35
END ...............................................................................................3-36
ENDFOR .......................................................................................3-37
ENDIF............................................................................................3-38
<Enter> ..........................................................................................3-39
EXACT ..........................................................................................3-40
EXIT ..............................................................................................3-41
FOR ..............................................................................................3-42
FORCE .........................................................................................3-43
FREE ............................................................................................3-44
GET ..............................................................................................3-45
GETCOM ......................................................................................3-46
GLOBAL ......................................................................................3-47
GOSUB .........................................................................................3-48
GOTO ...........................................................................................3-49
Guía de Referencia ACL para Controlador-B iii
0404 Versión F2.28
HELP ............................................................................................3-50
HERE ............................................................................................3-51
HERER .........................................................................................3-52
HOME / HHOME..........................................................................3-53
IF ...................................................................................................3-54
INIT ..............................................................................................3-55
INSERT .........................................................................................3-56
INT ................................................................................................3-57
JAW ..............................................................................................3-58
L ....................................................................................................3-59
LABEL ..........................................................................................3-60
LET ...............................................................................................3-61
LIST ..............................................................................................3-62
LISTP ............................................................................................3-63
LISTPV .........................................................................................3-64
LISTVAR ......................................................................................3-65
MODULO ROLL...........................................................................3-66
MOVE, MOVED ..........................................................................3-67
MOVE .....................................................................................3-67
MOVED ...................................................................................3-68
MOVE, MOVED Resumen .....................................................3-69
MOVEC, MOVECD ....................................................................3-71
MOVEL, MOVELD .............................................................3-72
MOVES, MOVESD ..............................................................3-73
NOECHO ..............................................................................3-74
NOQUIET ..............................................................................3-75
OPEN ....................................................................................3-76
ORIF ......................................................................................3-77
P .............................................................................................3-78
PASSWORD ..........................................................................3-79
PEND/POST .........................................................................3-80
PRCOM..................................................................................3-81
PRINT ...................................................................................3-82
PRINTLN ..............................................................................3-83

iv ACL para Controlador -B Guía de Referencia


Versión F2.28 0404
PRIORITY ............................................................................3-84
PRIV[ILEGE] ........................................................................3-85
PROFILE................................................................................3-86
PRLNCOM ............................................................................3-87
PSTATUS ..............................................................................3-88
PURGE...................................................................................3-89
PVAL/PVALC .......................................................................3-90
QPEND, QPOST ...................................................................3-91
QUIET ...................................................................................3-92
READ ....................................................................................3-93
READCOM............................................................................3-94
RECEIVE ..............................................................................3-95
REMOVE ..............................................................................3-96
RENAME ..............................................................................3-97
RUN ......................................................................................3-98
S .............................................................................................3-99
SENDCOM ............................................................................3-100
SEND ....................................................................................3-101
SET ........................................................................................3-103
SET y Variables del Sistema .............................................3-105
SETP .....................................................................................3-107
SETPV ...................................................................................3-108
SETPVC ................................................................................3-110
SHIFT, SHIFTC ....................................................................3-111
SHOW ...................................................................................3-104
SPEED ...................................................................................3-114
SPEEDL .................................................................................3-115
SPLINE/SPLINED.................................................................3-116
STAT[US] .............................................................................3-118
SUSPEND ..............................................................................3-120
STOP .....................................................................................3-119
TEACH .................................................................................3-121
TEACHR ...............................................................................3-122
Guía de Referencia ACL para Controlador-B v
0404 Versión F2.28
TEST .....................................................................................3-123
TON, TOFF ...........................................................................3-124
TOOL .....................................................................................3-125
TRIGGER .............................................................................3-127
UNDEF .................................................................................3-128
VER ..............................................................................................3-129
WAIT ............................................................................................3-130
ZSET..............................................................................................3-131
* ....................................................................................................3-132
@ ...................................................................................................3-133
~ (Control de Robot Manual) .......................................................3-134

vi ACL para Controlador -B Guía de Referencia


Versión F2.28 0404
CAPITILO 4

Elemento Predefinidos del Sistema 4-1


Procedimientos Internos del Sistema.............................................4-1
HOME.........................................................................4-1
TEST...........................................................................4-1
Nombres Reservados del Sistema..................................................4-2
AUTO .........................................................................4-2
BACKG ......................................................................4-2
CRASH .......................................................................4-4
EMERG ......................................................................4-4
START........................................................................4-4
Posición POSITION ......................................................................4-5
Variables del Sistema ....................................................................4-6

CAPITULO 5

Mensajes del Sistema 5-1

CAPITULO 6

Configuración de la Memoria de Usuario 6-1

CAPITULO 7

Parámetros 7-1
¡Aviso! ....................................................................................7-1
Protección de Parámetros ..............................................................7-2
Comandos de acceso......................................................................7-2
Descripción de Parámetros ............................................................7-3
Tabla 1 de Parámetros ...................................................................7-4
Tabla 2 de Parámetros ...................................................................7-8

Guía de Referencia ACL para Controlador-B vii


0404 Versión F2.28
Introducción

El ACL, Lenguaje de Control Avanzado, es un lenguaje y entorno de


programación de robótica avanzado, multitarea, desarrollado por ESHED
ROBOTEC (1982) Ltd.

El ACL esta almacenado en memorias EPROM dentro del Controlador-B y


se puede acceder a él con cualquier PC estándar o terminal, por medio de
una línea RS232 de comunicaciones.

El ATS, Software para Terminal Avanzado, es el entorno de interface de


usuario para el controlador ACL. El ATS viene suministrado en un disquete
y se ejecuta en un PC. Este software es un emulador de terminal que permite
el acceso al ACL desde un PC.

La siguiente figura muestra los componentes del sistema robótico:

viii ACL para Controlador -B Guía de Referencia


Versión F2.28 0404
Las características del ACL incluyen:

• Ejecución directa de comandos del robot.

• Control de entrada y salida de datos.

• Programación de usuario del robot.

• Ejecución simultánea de programas (total soporte multitarea).

• Ejecución sincronizada de programas.

• Sencilla gestión de ficheros.

Las características del ATS son:

• Configuración rápida y sencilla del controlador

• Definición de elementos periféricos

• Teclas rápidas para la introducción de comandos

• Gestión de Backup

• Gestión de impresión

Guía de Referencia ACL para Controlador-B ix


0404 Versión F2.28
x ACL para Controlador -B Guía de Referencia
Versión F2.28 0404
CAPITULO 1
ACL : Referencia rápida
Este capítulo es un breve sumario de los diferentes comandos y tipos de
datos usados en ACL. Las breves descripciones sirven para comparar y
elegir el comando más adecuado para las necesidades concretas de
programación y operación. Ver descripciones más detalladas de los
comandos en el capítulo 3 de este manual.

Los comandos están agrupados de acuerdo con los grupos listados abajo.

• Comandos Control de ejes


• Comandos Control de I/O
• Comandos Control Programa
• Comandos Definición y Manipulación de Posiciones
• Comandos Definición y Manipulación de Variables
• Comandos Flujo de Programa
• Comandos de Configuración
• Comandos de Reportajes
• Comandos de Interface de Usuario
• Comandos de Manipulación Programas
• Comandos de Edición
• Comandos de Comunicaciones RS232
• Comandos de Backup y Restore

Para mayor detalle referirse al capítulo 3.

Guía de Referencia ACL para Controlador B 1-1


0404 Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Tipos de Comandos
El ACL tiene dos tipos de comandos:
• DIRECTOS: los comandos son ejecutados tan pronto como son
introducidos y pulsado <Enter> desde el teclado.
• EDICION: los comandos son ejecutados durante la ejecución de los
programas y rutinas en los cuales están escritos.

Algunos de estos comandos pueden ser ejecutados tanto en modo directo


como de edición como se indica su explicación.

Referirse al capítulo 2 para mayor detalle.

Sistemas de Coordenadas
El ACL permite al sistema robótico ser operado y programado en dos
sistemas de coordenadas diferentes:
• EJES (joints): pasos de encoder
• XYZ : coordenadas Cartesianas

Referirse al capítulo 2 para mayor detalle.

1-2 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

Tipos de Datos
Variables
El ACL utiliza dos tipos de variables:
• Variables de Usuario:
• GLOBALES: se pueden usar en todos los programas
• PRIVADAS: solo pueden usarse en el programa en el cual
fueron definidas y utilizadas.
• Variables del Sistema.
Las variables del sistema contienen los datos del estado de las
entradas, salidas, encoders y otros elementos del sistema.

Referirse al capítulo 4 para mayor detalle.

Strings (Comentarios)
Algunos comandos ACL incluyen comentarios o cadenas de texto (strings).
Se reconocen strings de hasta 40 caracteres (incluido espacios).

Referirse al capítulo 2 para mayor detalle

Posiciones
El ACL utiliza seis tipos de posiciones:
• Absoluta Ejes (joint)
• Absoluta XYZ
• Relativa a otra Posición por Ejes
• Relativa a otra Posición por XYZ
• Relativa a la Posición Actual por Ejes
• Relativa a la Posición Actual por XYZ

Referirse al capítulo 2 para mayor detalle.

Parámetros
Los Parámetros ACL definen los valores de constantes físicas que adaptan
al controlador a un determinado sistema robótico (tipo de robot, periféricos,
velocidades, etc.).

Los parámetros están definidos por su número (del 1 al 699)

Referirse al capítulo 7 para mayor detalle.

Guía de Referencia ACL para Controlador B 1-3


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Control de Ejes


MOVE SPEED INT:_ON
MOVED SPEEDL INT_OFF
MOVEL SHOW SPEED TON
MOVELD TOFF
MOVEC EXACT
MOVECD MPROFILE
MOVES HOME
MOVESD
SPLINE CON CLR
SPLINED COFF ZSET
MODULO ROLL
OPEN
CLOSE SET ANOUT ~
JAW SHOW DAC <ALT>+M
AUTO
CLRBUF TEST

COMANDO FORMATO DESCRIPCION MODO NOTAS

MOVE
MOVE <pos> Mueve el robot a la posición DIRECTO .
especificada y a la velocidad actual EDITOR
MOVE <pos> <tiempo> Mueve el robot a la posición DIRECTO
especificada en el tiempo EDITOR
especificado
MOVED <pos> <tiempo> Igual que MOVE excepto que el EDITOR La ejecución de este
programa continuará con el próximo comando es afectada por el
comando sólo cuando el robot haya comando EXACT
alcanzado la posición

MOVEC
MOVEC <pos 1> <pos2> Mueve el robot a la posición 1, con DIRECTO
trayectoria circular, pasando por el EDITOR
posición0 2
MOVECD <pos1> <pos2> Igual a MOVEC, salvo que el EDITOR La ejecución de este
programa sólo pasa al siguiente comando es afectada por el
comando cuando se alcanza la comando EXACT
posición

1-4 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

MOVEL
MOVEL <pos> Desplaza el robot a la posición por DIRECTO
una trayectoria lineal EDITOR
MOVEL <pos> <tiempo> Se desplaza linealmente a la posición DIRECTO
en el tiempo especificado EDITOR
MOVELD <pos> {<tiempo>} Como MOVEL salvo que el EDITOR La ejecución de este
programa pasa al comando siguiente comando es afectada por el
sólo al alcanzar la posición. comando EXACT

MOVES
MOVES <pvect> <pos1> Desplaza el robot por todas las DIRECTO
<posn> posiciones del vector, desde la pos. EDITOR
de inicio a la de fin. No hay
aceleración/deceleración ni pausa
entre posiciones.
MOVES <pvect> <pos1> Como MOVES pero en el tiempo DIRECTO
<posn> <tiempo> especificado EDITOR
MOVESD <pvect> <pos1> Como MOVES salvo que el EDITOR La ejecución de este
<posn> {<tiempo>} programa pasa al comando siguiente comando es afectada por el
sólo al alcanzar la posición. comando EXACT

SPLINE
SPLINE <pvect> <pos1> Mueve los ejes suavemente entre (o DIRECTO
<posn> cerca de) las posiciones consecutivas EDITOR
del vector, desde la primera a la
última posición
SPLINED <pvect> <pos1> Lo mismo que SPLINE escepto que EDITOR La ejecución de este
<posn> <tiempo> la velocidad media esta determinada comando es afectada por el
por el tiempo seleccionado comando EXACT

CLRBUF
CLRBUF Vacía el contenido del buffer de DIRECTO
movimiento de todos los ejes EDITOR
CLRBUFA/B Vacía el buffer de movimiento del DIRECTO
grupo A o del grupo B. EDITOR
CLRBUF <eje> Vacía el buffer de movimiento del DIRECTO
eje concreto. EDITOR

Guía de Referencia ACL para Controlador B 1-5


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

OPEN
OPEN Abre pinza hasta el fin de su DIRECTO Comando normal de apertura
movimiento, en lazo abierto. EDITOR de la pinza
OPEN <var> Abre pinza con fuerza adicional. DIRECTO Precaución.
Aplica el valor de var al DAC. En EDITOR 0 ≤ var ≤ 500
lazo abierto

CLOSE
CLOSE Cierra pinza hasta el fin de su DIRECTO Comando normal de cierre
movimiento, en lazo abierto EDITOR de la pinza
CLOSE <var> Cierra pinza con fuerza adicional. DIRECTO Precaución.
Aplica el valor de var al DAC. En EDITOR 0 ≤ var ≤ 500
lazo abierto

JAW (sólo aplicable para servo-pinzas)


JAW <var> Control de la pinza en lazo cerrado. DIRECTO Precaución.
Ajusta la apertura de pinza al valor EDITOR 0 ≤ var ≤ 500
porcentual de <var> . Velocidad.
máxima.
JAW <var> <tiempo> Igual a JAW <var> pero el DIRECTO Precaución.
movimiento se ejecuta en el tiempo EDITOR 0 ≤ var ≤ 500
especificado.

SPEED
SPEED <var> Ajusta el valor de la velocidad para DIRECTO 1≤ var ≤ 100
todos los ejes al valor seleccionado. EDITOR Por defecto 50
SPEED { A/B } <var> Ajusta velocidad al grupo A o B DIRECTO
EDITOR
SPEEDC <var> <eje> Ajusta velocidad del eje en el grupo DIRECTO
C EDITOR

SPEEDL
SPEEDL <var> Ajusta el valor de la velocidad para DIRECTO Var = mm / segundo
el robot (grupo A). Determina la EDITOR
velocidad para los movimientos
MOVEL, MOVEC y SPLINE.

SHOW SPEED
SHOW SPEED Muestra los valores actuales de las DIRECTO
velocidades

1-6 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

EXACT
EXACT A/B/C Asegura la precisión de DIRECTO EXACT es por defecto
posicionamiento, activando la EDITOR
modalidad de exactitud de
posicionamiento en el grupo A, B o
C. Sólo afecta a comandos con “D”:
MOVED, MOVELD, MOVECD,
etc..
EXACT OFFA/B/C Desactiva la modalidad de exactitud DIRECTO .
de posicionamiento del eje EDITOR
correspondiente

PROFILE
PROFILE SINUS A/B/C Ajusta el perfil de movimiento del DIRECTO SINUS por defecto
grupo seleccionado a senoidal: EDITOR
rápida aceleración y deceleración al
inicio y final del movimiento,
velocidad constante durante el resto
del movimiento.
MPROFILE PARABOLE Ajusta el perfil de movimiento del DIRECTO
A/B/C grupo seleccionado a parabólico: EDITOR
lenta aceleración y deceleración.

INT
INT_ON <eje1>.....<eje4> Activa el servocontrol integral de los DIRECTO Por defecto
ejes especificados EDITOR
INT_OFF <eje1>.....<eje4> Desactiva el servocontrol de los ejes DIRECTO
especificados. EDITOR

HOME
HOME {<n>} Busca la posición de referencia de DIRECTO Para hacer referencia desde
todos los ejes, o del eje especificado EDITOR la botonera de enseñanza
teclear: RUN 0
HHOME <n> Busca la posición de referencia DIRECTO Se utiliza en accesorios sin
hardware del eje especificado. Busca EDITOR microinterruptor de HOME:
el tope rígido. p.e. :base lineal deslizante

CLR
CLR <eje> Borra el contenido del codificador DIRECTO 1 ≤ eje ≤ 12
del eje especificado.
CLR * Borra el contenido del codificador de DIRECTO
todos los ejes.

Guía de Referencia ACL para Controlador B 1-7


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

COFF
COFF Desactiva el servocontrol en todos DIRECTO
los ejes.
COFF [A/B] Desactiva el servocontrol del grupo DIRECTO
especificado.
COFF <eje> Desactiva el servocontrol del eje DIRECTO
especificado.

CON
CON Activa el servocontrol en todos los DIRECTO
ejes.
CON [A /B] Activa el servocontrol del grupo DIRECTO
especificado.
CON <eje> Activa el servocontrol del eje DIRECTO
especificado.

TON
TON {<n>} Activa la protección térmica del DIRECTO Por defecto.
motor, en todos los ejes o en el eje
especificado.

TOFF
TOFF {<n>} Desactiva la protección térmica del DIRECTO
motor, en todos los ejes o del eje
especificado.

SET ANOUT
SET ANOUT [n] = <DAC> Ajusta el valor del DAC, del eje DIRECTO -5000 =< DAC =< 5000
especificado, al valor seleccionado. Usarlo con cuidado, puede
Se usa para mover ejes en lazo dañar el motor.
abierto.

SHOW DAC
SHOW DAC eje Muestra en pantalla el valor del DIRECTO 1 ≤ eje ≤ 12
DAC en miliVoltios

1-8 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

ZSET
ZSET Inicializa (pone a cero) el valor del DIRECTO
INEDEX PULSE de todos los ejes

MODULO ROLL
MODULO ROLL Vuelve el valor del eje Roll a un DIRECTO
valor dentro de ± 360º, sin mover el
eje

< CTRL> + M
< Ctrl> + M Activa y desactiva el Modo Manual DIRECTO
para el control del movimiento desde
el teclado.

AUTO
AUTO Transfiere el control al teclado del DIRECTO
ordenador después de haber
cambiado de Teach a Auto en la
Botonera de Enseñanza

Guía de Referencia ACL para Controlador B 1-9


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Control de Programa y Tiempo Real


RUN PRIORITY POST
A (ABORT) PEND
STOP SET var TIME QPOST
SUSPEND QPEND
CONTINUE DELAY
WAIT
TRIGGER BY IN/OUT

RUN
RUN <prog> Ejecuta el programa especificado. DIRECTO
EDITOR
RUN <prog> <prioridad> Ejecuta el programa especificado DIRECTO
con la prioridad solicitada. EDITOR

A (ABORT)
A ó <Ctrl + A> Aborta todos los programas que se DIRECTO
estén ejecutando y detiene el
movimiento de ejes.
A <prog> Aborta la ejecución del programa DIRECTO
especificado.

STOP
STOP Aborta todos los programas en EDITOR
ejecución.
STOP <prog> Aborta la ejecución del programa EDITOR
especificado.

SUSPEND
SUSPEND <prog> Detiene la ejecución del programa DIRECTO Ver CONTINUE
especificado. EDITOR

CONTINUE
CONTINUE <prog> Continua la ejecución del programa DIRECTO Ver SUSPEND
especificado, previamente detenido EDITOR
por el comando SUSPEND.

PRIORITY
PRIORITY <prog> <var> Ajusta la prioridad de ejecución del EDITOR 1≤ <var> ≤10
programa especificado al valor de Por defecto 5
var

1-10 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

SET
SET <var> = TIME Fija el valor de la variable <var> al DIRECTO
valor que tiene en ese momento la EDITOR
variable del sistema TIME.

DELAY
DELAY <var> Suspende la ejecución del programa EDITOR El valor de <var> serán
durante el tiempo especificado. centésimas de segundo.

WAIT
WAIT <var1> <cond> Suspende la ejecución de un EDITOR La condición puede ser:
<var2> programa hasta que se cumpla la <, >, =, ≤, ≥, <>
condición especificada.

TRIGGER
TRIGGER <prog> BY Ejecuta un programa condicionado EDITOR 1=< n=< 16
IN/OUT <n> [1/0] al estado de una entrada/salida <estado> =0 --->OFF
=1 ---->ON

PEND
PEND <var1> FROM <var2> Suspende la ejecución de un EDITOR Funciona conjuntamente con
programa hasta que otro programa POST, para sincronizar
pone un valor distinto de 0 en programas.
<var2>.

POST
POST <var> TO <var2> Asigna el valor de var a la variable EDITOR Funciona conjuntamente con
especificada. PEND, para sincronizar
programas.

QPEND
QPEND <var1> FROM Igual a PEND, pero el valor se toma EDITOR Ver QPOST
<vect> desde un cola (vector)

QPOST
QPOST <var> TO <vect> Igual a POST, pero el valor se toma EDITOR Ver QPEND
desde un cola (vector)

Guía de Referencia ACL para Controlador B 1-11


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Manipulación y Definición de Posición


DEFP HERE SETP
DIMP HERER
HEREC TOOL

DELP TEACH ATTACH


UNDEF TEACHR

DELETE SET var=PVAL


INSERT SETPV SET var=PVALC
SETPVC SET var=PSTATUS

SHIFT
SHIFTC

DEFP
DEFP {A/B} <pos> Crea (define) una posición en el DIRECTO <pos> es un nombre de hasta
DEFPC <pos> <eje> grupo A o B, o en un eje del grupo EDITOR 5 caracteres.
C. 1≤ eje ≤ 12

DIMP
DIMP {A/B} <vect [n]> Crea (define) un vector de n DIRECTO <vect> es un nombre de
DIMPC vect[n] <eje> posiciones en el grupo especificado. EDITOR hasta 5 caracteres.
1≤ eje ≤ 12

HERE
HERE <pos> Graba en coordenadas de ejes una DIRECTO En unidades de codificador.
posición absoluta del robot. EDITOR <pos> ha de definirse
primero con DEFP o DIMP.

HEREC
HEREC <pos> Graba en coordenadas Cartesianas la DIRECTO En unidades de codificador.
posición absoluta del robot. EDITOR <pos> ha de definirse
primero con DEFP o DIMP.

HERER
HERER <pos> Graba en coordenadas de ejes una DIRECTO
posición del robot relativa a la
posición actual.
HERER <pos2> <pos1> Graba en coordenadas de ejes la DIRECTO
posición <pos2> relativa a la <pos1> EDITOR

1-12 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

TEACH
TEACH <pos> Graba en coordenadas cartesianas DIRECTO Valores X Y Z en décimas
una posición absoluta del robot de mm; valores de muñeca
en décimas de grado.

TEACHR
TEACHR <pos> Graba en coordenadas. cartesianas DIRECTO
una posición relativa a la actual del
robot.
TEACHR <pos2> <pos1> Graba en coord. cartesianas una DIRECTO
posición <pos2> relativa a <pos1>.

SETPV
SETPV <pos> Graba en coord. de ejes una posición DIRECTO
del robot.
SETPV <pos> <eje> <var> Graba en coord. de ejes el valor de DIRECTO 1=< <eje> =< 11
un eje en una posición previamente EDITOR
grabada.

SETPVC
SETPVC <pos> <coord> Graba en coord. cartesianas el valor DIRECTO
<var> de un eje en una posición EDITOR
previamente grabada.

SHIFT
SHIFT <pos> BY <eje> <var> Cambia el valor de una posición DIRECTO 1≤ <eje> ≤ 11
asignando un nuevo valor, en coord. EDITOR
de ejes, al eje especificado.
SHIFTC <pos> BY Cambia el valor de una posición DIRECTO Coord ={X/Y/Z/P/R}
<coord><var> asignando un nuevo valor , en coord. EDITOR
cartesianas, al eje especificado.

SETP
SETP <pos2> = <pos1> Copia el valor de la posición <pos1> DIRECTO
a la posición <pos2>

TOOL
TOOL longitud offset Define la posición del punto central DIRECTO .
ángulo de la herramienta (TCP) r EDITOR

ATTACH

Guía de Referencia ACL para Controlador B 1-13


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

ATTACH <pvect> Asigna un vector de posiciones a la DIRECTO


botonera de enseñanza, de acuerdo
con el grupo al que fué definido.
ATTACH OFFA/B/C Desactiva el vector de posiciones de DIRECTO
la botonera de enseñanza
ATTACH ? Muestra el estado actual DIRECTO

UNDEF
UNDEF <pos> Inicializa los valores de la posición DIRECTO Se borran los valores de la
UNDEF <pvect> especificada. posición, pero esta sigue
definida.

DELP
DELP <pos> Borra posiciones y vectores de DIRECTO
DELP <pvect> posiciones de la RAM de usuario. EDITOR

SET
SET <var> = PVAL <pos> Asigna el valor, en coord. ejes, del DIRECTO 1 ≤ eje ≤ 12
<eje> eje especificado de la pos. <pos> a la EDITOR
variable <var>
SET <var> = PVALC <pos> Igual al anterior pero en coordenadas DIRECTO Debe ser una posición del
<coord> cartesianas. EDITOR robot
Coord = {X/Y/Z/P/R}.
SET <var> = PSTATUS Asigna un valor a <var> de acuerdo DIRECTO
<pos> con el estado de la posición EDITOR
especificada.

1-14 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Manipulación y Definición de Variables


DEFINE DIM DELVAR
GLOBAL DIMG PURGE
SET var

DEFINE
DEFINE <var1>.......<var12> Crea (define) variables locales. Hasta EDITOR Variable local: sólo
12 variables en un comando. reconocida por el programa
donde se definió.

GLOBAL
GLOBAL <var1>......<var12> Crea (define) variables globales. DIRECTO Variables globales:
Hasta 12 variables en un comando. EDITOR reconocidas por todos los
programas.

DIM
DIM <var[n]> Crea (define) un vector de n variable EDITOR <var> máximo de 5
locales. caracteres.

DIMG
DIMG <var[n]> Crea (define) un vector de n DIRECTO
variables globales. EDITOR

DELVAR
DELVAR <var> Borra la variable especificada de la DIRECTO
RAM de usuario. EDITOR

PURGE
PURGE Borra las variables no utilizadas DIRECTO

SET
SET <var1> = <var2> Asigna el valor de var2 a var1 DIRECTO
EDITOR
SET <var1> NOT <var2> Asigna el valor negativo lógico de
var2 a var1
SET <var1> = Asigna el valor complementario de
COMPLEMENT <var2> var2 a var1
SET <var1> = ABS <var2> Asigna el valor absoluto de var2 a
var1
SET <var1> = ABS <var2> Asigna a var1 el resultado de la <oper> puede ser:
<oper> <var3> operación entre var2 y var3 +, -, <, *, /, sen, cos, tan,
atan, exp, log, mod, or, and.

Guía de Referencia ACL para Controlador B 1-15


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Flujo de Programa


IF FOR LABEL
ANDIF ENDFOR GOTO
ORIF
ELSE GOSUB
ENDIF

IF
IF <var1> <cond> <var2> Comprueba la relación condicional EDITOR <cond> puede ser:
de dos variables <, >, =, <=, >=, <>

ANDIF
ANDIF <var1> <cond> Combina lógicamente una condición EDITOR
<var2> con otro comando IF.

ORIF
ORIF <var1> <cond> <var2> Combina lógicamente una condición EDITOR
con otro comando IF.

ELSE
ELSE Sigue a IF y precede a ENDIF. EDITOR
Ejecuta los comandos si IF es falso.

ENDIF
ENDIF Indica el fin del condicionador IF EDITOR

FOR
FOR <var1> = <var2> TO Comando de bucle. Ejecuta el EDITOR
<val3> contenido entre FOR y ENDFOR
para todos los valores de la variable.

ENDFOR
ENDFOR Fin del bucle FOR EDITOR

LABEL
LABEL <n> Etiqueta para el uso de saltos EDITOR Ver GOTO
incondicionales por medio de GOTO 0 =< n =< 9999

GOTO

1-16 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

GOTO <n> Ejecuta un salto incondicional hasta EDITOR


el LABEL <n>

GOSUB
GOSUB <prog> Ejecuta el programa <programa> EDITOR
como una subrutina: programa
principal suspendido hasta termino
de subrutina.

Guía de Referencia ACL para Controlador B 1-17


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Control I/O


DISABLE SHOW DIN SET OUT[n]
ENABLE SHOW DOUT IF IN[n]
FORCE TRIGGER

DISABLE
DISABLE IN/OUT <n> Desconecta las entradas o salidas DIRECTO 1 ≤ n ≤ 16
físicas del sistema normal de control
DISABLE ? Muestra la lista de las entradas y DIRECTO
salidas desactivadas

ENABLE
ENABLE IN/OUT <n> Activa la I/O especificada al control DIRECTO 1 ≤ n ≤ 16
normal Por defecto

FORCE
FORCE IN/OUT <n> [0/1] En modo DISABLE, fuerza la I/O DIRECTO 1 ≤ n ≤ 16
especificada al estado 0 ó 1 0=OFF; 1=ON
FORCE ? Muestra la lista de las entrdas y DIRECTO 0=OFF; 1=ON
salidas que se encuentran en estado
forzadas

SHOW
SHOW DIN Muestra en pantalla el estado de DIRECTO 0=OFF; 1=ON
todas las entradas
SHOW DOUT Muestra en pantalla el estado de DIRECTO 0=OFF; 1=ON
todas las salidas

SET
SET OUT[n] = [1/0] Fija el estado de la salida DIRECTO 1≤ n ≤ 16
especificada a 0 ó a 1 EDIT 0=OFF; 1=ON

IF
IF OUT[n] =[1/0] Comprueba el estado de una entrada. EDITOR 1≤ n ≤ 16
Ver comando IF 0=OFF; 1=ON

TRIGGER
TRIGGER prog BY Ejecuta el programa especificado, EDITOR 1≤ n ≤ 16
[IN/OUT] n [0/1] condicionado al cambio de estado de 0=OFF; 1=ON
la entrada o salida especificada.

1-18 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Manipulación de Parámetros


LET PAR SHOW PAR

LET
LET PAR <n> = <var> Cambia el valor del parámetro DIRECTO ¡Uso con cuidado !
especificado del sistema.

Comandos de Configuración
CONFIG PASSWORD
INIT CONTROL PRIV[ILEGE]
INIT EDITOR
º
CONFIG
CONFIG Se entra en el menú de configuración DIRECTO Borra todo el contenido de la
del sistema RAM de usuario.

INIT
INIT CONTROL Inicializa todos los parámetros del DIRECTO Se debe ejecutar al cambiar
sistema los parámetros.
INIT EDITOR Inicializa todos los programas, DIRECTO Borrará el contenido de la
posiciones y variables de la RAM de RAM de usuario
usuario.
INIT PROFILE Inicializa el perfil de movimiento DIRECTO Ver apéndice B: parámetro
según el valor del parámetro 76 76

Guía de Referencia ACL para Controlador B 1-19


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos Informativos
ATTACH ? DIR VER
CONFIG ? LIST FREE
DISABLE ? STAT SEND
SHOW

ATTACH ?
ATTACH ? Presenta el estado actual de DIRECTO Ver comando ATTACH.
ATTACH.

CONFIG ?
CONFIG ? Presenta la configuración del DIRECTO
sistema..

DISABLE ?
DISABLE ? Presenta la lista de las I/O DIRECTO
desactivadas por el comando
DISABLE

LIST
LIST {<prog>} Presenta el listado de todos los DIRECTO
programas o de uno especificado
LISTP Lista todas las posiciones definidas DIRECTO
LISTPV <pos> Lista las coordenadas de la posición DIRECTO
especificada
LISTPV POSITION Lista las coordenadas de la posición DIRECTO
actual del robot.
LISTVAR Lista todas las variables definidas. DIRECTO

STAT
STAT Lista los programas de usuario DIRECTO
activos: nombre, prioridad y estado

SHOW
SHOW DIN Presenta el estado de todas las DIRECTO ON = 1 ; OFF = 0
entradas.
SHOW DOUT Presenta el estado de todas las DIRECTO
salidas.
SHOW ENCO Presenta el estado de todos los
encoder.
SHOW DAC <eje> Presenta el valor del DAC
especificado en milivoltios

1-20 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

SHOW PAR <n> Presenta el valor del parámetro


especificado
SHOW SPEED Presenta el valor de la velocidad DIRECTO
actual.

VER
VER Presenta la versión de la EPROM DIRECTO

FREE
FREE Presenta la cantidad de memoria DIRECTO
RAM disponible..

Guía de Referencia ACL para Controlador B 1-21


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos Interfase de Usuario y Pantalla


QUIET HELP PRINT
NOQUIET PRINTLN

ECHO READ
NOECHO GET

QUIET
QUIET No se presentan en pantalla los DIRECTO
comandos directos ejecutados en un
programa.

NOQUIET
NOQUIET Se presentan en pantalla los DIRECTO
comando directos ejecutados en un
programa

ECHO
ECHO Presenta en pantalla todos los DIRECTO
caracteres transmitidos al
controlador.

NOECHO
NOECHO No presenta el estado de todas las DIRECTO
salidas.

HELP
HELP Presenta ayuda en pantalla. EDITOR

DO HELP
DO HELP Presenta ayuda. DIRECTO

PRINT
PRINT "string" Presenta en pantalla la cadena de EDITOR
caracteres (string).
PRINT <arg1>......<arg4> Presenta los valores de los EDITOR
argumentos <arg1>......<arg4>
PRINTLN Igual a PRINT pero inserta un EDITOR
retorno de página.

1-22 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

READ
READ "string" <var> Presenta en la pantalla el string y DIRECTO
espera la introducción del valor de
<var> por el teclado.

GET
GET <var> Espera que se pulse un carácter por EDITOR
el teclado y lo guarda en la variable
<var>.

Guía de Referencia ACL para Controlador B 1-23


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de comunicaciones RS232


SENCOM PRCOM CLRCOM
GETCOM PRLNCOM
READCOM

SENCOM
SENCOM <n> <var> Transmite un byte cuyos valores EDITOR n = puerto RS232
especifica la variable por el puerto 1≤n≤8
seleccionado

GETCOM
GETCOM <n> <var> Recibe un byte por el puerto EDITOR 1≤n≤8
especificado y almacena el valor en
la variable

PRCOM
PRCOM <n> <arg1> {<arg2> Transmite texto (cadena y/o EDITOR 1≤n≤8
<arg3>} variables) por el puerto especificado

PRNLCOM
PRNLCOM <n> <arg1> Igual a PRCOM pero añade retorno EDITOR 1≤n≤8
{<arg2> <arg3>} de carro

READCOM
READCOM <n> <var1> Recibe caracteres numéricos ASCII, EDITOR 1≤n≤8
{<var2> <var3>} seguidos de retorno de carro, desde
el puerto especificado y asigna el
valor a <var>

CLRCOM
CLRCOM <n> Borra el buffer del puerto EDITOR 1≤n≤8
especificado

1-24 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

Funciones de Edición
S * END
P @ <exit>
L
DEL
<enter>

S
S Va a la primera línea del programa EDITOR
S <n> Lleva el PROMT a la línea n del EDITOR
programa

P
P Va a la línea anterior del programa EDITOR

L
L <n1> <n2> Lista desde la pos n1 a la n2 EDITOR

DEL
DEL Borra la linea actual del programa EDITOR

<Enter>
<Enter> Va a la siguiente línea del programa EDITOR

*
* "string" Líneas de comentario de usuario EDITOR

@
@ <comando DIRECTO> Permite la ejecución de un comando EDITOR
directo desde el modo editor

END
END Fin de programa. El sistema lo graba EDITOR
automáticamente

Guía de Referencia ACL para Controlador B 1-25


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

EXIT
EXIT Para salir de edición. Comprueba la EDITOR
validez del programa

Comandos de Manipulación de Programas


COPY
RENAME
REMOVE
EDIT

COPY
COPY <prog1> <prog2> Copia el programa1 a un nuevo DIRECTO
programa2

RENAME
RENAME <prog1> <prog2> Cambia el nombre del programa DIRECTO

REMOVE
REMOVE <prog> Borra el programa de la memoria DIRECTO

EDIT
EDIT Activa la modalidad de edición DIRECTO

1-26 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
COMANDO FORMATO DESCRIPCION MODO NOTAS

Comandos de Reserva y Restauración Externa


SEND
RECEIVE
APPEND

SEND
SEND Se envían listas del contenido de la DIRECTO Ver capítulo 3
memoria al ordenador

RECEIVE

RECEIVE Carga programas, posiciones y DIRECTO


variables desde el disco a la memoria
RECEIVE <prog> Carga el programa prog desde el DIRECTO
disco.

APPEND
APPEND Añade programas desde el disco a la DIRECTO
memoria

Comandos de la Botonera de enseñanza (teach pendant).


ATTACH
ATTACH OFF

ATTACH
ATTACH <pvect> Coloca un vector de posiciones en la DIRECTO
botonera de enseñanza
ATTACH OFFA/B/C Desactiva el vector de posiciones de DIRECTO
la botonera

Guía de Referencia ACL para Controlador B 1-27


Versión F2.28
COMANDO FORMATO DESCRIPCION MODO NOTAS

1-28 ACL para ControladorB Guía de Referencia


Versión F2.28 0404
CAPITULO 2
Comandos: Tipos y Formatos
En este capítulo se describen los distintos modos de operación y
programación del ACL, así como los tipos y formatos de los comandos y
datos usados en el leguaje de programación ACL.

Tipos de Comandos
Una vez el ATS ha sido cargado, usted puede comunicarse con el
controlador desde el teclado de su PC. Podrá ahora crear o editar sus
programas o controlar directamente el robot y ejes periféricos, dependiendo
del modo activo de operación.
ACL tiene dos tipos de comandos:
• Comandos DIRECTOS, que son ejecutados tan pronto como son
introducidos por el teclado (y pulsado <Enter>).
• Comandos de EDITOR, que son ejecutados durante la ejecución de los
programas y rutinas donde se utilizan.
Algunos de estos comandos se pueden ejecutar en ambos modos de
operación.

Modo DIRECTO
Cuando el modo directo esta activado, todos los comandos directos
introducidos desde el teclado son ejecutados al momento.
Cuando este modo esta activo en la pantalla aparece cursor:
>_
Los comandos de modo DIRECTO pueden ser incluidos en los programas
para su ejecución en modo EDITOR, anteponiendo el carácter @. Este
carácter le indica al controlador que se trata de un comando DIRECTO que
tiene que ser ejecutado en la ejecución del programa.
Usar el comando DELAY para asegurarse de la total ejecución del comando.
Los comandos de modo EDITOR pueden ser ejecutados en modo DIRECTO
anteponiendo al comando la orden DO.
Control Manual por Teclado
En modo DIRECTO se puede asumir el control total del robot y ejes
periféricos desde el teclado activando el modo Manual. Este modo es útil
cuando no se dispone de teclado de enseñanza.
Para activar el modo Manual teclee lo siguiente:
<Alt> + M

Guía de Referencia ACL para Controlador B 2-1


0404 Versión F2.28
Los comandos que se pueden usar en modo Manual son comparables a los
que maneja la botonera de enseñanza.
Referirse al comando <Alt>+M en el capítulo 3.
Control con Botonera de Enseñanza
La botonera de enseñanza es un terminal de mano que permite al operador el
control directo del robot y de los ejes periféricos. Además de controlar el
movimiento de los ejes se utiliza también para el almacenamiento de
posiciones, envío de los ejes a determinadas posiciones, activación de
programas y otras funciones.
La botonera de enseñanza posibilita el control de los ejes incluso cuando el
controlador esta en modo EDITOR.
El funcionamiento de la botonera de enseñanza esta descrito completamente
en el manual de Usuario del robot.

2-2 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
Modo EDITOR
El modo EDITOR se utiliza para crear y editar programas ACL.
Cuando el modo EDITOR esta activo, en la pantalla se muestra la línea de
programa actual y el cursor, indicando que el comando puede ser insertado.
Por ejemplo:
143:?_
El modo EDITOR se activa tecleando el comando EDIT y el nombre del
programa a editar. Por ejemplo:
>edit prog1
El sistema responderá:
PROG1 NEW PROGRAM
DO YOU WANT TO CREATE THAT NEW PROGRAM (Y/N)>
Teclee:
Y <Enter>
El sistema responderá:
PROGRAM PROG1
36:?_
Si usted no especifica un nombre de programa el sistema le indicará que
introduzca uno.
Si usted indica un nombre de programa ya existente el sistema lo editará
indicándole:
WELCOME TO ACL EDITOR, TYPE HELP WHEN IN TROUBLE
PROGRAM PROG1
36:?_
El cursor se posicionará en la primera línea del programa. Si usted teclea
<Enter> se posicionará en la línea siguiente y así sucesivamente.
Los nombres utilizados para los programas deben ser combinaciones de
hasta cinco caracteres alfanuméricos. Por ejemplo: MILL3, 234, COGE,
etc..

Guía de Referencia ACL para Controlador B 2-3


0404 Versión F2.28
Funciones de Edición
ACL proporciona los siguientes comandos para la edición de programas:
S Va a la primera línea de programa
P Va a la línea precedente
L n1 n2 Muestra las líneas de programa seleccionadas
DEL Borra la línea de programa actual
<Enter> Va a la próxima línea de programa
EXIT Abandona el modo de EDITOR y comprueba
la validez del programa
Referirse al capítulo 3 para mayor detalle.
ATS utiliza las siguientes teclas para el modo de EDITOR
← (Backspace) Borra caracteres
→ Restaura caracteres
<Ins> Inserta caracteres
<Del> Borra caracteres
<Esc> Borra el comando tecleado
<Ctrl>+→ Restaura el comando borrado
↑ Repetir el último comando entrado

2-4 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
Sistemas de Coordenadas
ACL permite operar y programar en dos modos diferentes de sistemas de
coordenadas: Ejes (joints) y Cartesianas (XYZ).
Coordenadas Cartesianas (XYZ)
Las coordenadas cartesianas o XYZ son un sistema geométrico usado para
especificar la posición de la punta de la herramienta (pinza) definiendo las
distancias XYZ , en milímetros, desde el origen del sistema de coordenadas
(el centro de la base del robot)
Para la completa definición de la posición también son necesarios los datos
de Inclinación (Pitch) y Giro (Roll) de la pinza en grados.
El comando TOOL ( o los parámetros 308, 309 y 310) definen la posición
exacta del TCP.
Cuando los movimientos del robot se ejecutan estando modo XYZ los ejes
se moverán de modo que el TCP se mueva en línea recta.

TCP _ Coordenadas Cartesianas


Espacio XYZ
Existen ciertas restricciones cuando se graban posiciones en Cartesianas y
cuando en programación se ejecutan movimientos XYZ (MOVEL, MOVEC
y SPLINE Lineal). La validez de estas posiciones esta determinada por tres
áreas del espacio XYZ. Referirse a las figuras siguientes.
Espacio A
• ER-IX, PERFORMER MK2: posiciones en las que el eje 3 forma un
ángulo negativo respecto al eje 2.
• ER 14: posiciones en las cuales el eje 2 forma un ángulo negativo
respecto al eje 1.

Guía de Referencia ACL para Controlador B 2-5


0404 Versión F2.28
Espacio B
• ER IX, PERFORMER MK2: posiciones en las que el eje 3 forma un
ángulo positivo respecto al eje 2.
• ER 14: posiciones en las cuales el eje 2 forma un ángulo positivo
respecto al eje 1
Todas las posiciones dentro del Espacio A y B se pueden grabar en coordenadas
Cartesianas y ser alcanzadas por el TCP del robot.
Los comandos de movimiento en XYZ (MOVEL,
MOVEC, SPLINE Lineal) son permitidos dentro
del Espacio A y B. Sin embargo todas las
posiciones referenciadas en el comando deben
pertenecer a un Espacio o al otro. Si el comando
implica el movimiento desde un Espacio al otro,
aparecerá un mensaje de alarma y el comando
será abortado.
Espacio no valido en XYZ
Para el robot ER IX y el PERFORMER MK2,
posiciones detrás de la línea del eje 1 no pueden
ser grabadas en coordenadas Cartesianas y no
puede acceder el TCP del robot por medio de
movimientos en XYZ (MOVEL, MOVEC y
SPLINE Lineal). Esta posiciones, sin embargo,
pueden ser grabadas y alcanzadas en modo Ejes.
El espacio no válido en XYZ se denomina
Espacio C.

2-6 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
Guía de Referencia ACL para Controlador B 2-7
0404 Versión F2.28
Coordenadas Ejes (Joints)
Las coordenadas de ejes especifican la posición de la punta de la
herramienta en pasos de encoder. Cuando los ejes se mueven los encoders
ópticos generan una serie de impulsos eléctricos cuya cantidad es
proporcional a la cantidad de movimiento realizado. El controlador cuenta
los impulsos y los procesa, conociendo en cada momento la posición de
todos los ejes del robot. Un movimiento del robot o una posición se puede
definir como un específico número de pasos de encoder para cada eje,
relativos a la posición de Home o a otra posición.
Cuando se mueve el robot en coordenadas EJES cada eje se mueve
individualmente de los demás.
La posición de cualquier periférico conectado al controlador siempre se
refiere a este sistema de coordenadas.

2-8 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
Tipos de Datos
El lenguaje ACL utiliza cuatro tipos den datos:
• Variables
• Cadenas de caracteres (string)
• Posiciones
• Parámetros
Variables
Las variables son localizaciones de memoria que almacenan valores enteros,
entre -2147483647 a +2147483647 (datos de 32 bits).
ACL usa dos tipos de variables: variables de usuario y variables del sistema.
Variables de Usuario
Las variables definibles por el usuario pueden ser globales o locales.
• Variables Globales
Se pueden usar en todos los programas.
Con el comando GLOBAL se define una variable global.
Con el comando DIMG se define un vector de variables globales.
• Variables Locales
Sólo se pueden utilizar dentro del programa en el cual han sido
definidas.
Con el comando DEFINE se define una variable local.
Con el comando DIM se define un vector de variables locales.
En una sola orden se pueden definir hasta doce variables.
Los nombres usados para definir las variables pueden ser una combinación
de hasta cinco caracteres alfanuméricos. El primer carácter debe de ser una
letra. Los nombres de los vectores de variables también incluye un numero
entre corchetes, que define el número de variables de que consta el vector.
Aquí tenemos unos ejemplos de comandos con variables:
DEFINE X Define una variable local llamada X.
GLOBAL VAR99 Define una variable global llamada VAR99.
DIM A[20] Define un vector de variables locales, de 20
unidades.
SET Z= 10 Asigna a la variable Z el valor 10.
SET OUT[3]= Y El estado de la salida 3 es determinado por el
valor de la variable Y.

Guía de Referencia ACL para Controlador B 2-9


0404 Versión F2.28
SET Y = IN[1] El valor de la variable Y esta determinado por
el estado de la entrada 1.
SET X= CPOS [n] – ENC[n]
(n número de eje) El valor del error de
posición del eje determinado.
WAIT IN[J]= 1 Condición para la entrada de valor J.
Las variables de usuario tienen un atributo de lectura/escritura. Se pueden
ejecutar operaciones sobre las variables y cambiar sus valores con todos los
comandos disponibles de ACL.
Variables del Sistema.
Las variables definidas por el sistema contienen valores que indican el
estado de las entradas, salidas, encoders y otros elementos de control del
sistema. Estas variables del sistema le permitirá realizar todas las
aplicaciones que necesiten información en tiempo real del estado del
sistema.
El ACL para el Controlador B tiene 14 variables del sistema:
IN[16] TIME ERROR
ENC[12] LTA ERRPR
HS[12] LTB ERRLI
ZP[12] MFLAG OUT[16]
CPOS[12] ANOUT[12]
Los números indican la dimensión de las variables.
Los valores de las variables IN, ENC, TIME, LTA, LTB son actualizadas en
cada impulso de reloj; MFLAG es actualizada continuamente durante el
movimiento de un eje. Para el usuario, son variables de sólo lectura.
ERROR, ERRPR, ERRLI, OUT son variables de lectura-escritura
ANOUT es variable de escritura sólo en modo PRIVILEGE.
Referirse al capítulo 4 para mayor detalle.
Listados de variables
El comando LISTVAR mostrará un listado de todas las variables, tanto de
usuario como del sistema. Las variables locales tienen entre paréntesis el
nombre del archivo en el que están definidas.
El comando SENDVAR produce un listado codificado para la descarga de
variables. El formato es el siguiente:
Prefijo: tipo de variable ($1 para local; %v para global).
Número secuencial.
Nombre de la variable.
Nombre del programa (si es variable local)

2 - 10 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
Valor

Guía de Referencia ACL para Controlador B 2 - 11


0404 Versión F2.28
Comentarios (cadenas de caracteres)
Una cadena (string) es un argumento de hasta 10 caracteres, que se utilizan
en los siguientes comandos de ACL:
PRINT “.........”
PRINTLN “...............”
PRCOM “...............”
PRLNCOM “..................”
@ Comando
* Comentario
Estas líneas de comandos, pueden consistir de un máximo de 40 caracteres y
espacios (es decir, 4 cadenas).
Si una cadena es mayor de 10 caracteres, es automáticamente dividida en
subcadenas, cada una de las cuales esta limitada a 10 caracteres. Por
ejemplo:
PRINT “HOLA, COMO SE ENCUERNTRA ESTA MAÑANA?”
Este texto tiene 4 cadenas (argumentos):
“HOLA, COMO” “SE ENCUENT” “RA ESTA MA” “ÑANA?”
El máximo número de cadenas almacenables en memoria es un valor
definible en la configuración del controlador.

Posiciones
Las posiciones están almacenadas en un área de memoria reservada para
estos datos. Los datos de posiciones incluyen un valor entero para cada eje
en el rango -2147483647 y +2147483647 para definir las coordenadas y una
palabra en el rango -32668 y +32767 para indicar el tipo y nombre de la
posición.
Tipo de posiciones
El ACL tiene seis tipos de posiciones listadas a continuación. Los comandos
usados para grabar cada tipo de posición aparecen entre paréntesis.
• Absoluta Ejes (HERE, SETPV, SHIFT): los datos de la posición son las
coordenadas en valores de pasos de encoder.
• Absoluta XYZ (HEREC, TEACH, SETPVC, SHIFTC): los valores de la
posición están dados en valores de coordenadas Cartesianas.
• Relativa a otra Posición por Ejes (HERER): los datos de la posición
son la diferencia entre los valores de los encoders de una posición y los
valores de encoders de la otra posición. ACL permite anidar hasta 32
posiciones relativas.

2 - 12 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
• Relativa a otra Posición por XYZ (TEACHR): los datos de la posición
son la diferencia entre los valores de coordenadas de ambas posiciones.
ACL permite anidar hasta 32 posiciones relativas.
• Relativa a la Posición actual por Ejes (HERER): los datos de la
posición son calculados añadiendo los valores de los encoders de la
posición a los valores de encoders de la posición actual.
• Relativa a la Posición actual por XYZ (TEACHR): los datos de la
posición son calculados añadiendo los valores de las coordenadas
Cartesianas de la posición a los valores de la posición actual.
Definición de posiciones
Los comandos DEFP, DEFPB y DEFPC se utilizan para definir posiciones y
los comandos DIMPA, DIMPB y DIMPC se usan para definir vectores de
posición.
Definir una posición es reservar un espacio en la memoria del controlador
y dar un nombre de localización.
Son posibles dos tipos de nombres:
• Nombres numéricos de hasta cinco dígitos (como 3, 22, 101). A estas
posiciones se puede acceder directamente desde la botonera de
enseñanza. Posiciones con este tipo de nombre no necesitan ser definidas.
• Nombres alfanuméricos (como P, POS10, A2). El nombre debe ser una
combinación de hasta cinco caracteres y debe comenzar con una letra. A
estas posiciones que no son vectores de posición no se puede acceder
desde la botonera de enseñanza.
Los vectores de posición deben tener nombres alfanuméricos y deben
comenzar con una letra. Su definición también incluye un índice (número
entre corchetes), que define el número de posiciones del vector.
Desde la botonera de enseñanza se puede acceder a las posiciones del
vector cuando este esta “ligado” a la botonera por medio del comando
ATTACH. Se llama a cada posición por medio de su número índice.
La memoria de posiciones esta separada para cada grupo de ejes A para los
ejes del brazo magnético, B para los accesorios y C para ejes individuales.
El máximo número de posiciones para cada grupo es definible en la
configuración del controlador.
Por defecto las posiciones se definen para el grupo A.
Ejemplos de definición de posiciones:
DEFP PA Define una posición llamada PA para el grupo A
DIM PP AA[10] Define un vector 10 de posiciones llamado AA
para el grupo A
DEFPB POSB Define una posición POSB para el grupo B.
DEFPC PC 8 Define una posición PC para grupo C eje 8.

Guía de Referencia ACL para Controlador B 2 - 13


0404 Versión F2.28
DIMPC AC[30] 8 Define un vector de 30 posiciones AC para el
grupo C eje 8.
Grabación de Posiciones
Para grabar los valores de las posiciones se utilizan los comandos HERE,
HEREC, HERER, TEACH, TEACHR, SETPV, SETPVC, SHIFT y
SHIFTC.
Grabar una posición es escribir sus valores en la posición reservada de la
memoria.
El siguiente recuadro es un sumario de los comandos para grabar posiciones.
Posiciones para Todos los Grupos de Ejes sólo para el Robot (grupo A)
Grabadas en Coordenadas Ejes en Coordenadas Cartesianas
Absoluta; HERE pos DIRECTO no comando
valores actuales EDIT
Absoluta; SETPV pos DIRECTO TEACH pos DIRECTO
valores definibles
Relativa a la HERER pos DIRECTO TEACHR pos DIRECTO
posición actual
EDIT
Relativa a otra HERER pos2 pos1 DIRECTO TEACHR pos2 pos1 DIRECTO
posición
EDIT
Absoluta; el SETPV pos axis var DIRECTO SETPVC pos coord var DIRECTO
usuario cambia
EDIT EDIT
los valores de
una posición
Absoluta; el SHIFT pos BY axis var DIRECTO SHIFTC pos BY coord DIRECTO
usuario cambia var
EDIT EDIT
los valores de
una posición por
el valor de offset
Aunque las posiciones estén grabadas en coordenadas de Ejes o Cartesianas,
los ejes se pueden mover en ambas coordenadas.
Es recomendable definir (aunque no necesariamente grabar) las posiciones
que se van a utilizar, antes de editar un programa.
Ejemplos de grabación de posiciones:
HERE 1 Graba la posición actual de los valores de
encoders de los ejes del robot, nombre 1.
TEACHR P1 Graba la posición P1 en coordenadas Cartesianas.
Listados de Posiciones
El comando LISTP muestra una lista de todas las posiciones definidas y su
grupo correspondiente.

2 - 14 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
El comando LISTPV muestra los valores de los encoders y de las
coordenadas Cartesianas de la posición especificada.
El comando SENDPOINT produce un listado codificado para la descarga de
posiciones. Código:
Prefijo ($p)
Número secuencial
Grupo (1/2/3: A, B, C respectivamente)
Nombre de posición
Valores de coordenadas
Número de eje (si es del grupo C)
Tipo de posición
Parámetros
Los parámetros son localizaciones reservadas de memoria que se usan para
guardar valores de constantes físicas necesarias para adaptar el controlador a
cada particular sistema robótico.
Los parámetros están referidos por su número (del 1 al 699). Por ejemplo:
SHOW PAR 300 Muestra el valor del parámetro 300
LET PAR 294=8000 Cambia el valor del parámetro 294
Ver capítulo 7 para mayor detalle.

Guía de Referencia ACL para Controlador B 2 - 15


0404 Versión F2.28
Anotaciones utilizadas en este manual
Las siguientes anotaciones se utilizan en las explicaciones de los comandos
en este manual:
{} Las llaves encierran una lista de la cual debe escoger una opción.
[] Los corchetes encierran diferentes opciones. ACL requiere la
utilización de corchetes en los comandos de vectores de posición,
vectores de variables y entradas y salidas.
/ Separan diferentes opciones de una lista. Por ejemplo:
ATTACH OFF {A/B/C}, significa:
ATTACH OFFA ó
ATTACH OFFB ó
ATTACH OFFC
Otras notas
• Los comandos de ACL se pueden introducir tanto en mayúsculas como
en minúsculas.
• <Entre> debe pulsarse siempre para ejecutar un comando salvo en
algunos casos, como por ejemplo:
<Ctrl>+ A Abortar
<Alt>+ M Modo manual
<Ctrl>+ C Cancela comandos como LIST, SHOW
ENCO y SEND

2 - 16 ACL para Controlador B Guía de Referencia


Versión F2.28 0404
CAPITULO 3
Los Comandos ACL
Los comandos ACL pueden catalogarse, en su mayoría, en dos grupos
esenciales: (1) comandos DIRECTOS, para su ejecución inmediata; y (2)
indirectos, o comandos EDITOR, para escribir programas y rutinas para su
ejecución posterior.

En este capítulo se presentan los comandos ACL por orden alfabético. La


modalidad (DIRECTA y/o EDICION) en la que son operativos los
comandos se presentan a la izquierda de cada encabezamiento de nombre de
comando. Cada registro incluye también el formato del comando, su
descripción, ejemplos de uso y observaciones adicionales cuando son
necesarias.

Los campos opcionales dentro de los comandos aparecen entre llaves {}.
Las elecciones dentro de los comandos se indican con una barra /. Por
ejemplo, ATTACH OFFA/B/C significa:

ATTACH OFFA o bien,


ATTACH OFFB o bien,
ATTACH OFFC

Algunos formatos de comando piden que se especifiquen nombres de


variables y posiciones, mientras que otros piden valores. Estos campos
definidos por el usuario se indican en cursiva entre angulares; por ejemplo:

Programa <prog> Posición <pos>


Variables <var> Vector de posición <pvect>
Valor <valor> Tiempo <tiempo>
Parámetros <par> Estado <estado>
Eje <eje> Argumento <arg>

Al definir programas, posiciones y variables, los nombres que se asignen


pueden ser una combinación de letras y números hasta cinco caracteres. El
primer carácter de los nombres de variables y vectores debe ser una letra.
Los nombres de las posiciones de vectores también incluyen un índice
(número dentro de corchetes).
Este manual no indica comandos <Enter>, ya que todos los comandos ACL
excepto dos, requieren <Enter>. Estas dos excepciones son:

<Ctrl>+A Abortar
Control Manual On/Off

Guía de Referencia ACL para Controlador-B 3-1


0404 Versión F2.28
A (Abortar) A (Abortar)
DIRECTO DIRECTO

Formato: A {<prog>}
<Ctrl> + A

Donde: <prog> es un programa de usuario.

Descripción:
A Aborta inmediatamente todos los programas
de usuario en ejecución y detiene el movimiento
de los ejes.

A <prog> Aborta sólo la ejecución del programa


especificado

Ejemplos: A Aborta todos los programas.

A NEW Aborta el programa NEW.

Notas: El comando <Ctrl> + A no requiere <Enter> para su ejecución


El comando A requiere <Enter> para su ejecución.

3-2 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ANDIF ANDIF
EDITOR EDITOR

Formato: ANDIF <var1> <cond> <var2>

Donde: <var1> y <var2> son constantes o variables


y <cond> puede ser <, >, =, <=, >=, < >.

Descripción: Es un comando tipo IF. ANDIF combina lógicamente con una


condición y otros comandos IF.

Ejemplo: IF A=B Cerrará la pinza si se cumplen las condiciones


ANDIF C>2 A=B y C>2 (ambas), de lo contrario abrirá
CLOSE la pinza
ELSE
OPEN
ENDIF

Notas: Ver comando IF.

Guía de Referencia ACL para Controlador-B 3-3


0404 Versión F2.28
APPEND APPEND
DIRECTO DIRECTO

Formato: APPEND

Descripción: Carga el contenido de un fichero de reserva (.CBU) de usuario desde


ordenador a la RAM de Usuario del controlador. Similar al comando
RECEIVE, pero no borra ni modifica los programas existentes.

El fichero debe estar en el formato generado por un comando SEND.

Se aceptan nuevos programas.

Se aceptan nuevas variables.

Se aceptan nuevas posiciones. A las posiciones existentes, cuyos


valores de ubicación no hayan sido fijados todavía, se les asignan los
nuevos valores.

Notas: Ver comandos SEND y RECEIVE.


Ver Menú de Gestión de Archivos de ATS (<shift> + F10 )

3-4 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ATTACH ATTACH
DIRECTO DIRECTO

Formato: ATTACH <pvect> (donde pvect es un vector)

ATTACH OFF {A/B/C}

ATTACH ?

Descripción: ATTACH <pvect> Asigna el vector de posición especificado a la


botonera de enseñanza de acuerdo con el
grupo al que pertenece el vector de posición.

Cuando se asigna un vector a la botonera,


todas las referencias desde botonera a ese
grupo afectarán al vector asignado.

Sólo se puede asignar a un grupo un vector


cada vez. Si se añade otro vector de posición,
este cancelará el añadido previamente.

ATTACH OFFA/B/C Desactiva el vector de posición asignado a la


botonera, de acuerdo con el grupo
especificado.

ATTACH ? Presenta en pantalla el estado actual de


ATTACH:
mostrará qué vectores están asignados a la
botonera de enseñanza.

Ejemplos: DIMP ALPHA [20] Define un vector de posición denominado


ATTACH ALPHA ALPHA, que contiene 20 posiciones (grupo
A). Asigna el vector ALPHA a la botonera.
Una referencia de la botonera a la posición
15 (p. e.) se referirá ahora a la posición
ALPHA [15].

ATTACH OFFA Desactiva el vector del grupo A de la botonera.

Guía de Referencia ACL para Controlador-B 3-5


0404 Versión F2.28
AUTO AUTO
DIRECTO DIRECTO

Formato: AUTO

Descripción: Este comando debe ejecutarse después de cambiar entre


AUTO/TEACH en la Botonera de Enseñanza.
AUTO transfiere el control desde la Botonera al teclado del PC.

3-6 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
CLOSE CLOSE
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: CLOSE {<var>}

Donde: <var> es una constante o variable definida por el usuario.


0≤<var>≤5000

Descripción: CLOSE cierra tanto una pinza eléctrica como una pinza neumática.

CLOSE Cierra la pinza hasta el fin de su movimiento

CLOSE <var> Una constante o variable asignada al DAC de


la pinza para mantener la impulsión del motor
de la pinza y obtener una fuerza de agarre
adicional. La fuerza motriz es proporcional a
<var>.

El comando CLOSE desconecta el eje de la pinza del servo circuito de


control (control en lazo abierto).

Aviso! Hay que usar la opción de variable con extrema precaución para
evitar daños en el motor y su engranaje. Hay que usar este comando
durante breves periodos y fijar el valor de <var> tan bajo como sea
posible.

Ejemplos: CLOSE Cierra la pinza

CLOSE 1000 Fija el valor DAC de la pinza a 1000

CLOSE PRESS Fija la fuerza activa de la pinza al valor de


la variable PRESS.

Notas: Consultar los comandos OPEN y JAW.

DAC: Convertidor Digital - Analógico

Guía de Referencia ACL para Controlador-B 3-7


0404 Versión F2.28
CLR CLR
DIRECTO;PRIVILEGE DIRECTO;PRIVILEGE

Formato: CLR <n>

Donde: <n> es el número de encoder (codificador óptico), 1≤ n ≤12 ó.

Descripción: Borra (pone a cero) los valores de contaje del encoder n.

Si n = *, se borrar todos los codificadores.


Los valores de los encoders sólo se pueden borrar en modo
PRIVILEGE activo.

Ejemplos: CLR 3 Borra el encoder 3.

CLR * Borra todos los encoders.

3-8 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
CLRBUF CLRBUF
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: CLRBUF{A/B}

CLRBUF <eje>

Donde: <eje> es un eje del grupo C.

Descripción: CLRBUF Vacía el buffer (memoria intermedia) de


movimiento de todos los ejes. Se puede
utilizar para detener el robot una vez en
movimiento y para continuar el programa con
otros comandos.

CLRBUFA/B Vacía el buffer de movimiento del grupo A ó


B

CLRBUF <eje> Vacía el buffer de movimiento de un eje


específico.

Ejemplos: CLRBUF

IF IN[3]=1 Si la entrada 3 esta activada;


STOP MAIN para el programa MAIN;
CLRBUFA borra el buffer del grupo A;
MOVE HOME se mueve a la posición HOME
ENDIF

CLRBUF 4 Borra el buffer del eje 4

Guía de Referencia ACL para Controlador-B 3-9


0404 Versión F2.28
CLRCOM CLRCOM
EDITOR EDITOR

Formato: CLRCOM <n>

Donde: <n> es un puerto RS232 de comunicaciones, 1≤n≤8

Descripción: CLRCOM <n> borra el buffer del puerto RS232 especificado.

CLRCOM borra los buffers de todos los puertos RS232.

Este comando puede utilizarse para resetear los puertos serie de


comunicaciones cuando hay un error, como un XOFF sin el
correspondiente XON, interrupciones o interrupción de las
comunicaciones RS232.

Ejemplo: CLRCOM 2

CLRCOM 0 Limpia el buffer del puerto 0.

Notas: Ver comando SENCOM.

3-10 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
COFF COFF
DIRECTO DIRECTO

Formato: COFF{A/B}

COFF {<eje>}

Descripción: Desactiva el servo control de todos los ejes o del eje o grupo
especificado.

Ejemplos: COFF Control OFF en todos los ejes.

COFFA Control OFF en los ejes del grupo A.

COFFB Control OFF en los ejes del grupo B.

COFF 10 Control OFF en el eje 10.

Cuando COFF esta activo, no se pueden operar los ejes. Se debe ejecutar CON
antes para poder mover el robot.

Guía de Referencia ACL para Controlador-B 3-11


0404 Versión F2.28
CON CON
DIRECTO DIRECTO

Formato: CON{A/B}

CON {<eje>}

Descripción: Activa el servo control de todos los ejes o del eje o grupo
especificado.

Ejemplos: CON Control ON en todos los ejes.

CONA Control ON en los ejes del grupo A.

CONB Control ON en los ejes del grupo B.

CON 10 Control ON en el eje 10.

3-12 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
CONFIG CONFIG
DIRECTO DIRECTO

Formato: CONFIG {?}

Descripción: CONFIG
El comando CONFIG le permite ejecutar la configuración completa
del controlador. Durante la configuración el sistema mostrará los
valores existentes [entre corchetes] y permite cambiarlos, como se
muestra en el ejemplo.

Aviso! Este comando borra todos los programas y posiciones de la


RAM de Usuario. También borra el password y lo sustituye por el de
fábrica.

La configuración contiene:

Número de entradas y salidas.


Número de servo ejes.
Tipo de robot.
Tamaño de memoria seleccionado para las líneas del programa
de usuario.
Tamaño de memoria seleccionado para las variables de usuario.
Tamaño de memoria seleccionado para las posiciones de
usuario.
Tamaño de memoria seleccionado para los comentarios de
usuario.

CONFIG ? Presenta la configuración actual.

Ejemplos: >config

!!!AVISO, SE BORRARAN TODOS LOS PROGRAMAS DE USUARIO.


ESTA SEGURO??? [YES/NO] > YES

FASE DE CANCELACION DEL TRABAJO.......... >


INTRODUCIR NUMERO DE ENTRADAS [16] (0-16) >
INTRODUCIR NUMERO DE SALIDAS[16] (0-16) >
INTRODUCIR NUMERO DE ENCODERS[8] (0-12) >
INTRODUCIR NUMERO DE DACS [8] (0-12) >
TIPO DE ROBOT (0-NINGUNO, 2-MK2, 9- ERIX, 14-SCORA) [9] (0-14) >
INTRODUCIR NUMERO DE SERVO CIRCUITOS, GRUPO A [5] (5-8) >
SERVO PINZA INSTALADA EN EL EJE [6] (0-8) >
INTRODUCIR NUMERO DE SERVO CIRCUITOS, GRUPO B [2] (0-2) >
INTRODUCIR NUMERO TOTAL DE SERVO CIRCUITOS [8] (8-8) >

Guía de Referencia ACL para Controlador-B 3-13


0404 Versión F2.28
INTRODUCIR CANTIDAD RAM DE USUARIO EN KB [512] (132-512) >
INTRODUCIR NUMERO DE PROGRAMAS DE USUARIO [300] >
INTRODUCIR NUMERO DE LINEAS DE PROGRAMA USUARIO [1200]
>
INTRODUCIR NUMERO DE PUNTOS DE USUARIO, GRUPO A [900] >
INTRODUCIR NUMERO DE PUNTOS DE USUARIO, GRUPO B [800] >
INTRODUCIR NUMERO DE PUNTOS DE USUARIO, GRUPO C [0] >
INTRODUCIR NUMERO DE COMENTARIOS DE USUARIO [200] >
Ejecutando configuración, por favor espere 10 segundos
>
>
O.K.
>

Durante la configuración se ejecuta automáticamente el INIT EDITOR


(EDITOR DE INICIALIZACION, ver comando INIT).

Durante la configuración, el sistema muestra los valores existentes (por


defecto) y permite cambiarlos. Si no se quiere cambiar nada, se acepta
pulsando <Enter>.

El número máximo de entradas y salidas es 16.

El número máximo de encoders y DAC’s es 12 (el número máximo de ejes.)

¿ Qué tipos de robots hay disponibles ?

Tipo 0: Ejes independientes, cinemática del brazo


desconocida, sin cálculos XYZ, sin rutina HOME.

Tipo 2: Compatible con la cinemática SCORBOT- MK2

Tipo 9: Compatible con la cinemática SCORBOT-ER IX.

Tipo 14: Compatible con la cinemática SCORBOT-ER14.

El número de ejes para los grupos A y B son definibles por el usuario.

Si se utiliza una servo pinza, se debe instalar como el eje que sigue al grupo
A; por ejemplo, si un grupo A incluye 5 ejes, la pinza debe ser instalada
como el eje 6. Si no hay servo pinza instalada, introducir 0 como eje de la
pinza. Se puede entonces usar el eje 6 para impulsar otros servo
dispositivos.

El número total de servo circuitos debe ser mayor que el número de ejes
definidos para los grupos A y B y la pinza, y no puede superar el número de
codificadores y DAC’s (12). Se hace referencia a los ejes restantes como
grupo C, que siempre contiene ejes independientes.

3-14 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
En este ejemplo, los ajustes por defecto son, 5 ejes en el grupo A, 2 ejes en
el grupo B, y la pinza, totalizando 8 ejes.

La cantidad de KBytes de RAM de Usuario estándar es de 512KB.

El número de programas de usuario, líneas de programa de usuario,


variables de usuario, puntos de usuario y comandos depende del tamaño de
la memoria y de la distribución de todos estos conceptos.

A continuación, un ejemplo de un informe de configuración .

>config?

******* LA CONFIGURACION ACTUAL ES:


ENTRADAS - 16
SALIDAS - 16
CODIFICADORES - 8
SALIDAS ANALOGICAS - 8
TIPO DE ROBOT - 5
SERVO EJE GRUPO A - 5
SERVO PINZA - 6
SERVO EJE GRUPO B - 2
NUMERO TOTAL DE SERVO EJES 8
512 KBYTE DE MEMORIA DE USUARIO INSTALADA PROTEGIDA
POR BATERIA.
PROGRAMAS DE USUARIO - 150
LINEAS DE PROGRAMA DE USUARIO - 3000
VARIABLES DE USUARIO - 600
PUNTOS DE USUARIO, GRUPO A - 2380
PUNTOS DE USUARIO, GRUPO B - 2380
PUNTOS DE USUARIO, GRUPO C - 0
COMENTARIOS DE USUARIO - 550
>

Guía de Referencia ACL para Controlador-B 3-15


0404 Versión F2.28
CONTINUE CONTINUE
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: CONTINUE <prog>

Donde: <prog> es un programa de usuario.

Descripción: Reanuda la ejecución del programa a partir del punto donde


previamente había sido suspendido por el comando SUSPEND.

Ejemplo: CONTINUE ALPHA Reanuda la ejecución del programa ALPHA.

Notas: Ver comando SUSPEND.

3-16 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
COPY COPY
DIRECTO DIRECTO

Formato: COPY <prog1> <prog2>

Donde: <prog1> y <prog2> son programas de usuario.

Descripción: Copia el programa de usuario <prog1> con un nuevo nombre de


programa <prog2>. Existen ahora dos copias del mismo programa con
nombres diferentes.

El controlador avisar si ya estuviese en uso el <prog2>.

Ejemplo: COPY ALPHA BETA Copia el programa de usuario ALPHA al


programa BETA.

Guía de Referencia ACL para Controlador-B 3-17


0404 Versión F2.28
DEFINE DEFINE
EDITOR EDITOR

Formato: DEFINE <var1> {<var2> ... <var12>}

Donde:<var1>, <var2>, ... <var12> son variables de usuario.

Descripción: Define una variable local. Una variable local sólo es reconocida por
el programa específico en el que esta definida.
Para usar una variable tiene que estar previamente definida.

Ejemplos: DEFINE I Define una variable local con el nombre I

DEFINE L ALL KEY Define variables locales con nombres L,


ALL y KEY

Notas: Este es un comando de definición. Cuando se escribe, el comando se


ejecuta pero no crea una línea de programa, incluso en modalidad de
EDICION.

Hay que cerciorarse de que el primer carácter del nombre de la


variable sea una letra y que no tenga más de 5 caracteres.

3-18 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DEFP DEFP
DIRECTO DIRECTO

Formato: DEFP{A/B} <pos>

DEFPC <pos> <eje>

Descripción: Crea una posición en el grupo A, en el grupo B, o en un eje del grupo


C.

Si no se ha especificado un grupo, se supone el grupo A.

Ejemplos: DEFPA 9531 Crea una posición en el grupo A llamada 9531.

DEFP 13 Crea una posición en el grupo A llamada 13.

DEFPB DOD Crea una posición en el grupo B llamada


DOD.

DEFPC PP 9 Crea una posición en el eje 9 del grupo C


llamada PP.

Notas: Este es un comando de definición. Cuando se escribe, se ejecuta el


comando pero no se crea una línea de programa, ni en modalidad
EDICION.

Guía de Referencia ACL para Controlador-B 3-19


0404 Versión F2.28
DEL DEL
EDITOR EDITOR

Formato: DEL

Descripción: Comando de edición: borra la línea actual de programa (en edición)

Ejemplo: 190 LABEL 1

191 MOVE 10

192 DEL Borra la línea de programa 191

3-20 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DELAY DELAY
EDITOR EDITOR

Formato: DELAY <var>

Donde: <var> es una constante o variable definida por el usuario.

Descripción: Demora la ejecución de un programa por número <var> de tics. Cada


tic es igual a 10 milisegundos.

Ejemplos: DELAY 100 Demora el programa durante 1 segundo.

SET T=500
DELAY T Demora el programa durante 5 segundos.

Guía de Referencia ACL para Controlador-B 3-21


0404 Versión F2.28
DELETE DELETE
DIRECTO DIRECTO

Formato: DELETE &pvect[n]

Donde: &pvect es un vector


n es el índice de una de las posiciones del vector

Descripción: Borra la posición n del vector &pvect; todas las posiciones por encima
de la posición &pvect[n] serán desplazadas.
El comando DELETE sólo puede ser ejecutado en vectores que
comiencen con el carácter &.
DELETE sólo se puede aplicar a una posición para un robot o
elemento multi-eje que esta asignado al grupo A o B. No se aplica a
elementos simples en el grupo C.
Se puede borrar una posición solamente si no se utiliza por ningún
programa de la memoria RAM. El sistema le avisará si usted intenta
borrar una posición que es utilizada en algún programa.

Ejemplo: DELETE &AA[4] Borra la posición 4 del vector &AA

Nota: Referirse a los comandos DIMP e INSERT.

3-22 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DELP DELP
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: DELP <pos>

DELP <pvect>

Donde: <pos> es una posición definida por el usuario.


<pvect> es un vector de posiciones definidas por el usuario.

Descripción: Borra las posiciones y los vectores de posición de la tabla de


posiciones.

Sólo se puede borrar una posición si ningún programa de la RAM de


Usuario la utiliza. El controlador avisar si se intenta borrar una
posición en uso.

No se pueden borrar posiciones individuales dentro de vectores.


Ver comandos DELETE y UNDEF.

Ejemplos: DELP A953 Borra una posición o un vector llamado A953

DELP DOD Borra una posición o un vector llamado DOD

Nota: Este es un comando de definición. Cuando se escribe, ejecuta la


acción requerida pero no crea línea de programa.

Guía de Referencia ACL para Controlador-B 3-23


0404 Versión F2.28
DELVAR DELVAR
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: DELVAR <var>

Donde: <var> es una variable definida por el usuario.

Descripción: Borra la variable <var> de la tabla de variables.

Sólo se puede borrar una variable si ningún programa de la RAM de


Usuario la utiliza. El controlador avisar si se intenta borrar una
variable en uso.

En modo DIRECTO DELVAR borra sólo variables globales.

En modo EDITOR DELVAR borra variables locales; borrará una


variable global solamente si no existe una variable local con ese
nombre.

Ejemplos: DELVAR I Borra la variable I.

DELVAR PRESS Borra la variable PRESS.

Nota: Este es un comando de definición. Cuando se escribe, el comando se


ejecuta pero no se crea línea de programa, ni en modalidad de
EDICION.

3-24 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DIM DIM
EDITOR EDITOR

Formato: DIM <var[n]>

Donde: <var[n]> es un vector de n variables locales.

Descripción: Define un vector de variables locales de n elementos. Los elementos


creados se llaman var[1], var[2], ... var [n].

Una variable local sólo es reconocida por el programa en el que esta


definida.

Ejemplos: DIM LOCV[20] Crea un vector llamado LOCV que contiene


20 variables locales, LOCV[1]...VLOC[20]

Nota: Este es un comando de definición. Cuando se escribe, se ejecuta el


comando pero no se crea línea de programa, ni en modalidad de
EDICION.

Hay que asegurarse de que el primer carácter del nombre del vector
sea una letra. Máximo número de caracteres, 5.

Guía de Referencia ACL para Controlador-B 3-25


0404 Versión F2.28
DIMG DIMG
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: DIMG <var[n]>

Descripción: Define un vector de variables globales de n elementos. Los elementos


creados se llaman var[1], var[2] ... var[n].

Una variable global puede ser utilizada por cualquier programa.

Ejemplos: DIMG GLOB[8] Crea un vector llamado GLOB que


contiene 8 variables globales llamadas
GLOB[1]...GLOB[8]

Nota: Este es un comando de definición. Cuando se escribe, se ejecuta el


comando pero no se crea una línea de programa, ni en modalidad de
EDICION.

Hay que asegurarse de que el primer carácter del nombre del vector
sea una letra. Máximo número de caracteres, 5.

3-26 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DIMP DIMP
DIRECTO DIRECTO

Formato: DIMP{A/B} <pvect[n]>

DIMPC <pvect[n]> <eje>

Donde: <pvect[n]> es un vector de n posiciones


<eje> es un eje del grupo C

Descripción: Define un vector que contiene n posiciones, llamadas pvect[1],


pvect[2] ... pvect[n] para el grupo A o B o para un eje del grupo C.

Si no se especifica un grupo, se supone el A.

Ejemplos: DIMP PICK[30] Crea un vector para el grupo A que contiene


30 posiciones llamadas PICK[1]...PICK[30].

DIMPB BB[10] Crea un vector para el grupo B que contiene


10 posiciones llamadas BB[1]...BB[10].

DIMPC CONV[25] 11 Crea un vector para el eje 11 que contiene


25 posiciones.

DIMPB &BETA[30]

Nota: Este es un comando de definición. Cuando se escribe, se ejecuta el


comando, pero no se crea una línea de programa, ni en modalidad de
EDICION.

Hay que asegurarse de que el primer carácter del nombre del vector sea
una letra o el carácter &. Máximo número de caracteres, 5.
Cuando el primer carácter del vector es el &, el vector se puede
manipular con los comandos DELETE e INSERT. Incluya el carácter &
si usted va a utilizar el vector en trayectorias con SPLINE o MOVES.

Guía de Referencia ACL para Controlador-B 3-27


0404 Versión F2.28
DIR DIR
DIRECTO DIRECTO

Formato: DIR

Descripción: Presenta el directorio de todos los programas de usuario, con su


prioridad. Si se añade la serie "no válido" al nombre del programa,
entonces el programa no es válido sintácticamente.

Ejemplos: DIR

nombre : validez :identidad : prioridad

DEMO : :1 :5
IO : :2 :5
IOA : :3 :5
TWOIO : :4 :5
INOUT : :5 :5
PICP : :6 :5

Notas: Validez: Consultar el comando EXIT.

Identidad: Número de programa asignado por el


controlador. Este número se usa para acceder a
los programas desde la botonera de
enseñanza..

Prioridad: Ver comandos PRIORITY y RUN.

3-28 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
DISABLE DISABLE
DIRECTO DIRECTO

Formato: DISABLE IN/OUT <n>

DISABLE ?

Donde: IN y OUT son entradas y salidas, y <n> es el índice I/O,


1≤n≤16.

Descripción: DISABLE IN/OUT<n>

Desconecta la I/O física de la I/O lógica. Una vez desactivada la I/O,


su último estado permanece sin cambios.

Sin embargo, el comando FORCE permite posicionar/reposicionar


una salida especificada mientras esta desactivada.

DISABLE ? Presenta todas las I/Os desactivadas.

Ejemplos: DISABLE IN 8 Desconecta la Entrada 8.

DISABLE OUT 12 Desconecta la Salida 12.

Nota: Consultar los comandos ENABLE y FORCE.

Guía de Referencia ACL para Controlador-B 3-29


0404 Versión F2.28
DO DO
DIRECTO DIRECTO

Formato: DO <comando EDITOR>

Donde: <comando EDITOR> es cualquier comando de modalidad de


EDICION.

Descripción: Ejecuta un comando EDITOR (indirecto) en modalidad DIRECTA.

Ejemplos: DO CLRCOM 2 Resetea el puerto RS232 número 2

DO PRINTLN Inserta un retorno de carro

3-30 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ECHO ECHO
DIRECTO DIRECTO

Formato: ECHO

Descripción: Recibe en pantalla el eco de todos los caracteres transmitidos al


controlador. Esta es la modalidad por defecto.

El comando NOECHO detiene el eco de los caracteres transmitidos.

Ejemplos: NOECHO

ECHO

Guía de Referencia ACL para Controlador-B 3-31


0404 Versión F2.28
EDIT EDIT
DIRECTO DIRECTO

Formato: EDIT <prog>

Donde: <prog> es cualquier programa definido por el usuario.

Descripción: Activa la modalidad de EDICION y llama a un programa de usuario


denominado <prog>. Si no se encuentra <prog>, crea
automáticamente un nuevo programa con ese nombre y espera confirmación del
usuario.

Ejemplos: >edit ALPHA

Bienvenido al editor ACL, teclee HELP si tiene problemas.

PROGRAM ALPHA
****************
127:? El editor ya esta listo para recibir líneas de
programa.

3-32 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ELSE ELSE
EDITOR EDITOR

Formato: ELSE

Descripción: El comando ELSE sigue a un comando IF y precede a un ENDIF.

ELSE marca el comienzo de una subrutina de programa que define las


acciones a ejecutar cuando sea falso un comando IF.

Ejemplos: IF J>2 Si J>2 y A=B, el controlador activa la Salida 1


ANDIF A=B Si no (ELSE), activa la 5.
SET OUT[1]=1
ELSE
SET OUT[5]=1
ENDIF

Nota: Consultar comando IF.

Guía de Referencia ACL para Controlador-B 3-33


0404 Versión F2.28
EMPTY EMPTY
DIRECTO DIRECTO

Formato: EMPTY <prog>


Donde: prog es un programa de usuario.

Descripción:
Borra todas las líneas de un programa pero deja el programa vacío y
válido.
El comando EMPTY es útil cuando el programa a borrar es una
subrutina que se llama desde otro/s programas.
Una vez el programa ha sido vaciado, se puede alterar la función sin
cambiar el programa principal.
Las variables locales asignadas al programa también son borradas.

3-34 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ENABLE ENABLE
EDITOR EDITOR

Formato: ENABLE IN/OUT <n>

Donde: IN y OUT son entradas y salidas, y <n> es el Índice I/O,


1≤n≤16.

Descripción: Retoma el control normal del sistema de la entrada o salida


especificada.

Ejemplos: ENABLE IN 8 Reactiva la Entrada 8 al software.

ENABLE OUT 12 Reactiva la Salida 12 al software.

Nota: Consultar el comando DISABLE.

Guía de Referencia ACL para Controlador-B 3-35


0404 Versión F2.28
END END
EDITOR EDITOR

Descripción: El sistema escribe automáticamente END como última línea del


programa. No es necesario que el usuario introduzca este comando.

Es necesario cuando se editan programas desde un editor de texto.

3-36 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ENDFOR ENDFOR
EDITOR EDITOR

Formato: ENDFOR

Descripción: Fin del bucle FOR.

Termina la subrutina que ha de ejecutar el comando FOR.

Ejemplos: FOR I=1 TO 16 Este bucle se ejecuta 16 veces, y activa


SET OUT[I]=1 las 16 salidas.
ENDFOR

Nota: Consultar el comando FOR.

Guía de Referencia ACL para Controlador-B 3-37


0404 Versión F2.28
ENDIF ENDIF
EDITOR EDITOR

Formato: ENDIF

Descripción: Fin de la subrutina IF de un programa.

Ejemplos: Si la primera y segunda condiciones son ciertas, o la tercera es cierta, el


robot va a la pos[1], en caso contrario va a pos[2].

IF XYZ=1
ANDIF Z[1]=X
ORIF B<C
MOVE POS[1]
ELSE
MOVE POS[2]
ENDIF

Nota: Consultar el comando IF.

3-38 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
<ENTER> <ENTER>
EDITOR/DIRECTO EDITOR/DIRECTO

Descripción: En modo EDITOR, va a la siguiente línea del programa y muestra su


número.

En modo DIRECTO, confirma e introduce el comando.

Guía de Referencia ACL para Controlador-B 3-39


0404 Versión F2.28
EXACT EXACT
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: EXACT {OFF}A/B/C

Descripción: Fija la modalidad de operación de los comandos MOVED, MOVELD,


MOVECD, MOVESD y SPLINED.

En modalidad EXACT, el comando MOVED (o cualquier comando


MOVE que termine con una D) instruye al controlador para que
compruebe que los ejes han alcanzado sus destinos (dentro de una
tolerancia dada).

En modalidad EXACT OFF, los comandos MOVE + D demoran la


ejecución del programa hasta que el controlador asume (de acuerdo
con el tiempo) que los ejes están en las posiciones correctas.

EXACT A/B/C Fija la modalidad EXACT para el movimiento


del grupo especificado.

EXACT OFFA/B/C Desactiva la modalidad EXACT para el grupo


especificado.

Ejemplos: EXACT A

EXACT OFFA

Nota: Los parámetros 261-271 determina la tolerancia exacta.

3-40 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
EXIT EXIT
EDITOR EDITOR

Formato: EXIT

Descripción: Sale de la modalidad de EDICION y comprueba la sintaxis y la lógica


del programa. Busca errores, como los comandos FOR sin ENDFOR,
IF sin ENDIF, y GOTO sin la etiqueta LABEL adecuada.

Si se encuentra un error, aparece un mensaje:

PROGRAMA NO VALIDO

Si el programa esta bien hecho, aparece otro mensaje:

EL PROGRAMA ES VALIDO

Guía de Referencia ACL para Controlador-B 3-41


0404 Versión F2.28
FOR FOR
EDITOR EDITOR

Formato: FOR <var> = <valor1> TO <valor2>

Donde: <var> es una variable definida por el usuario y, <valor1> y


<valor2> son constantes o variables definidas por el usuario.

Descripción: Ejecuta una subrutina para todos los valores de <var1>, comenzando
por el <valor1> y terminando por el <valor2>.

La última línea de la subrutina debe ser el comando ENDFOR.

Ejemplos: FOR L=M TO N


MOVED POS[L]
ENDFOR

FOR I=1 TO 16 Activará todas las salidas, primero la 1,


SET OUT[I]=1 luego la 2 ,......hasta la 16
ENDFOR

3-42 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
FORCE FORCE
DIRECTO DIRECTO

Formato: FORCE IN/OUT <n> <estado>

Donde: IN y OUT son entradas y salidas, <n> es el índice I/O, y


<estado> es 1 (ON) 0 (OFF).

Descripción: Fuerza la I/O especificada al estado solicitado.

Este comando sólo es operativo para las I/Os que hayan sido
desactivadas con el comando DISABLE.

Ejemplos: FORCE IN 5 1 Activa la Entrada 5 en estado ON.

FORCE OUT 11 0 Activa la Salida 11 en estado OFF.

Notas: Ver comando DISABLE.

Guía de Referencia ACL para Controlador-B 3-43


0404 Versión F2.28
FREE FREE
DIRECTO DIRECTO

Formato: FREE

Descripción: Presenta una lista del espacio disponible en la RAM de Usuario.

Líneas de programa libres.


Variables libres.
Puntos libres del grupo A.
Puntos libres del grupo B.
Puntos libres del grupo C.
Bytes libres para comentarios.

Ejemplos: FREE

484 LINEAS LIBRES


-----------------
63 VARIABLES LIBRES
-----------------
310 PUNTOS DEL GRUPO A LIBRES
-----------------
308 PUNTOS DEL GRUPO B LIBRES
-----------------
11 PUNTOS DEL GRUPO C LIBRES
-----------------
900 BYTES LIBRES para comentarios.
>

3-44 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
GET GET
EDITOR EDITOR

Formato: GET <var>

Donde: <var> es una variable definida por el usuario.

Descripción: Cuando un programa encuentra un comando GET, hace una pausa y


espera que se pulse un carácter desde el teclado del ordenador. Se
asignará a la variable <var> el valor ASCII del carácter pulsado.

Ejemplos: PRINTLN "SELECT PROGRAM: P Q R"

GET VP (VP es la variable)


IF VP=80 (80 es el valor ASCII de P)
RUN P
ENDIF
IF VP=81 (81 es el valor ASCII de Q)
RUN Q
IF VP=82 (82 es el valor ASCII de R)
RUN R
ENDIF

Guía de Referencia ACL para Controlador-B 3-45


0404 Versión F2.28
GETCOM GETCOM
EDITOR EDITOR

Formato: GETCOM <n> <var>

Donde: <n> es un puerto RS232 de comunicaciones, 1≤n≤8


<var> es una variable definida por el usuario.

Descripción: Complementa al comando SENCOM.


Recibe un byte por el puerto especificado.
El valor del byte se guarda en la variable especificada.

Ejemplo:

PROGRAMA WAIT1

LABEL 1
GETCOM 1, RECV
PRINTLN "$ IN :" RECV
GOTO 1
END

Este programa espera caracteres recibidos por


el puerto serie 1 y muestra su valor por la
pantalla.

3-46 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
GLOBAL GLOBAL
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: GLOBAL <var1> {<var2> ... <var12>}

Donde: <var1> {<var2> ... <var12>} son variables definidas por el


usuario.

Descripción: Define una variable global. Una variable global puede usarse en
cualquier programa de usuario.

Se pueden definir hasta doce variables en un comando.

Ejemplos: GLOBAL HB Crea una variable global llamada HB.

GLOBAL J BYE ME Crea variables globales llamadas J, BYE y


ME.

Notas: Este es un comando de definición. Cuando se escribe, el comando se


ejecuta pero no crea línea de programa, ni en modalidad de EDICION.

Hay que asegurarse de que el primer carácter del nombre de la


variable sea una letra.

Guía de Referencia ACL para Controlador-B 3-47


0404 Versión F2.28
GOSUB GOSUB
EDITOR EDITOR

Formato: GOSUB <prog>

Donde: <prog> es un programa definido por el usuario.

Descripción: Transfiere el control del programa desde el programa principal al


<prog>, comenzando en la primera línea de <prog>. Cuando se
alcanza el comando END del <prog>, la ejecución del programa principal se
reanuda con el comando que sigue al comando GOSUB.

Ejemplos: SET Z=10 Tras ejecutar el comando SET, y antes de


ejecutar
GOSUB SERVE el comando MOVE, se ejecuta por completo
MOVE P3 el programa SERVE.

3-48 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
GOTO GOTO
EDITOR EDITOR

Formato: GOTO <etiqueta n>

Donde: <etiqueta n> es cualquier número, 0≤ n≤ 9999

Descripción: Salta a la línea inmediatamente seguida del comando


LABEL <etiqueta n>.

LABEL <etiqueta n> debe estar incluido en el mismo programa que el


comando GOTO.

Ejemplos: LABEL 5 Este programa se ejecuta en un bucle


interminable
MOVE POS13 hasta que se aborta manualmente.
SET A=B+C
GOSUB MAT
GOTO 5

LABEL 6 Este programa se ejecuta 500 veces y después


GOSUB BE se para.
SET K=K+1
IF K<500
GOTO 6
ENDIF

Guía de Referencia ACL para Controlador-B 3-49


0404 Versión F2.28
HELP HELP
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: {DO} HELP

Descripción: En modalidad DIRECTA:


HELP ofrece una pantalla de ayuda on-line para comandos
DIRECTOS y DO HELP ofrece una pantalla de ayuda on-line para
comandos EDITORES.

En modalidad de EDICION:
HELP ofrece una lista y breve explicación de todos los comandos
EDITORES.

3-50 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
HERE HERE
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: HERE <pos>

Donde: <pos> es una posición definida por el usuario.

Descripción: Graba, en valores ejes (unidades de encoder), la ubicación actual de


los ejes y le asigna el nombre <pos>.

<Pos> debe definirse primero usando los comandos DEFP o DIMP

Ejemplos: HERE POINT Enseña una posición llamada POINT.

DIMP P[20]
HERE P[5]

Guía de Referencia ACL para Controlador-B 3-51


0404 Versión F2.28
HERER HERER
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: HERER <pos2> Sólo en modo directo.


HERER <pos1> <pos1>

Donde:<pos2> y <pos1> son nombres de posiciones definidas por el


usuario.

Descripción: HERER <pos2> Fija en valores de ejes (unidades de


codificador) la ubicación de <pos2>. <Pos2>
será relativa a la posición actual. Se deben
introducir los valores de coordenadas según el
ejemplo de abajo.

HERER <pos2> <pos1>Registra en valores de codificador la


ubicación de <pos2> relativa a <pos1>.
<Pos1> debe registrarse antes de <pos2>.
Después, cuando se mueva <pos1>, <pos2> se
moverá automáticamente con ella.

Este comando también puede utilizarse en modalidad de EDICION.

Ejemplos: >HERER AA[3] AA[3] es relativa a la posición actual del


robot por los siguientes valores:

1--[1]>0 pulsos de codificador en la base


2--[-1]>500 pulsos de codificador en el hombro
3--[0]>250 pulsos de codificador en el codo
4--[2]>303 pulsos de codificador en inclinación muñeca
5--[2]>0 0 pulsos de codificador en giro muñeca
DONE
>
Los valores entre corchetes son los "por
defecto" si están vacíos no hay valor en
memoria.

>HERER AA[5] AA[4]


La ubicación de la posición AA[5] se registra
como relativa a la posición AA[4].

3-52 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
HOME/HHOME HOME/HHOME
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: HOME {<n>}

HHOME {<n>}

Donde: <n> es el número de un eje, 1≤n≤11.

Descripción: HOME es el programa que está fijo en la EPROM y se activa


mediante el comando HOME:

HOME Lleva todos los ejes del robot a su posición


origen buscando un microinterruptor en cada
eje. La búsqueda de origen se ejecuta sólo si se
introdujo Tipo V ó Tipo VII durante la
configuración.

HOME n Lleva el eje n a su posición origen, usando la


búsqueda de microinterruptor. El comando
HOME <n> permite crear un programa origen
dedicado para cualquier configuración
especial.

HHOME n Lleva el eje n a la posición origen. El


programa busca un tope rígido en lugar de un
microinterruptor.

Ejemplos: HOME 7 Busca un microinterruptor origen en los ejes


HOME 8 7, 8, 9 y 10.
HOME 9
HOME 10

HHOME 7 Busca un tope rígido origen en la base


deslizante lineal conectada al eje 7.

Notas: Hay que asegurarse de que la base móvil esté los suficientemente
cerca del tope mecánico cuando se realice la operación Home en la LSB.

Notas: La potencia utilizada para impulsar el motor en un comando HHOME


es determinada por los parámetros del sistema 201-211. Hay que
asegurarse de que este valor DAC no dañe los ejes conectados.

Para ejecutar el programa HOME del robot desde la botonera hay que
teclear: RUN 0 [ENTER]

Guía de Referencia ACL para Controlador-B 3-53


0404 Versión F2.28
IF IF
EDITOR EDITOR

Formato: IF <var1> <cond> <var2>

Donde: <var1> es una variable definida por el usuario,


<var2> es una variable o constante, y
<cond> es una de las siguientes condiciones:<,>,=,<=,>=,< >

Descripción: El comando IF comprueba la relación entre <var1> y <var2>. Si


cumple las condiciones especificadas, el resultado es verdadero, y se
ejecuta una subrutina o comando. Si no es verdadero, se ejecuta otra
subrutina o comando.

Ejemplos: IF C[1]=3 Si C[1]=3,


MOVE AA[1] entonces pasa a AA[1].
ELSE Si C[1] ≠ 3,
GOSUB TOT se ejecuta el programa (subrutina) TOT.
ENDIF

IF QY ≤ 10 Si la variable QY es menor o igual que 10


SET OUT[3]=1 activar salida 3.
ELSE En caso contrario
SET OUT[3]=0 desactivar salida 3.
ENDIF

3-54 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
INIT INIT
DIRECTO DIRECTO

Formato: INIT CONTROL

Descripción: Inicializa todos los parámetros del sistema de control. Debe ejecutarse
después de cualquier cambio en los parámetros de control del sistema.

Formato: INIT EDITOR

Descripción: Inicializa los programas, variables y espacio de la RAM de Usuario.

Aviso! Este comando borra el contenido de la RAM de Usuario

Notas: El comando CONFIG realiza esta operación automáticamente. Por


tanto, INIT EDITOR se utiliza con muy poca frecuencia.

Guía de Referencia ACL para Controlador-B 3-55


0404 Versión F2.28
INSERT INSERT
DIRECTO DIRECTO

Formato: INSERT &pvect[n]

Donde: &pvect es un vector de posición.


n es el índice de una posición del vector.

Descripción:
Graba las coordenadas actuales del robot o del elemento (igual que los
comandos HERE o HEREC) en la posición &pvect[n] e inserta las
coordenadas en el vector en el índice n.

Todas las posiciones grabadas por encima de la posición &pvect[n]


son desplazadas. Si todas las posiciones del vector están grabadas el
sistema dará un mensaje de error.

El comando INSERT sólo se puede aplicar a vectores de posiciones


que empiecen con el carácter &.

Sólo se puede aplicar a multi-ejes (grupo A o grupo B).

Ejemplos:
INSERT &AA[4] Graba la posición 4 en el vector &AA; Inserta
esa posición en el vector &AA; la posición
&AA[4] anterior pasa a ser ahora la &AA[5].

Nota: Referirse a los comandos DELETE, SPLINE y MOVES.

3-56 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
INT_ON / INT _OFF INT_ON/INT_OFF
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: INT_ON <eje1> {<eje2> ... <eje4>}

INT_OFF <eje1> {<eje2> ... <eje4>}

Donde: <eje1> ... <eje4> son servo ejes del sistema.

Descripción: Activa y desactiva el control de realimentación integral de los servo


ejes especificados.

Se pueden especificar hasta cuatro ejes en un comando. La


conmutación se hace en el momento de la puesta en marcha.

Ejemplos: INT_OFF 2

INT_ON 5

Notas: Hay que asegurarse de usar un espacio subrayado entre INT y


ON/OFF.

Guía de Referencia ACL para Controlador-B 3-57


0404 Versión F2.28
JAW JAW
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: JAW <var> {<tiempo>}

Donde: <var> y <tiempo> son constantes o variables definidas por el


usuario.

Descripción: <Var> es el porcentaje requerido de abertura de la pinza.

El comando JAW dimensiona la abertura de la pinza en el tamaño de


<var> dentro del tiempo especificado. Si se omite el <tiempo>, el
movimiento tiene lugar a máxima velocidad.

Aviso! Hay que asegurarse de seleccionar una <var> adecuada.


Un tamaño incorrecto originara un suministro de potencia
constante y excesivo al motor, y puede dañarlo.

El comando JAW no es aplicable para la pinza SCORBOT-ER VII sin


encoder.

Ejemplos: JAW 40 Abre la pinza hasta el 40 por ciento de su abertura.

JAW 0 Cierra la pinza.

Notas: El comando JAW activa el servo control para el eje de la pinza


mientras que los comandos OPEN/CLOSE desconectan el eje de la
pinza del servo circuito de control.

A menos que sea necesario el comando JAW para una aplicación


específica, se recomienda utilizar los comandos OPEN y CLOSE.

3-58 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
L L
EDITOR EDITOR

Formato: L <línea1> <línea2>

Descripción: Presenta una lista de líneas de programa, desde la primera línea


especificada hasta la segunda línea especificada.

Ejemplo: 16 : ?L 3 13
******* Listing 3 to 13 *******
3: GOSUB MVMAX
4: IF MVMAX
5: IF VA>=VB
6: MOVE O
7: DELAY 1
8: SET TI=LTA - LTB
9: IF TI> 100
10: MOVE 00 TI
11: ELSE (9)
12: MOVE 00
13: ENDIF (9)
******* End of listing *****

Nota: Cuando se use este comando, los comandos ENFOR, ENDIF y ELSE
irán seguidas de un número que corresponderá con su respectivos
comandos FOR y IF.

Guía de Referencia ACL para Controlador-B 3-59


0404 Versión F2.28
LABEL LABEL
EDITOR EDITOR

Formato: LABEL <etiqueta n>

Donde: <etiqueta n> es cualquier número, 0_ etiqueta n_ 9999.

Descripción: Marca el comienzo de una subrutina de programa que se ejecuta al


leer el comando GOTO.

Ejemplos: LABEL 12
MOVEL 1
MOVE 15 20
OPEN
MOVE JJ
GOTO 12 El programa saltará hasta LABEL 12

3-60 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
LET PAR LET PAR
DIRECTO DIRECTO

Formato: LET PAR <n> <valor>

Donde: <n> es el número del parámetro y,


<valor> es una constante o variable definida por el usuario.

Descripción: Fija el parámetro del sistema seleccionado <n> al <valor>.

La mayoría de los parámetros sólo se pueden cambiar en modo


PRIVILEGE.

Ejemplos: LET PAR 21=400 (pone el parámetro 21 a un valor de 400)

LET PAR 299=50 (pone el parámetro 299 a un valor de 50)

Notas:
Aviso! Hay que tomar extremas precauciones al intentar cambiar
los parámetros del sistema. No cambiar los parámetros mientras
se están ejecutando programas.

Una vez fijados los nuevos parámetros del sistema, activarlos


ejecutando el comando:

INIT CONTROL

Consultar la descripción de los parámetros del sistema en el Apéndice


B.

Guía de Referencia ACL para Controlador-B 3-61


0404 Versión F2.28
LIST LIST
DIRECTO DIRECTO

Formato: LIST {<prog>}

Donde: <prog> es un programa definido por el usuario.

Descripción: Presenta todas las líneas del programa de usuario <prog>. Si se omite
<prog>, se visualizan todos los programas de usuario.

Ejemplos: LIST OUT Presenta todas las líneas del programa OUT.

LIST Presenta todas las líneas de todos los


programas de usuario.

3-62 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
LISTP LISTP
DIRECTO DIRECTO

Formato: LISTP

Descripción: Presenta una lista con todas las posiciones definidas.

Ejemplos: LISTP

PUNTOS DEFINIDOS
nombre del punto: grupo: (eje)
---------------------------
0: A
P[10]: A
PICP[10] : A
AA : A
00 : B
B1 : B
B2 : B
BBA[50]: B
C1 : C: 10
C2 : C: 11
C3[100]: C

Guía de Referencia ACL para Controlador-B 3-63


0404 Versión F2.28
LISTPV LISTPV
DIRECTO DIRECTO

Formato: LISTPV <pos>

LISTPV POSITION

Descripción: LISTPV <pos> Presenta en mixtas (unidades de codificador)


la ubicación de la posición especificada.
Si <pos> es una posición de robot (grupo A),
aparecen ambas coordenadas, cartesiana y
mixta.

LISTPV POSITION Presenta la ubicación actual del brazo del


robot.

Ejemplos: LISTPV P1

Position P1 (Joint)
1:0 2: 5 3: 13926 4:05:0
X: 5.197 Y:0.000 Z: 29.963 P: 12.594 R:-3.200

Los valores de eje de P1 aparecen en unidades


de codificador. Si P1 es una posición de robot,
los valores cartesianos también aparecen en
décimas de milímetro (X,Y,Z) y décimas de
grado (inclinación y giro).

3-64 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
LISTVAR LISTVAR
DIRECTO DIRECTO

Formato: LISTVAR

Descripción: Presenta variables de usuario y de sistema.

Los corchetes indican variables de vector; por ejemplo, IN[16].

Los paréntesis redondos indican una variable local, usada sólo por el
programa especificado; por ejemplo, I(DEMO).

Ejemplos: LIST VAR

VARIABLES DEL SISTEMA


************************
IN[16]
ENC[11]
TIME
CPOS[12]
ZP[12]
LTA
LTB
MFLAG
ERROR
ERRPR
ERRLI
OUT[16]
ANOUT[11]

VARIABLES DE USUARIO
***********************
I (DEMO)
J (DEMO)
I (IO)
I (INOUT)
G1
G2

Guía de Referencia ACL para Controlador-B 3-65


0404 Versión F2.28
MODULO ROLL MODULO ROLL
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: MODULO ROLL

Descripción:
Devuelve el valor del eje Roll (giro de la muñeca) a un valor dentro de
± 360º, sin mover el eje.
Con este comando se pueden realizar rotaciones ilimitadas del eje
Roll. Es útil, por ejemplo, en aplicaciones donde el elemento terminal
es por ejemplo un atornillador.

MODULO ROLL no es ejecutado hasta que el buffer de movimiento


esta vacío.

Atención: utilice este comando con precaución, teniendo en cuenta los


cables y otros elementos que limiten el giro de la pinza.

Ejemplo:
HERE POS1
LABEL 1
SHIFTC POS1 BY R 190 gira 190º
MOVE POS1
SHIFTC POS1 BY R 190 gira otros 190º (total 380º)
MOVE POS1
MODULO ROLL Roll vuelve a un valor de 20º
SHIFTC POS1 BY R 190 gira 190º (total 210º)
MOVE POS1
GOTO 1

3-66 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
MOVE / MOVED MOVE / MOVED
DIRECTO/EDITOR DIRECTO/EDITOR

Se ruega leer cuidadosamente esta sección. El comando MOVE puede ser


origen de confusiones ya que su ejecución puede no estar sincronizada con
el flujo de programa. El comando MOVED suele ser más adecuado para la
mayoría de las aplicaciones.

MOVE
Formato: MOVE <pos> {<tiempo>}

Donde: <pos> es un nombre definido por el usuario y<tiempo> es una


constante o variable definida por el usuario.

Descripción: MOVE <pos> Desplaza el robot a la posición especificada,


de acuerdo con la velocidad actual.

MOVE <pos> <tiempo>


Desplaza el robot a la posición dentro del
tiempo especificado. El tiempo se da en
unidades de centésimas de segundo.

El comando MOVE deposita un comando de movimiento en el buffer de


movimiento. El programa que lanza el comando MOVE no espera que
termine el movimiento. La rutina de programa continua independientemente
de cuando se ejecuta el comando MOVE.

Si el programa consta de varios comandos MOVE consecutivos, el


programa los lee hasta que el buffer de movimiento este lleno,
independientemente de su ejecución real. Por tanto, los programas que
contengan comandos distintos de MOVE pueden no ejecutarse en la
secuencia de programa aparente.

La duración (el tiempo) de la ejecución del comando MOVE es la


especificada (o la calculada a partir de la velocidad actual)
independientemente de cuanto se acerque el eje a la posición objetivo.

Hay tres métodos para asegurar la secuencialidad en un programa que


contenga comandos MOVE:

1. Hay que usar el MOVE con su opción <tiempo>, seguido por un


comando DELAY de igual tiempo. Por ejemplo:

MOVE <pos1> <tiempo1>


DELAY <tiempo1>

Guía de Referencia ACL para Controlador-B 3-67


0404 Versión F2.28
MOVE <pos2> <tiempo2>
DELAY <tiempo2>

2. Hay que usar comandos secuenciadores como WAIT. Por ejemplo:

MOVE <pos1>
WAIT IN[1]=1

3. Usar el comando MOVED.

MOVED

Formato: MOVED <pos> {<tiempo>}

Donde: <pos> es una posición definida por el usuario, y<tiempo> es


una constante o variable definida por el usuario.

Descripción: A diferencia del comando MOVE, el comando MOVED asegura la


ejecución secuencial de las operaciones definidas en el programa.

Un comando MOVED se deposita en el buffer de movimiento solo


cuando se ha ejecutado por completo el comando MOVED anterior.

Un comando MOVED solo se termina cuando los ejes han llegado a


su posición objetivo dentro de la precisión especificada, no importa el
tiempo que cueste, e incluso cuando se ha definido <tiempo>.

Para asegurar la ejecución del comando MOVED dentro de un periodo


de tiempo definido, se lanza el comando EXACT OFF. Por ejemplo:

EXACT OFFA
MOVED <pos1> Los ejes alcanzan <pos1> y <pos2> dentro
MOVED <pos2> de un periodo de tiempo definido.
EXACT A
MOVED <pos3> Los ejes alcanzan <pos3> dentro de la
precisión requerida, independientemente del
tiempo.

3-68 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
Resumen MOVE, MOVED

1. Comando MOVE: Fácil de programar, no garantiza la


secuencialidad ni la precisión.

2. Comando MOVED: Garantiza la secuencialidad y la precisión,


pero no el tiempo.

3. Comando MOVED Garantiza la secuencialidad y el tiempo,


comando EXACT OFF: pero no la precisión.

Ejemplos: MOVE 3 El robot se desplaza a la posición 3 y


MOVE AA después a la posición AA.
PRINT "COMMAND La línea "COMMAND GIVEN"
probablemente
GIVEN" se imprimirá antes de que se complete el
movimiento real.

MOVE 3 Los tres comandos de movimiento se


depositan
MOVE AA casi simultáneamente en el buffer
MOVE POS[1] de movimiento. El robot se desplaza a la
SET OUT[1] = 1 posición 3, después hacia AA y después
DELAY 1000 a POS[1]. Al mismo tiempo que se produce el
movimiento a la posición 3, la Salida 1 se
activa (ON) y el programa se demora durante
10 segundos. Este programa acaba unos 10
segundos después de su activación,
independientemente de la ubicación de los
ejes.

MOVE 3 500 El robot se mueve a la posición 3 en 5


DELAY 500 segundos, después AA en 8 segundos, después
MOVE AA 800 a POS[1] en 2 segundos. Después se
DELAY 800 activa la Salida 1 y se produce una demora
MOVE POS[1] 200 de 10 segundos. El tiempo total para la
DELAY 200 ejecución de un programa es 25 segundos
SET OUT[1]=1 más una fracción de tiempo despreciable
DELAY 1000 para ejecutar comandos.

MOVED 3 Todos los comandos se ejecutan


secuencialmente.
SET OUT[1]=1 Todas las posiciones se alcanzan dentro
DELAY 1000 de la precisión tolerada.
MOVED AA Se observaron los ejes haciendo pausas
MOVED POS[1] en algunas posiciones.

Guía de Referencia ACL para Controlador-B 3-69


0404 Versión F2.28
EXACT OFFA Se recomienda este formato de programa,
MOVED 3 que asume que la posición 3 y AA están
MOVED AA a lo largo de una trayectoria y que la
EXACT A posición POS[1] es donde se recoge un
MOVED POS[1] objeto. La posición 3 y AA se alcanzan
CLOSE en un tiempo especificado,
independientemente
SETOUT[1]=1 de la precisión, pero con una demora posible
Todos los comandos de este programa se
activan en secuencia.

Notas: Consultar el comando EXACT.

3-70 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
MOVEC / MOVECD MOVEC / MOVECD
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: MOVEC <pos1> <pos2>

MOVECD <pos1> <pos2> solo EDITOR

Descripción: Desplaza el robot por una trayectoria circular, desde su ubicación


actual hasta <pos1>, a través de <pos2>. La ubicación de <pos2> y
<pos1> determina el tiempo necesario para completar el movimiento.

El tiempo requerido para completar un movimiento puede definirse


mediante un comando SPEED precedente. La velocidad del
movimiento circular determina la precisión de la trayectoria circular.

Los demás aspectos de los comandos MOVEC/MOVECD son


similares a los de los comandos MOVE/MOVED.

Aviso! Hay que tener cuidado al registrar posiciones para


comandos MOVEC. Las limitaciones mecánicas u obstáculos,
tales como el propio robot, pueden hacer que el arco resultante no sea
válido.

Ejemplos: MOVEC 1 2 Se desplaza por una trayectoria circular desde


la posición actual a la posición 1 vía posición 2.

SPEED 20 Se desplaza por una trayectoria circular desde


MOVEC 2 1 la posición actual a la posición 2, pasando por
la posición 1, a una velocidad 20.

Notas: Este comando es válido solamente para posiciones de robot (grupo A).

Guía de Referencia ACL para Controlador-B 3-71


0404 Versión F2.28
MOVEL /MOVELD MOVEL / MOVELD
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: MOVEL <pos1> {<tiempo>}

MOVELD <pos1> {<tiempo>} sólo EDITOR

Descripción: Desplaza el robot por una trayectoria lineal, desde su ubicación actual
hasta <pos1>.

La velocidad del movimiento lineal determina la precisión de la


trayectoria.

Aviso! Hay que tener cuidado al registrar posiciones para


comandos MOVEL. Las limitaciones mecánicas u obstáculos, tales
como el propio robot, pueden hacer que el arco resultante no sea
válido.

Los demás aspectos de los comandos MOVEL/MOVELD son


similares a los de los comandos MOVE/MOVED.

Ejemplos: MOVELD TR Se desplaza por una línea recta hasta la


posición TR.

Notas: Este comando es válido solamente para posiciones de robot (grupo A).

3-72 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
MOVES / MOVESD MOVES /MOVESD
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: MOVES <pvect> <primpos> <ultpos> {<tiempo>}

MOVESD <pvect> <primpos> <ultpos> {<tiempo>} sólo EDITOR.

Donde: <primpos> es la primera posición alcanzada, y <ultpos> es la


última posición alcanzada.

Descripción: Desplaza los ejes a través de cualquier número de posiciones de vector


consecutivas, desde <primpos> hasta <ultpos>, sin pausas.

Se aplica un perfil de movimiento a todo el movimiento. Aceleración


y desaceleración sólo se producen en las posiciones primera y última.
Como el tiempo asignado a cada segmento es igual, la velocidad del
movimiento es determinada por la distancia entre las posiciones de
vector. Cuanto mayor sea la distancia entre dos posiciones de vector
consecutivas, más rápido se moverá el robot a través de ese segmento
de la trayectoria.

Los demás aspectos de los comandos MOVES/MOVESD son


similares a los de los comandos MOVE/MOVED.

Ejemplos: MOVED PATH[1] Se desplaza a la posición de comienzo 1.


MOVESD PATH 2 20 Se desplaza en una trayectoria continua
MOVESD PATH 19 1 a través de las posiciones 2 a 20. Después
ejecuta la misma trayectoria en dirección
opuesta.

Nota: Ver comandos SPLINE y SPLINED

Guía de Referencia ACL para Controlador-B 3-73


0404 Versión F2.28
NOECHO NOECHO
DIRECTO DIRECTO

Formato: NOECHO.

Descripción: Cancela la modalidad ECHO.

En modalidad NOECHO, los caracteres transmitidos al controlador no


aparecen por pantalla.

El comando ECHO cancela la modalidad NOECHO.

3-74 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
NOQUIET NOQUIET
DIRECTO DIRECTO

Formato: NOQUIET

Descripción: Durante la ejecución de un programa, todos los comandos


DIRECTOS dentro del programa (es decir, los comandos introducidos con @ en
modalidad de EDICION) se visualizan a medida que se ejecutan.

Esta es la modalidad por defecto.

Notas: Consultar el comando QUIET.

Guía de Referencia ACL para Controlador-B 3-75


0404 Versión F2.28
OPEN OPEN
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: OPEN {< ar>}

Donde: <var> es una constante o variable definida por el usuario


0 < var < 5000.

Descripción: OPEN Abre la pinza hasta el final de su movimiento

Si la pinza está conectada al circuito de control, el comando OPEN lo


desconecta antes de ejecutar el movimiento de la pinza.

OPEN <var> Una variable o una constante fijada en el DAC


de la pinza para mantener la impulsión del
motor de la pinza para obtener fuerza de
agarre adicional. La fuerza motriz es
proporcional a <var>.

El comando OPEN desconecta la pinza del servo circuito de control.

Aviso! Hay que usar la opción de la variable con la máxima


precaución para evitar daños en el motor y su engranaje. Hay que
usar este comando durante breves periodos, y fijar el valor de
<var> lo más bajo posible

Ejemplos: OPEN Abre la pinza

OPEN 1000 Fija el valor DAC de la pinza en 1000

OPEN PRESS Fija el valor DAC de la pinza en el valor de


PRESS.

Notas: Ver comando CLOSE.

3-76 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ORIF ORIF
EDITOR EDITOR

Formato: ORIF <var1> <cond> <var2>

Donde: <var1> son constantes o variables definidas por el usuario, y


<cond> puede ser, <,>,=,<=,>=,< >

Descripción: Comando tipo IF. ORIF combina lógicamente con una condición y
otros comandos IF.

Ejemplos: IF A=B
ORIF A=D
CLOSE
ELSE
OPEN
ENDIF

Notas: Consultar el comando IF.

Guía de Referencia ACL para Controlador-B 3-77


0404 Versión F2.28
P P
EDITOR EDITOR

Formato: P

Descripción: En modalidad de EDICION, va a la línea anterior del programa

3-78 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PASSWORD PASSWORD
DIRECTO DIRECTO

Formato: PASSWORD

Descripción:
Se requiere un password para entrar en modo PRIVILEGE.
Este comando permite cambiar el password para entrar en este modo.

> PASSWORD
INTRODUZCA EL PASSWORD ACTUAL:
INTRODUZCA EL NUEVO PASSWORD:
INTRODÚZCALO DE NUEVO:

Nota: Referirse al comando PRIV

Guía de Referencia ACL para Controlador-B 3-79


0404 Versión F2.28
PEND / POST PEND / POST
EDITOR EDITOR

Formato: PEND <var1> FROM <var2>

POST <var3> TO <var2>

Donde:<var1> y <var2> deben ser variables definidas por el usuario y


<var3> es una variable o una constante.

Descripción: Los comandos PEND y POST son útiles para sincronizar la ejecución
simultánea de programas.

Cuando un programa encuentra un comando


PEND <var1> FROM <var2>,
ocurre una de las dos cosas siguientes:

1. Si <var2> tiene un valor de cero, se suspende la ejecución del


programa hasta que otro programa en ejecución "envíe" un valor
distinto de cero por medio del comando POST <var1> TO <var2.

2. Si <var2> tiene un valor distinto de cero, se asigna ese valor a


<var1> y el valor de <var2> se fija en cero.

Ejemplos:
PROGRAM DOACT
GLOBAL SIGN La ejecución del programa DOACT
SET SIGN=0 quedará suspendida hasta que se
PEND VALUE FROM SIGN active el programa SEND y asigne
RUN ACT a SIGN un valor de 1.
END

PROGRAM SEND
POST 1 TO SIGN
END

3-80 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PRCOM PRCOM
EDITOR EDITOR

Formato: PRCOM<n> <arg1> {<arg2> <arg3>}

Donde: <n> es un puerto RS232 de comunicaciones, 1<=n<=8 y


<arg> es o bien una variable o una cadena de caracteres
entrecomillada

Descripción:

Envía cadenas de caracteres y variables por el puerto RS232


especificado. El texto que sigue a PRCOM <n> puede contener hasta
30 caracteres y espacios sin incluir comillas. El texto puede contener
un total de 3 argumentos y/o variables. Una variable es un argumento,
sin importar su longitud. Una cadena de hasta 10 caracteres es un
argumento. Cadenas que excedan de 10 y 20 caracteres son tratadas
como 2 y 3 argumentos respectivamente.

Ejemplo:

PRCOM 6 "TESTING" El texto "TEXTING" será transmitido


por el puerto serie número 6.

Guía de Referencia ACL para Controlador-B 3-81


0404 Versión F2.28
PRINT PRINT
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: PRINT <arg1> {<arg2>...<arg4>}

Donde: <arg> es o una variable o una serie dentro de comillas ("").

Descripción: Presenta en pantalla valores de variables y series.

El texto que sigue a PRINT puede contener hasta 40 caracteres y


espacios, sin incluir las comillas. El texto puede contener un total de 4
argumentos y/o variables.

Una variable es un argumento, independientemente de su longitud.

Una serie de hasta 10 caracteres es un argumento. Las series que


superan 10, 20 y 30 caracteres se tratan, respectivamente, como
argumentos dos, tres y cuatro.

Ejemplos: SET NA=5


PRINT "EL ROBOT TIENE" NA "EJES"

En pantalla aparecerá:
"El robot tiene 5 ejes".
El texto "el robot tiene" constituye los
argumentos 1 y 2 (contiene 13
caracteres); la variable NA es el
argumento 3; el texto "ejes" es el
argumento 4.

3-82 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PRINTLN PRINTLN
EDITOR EDITOR

Formato: PRINTLN <arg> {<arg2> ... <arg4>}

Descripción: Igual que PRINT, pero inserta un retorno del carro antes del texto
visualizado.

Ejemplos: SET X=7


SET Y=15
SET J=8
SET K=20
PRINTLN "EL NIVEL DEL TANQUE #" X "ES," Y
PRINT "PULGADAS"
PRINTLN "EL NIVEL DEL TANQUE #" J "ES," K
PRINT "PULGADAS"

Aparecerá:
EL NIVEL DEL TANQUE #7 ES, 15 PULGADAS
EL NIVEL DEL TANQUE #8 ES, 20 PULGADAS

Guía de Referencia ACL para Controlador-B 3-83


0404 Versión F2.28
PRIORITY PRIORITY
EDITOR EDITOR

Formato: PRIORITY <prog> <var>

Donde: <prog> es un programa definido por el usuario.<var> es una


constante o variable definida por el usuario.

Descripción: Cuando se ejecutan varios programas concurrentemente, los que


tengan mayor prioridad se ejecutaran primero.

Los programas de usuario con la misma prioridad comparten tiempo


del CPU empleando un algoritmo de distribución igual.

La prioridad por defecto de los programas de usuario es 5.

El comando PRIORITY cambia tanto las prioridades por defecto


como las actuales de <prog> en el valor de <var>.

Las prioridades van de 1 a 10, siendo 10 la más alta.


Si el valor de <var> es mayor de 10, se fija la prioridad en 10.
Si es menor de 1, se fija la prioridad en 1.

Ejemplos: PRIORITY PALET 7 Asigna al programa PALET una prioridad 7

Notas: Consultar el comando RUN.

3-84 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PRIV[ILEGE] PRIV[ILEGE]
DIRECTO DIRECTO

Formato: PRIV [ON / OFF]


PRIVILEGE [ON / OFF]

Descripción:

El modo PRIVILEGE previene el acceso a ciertos comandos y a los


parámetros del controlador.

Los siguientes comandos están protegidos:


SET ANOUT
CLR
LET PAR

Los siguientes parámetros no están protegidos:


PAR 73, 74, 75, 76, 274, 275 (parámetros de pinza)
PAR 219
PAR 220, 236
PAR 260 + Axis

Para activar el modo PRIVILEGE utilice el comando:


PRIV ON

E introduzca el password

Para salir del modo PRIVILEGE teclee PRIV OFF.

Guía de Referencia ACL para Controlador-B 3-85


0404 Versión F2.28
PROFILE PROFILE
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: PROFILE PARABOLE A/B/C

PROFILE TRAPEZE A/B/C

Descripción: Asigna un perfil de movimiento al grupo especificado.

Hay dos perfiles de control de trayectoria disponibles: paraboloide y


trapezoide. El comando TRAPEZE hace que los ejes aceleren y
desaceleren rápidamente al comienzo y final del movimiento, con una
velocidad constante durante la trayectoria. El comando PARABOLE
hace que los ejes aceleren lentamente hasta alcanzar la velocidad
máxima, decelerando después al mismo ritmo. Ver diagrama:

Se pueden asignar diferentes perfiles de control para diferentes grupos


de control. Por ejemplo, perfil paraboloide para el grupo A, perfil
trapezoide para el grupo B.

Ejemplos: PROFILE TRAPEZE A

Cambia el perfil de movimiento del robot a


TRAPEZE.

Notas: La velocidad mínima de aceleración y desaceleración viene


determinada por el parámetro 76.

V V

TRAPEZIODE PARABOLOIDE

t t

3-86 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PRLNCOM PRLNCOM
EDITOR EDITOR

Formato: PRLNCOM <n> <arg1> {<arg2> <arg3>}

Donde: <n> es un puerto RS232 de comunicaciones, 1<=n<=8


<arg> es o bien una variable o una cadena de caracteres
entrecomillada

Descripción: Igual que el comando PRCOM, pero añade un retorno de carro


después del envío del texto por el puerto.

Ejemplo:

PRLNCOM 7 "EL VALOR ES" VAL[I]

El texto "EL VALOR ES" y el valor de la


variable VAL[I] serán transmitidos por el
puerto 7 seguido de un retorno de carro.

Si, por ejemplo, el valor de VAL[I] es 26, la


cadena "26" (no el carácter ASCII 26) será
enviado por el puerto 7.

Guía de Referencia ACL para Controlador-B 3-87


0404 Versión F2.28
PSTATUS PSTATUS
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SET var = PSTATUS pos

Donde: var es una variable


Pos una posición

Descripción:
Asigna a var un valor de acuerdo con el tipo de posición especificado,
basado en las siguientes definiciones:

Valor = Tipo de posición


0 = Posición definida, pero coordenadas no grabadas
1 = Posición absoluta en Ejes
2 = Absoluta XYZ – Espacio A
3 = Absoluta XYZ – Espacio B
4 = Relativa por Ejes a otra posición
5 = Relativa XYZ a otra posición
14 = Relativa por ejes a la posición actual
15 = Relativa por XYZ a la posición actual

Ejemplos:
SET PV = PSTATUS A

La variable PV tomará el valor de acuerdo al tipo de posición.

3-88 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
PURGE PURGE
DIRECTO DIRECTO

Formato: PURGE

Descripción:
Borra de la RAM de usuario todas las variables locales y globales que no
son utilizadas por ningún programa.

Guía de Referencia ACL para Controlador-B 3-89


0404 Versión F2.28
PVAL / PVALC PVAL / PVALC
EDITOR/DIRECTO EDITOR/DIRECTO

Formato: SET var = PVAL pos axis


SET var PVALC pos coord

Donde: pos es una posición del robot (grupo A)


axis es un número de eje
var es una variable
coord puede ser : X, Y, Z, P, R

Descripción: SET var = PVAL pos axis

Asigna a var el valor en Joints del eje especificado de la posición


específica

SET var = PVALC pos coord

Asigna a la variable var una de las coordenadas Cartesianas de la


posición específica

El valor de la coordenada Cartesiana que es asignada a la variable esta


definida en micras. Pitch y Roll en milésimas de grado.

Ejemplos: SET JV = PVAL BUF[1] 1

JV recibe el valor de la coordenada en Joint del eje 1 de la posición


BUF[1]

SET C = PVALC POSITION Y

C recibe el valor de la coordenada Y de la posición actual del robot.

3-90 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
QPEND / QPOST QPEND / QPOST
EDITOR EDITOR

Formato: QPOST <var3> TO <var2>

QPEND <var1> FROM <var2>

Donde: <var1> es una variable definida por el usuario.


<var2> es un vector definido por el usuario.
<var3> es una constante o variable definida por el usuario.

Descripción: QPOST Pone en cola los valores a procesar.

QPEND Toma los valores de la cola en el mismo orden


en que los introdujo el comando QPOST.

Si se acaba la cola, QPEND suspende la ejecución del programa hasta


que un comando QPOST introduce un valor.

El tamaño máximo de la cola es igual a la dimensión del vector


<var2> menos 1. Si la cola está llena, QPOST suspende la ejecución del
programa hasta que un comando QPEND toma un valor de la cola.

Importante! Se debe inicializar una cola antes de usarla poniendo


todos sus elementos a cero.

Ejemplos: PROGRAM INITQ Define e inicializa la cola.


DIMG QUEUE[10]
DEFINE I
FOR I=1 TO 10
SET QUEUE[1]=0
ENDFOR

PROGRAM DOACT Toma un valor de la cola.


DEFINE VALUE
LABEL 1 El programa ACT se ejecutará cuando
QPEND VALUE FROM QUEUE el comando SEND deposite
valores en
RUN ACT QUEUE. Si no se ha enviado ningún
GOTO 1 valor, se suspenderá DOACT hasta la
END llegada de un valor.

PROGRAM SEND Pone un valor en la cola.


POST 1 TO QUEUE
END

Guía de Referencia ACL para Controlador-B 3-91


0404 Versión F2.28
QUIET QUIET
DIRECTO DIRECTO

Formato: QUIET

Descripción: Cancela la modalidad NOQUIET. En modalidad QUIET, los


comandos DIRECTOS dentro del programa (los precedidos por @) no
aparecerán durante la ejecución del programa.

Notas: Ver comando NOQUIET.

3-92 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
READ READ
EDITOR EDITOR

Formato: READ <arg1> {<arg2> ... <arg4>}

Donde: <arg> es o una variable o una string dentro de comillas ("").


string: es una cadena (serie) de caracteres.

Descripción: Cuando READ encuentra un argumento que es una string, el texto


aparecerá como una sentencia PRINT.
Cuando READ encuentra un argumento que es una variable, aparecerá
en pantalla un "?", indicando que esta esperando la introducción de un
valor.
Sólo se considerarán los valores numéricos. La pulsación de
<ENTER> sin especificar un valor, introducirá un valor cero.

Cualquier respuesta a "?" es distinta de un valor numérico se


interpreta como un comando. Si se introduce un comando, se ejecutará y el
comando READ pedirá de nuevo que se introduzca un valor
presentando el mensaje:
ENTER value>> (introducir valor)

Ejemplos READ "introducir valor de x" X

Aparecerá por pantalla:


Introducir valor de x?

Si se introduce 254, se asignará a X el valor 254.

Nota: Ver comando PRINT.

Guía de Referencia ACL para Controlador-B 3-93


0404 Versión F2.28
READCOM READCOM
EDITOR EDITOR

Formato: READCOM<n> <var>

Donde: <n> es un puerto RS232 de comunicaciones, 1<=n<=8


<var> es una variable.

Descripción: Comando complementario al PRLNCOM


Cuando el comando READCOM es encontrado, espera por el puerto
especificado una cadena que contenga códigos ASCII seguidos de un
retorno de carro.
Ese valor numérico es asignado a la variable especificada.

Ejemplo:

READCOM !, RPART
IF RPART > 9999
PRINTLN "NO PUEDO REALIZAR MAS DE 9999 PIEZAS"

3-94 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
RECEIVE RECEIVE
DIRECTO DIRECTO

Formato: RECEIVE {<prog>}

Descripción: Los comandos RECEIVE cargan datos desde un fichero de reserva de


usuario a la RAM de Usuario del controlador a través de la línea
RS232C.

Aviso! Este comando borra el contenido de la RAM de Usuario del


controlador. El fichero a recibir debe estar en el formato creado por el
comando SEND. Tras introducir el comando RECEIVE, el
controlador responde:

AVISO, TODOS LOS PROGRAMAS, PUNTOS Y VARIABLES


DE USUARIO SE BORRARAN!!!
ASEGÚRESE DE TENER UNA RESERVA.
Esta determinado a realizar la inicialización?? (SI/NO)
Si la respuesta es sí , el controlador responde lo siguiente:

POR FAVOR ENVIE FICHEROS

(Consultar la documentación del terminal para instrucciones exactas


acerca del envío y recepción de ficheros).
El ordenador envía ahora el fichero línea por línea al controlador.
Después de cada línea, el ordenador espera que el controlador
transmita un signo dos puntos ":". Esto indica que se puede enviar la
siguiente línea.

La última línea del fichero a transmitir debe ser,


(END)

A lo que el controlador responde:


FIN DE LA CARGA

RECEIVE <prog> acepta el contenido de un fichero de reserva en el


formato generado por los comandos SEND. Acepta sólo un programa
e inserta su contenido al <prog> especificado. No afecta al resto de
programas y posiciones almacenados en la RAM de Usuario.

Notas: Si se esta usando ATS, se puede reservar y restaurar más fácilmente la


AM de Usuario utilizando el menú Backup Manager (Gestor de
Reservas).
Consultar el comando SEND.

Guía de Referencia ACL para Controlador-B 3-95


0404 Versión F2.28
REMOVE REMOVE
DIRECTO DIRECTO

Formato: REMOVE <prog>

Descripción: Borra un programa de usuario de la RAM de usuario y deja libre todo


el espacio asignado a ese programa.

El sistema pedirá verificación:

¿Está seguro? (si /no)

También se borran las variables locales asignadas a este programa.

Ejemplos: REMOVE PALET Borra el programa PALET.

3-96 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
RENAME RENAME
DIRECTO DIRECTO

Formato: RENAME <prog1> <prog2>

Descripción: Cambia el nombre del programa de usuario de <prog1> a <prog2>.

Si el nombre <prog2> ya existe, el comando no se ejecuta, y aparece


un mensaje de error:

<prog2> ya existe

Una vez cambiado un nombre de programa, ya no existe el nombre


original <prog1>.

Ejemplos: RENAME PAL NEW El programa PAL se llama ahora NEW. El


programa PAL ya no aparece en la
lista del directorio.

Guía de Referencia ACL para Controlador-B 3-97


0404 Versión F2.28
RUN RUN
DIRECTO DIRECTO

Formato: RUN <prog> {<var>}

Donde: <prog> es un nombre de programa definido por el usuario,


y,<var> es una constante o variable definida por el usuario.

Descripción: Comienza la ejecución de una tarea a partir de la primera línea del


programa <prog>.

Cuando un programa de usuario encuentra un comando RUN <prog>,


ambos programas se ejecutan concurrentemente.

<Var> es la prioridad del programa, y va de 1 (la más baja) a 10 (la


más alta).

En la modalidad de EDICION, se puede asignar una prioridad


introduciendo una variable o bien con el comando PRIORITY, o bien
con el comando RUN. Si no se asigna prioridad, la prioridad del
programa se fija automáticamente por defecto en 5.

En modalidad DIRECTA, si no se especifica una prioridad al


introducir el comando RUN, el programa asume la prioridad por
defecto o la última fijada por los comandos PRIORITY o RUN. Si se
especifica prioridad, la prioridad por defecto del programa cambia al
nuevo valor.

Programas con la misma clasificación de prioridad se ejecutaran


concurrentemente.

Ejemplos: RUN DEMO El programa DEMO se ejecuta en la prioridad


por defecto.

RUN IOS 9 El programa IOS se ejecuta en prioridad 9.

3-98 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
S S
EDITOR EDITOR

Formato: S {<línea n>}

Descripción: Un comando utilizado durante la edición de programas de usuario.

Se Desplaza el editor a la primera línea del programa actualmente


editado.

S <línea n>Desplaza el editor a la línea especificada.

Guía de Referencia ACL para Controlador-B 3-99


0404 Versión F2.28
SENDCOM SENDCOM
EDITOR EDITOR

Formato: SENCOM<n> <var>

Donde: <n> es un puerto RS232 de comunicaciones, 1<=n<=8


<var> es una variable o constante

Descripción: Envía un byte a través del puerto RS232 especificado.


El valor del byte se especifica por una variable o por una constante.

Ejemplo: PROGRAMA ESC

DEFINE I
CLRCOM 2
FOR I=1 TO 5
SENCOM 2, 27
DELAY 20
ENDFOR
END

Este programa borra el buffer del puerto 2 y


envía el valor 27 (código <esc> de ASCII) 5
veces por ese puerto.

3-100 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
SEND SEND
DIRECTO DIRECTO

Formato: SEND
SEND <prog>
SENDPROG
SENDVAR
SENDPOINT
SENDPAR

Donde: <prog> es un programa definido por el usuario.

Descripción: Los comandos SEND producen listas en un Formato compatible con


los comandos APPEND y RECEIVE. La transmisión de una lista
creada por SEND a un ordenador host produce una copia de reserva
de los datos.

SEND Produce una lista de todos los programas de


usuario, variables, puntos, parámetros y
asignaciones en un Formato compatible con
RECEIVE y APPEND.

SEND sirve para crear una reserva completa


de la RAM de Usuario.

SEND <prog> Produce una lista del programa de usuario


especificado en un formato compatible con el
comando RECEIVE <prog>.

SENDPROG Produce una lista de todos los programas de


usuario, cabeceras de programas de usuario,
variables de usuario y posiciones de usuario en
un formato compatible con RECEIVE y
APPEND.

Hace una reserva completa de los programas


de usuario con excepción de parámetros del
sistema.

SENDVAR Produce una lista de todas las variables


definidas por el usuario en un formato
compatible con RECEIVE y APPEND.

SENDPOINT Produce una lista de todas las posiciones


definidas por el usuario, en un formato
compatible con RECEIVE y APPEND.
Guía de Referencia ACL para Controlador-B 3-101
0404 Versión F2.28
SENDPAR Produce una lista de todos los parámetros del
sistema, en un formato compatible con
RECEIVE y APPEND.

Después de introducir el comando SEND, el controlador empieza a


transmitir datos. Cuando llega al final de la lista, transmite la línea:

(END)

(Para obtener instrucciones exactas sobre el envío y recepción de


ficheros, consultar la documentación del terminal).

Nota: Si se esta usando ATS, se puede reservar y restaurar más fácilmente la


RAM de Usuario utilizando el menú Gestor de Reservas.

3-102 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
SET SET
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SET <var1> = <var2>


SET <var1> = NOT <var2>
ET <var1> = COMPLEMENT <var2>
SET <var1> = ABS <var2>
SET <var1> = <var2> <oper> <var3>
SET <var1> = PVAL <pos> <eje>
SET <var1> = PVALC <pos> <coord>
SET <var1> = PSTATUS <pos>

Donde: <var1> <var2> y <var3> son constantes o variables definidas


por el usuario;
<oper> es algo de lo siguiente: + - * / COS SIN TAN ATAN
EXP LOG MOD AND OR;
<pos> es una posición definida por el usuario;
<eje> es un número de eje;
<coord> es una coordenada cartesiana: X, Y, Z, P o R.

Descripción:

1. SET <var1> = <var2>

Asigna el valor de <var2> a <var1>

2. SET <var1> = NOT <var2>

Asigna el valor lógico negativo de


<var2> a <var1>.
Si <var2> _0, entonces <var1> =
1;
Si <var2> > 0, entonces <var1> =
0.

3. SET <var1> = COMPLEMENT <var2>

Asigna el valor complementario de


eje de <var2> a <var1>.
Se toma el valor de <var2>, se
invierte individualmente cada bit y
el resultado se asigna a <var1>.

4. SET <var1> = ABS <var2> Pone el valor absoluto de <var1> a


<var2>

5. SET <var1> = <var2> <oper> <var3>


Guía de Referencia ACL para Controlador-B 3-103
0404 Versión F2.28
Donde <oper> es algo de lo Se ejecuta la función matemática
siguiente: +,-,*,/,MOD: de <var2> y <var3> y se
almacenan los resultados en <var1>.

Donde <oper> es, AND, OR: La operación del bit AND/OR se


ejecuta en <var2> y <var3> y
el resultado se almacena en
<var1>.

Aviso! Antes de realizar cualquier función trigonométrica o logarítmica,


debe leer cuidadosamente esta descripción. El controlador es una máquina
de valores enteros y los valores fraccionarios deben convertirse a valores
enteros.

Donde <oper> es una función <var2> actúa como un


trigonométrica: COS, SIN multiplicador y <var3> esta en
TAN. grados:
La función trigonométrica de
<var3> se computa y después se
multiplica por <var2>. Hay que
recordar que el controlador utiliza
aritmética integral, así que el
multiplicador debe ser lo
suficientemente grande para dar la
precisión esperada.

Donde <oper> es una de El valor de <var3> se divide


las funciones: por 10000 antes de ejecutar
ATAN, EXP, LOG el cómputo. El resultado se
multiplica por <var2>.

El resultado de la función
ATAN se expresa en radianes.

6. SET <var> = PVAL <pos> <eje>

Asigna a <var> el valor de mixtas del eje


especificado en la posición especificada.

7. SET <var1> = PVALC <pos> <coord>

Asigna a <var1> una de las coordenadas


cartesianas de la posición especificada.

<Pos> debe ser posición de robot (grupo A).


<Coord> puede ser algo de lo siguiente:
X,Y,Z,P,R

X,Y,Z se especifica en décimas de milímetro.

3-104 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
P (de paso) y R (de giro) se especifican en
décimas de grado.

8. SET <var1> = PSTATUS <pos>

Asigna a <var1> un valor de acuerdo con el


estado de la posición especificada.

Estado de Posición Código

Ubicación no definida 0
Posición fija 1
Relativa por mixtas a otra posición 2

Relativa por compensación cartesiana


a otra posición 3

Relativa por mixtas a la posición


actual 12

Relativa por XYZ (compensación cartesiana)


a la posición actual 13

Ejemplos: SET A=B

SET A=NOT B Si B es 0 entonces A se pone a 1;


para cualquier otro valor distinto de B,
A se pone a 0.

SET A=COMPLEMENT B

Si B es 0, entonces A se pone a -1.

SET A=ABS B Si B es -1, entonces A se pone a 1.

SET A=B AND C Si B o C son 0, entonces A se pone a 0;


Si ni B ni C son 0, entonces A se pone a 1.

SET A=1000 COS 60

COS 60 = 0,5; Multiplicar por 1000; A se pone a 500.

SET ST=PSTAT P1
Si P1 es una posición fija, entonces a ST se
le asignaran valor de 1.

SET y Variables del Sistema

Guía de Referencia ACL para Controlador-B 3-105


0404 Versión F2.28
Formato: SET ANOUT [<eje>] = <DAC>

Descripción: Pone el valor de salida analógica del eje especificado en <DAC>. -


5000≤DAC≤5000.

Se usa para control de circuito abierto.

Aviso! Usar con cuidado para evitar daños en el motor.

Formato: SET OUT [<n>] = <estado>

Descripción: Fija el estado de la puerta de salida especificada.


<estado> = 1 (ON) _0 (OFF).

Formato: SET <var> = TIME

Descripción: Pone el valor de <var> en TIME.

TIME es una variable de sistema que se expresa en tics de 10


milisegundos a partir del momento de la activación del controlador.

3-106 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
SETP SETP
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SETP <pos2> = <pos1>

Donde: <pos2> y <pos1> son posiciones definidas por el usuario.

Descripción: Copia el valor de <pos1> en <pos2>. Ambas posiciones tienen ahora


los mismos valores de ubicación.

Este comando es útil para preparar <pos2> de forma que se pueda


utilizar el comando SETPV para cambiar un valor de esa posición.

Ejemplos: SETP POINT=PLACE

Se asigna a la posición POINT los valores de coordenadas y el tipo de


posición de la posición PLACE.

DEFINE I
FOR I =1 TO 100
SETP &A[I] = A[I]
ENDFOR

Guía de Referencia ACL para Controlador-B 3-107


0404 Versión F2.28
SETPV SETPV
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SETPV <pos>(sólo DIRECTO)

SETPV <pos> <eje> <valor>

Descripción: SETPV <pos> (similar al comando TEACH).

Fija la ubicación de la posición utilizando


valores mixtos (unidades de codificador) para
cada eje. Se pide la introducción de valores de
todos los ejes en la posición especificada.

SETPV P
1--[2388] >
2--[22857] >
3--[68120] >
4--[21510] >
5--[20825] >
Done.

El valor entre corchetes es el valor anterior


utilizado para fijar una posición. La pulsación
de <ENTER> confirma el valor actual.

Si la posición solicitada no es válida, aparece


el siguiente mensaje:

BAD POINT COORDINATE


(malas coordenadas del punto)

SETPV <pos> <eje> <val>

Este comando esta pensado sólo para


modificar posiciones. Permite cambiar el valor
codificador
de un eje en una posición registrada.

Si se quiere que un programa cree una nueva


posición, introducir un comando HERE para
registrar una posición fija. Pueden fijarse
entonces los valores de todos los ejes.

SETPV <pos> <eje> <valor> no avisa de


coordenada de punto inválida hasta que prueba
y no lo alcanza.
3-108 ACL para Controlador-B Guía de Referencia
Versión F2.28 0404
Ejemplos: SETPV PS 3 1000 Fija el valor del eje 3 en la posición PS en
1000.

HERE PQ
SETPV PQ 1 590
SETPV PQ 2 300
SETPV PQ 3 200
SETPV PQ 4 100
SETPV PQ 5 400

Guía de Referencia ACL para Controlador-B 3-109


0404 Versión F2.28
SETPVC SETPVC
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SETPVC <pos> <coord> <valor>

Donde: <pos> es una posición de robot (grupo A) definida por el


usuario.
<coord> es una coordenada cartesiana: X,Y,Z,P o R
<valor> esta en décimas de milímetro (XYZ) o grado (P,R).

Descripción: Este comando esta pensado sólo para modificar posiciones. Permite
cambiar una coordenada cartesiana en una posición previamente
registrada con el comando SETPV.

SETPVC es al comando TEACH lo que


SETPVC <pos> <eje> <valor> es para el comando SET <pos>.

SETPVC no avisa de una coordenada de punto inválida hasta que


prueba y no lo alcanza.

Ejemplos: SET XV=1000


FOR I=1 TO 20
SETP V[I]=START
SETPVC V[I] X XV
SET XV=XV + 100
ENDFOR

3-110 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
SHIFT / SHIFTC SHIFT / SHIFTC
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SHIFT <pos> BY <eje> <valor>

SHIFTC <pos> BY <coord> <valor>

Donde: <pos> es una posición definida por el usuario;


<pos> para SHIFTC debe ser una posición de robot (Grupo A).
<eje> especifica el número de eje;
<coord> especifica la coordenada cartesiana: X,Y,Z,P o R.
<valor> para SHIFTC es en décimas de un mm (X,Y,Z) o un grado
(P,R).

Descripción: Cambia la ubicación de posición del eje o coordenada dados en el


valor especificado.

SHIFT: coordenadas mixtas.

SHIFTC: coordenadas cartesianas.

Ejemplos: SHIFTC OBJ1 BY Z 1000

Cambia la posición OBJ1 hacia arriba en 100 mm.

Guía de Referencia ACL para Controlador-B 3-111


0404 Versión F2.28
SHOW SHOW
DIRECTO DIRECTO

Formato: SHOW DIN

Descripción: Se presenta el estado de las 16 entradas individuales en el Formato


siguiente:

>SHOW DIN
1 -> 16: 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0
O.K.

Formato: SHOW DOUT

Descripción: Presenta el valor de todos los codificadores cada 0,5 segundos en el


Formato siguiente:

enc1 enc2 enc3 enc4 enc5 enc6 enc7 enc8


1000 1000 1000 2371 2371 100 100 1000

Los valores actualizados continuarán destellando hasta que se pulse


<CTRL+C>.

Formato: SHOW DAC <n>

Donde: <n> = número de eje, 1 _<N> _1.

Descripción: Presenta el valor DAC para el eje especificado en milivoltios.

>SHOW DAC 7
DAC 7=0
O.K.

Formato: SHOW PAR <n>

Descripción: Presenta el valor del parámetro de sistema <n>

>SHOW PAR 261


PAR 261=10
O.K.

3-112 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
Formato: SHOW SPEED

Descripción: Muestra los ajustes de velocidad actuales.

• Velocidad Lineal: afecta a los comandos MOVEL(D),


MOVEC(D) y Lineal SPLINE(D).
• Velocidad Joint: MOVE(D), MOVES(D) y Joint SPLINE(D)
• Programa: velocidad leída en un programa
• Manual: velocidad seleccionada manualmente desde la botonera o
desde el teclado.

Ejemplos: >SHOW SPEED


Linear Speed (mm/sec) Program Manual
--------------------------------------------------------------------
500 500.000

Joint Speed (%) Program Manual


Group A 50 50
Group B 50 30
Axis 9 100 30

En la siguiente tabla se describe como se determinan los ajustes de la velocidad.

Velocidad Lineal: Programa Velocidad Lineal : Manual


Definida por el comando SPEEDL
var en modo DIRECTO.
Definida por el comando SPEEDL Se muestra en mm/seg.
var en modo EDITOR Definida desde la Botonera con el
Se muestra en mm/seg. comando SPEEDL en modo XYZ
(introducida como un porcentaje de la
velocidad lineal máxima).
Se muestra en mm/seg.
Velocidad Joint: Programa Velocidad Joint: Manual
Definida por el comando SPEED var
en modo DIRECTO
Definida por el comando SPEED var Se muestra como un porcentaje de la
en modo EDITOR velocidad máxima.
Se muestra como un porcentaje de la Definida desde la Botonera con el
velocidad máxima. comando SPEED en modo Joint
(introducida como un porcentaje de la
velocidad joint máxima).
Se muestra como un porcentaje de la
velocidad máxima

Nota: Ver comandos SPEED y SPEEDL.

Guía de Referencia ACL para Controlador-B 3-113


0404 Versión F2.28
SPEED SPEED
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SPEED{A/B} <var>


SPEEDC <var> <eje>
Var es una variable o una constante.

Descripción: Fija el valor de velocidad de los movimientos MOVE, MOVES y


SPLINE en joint. La velocidad se especifica en porcentajes. La
velocidad máxima es 100; la mínima es 1. La velocidad por defecto es
50.

Se puede fijar la velocidad de todos los ejes utilizando el comando


SPEED. Se puede fijar la velocidad de un grupo específico o de un eje
del grupo C utilizando los comandos SPEEDA, SPEEDB o SPEEDC.

Los comandos de movimiento que no incluyen un argumento tiempo


se ejecutan de acuerdo con el ajuste de velocidad.

Ejemplos: SPEED 60

SPEEDA 30

Nota: Para visualizar los ajustes de velocidad actuales, teclear:

SHOW SPEED

3-114 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
SPEEDL SPEEDL
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SPEEDL var


Donde: var es una variable expresada en micras o
Una constante expresada en milímetros.

Descripción: SPEEDL fija solamente la velocidad del robot (grupo A).

Define la velocidad de los movimientos lineales y circulares del robot (


MOVEL, MOVEC, SPLINE lineal) en milímetros por segundo.

Los movimientos que no incluyen el argumento de la duración se


ejecutan a la velocidad programada en SPEEDL.

En modo DIRECTO, el comando SPEEDL toma efecto inmediatamente.


Determina la velocidad de movimiento cuando se ejecutan los comandos
MOVEL, MOVEC y SPLINE Lineal en modo DIRECTO.

En modo EDITOR el comando SPEEDL toma efecto después de que es


ejecutado dentro de un programa. Determina la velocidad de movimiento
cuando se ejecutan, dentro de un programa, los comandos MOVEL(D),
MOVEC(D) y Lineal SPLINE.
Para ver el estado actual de los ajustes de velocidad ejecutar SHOW
SPEED.

Ejemplo: SET VARSP 12000

Ajusta la velocidad lineal/circular de movimientos del grupo A a


12mm/seg.

SPEEDL 12.000

Ajusta la velocidad lineal/circular de movimientos del grupo A a


12mm/seg.

SPEEDL 12

Ajusta la velocidad lineal/circular de movimientos del grupo A a


12mm/seg.

Notas: Ver los comandos MOVE(D), MOVES(D), SPLINE(D), SPEED y


SHOW SPEED.

Guía de Referencia ACL para Controlador-B 3-115


0404 Versión F2.28
SPLINE/SPLINED SPLINE/SPLINED
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SPLINE pvect n1 n2 [duración]

SPLINED pvect n1 n2 [duración] (sólo en modo EDITOR).

Donde: pvect es un vector de posiciones


N1 es el índice de la primera posición
N2 es el índice de la última posición.

Descripción: SPLINE mueve los ejes a través o cerca de cualquier número de


posiciones consecutivas de un vector, desde 1a n2, sin
pausas y con un movimiento suave y continuo.

SPLINED los mismo que SPLINE excepto que el comando siguiente


a SPLINED no será ejecutado hasta que el robot haya
conseguido llegar a la última posición (como en un
comando MOVED).
Todas las posiciones del vector deben ser del mismo tipo; o absolutas
en Joint o absolutas en XYZ.

Los comandos SPLINE generan un suave movimiento del robot a


través o cerca de los punto del vector, desde n1 a n2. La trayectoria es
calculada de tal manera que la velocidad y la aceleración se mantienen
dentro de los límites de seguridad, de acuerdo con el parámetro 180+
eje (velocidad máxima) y 520 + eje (aceleración máxima). A bajas
velocidades, la trayectoria pasa a traves de las posiciones del vector. A
altas velocidades la trayectoria “redondea” para mantener la
aceleración dentro de los límites.

La velocidad de movimiento entre dos posiciones consecutivas es


constante.

La Duración esta definida en centésimas de segundo. Comandos que


no disponen del argumento de duración, son ejecutados de acuerdo
con los ajustes de SPEED o SPEEDL.

SPLINE/SPLINED puede ser ejecutado solamente por el robot o por


un multieje, grupo A o grupo B. El comando no es aplicable a ejes
simples.
La trayectoria de SPLINE esta determinada por el tipo de posiciones
contenidas en el vector.

Joint SPLINE
3-116 ACL para Controlador-B Guía de Referencia
Versión F2.28 0404
La trayectoria será Joint (ejes) SPLINE si el vector contiene
posiciones Absolutas por Joint .

Si no se especifica duración la velocidad vendrá definida por SPEED.

La trayectoria va por las posiciones con movimientos en Joint (como


en un comando MOVE). La velocidad se mantiene constante durante
el movimiento, excepto la aceleración y deceleración al comienzo y
fin del movimiento.

Este tipo de SPLINE da el movimiento más rápido posible.

Es útil para aplicaciones que requieren una trayectoria suave y rápida,


tal como operaciones de paletizado.

SPLINE Lineal

La SPLINE lineal se utiliza cuando las posiciones del vector son


Absolutas en XYZ.

Sólo aplicable al robot (grupo A).

Si no se especifica duración la velocidad vendrá definida por


SPEEDL.

La trayectoria va a través de las posiciones en movimientos lineales


(como en un comando MOVEL). La velocidad lineal del TCP del
robot (punto central de la herramienta) se mantiene constante, excepto
la aceleración y deceleración al comienzo y fin del movimiento.

La trayectoria Lineal SPLINED es útil para aplicaciones como la


soldadura, pintura, pegado, etc..

Guía de Referencia ACL para Controlador-B 3-117


0404 Versión F2.28
STAT[US] STAT[US]
DIRECTO DIRECTO

Formato: STAT
STATUS

Descripción: Presenta el estado de los programas de usuario activos. La lista


incluye prioridad del programa y estado de operación.

Un programa se reportará como "pendiente" si esta esperando que se


complete un movimiento.

Ejemplos: STAT>

Nombre prioridad estado posición

BOOM 5 DELAY 3:DELAY


DEMO 5 PEND 15:MOVED
OC 5 DELAY 312:HERE

3-118 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
STOP STOP
EDITOR EDITOR

Formato: STOP {<prog>}

Descripción: STOP Aborta todos los programas en ejecución y detiene el


movimiento de todos los ejes.

STOP <prog>Aborta sólo la ejecución del programa específico.

Ejemplos: STOP

STOP DEMO

Guía de Referencia ACL para Controlador-B 3-119


0404 Versión F2.28
SUSPEND SUSPEND
DIRECTO/EDITOR DIRECTO/EDITOR

Formato: SUSPEND <prog>

Descripción: Suspende la ejecución del programa especificado.

El programa completa el comando que esta ejecutando actualmente, y


después va a la suspensión.

Un programa suspendido puede continuarse desde el punto de


suspensión utilizando el comando CONTINUE.

Ejemplos: SUSPEND DEMO

Nota: Ver comando CONTINUE.

3-120 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
TEACH TEACH
DIRECTO DIRECTO

Formato: TEACH <pos>

Donde: <pos> es una posición de robot definida por el usuario (grupo


A).

Descripción: Fija en coordenadas cartesianas la ubicación actual de los ejes en


<pos>. El controlador pide todos los valores.

Los valores X,Y,Z son en décimas de milímetro, mientras que los


valores de paso (P) y giro (R) son en décimas de grado.

El valor entre corchetes es el valor previamente utilizado para instruir


(teach) una posición.
La pulsación de <Enter> confirma el valor actual.

TEACH PP
X -- [200.000] >
Y -- [0.00] >
Z -- [340.000] >
P -- [-0.900] >
R -- [0.00] >

Las coordenadas Cartesianas están definidas en milímetros. Pitch y


Roll (P,R) están definidas en grados.
El valor mostrado entre corchetes es el valor último introducido. Si no
se ha introducido ningún valor aparece [.].

Pulse <Enter> para aceptar el valor entre corchetes o introduzca un


nuevo valor.

Si la posición introducida no es válida, aparece el siguiente mensaje:

BAD POINT COORDINATE

Nota: Ver el comando SETPV.

Guía de Referencia ACL para Controlador-B 3-121


0404 Versión F2.28
TEACHR TEACHR
DIRECTO DIRECTO

Formato: TEACHR <pos2> {<pos1>}

Descripción: Registra en coordenadas cartesianas la ubicación de <pos2> relativa a


otra posición.

Si <pos1> no se especifica, <pos2> será relativa a la posición actual


del robot.
Si se especifica <pos1>, <pos2> es relativa a <pos1>.
Cuando se desplaza <pos1>, <pos2> se desplaza
correspondientemente.
Los valores X,Y,Z son en décimas de milímetro, mientras que paso
(P) y giro (R) son en décimas de grado.

Ejemplos: TEACHR OVER TABLE

X [0] > La posición OVER estará 200 mm


Y [0] > verticalmente
Z [0] > 2000 por encima de la posición TABLE y será
P [0] > relativa a esta
R [0] > .

3-122 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
TEST TEST
DIRECTO DIRECTO

Formato: TEST

Descripción: Ejecuta un programa de pruebas de hardware interactivo.

TEST comprueba el servo circuito de control desplazando todos los


ejes definidos. Si falla un eje, aparece un mensaje:

TEST FAILURE AXIS <n> (Fallo del eje n )

Este mensaje también se da cuando los ejes definidos no existen


realmente, o cuando A y B no esta conectados.

Tras terminar el servo test, TEST activa todas las salidas y después las
desactiva.

Después TENTER entra en modalidad interactiva. Rastrea las entradas


y para cada entrada activada (ON), TEST fija la salida
correspondiente.

El comando A (Abortar) es la única forma de detener el programa


TEST.

Guía de Referencia ACL para Controlador-B 3-123


0404 Versión F2.28
TON / TOFF TON / TOFF
DIRECTO DIRECTO

Formato: TON {<n>}


TOFF {<n>} 0 ≤ n ≤ 12

Descripción: TON Activa la protección térmica del motor en todos los ejes o en un
eje específico.

TOFF Desactiva la protección térmica del motor en todos los ejes o en


un eje específico.

El sistema pide la confirmación de COFF.

Nota: Aviso! Cuidado en modalidad TOFF. Los motores no están


protegidos por ninguna protección de software.

3-124 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
TOOL TOOL
EDITOR/DIRECTO EDITOR/DIRECTO

Formato: TOOL lenght offset angle

Donde: lenght es la distancia desde el flanco al TCP, en micras


offset es la distancia desde el eje de simetría del flanco al
TCP; definido en micras.
angle es el ángulo del TCP relativo a la posición horizontal
cuando la unión 4 esta horizontal (ERIX y MK2) y el
Roll es 0 (todos los robots); definido en milésimas de
grado.
Lenght, offset y angle pueden ser variables o constantes.

Descripción: TOOL define la posición del elemento terminal con respecto al flanco del
robot. Los comandos de movimiento MOVEC, MOVEL, SPLINE Lineal
y los movimientos lineales desde la botonera se ejecutan de acuerdo al
TCP del robot (punto central de la herramienta).

Guía de Referencia ACL para Controlador-B 3-125


0404 Versión F2.28
Ejemplo: GOBAL L O A
SET L= 200000
SET O= 75350
SET A= 45350
TOOL L O A

Longitud es de 200 mm; offset de 75.35 mm. ; ángulo es de 45.3º.

Nota: El comando TOOL fija los valores de los parámetros 308, 309 y 310.

3-126 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
TRIGGER TRIGGER
EDITOR EDITOR

Formato: TRIGGER <prog> BY IN/OUT <n> {<estado>}

Donde: <prog> es un nombre de programa definido por el usuario.


<n> es el índice I/O, 1 ≤<n> ≤16
<estado> es 1 (ON) ó 0 (OFF).

Descripción: Ideal para respuestas sensoriales, el comando TRIGGER comienza la


ejecución de <prog> cuando se pone en <estado> la entrada o salida
específica.

Si se omite el <estado>, la ejecución de <prog> comienza tan pronto


como la I/O especificada cambia sus estado.

TRIGGER es un comando de una sola pasada. Ejecuta un programa


una sola vez. Se debe repetir el comando TRIGGER para reactivar el
programa.

Ejemplos: TRIGGER DRILL BY IN 15 1

Comienza DRILL cuando se activa la Entrada


15.

TRIGGER TAKE BY OUT 8

Comienza TAKE cuando la Salida 8 cambia


de estado.

Guía de Referencia ACL para Controlador-B 3-127


0404 Versión F2.28
UNDEF UNDEF
DIRECTO DIRECTO

Formato: UNDEF <pos>

UNDEF <pvect>

Descripción: Inicializa los valores de posición. Las posiciones todavía están


definidas, pero sus valores de ubicación ya no están asignados.

Si se especifica un <pvect>, se inicializan los valores de todas las


posiciones en el vector.

Este comando es útil con el comando APPEND ya que APPEND


puede asignar un valor a una posición definida sólo cuando no tiene ya
un valor de ubicación asignado.

Ejemplos: UNDEF VECTV[5] Borra el valor de la posición 5 del vector


VECTV.

UNDEF VECTV Borra los valores de todas las posiciones del


vector VECTV.

Nota: Este es un comando de definición. Cuando se escribe, se ejecuta el


comando pero no crea línea de programa, ni en modalidad de
EDICION.

3-128 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
VER VER
DIRECTO DIRECTO

Formato: VER

Descripción: Presenta la versión y fecha de creación de la EPROM.

Ejemplos:> VER
-- ESHED ROBOTEC --
VERSION: 1.32
DATE: 10/01/90

Guía de Referencia ACL para Controlador-B 3-129


0404 Versión F2.28
WAIT WAIT
EDITOR EDITOR

Formato: WAIT <var1> <cond> <var2>

Donde: <cond> puede ser, <,>,>=,<= _=

Descripción: La ejecución del programa se suspende hasta que la condición


especificada sea verdadera.

Cuando un programa esta esperando que una entrada alcance un


estado específico, este comando resulta muy útil, ya que WAIT usa
muy poca potencia del CPU mientras espera un acontecimiento.

Ejemplos: WAIT IN[J]=1 Espera hasta que la Entrada J esta ON.

WAIT X<Y

3-130 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
ZSET ZSET
DIRECTO DIRECTO

Formato: ZSET

Descripción: Inicializa el impulso de índice de los encoders, poniédo a cero todos


los parámetros en el rango 420 + eje.

El comando debe ejecutarse antes de realizar Home, cuando se realiza


algún mantenimiento de los encoders o de componentes mecánicos.

Guía de Referencia ACL para Controlador-B 3-131


0404 Versión F2.28
* *
EDITOR EDITOR

Formato: * <comentario de usuario>

Donde <comentario de usuario> es una serie de hasta 40 caracteres y


espacios.

Descripción: Este no es un comando de ejecución. Simplemente permite incluir


comentarios en el texto del programa.

Ejemplos: *ESTE ES UN EJEMPLO DE COMENTARIO

***** PRINCIPIO DE PROGRAMA ******

*** *** F I N *** ***

3-132 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
@ @
EDITOR EDITOR

Formato: @<comando DIRECTO>

Donde <comando DIRECTO> es una serie escrita en Formato de


comando DIRECTO.

Descripción: Permite la ejecución de un comando DIRECTO desde un programa de


usuario en ejecución.

Para asegurarse de que se ejecuta el comando antes de que continúe el


Programa, introducir n comando de demora abreviado después de cada
comando @.

Ejemplos: @ SHOW DIN Cuando el programa alcanza esta línea de comando,


aparecerán los estados de todas las entradas.

@ ATTACH LOAD
DELAY 10
@ LISTPV POSITION
DELAY 10

Guía de Referencia ACL para Controlador-B 3-133


0404 Versión F2.28
<ALT>+M <ALT>+M
DIRECTO DIRECTO

Formato: <Alt> +M ó (∼)

Descripción: Activa y desactiva el control manual del robot desde el teclado.


Al pulsar , se activa la modalidad manual, y aparece el siguiente
mensaje:

MANUAL MODE!(modalidad manual)


JOINT MODE(modalidad ejes)

Esto indica que el controlador esta en modalidad manual de ejes.

Las teclas J y X cambian las coordenadas a sistemas ejes y cartesianos


(XYZ), respectivamente. Sin embargo, el control de teclado es
diferente si se activa la modalidad manual con el controlador en el
sistema de coordenadas XYZ, según denota el segundo grupo del
cuadro siguiente:

TECLA MOVIMIENTO DIRECCION

Mixtas: I/Q mueve base dcha./izda.


2/W mueve hombro arriba/abajo
3/E mueve codo arriba/abajo

4/R mueve muñeca paso arriba/abajo


5/T mueve muñeca giro dcha./izda.
6/Y abre/cierra pinza
7/U mueve eje 7 +/-
8/I mueve eje 8 +/-
9/O mueve eje 9 +/-
0/P mueve eje 10 +/-
-/[ mueve eje 11 +/-

XYZ: I/Q mueve X+/-


2/W mueve Y+/-
3/E mueve Z Z+/-

C/F Activa/desactiva los servo-ejes (CON/COFF)

S Permite ajustar la velocidad (speed)

Se desactiva la modalidad manual pulsando <Alt>+M. Esto es especialmente útil


cuando el teclado no incluye el carácter (∼) .

3-134 ACL para Controlador-B Guía de Referencia


Versión F2.28 0404
CAPITULO 4
Elementos Predefinidos del Sistema
Además de los comandos y datos, ACL tiene un número de elementos del
sistema predefinido que se usan durante la programación y operación del
sistema robótico.

Procedimientos Internos del Sistema


HOME
El procedimiento de HOME (REFERENCIA), consiste en la búsqueda del
microinterruptor de referencia de todos los ejes del robot.
Este procedimiento es activado bien ejecutando el comando de ACL
HOME, o pulsando, desde la botonera de enseñanza RUN 0.
Si el robot en la configuración del controlador esta definido como tipo cero,
se debe usar el comando HOME n o HHOME n para cada eje individual.
Para los ejes del grupo B y C también se debe hacer home individualmente a
cada eje (HOME ó HHOME).
Referirse al capítulo 3 para mayor detalle.

TEST
El procedimiento TEST ejecuta una rutina de comprobación hardware.
Esta rutina se activa bien ejecutando el comando TEST o tecleando RUN
999 desde la botonera de enseñanza.
Referirse al capítulo 3 para mayor detalle.

Guía de Referencia ACL para Controlador B 4-1


0404 Versión 2.28
Nombres de Programas Reservados
El ACL para el Controlador A tiene cinco nombres reservados para
programas de usuario: AUTO, BACK, CRASH EMERG y START. Estos
programas se crean y editan en modo EDIT, igual que cualquier otro
programa. Si existen estos programas se ejecutarán automáticamente cuando
ocurran unas determinadas condiciones.
AUTO
El programa AUTO se ejecuta automáticamente cuando el controlador se
enciende o resetea. Comandos que se sugiere introducir:
• Activación/desactivación de Entradas y Salidas.
• Asignación de vector de posiciones a la botonera (ATTACH).
• Ejecución de algún programa
Ejemplo:
PROGRAMA AUTO
HOME Cuando se enciende el controlador, el robot
DIMP PV[10] busca el HOME, se define un vector de 10
@ATTACH PV posiciones, se asignan a la botonera y se
DELAY 10 ejecuta el programa OPER
RUN OPER
END
BACKG
El programa BACKG se ejecuta automáticamente cuando el controlador se
enciende o se resetea y tan pronto como se libera el botón de
EMERGENCIA.
El programa BACKG es una rutina de protección que puede servir para
prevenir errores no intencionados que podrían dañar al sistema robótico.
BACKG corre continuamente y no se puede abortar por ninguna de las
siguientes maneras:
• Con el comando A (abortar)
• Cambiando el control a la baotonera.
• Ejecutando Home
Como BACKG no puede abortarse tan fácilmente como otros programas de
ACL, debe asegurarse de que BACKG no realizará ninguna acción
peligrosa.
Para abortar el programa BACKG, haga una de las siguientes cosas:
• Ejecute el comando A BACKG
• Utilice en un programa la línea STOP BACKG
• Pulse botón de EMERGENCIA.

4-2 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
Recuerde: al liberar el botón de EMERGENCIA automáticamente se ejecuta
BACKG.
Ejemplo:
El siguiente ejemplo asegura que un robot de pórtico se moverá entre dos
paredes de igual altura sin hacer contacto con ellas (ver zona de sombra en
la figura).

PROGRAM BACKG
LABEL 1
IF ANOUT [1] <> 0 Si ANOUT no es igual a 0, el grupo del eje
ANDIF ANOUT[2]<>0 no esta en modo COFF
ANDIF ANOUT[3]<>0
IF ENC[3] <UPL Si eje 3 es menor que la altura de la pared y
si el eje 3 esta demasiado cerca de la pared
IF ENC[1]>LWALL
izquierda o si el eje 3 esta demasiado cerca
FOR I=1 TO 3 de la pared derecha,
CLRBUF Para y desactiva todos los ejes
ENFOR
@COFF
ENDIF
ENDIF
DELAY 5
Comprueba otra vez, cada 50 mseg.
GOTO 1
END

Guía de Referencia ACL para Controlador B 4-3


0404 Versión 2.28
CRASH
El programa CRASH se ejecuta automáticamente cuando ocurre un impacto,
salta la protección software térmico o se da el error “velocidad demasiado
alta”. Se recomienda incluir en este programa:
• Activación/desactivación de E/S.
• Mensajes de alarma
Ejemplo:
PROGRAMA CRASH
* SALIDA 16 = TIMBRE DE ALARMA
SET OUT[16]=1
PRINTLN “ ROBOT PARADO”
PRINTLN “COMPROBAR Y CORREGIR PROBLEMA”
PRINTLN “REINICIAR APLICACION”
END
EMERG
El programa EMERG se ejecuta cuando se pulsa cualquier botón de
emergencia.
Se puede utilizar este programa para desactivar las entradas y salidas.

START
El programa START se ejecuta cuando se pulsa el botón de Start del panel
de control auxiliar.
Asegurarse de que el panel de control auxiliar esta correctamente conectado
al controlador y que esta correctamente configurado ver manual de ATS).
Ejemplo:
PROGRAM START
IF INPUT[10]=1
GOSUB PROG1 Tan pronto como se pulse el botón START
ELSE se comprueba el estado de la entrada 10. Si
GOSUB PROG2 la entrada esta activa, se ejecuta PROG1, si
esta desactivada se ejecuta PROG2
ENDIF
END

4-4 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
POSITION
POSITION es una posición definida del sistema, reservada para los valores
de coordenadas de la posición actual del robot.
POSITION se puede utilizar para leer los valores de las coordenadas de la
localización actual del robot y para asignar esos valores a variables o a otra
posición.
Ejemplos
• LISTPV POSITION Muestra los valores de las
coordenadas actuales
• SETP 100 = POSITION La posición 100 recibe los valores
e las coordenadas que tiene el
robot en ese instante. Equivalente
al comando HERE 100.
• SET var = PVAL POSITION 3 La variable var recibe el valor de la
coordenada, en pasos de encoders,
del eje 3 (codo).
• SET var[1] = PVALC POSITION X
SET var[2] = PVALC POSITION Y
SET var[3] = PVALC POSITION Z
SET var[4] = PVALC POSITION P
SET var[5] = PVALC POSITION R
Var[I] recibe el valor en coordenadas Cartesianas que tiene el robot en
ese momento.
Se puede cambiar la posición del robot usando POSITION como se muestra
en los siguientes ejemplos.
Atención ; el robot se moverá inmediatamente a la nueva POSICION; por lo
que se debe hacer con pequeños cambios de coordenadas.
• SHIFTC POSITION BY 2 100
• SHIFTC POSITION BY Z 0.5
• SETPV POSITION 1 80000
• SETPVC POSITION Y 5000

Guía de Referencia ACL para Controlador B 4-5


0404 Versión 2.28
Variables del Sistema
Las variables del sistema indican el estado de elementos de este como son
las entradas, salidas y otros elementos del sistema. Con estas variables se
pueden ejecutar comprobaciones y aplicaciones que requieren información
en tiempo real sobre elementos del sistema.
ACL tiene nueve variables de sistema:
IN[16] TIME ERROR
ENC[12] LTA ERRPR
HS[12] LTB ERRLI
ZP[12] MFLAG OUT[16]
CPOS[12] ANOUT[12]

Los índices indican la dimensión de los vectores de las variables.


Estas variables se pueden manejar de la misma manera que las variables de
usuario normales. Sin embargo estas variables no se pueden borrar y algunas
son sólo de lectura.
Los valores de las variables IN; ENC; HS, ZP, CPOS, LTA; LTB; TIME; y
MFLAG son actualizadas continuamente por el sistema , por lo que son
variables de sólo lectura.
IN[N]]
El valor de esta variable indica el estado de la correspondiente entrada.
El valor es actualizado en cada ciclo del microprocesador de acuerdo con el
estado de la entrada. Cualquier valor introducido en esta variable será
automáticamente sobrescrito.
Esta considerada como variable de sólo lectura.
n = índice de la entrada; puede ser una variable o una constante y no debe
exceder el número de entradas configuradas (16 por defecto).
Ejemplos
Propósito Comando Display Notas
Ver estado de la entrada PRINTLN IN[3] 1/0 Activada / Desactivada

Control de programa IF IN[I]=0


SET OUT[2]=1
ENDIF

4-6 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
ENC[n]]
El valor de esta variable indica el número de pasos de encoder del eje
especificado en la posición actual del robot.
El valor de la variable se actualiza cada paso de reloj con el valor de los
pasos de encoder del eje determinado. Se considera una variable de sólo
lectura.
n = índice del eje; puede ser una variable o una constante; no puede exceder
el número de salidas configuradas.
Ejemplos

Propósito Comando Display Notas


Ver el estado del encoder PRINTLN ENC[1] 0 a 6844 Pasos de encoder

Asignar el valor del encoder SET X = ENC[5] El valor del encoder 5 es


a una variable escrito en la variable X

HS[n]]
El valor de esta variable indica el estado del interruptor de Home del eje
especificado.
Es una variable de solo lectura.
N = es el índice del eje y puede ser una variable o una constante.
Ejemplos

Propósito Comando Notas


Utilizado durante el LABEL 1 En pantalla se mostrará el valor del micro
mantenimiento, reparación y de Home del eje 7
PRINTLN HS[7]
comprobación
DELAY 100
GOTO 1

Guía de Referencia ACL para Controlador B 4-7


0404 Versión 2.28
ZP[n]]
El valor de esta variable indica el estado del pulso índice del encoder (index
pulse) del eje especificado.
Es una variable de solo lectura.
N = es el índice del eje y puede ser una variable o una constante.
Ejemplos

Propósito Comando Display Notas


Utilizado durante el PROGRAM ZP
mantenimiento, reparación y
comprobación LABEL 1
VAR=ZP[1]
IF VAR=1 Ejecutar
simultáneamente el
PRINTLN VAR programa ZP y MOVE
STOP
Al contrario
ENDIF
que HS, el O ejecutar el programa
GOTO 1 ZP y mover el eje con la
valor de ZP botonera de enseñanza.
es siempre
PROGRAM MOVE 0 y cambia
a 1 cuando
SPEED 1 detecta el
LABEL 1 index pulse.
MOVE POS1
MOVE POS2
GOTO 1

CPOS[n]]
El valor de esta variable indica la posición de destino en pasos de encoder.
Es una variable de solo lectura.
N = es el índice del eje y puede ser una variable o una constante.
Ejemplos

Propósito Comando Display Notas


Para determinar el error de SET ERR= CPOS[1] – Se compara el valor de
posición del eje ENC[1] ENC y CPOS del eje 1.
82
PRINTLN ERR El error es de 82 pasos
de encoder.

4-8 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
TIME
Esta variable contiene el valor del reloj interno del controlador. Cuando el
controlador se enciende o se resetea el reloj se inicia a 0. Cada 10
milisegundos (tic) el reloj del controlador es incrementado en una unidad.
Es una variable de sólo lectura.
Propósito Comando Display Notas
Determinar la duración de PROGRAM TIME
un movimiento
SET TIMEA=TIME
MOVED POS99
SET TIMEA=TIME - TIMEA
PRINTLN “ TIEMPO = “
PRINT TIMEA “MSEG.”

OUT[n]]
El valor de esta variable esta determinado por el estado de la
correspondiente salida.
El valor de la variable es aplicado a la salida correspondiente cada ciclo de
reloj.
Es una variable de escritura/lectura.
n = índice de la salida; puede ser una variable o una constante; no puede
exceder el número de salidas configuradas (16 por defecto).
Ejemplos

Propósito Comando Display Notas


Ver el estado de la salida PRINTLN OUT[7] 1/0 Activada / Desactivada

Comprobar y cambiar el IF OUT[5]=0 Si la salida 5


estado del aparato conectado desactivada ( p. E. Una
a la salida SET OUT[5]=1 lámpara) activarla
ENDIF
Cambiar el estado de una SET OUT[15]=1 - OUT[5]
salida

Guía de Referencia ACL para Controlador B 4-9


0404 Versión 2.28
LTA y LTB
Los valores de estas variables indican el tiempo (reloj interno) en el cual el
grupo especificado de ejes alcanza la posición que se le ha ordenado
ejecutar.
LTA se aplica al grupo de ejes A y LTB al grupo de ejes B.
Estas variables se utilizan cuando los comandos MOVE, MOVEC y
MOVES son colocados en el buffer. Estas variables posibilitan entre otras
cosas la sincronización en células de trabajo: coger piezas de cinta de
transporte, sincronización de dos grupos de ejes, etc..
LTA y LTB son variables de sólo lectura.

Propósito Comando Display


Sincronizar la llegada de los PROGRAM SYNCR
ejes del grupo A y B
MOVE POSA5
POSA5, una posición de l
SET V=LTA-TIME
grupo A
MOVE POSB3 V
POSB3, una posición del
grupo B

4 - 10 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
MFLAG
El valor de esta variable indica qué ejes están en ese momento en
movimiento. Es una variable de sólo lectura.
Cuando un comando MOVE es ejecutado, los 32 bits de la variable MFLAG
cambian su valor de acuerdo con el siguiente esquema
Bit 1 (menos significativo) a 1 si eje 1 en movimiento.
Bit 2 a 1 si eje 2 en movimiento.
Bit 3 “
......
Bit 11 a 1 si eje 11 en movimiento.
....
Bit 32 (más significativo)

Los bits de 12 al 32 siempre están a cero.


Asumiendo que el controlador esta configurado con 5 ejes grupo A, una
servopinza en el eje 6, dos ejes grupo B y 3 eje en grupo C, el valor de
MFLAG indicará el movimiento según el siguiente diagrama.

Valor Bit 1 2 4 8 16 32 64 128 256 512 1024


Grupo Grupo A Pinza Grupo B Grupo C
Eje 1 2 3 4 5 6 7 8 9 10 11

Ejemplos

Propósito Comando Display Notas


Estado de movimiento de PRINTLN MFLAG 31 31=1+2+4+8+16
ejes
Todos los ejes del grupo
A en movimiento
Estado de movimiento de PRINTLN MFLAG 543 543=31+512
ejes
Todos los ejes del grupo
A y el eje 10 en
movimiento

Guía de Referencia ACL para Controlador B 4 - 11


0404 Versión 2.28
ERROR, ERRPR y ERRLI
Cuando ocurre algún error durante el funcionamiento, a estas variables se le
asigna un valor que indica el correspondiente error.
• El valor de ERROR indica el error específico. También se muestra un
mensaje de error.
• El valor de ERRPG indica la identidad del programa (número ID, como
con el comando DIR) que indica la tarea en la que ha ocurrido el error.
• El valor de ERRLI indica el número de línea en el que el error ocurrió.
Referirse al capítulo 5 para ver los mensajes de error.
La variable ERROR debe tener un valor inicial de cero. Es una variable de
escritura/lectura.
Ejemplo.

Propósito Comando Display Notas


Para identificar errores en PROGRAM MOVE Se ejecutan
tiempo de ejecución simultáneamente el
LABEL 1
programa MOVE y
MOVE POS66 ERROR
MOVE POS67
GOTO 1

PROGRAM ERROR
SET ERROR=0
SET ERRPG=0
SET ERRLI=0
*ESPERA UN ERROR
WAIT ERROR<> 0
53
PRINTLN “ERROR NO” ERROR Numero ID del error
7
PRINTLN “TAREA ID” ERRPG Número de tarea
PRINTLN “EN LINEA” ERRLI 144 Número de línea

4 - 12 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
ANOUT[n]]
Esta variable contiene el valor del DAC (convertidor analógico-digital) que
se esta aplicando al motor del eje especificado por el índice n.
El valor de ANOUT[n] se actualiza en cada paso de reloj.
Cuando se ejecuta el comando SET ANOUT, el servo control del eje esta
desactivado; COFF esta efectivo hasta que CON es activado.
ANOUT[n] es una variable de escritura/lectura.
N= índice del eje; puede ser una variable o una constante y no debe exceder
el máximo valor de ejes configurados.
El rango de los DAC esta entre -5000 a +5000.
¡Atención! Usar con cuidado para no dañar el motor.
Ejemplo.

Propósito Comando Display Notas


Para ver el valor actual del PRINTLN ANOUT[5] 2500 El DAC esta a la mitad
DAC de un eje de su máximo valor
Para ajustar el valor del SET ANOUT[1]=1000 Pone la salida analógica
DAC de un eje del eje 1 a 1000

Guía de Referencia ACL para Controlador B 4 - 13


0404 Versión 2.28
4 - 14 ACL para Controlador B Guía de Referencia
Versión 2.28 0404
CAPITULO 5
MENSAJES DEL SISTEMA
Este capítulo contiene un listado de mensajes que pueden aparecer en
pantalla durante la ejecución y programación en ACL.
Cuando ocurre un error las variables del sistema ERROR, ERRPG y ERRLI
reciben valores que indican, respectivamente, el tipo de error, el programa y
la línea de programa donde ocurrió el error. Cada una de estas tres variables
debe tener un valor inicial de cero.

(3) ACL – comando desconocido


El comando introducido no es reconocido como ACL

(4) SHOW – comando desconocido


El comando introducido después de SHOW no es reconocido como ACL

(6) Prg_name not found


El programa con el nombre especificado no se ha encontrado o no existe.

(12) No puedo borrar archivos mientras hay trabajos ejecutándose


Se ha intentado borrar un programa mientras otro programa se estaba
ejecutando. Se debe parar la ejecución de todos los programas antes de
borrar uno.

(17) Programa Prog esta ejecutándose


En modo DIRECTO, no se puede ejecutar un programa que ya se esta
ejecutando.

(18) Programa Prog ejecutándose. No se puede acceder al editor


Se ha intentado editar un programa mientras se esta ejecutando un programa.

(22) No se puede borrar constante o variable del sistema


No se puede borrar constantes o variables del sistema.

Guía de Referencia ACL para Controlador B 5 -1


0404 Versión 2.28
(24) TP modo Teach permitido. Todos los programas abortados.
El selector de Auto/Teach de la botonera se ha cambiado de Auto a Teach.
Por seguridad, todos los programas y movimientos se han abortado.

(33) ** LIMITE SUPERIOR EJE n


Durante un movimiento de un eje desde el teclado o desde la botonera, su
encoder a alcanzado el valor máximo permitido.
Mover el eje en la dirección contraria.

(34) *** LIMITE INFERIOR EJE n


Durante un movimiento de un eje desde el teclado o desde la botonera, su
encoder a alcanzado el valor mínimo permitido.
Mover el eje en la dirección contraria.

(35) Entrada o Salida debe estar desactivada antes de una operación de


FORCE
Antes de forzar una entrada o una salida, debe estar en modo DISABLE.

(36) Indice o valor no válido


[index or data error]
El comando tiene un valor incorrecto de índice.

(39) Número de argumentos incorrecto.


El comando tienen un número incorrecto de argumentos.

(40) No se puede hacer Hard Home del eje n


El eje especificado no esta configurado para hacer Hard Home.
Utilice el comando Home o compruebe el tipo de Home del eje.

(48) HELP – Comando desconocido


El comando introducido después de HELP no es reconocido
(51) *** FALLO de HOME en EJE n
La rutina de Home fallo en el eje indicado.
(1) el microinterruptor no ha sido encontrado
(2) el interruptor de motores esta desconectado
(3) fallo hardware en ese eje

5-2 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(52) *** ERROR de TRAYECTORIA
Este error afecta a la variable del sistema ERROR.
Durante el movimiento, el brazo llega hasta su límite de movimiento y el
sistema aborta el movimiento. Esto puede ocurrir cuando se ejecutan los
siguientes tipos de movimientos: lineal (MOVEL), circular (MOVEC),
MOVES y SPLINE. Como la trayectoria no se computa antes de ejecutarse,
el movimiento puede exceder los límites de trabajo.
Modifique las posiciones.

(53) *** IMPACT PROTECTION eje n


El controlador ha detectado un error de posición demasiado grande. El
sistema aborta todos los movimientos de ese grupo de ejes y los desactiva.
El programa de usuario CRASH, si existe, se ha ejecutado.
Posibles causas:
1) Un obstáculo impide el movimiento del eje n.
2) El fusible del eje n se ha fundido.
3) Fallo del encoder.
4) Fallo mecánico.
5) El eje no esta conectado
• Determinar y corregir el error de posición. Activar el servo control de
ejes (CON) y reinicializar el programa.

(54) *** OUT OF RANGE eje n


Un intento de grabar una posición (HERE) mientras el robot estaba fuera de
su campo de trabajo.
• Mover el robot dentro de su campo de acción y repetir la orden.

(55) *** THERMIC OVERLOAD eje n


Por medio de una rutina software de protección térmica del motor, se ha
detectado una condición peligrosa para ese motor. El robot aborta todos los
movimientos de los ejes de ese grupo. El programa CRASH, si existe, se
ejecuta. Causas posibles:
1) El brazo intenta alcanzar una posición que no puede acceder debido a un
obstáculo. La protección de impacto no se activa debido a que el
obstáculo esta muy cerca de la posición final. La realimentación integral
incrementará la corriente del motor sobrecalentándolo, por lo que se
activará la protección térmica.
2) Fallo en el eje correspondiente o el fusible se ha fundido.

Guía de Referencia ACL para Controlador B 5 -3


0404 Versión 2.28
3) El brazo del robot esta cerca de la posición final, pero no ha llegado
debido a un fallo del driver. El software detecta entonces una situación
anormal.
4) Los parámetros de Protección Térmica están mal seleccionados.
• Comprobar la posición, la tarjeta de control del eje y los parámetros.
Restablecer el servo control (CON) y repetir el movimiento.

(58) No puedo ejecutar Programa. Esperando una tarea ...


Demasiados programas se están ejecutando a la vez y no se puede ejecutar
otro. Posibles causas:
(1) Existen demasiados programas ejecutándose simultáneamente.
(2) Un programa se ejecuta indefinidamente a sí mismo.
(3) Un programa ejecuta otro programa en lazo cerrado.

(61) *** RUN TIME WARNING *** Triggered program not found.
Se ha intentado ejecutar un programa que no existe con TRIGGER.

(62) *** RUN TIME WARNING *** I/O inválida en comando trigger.
La entrada o salida especificada en el comando trigger no es válida.

(63) *** WARNIG *** var ya existe.


Se ha intentado definir una variable que ya existe.

(64) No existe suficiente memoria para el array.


El controlador no dispone de suficiente memoria para el array que se intenta
definir.
• Backup y Restore todos los programas, esto reajustará la localización
de la memoria.
• Teclear PURGE; se borrarán todas las variables no usadas.
• Backup programas. Configure el controlador para disponer de mayor
memoria disponible de variables y/o posiciones. Restore programas.

(69) TP desactivado modo Teach. Teclee Auto <Enter> para modo Auto.
Se ha cambiado, en la Botonera, de Teach a Auto. La botonera ya no esta
operativa.
Teclee Auto para reestablecer el control desde el teclado.

5-4 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(72) CONTRO DESACTIVADO
Los motores han sido desactivados del servo control. Posibles causas:
(1) se ha ejecutado COFF
(2) CON no ha sido ejecutado.
(3) Ha ocurrido un error previo ( impacto, error de trayectoria) y se ha
activado COFF.

(73) CONTROL ACTIVADO


Motores bajo servo control.

(74) No valores de coordenadas para posición.


La posición ha sido definida utilizando el comando DEFP pero sus
coordenadas no han sido grabadas todavía.

(75) Valores de coordenadas no válidos


La posición no ha podido ser grabada o alcanzada porque sus coordenadas
están fuera del campo de trabajo.

(76) *** WARNING *** Robot sin configuración.


Se ha intentado ejecutar un comando que indica la presencia de un robot. El
comando no se puede ejecutar porque el robot no ha sido configurado.

(77) ***WARNING*** Nombre de array truncado.


Durante la operación de restore, el controlador no tiene suficiente memoria
para restaurar el array y ha sido truncado.
• backup y Restore todos los programas, esto reajustará la localización
de la memoria.
• Teclear PURGE; se borrarán todas las variables no usadas.
• Backup programas. Configure el controlador para disponer de mayor
memoria disponible de variables y/o posiciones. Restore programas.

(78) Ejecutando configuración. Espere por favor...


Después de haber introducido los datos de configuración , el sistema se esta
inicializando.

Guía de Referencia ACL para Controlador B 5 -5


0404 Versión 2.28
(79) USER RAM CHECKPOINT ERROR!
INSTALLING DEFAULT SETUP
Reconfigura y recarga parámetros para el robot seleccionado.
Cuando se enciende el controlador, se comprueba la memoria RAM del
sistema. Si detecta un error el controlador borra toda la memoria y carga el
setup por defecto.
Posible causa: Batería

(85) Tarea no disponible. No puedo ejecutar programa.


En modo DIRECTO, el programa indicado por el comando RUN no se
puede ejecutar porque la memoria de tareas esta llena.

(86) Tarea Home ya esta activa.


Se ha intentado ejecutar Home cuando ya se estaba ejecutando.

(89) No puedo ejecutar movimiento XYZ en esa posición.


No se puede ejecutar ese movimiento lineal .

(92) La configuración actual incluye tarjeta auxiliar RS232.


Pulsar C<Enter> si se requiere reconfiguración inmediata.
El sistema esta configurado con tarjeta auxiliar RS232.
Si es así, simplemente espere.
Si no dispone de dicha tarjeta pulse C<Enter> y configure correctamente el
sistema. Si no lo hace, el sistema dará BUS ERROR.

(95) INDEX pulse not found n


No se ha detectado el impulso index del eje durante la rutina de Home.
Posibles causas:
(1) La distancia entre el interruptor de home y el index impulso ha
cambiado en el eje especificado, debido a un fallo mecánico o a labores
de mantenimiento (como cambio de motor, de correa del motor, etc..).
• Ejecute el comando ZSET. Vuelva a realizar Home.
(2) fallo del Index pulse
• Compruebe encoder y cableado.

5-6 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(98) Eje n no configurado para Home
Se ha intentado realizar Home en un eje cuya configuración indica que no
requiere Home.

(99) *** VELOCIDAD DEMASIADO RAPIDA en EJE n***


Este error afecta a la variable del sistema ERROR.
Posibles causas:
(1) El controlador ha detectado un movimiento que es demasiado rápido;
esto es, el desplazamiento requerido del encoder, calculado desde el
parámetro de velocidad límite , PAR 180+eje, es demasiado grande.
(2) Como la trayectoria no se calcula previamente en un movimiento lineal o
circular, puede causar que el movimiento de ejes sea demasiado rápido.
Límite la velocidad de movimiento.

(100) Out of memory – programs


El número de programas existentes ha llegado al máximo permitido por la
configuración.
Borre los programas no utilizados o reconfigure el controlador.

(101) Error de sintaxis


El comando tiene un error de sintaxis.

(102)variable(s) no definida.
La variable no se ha definido previamente.

(103) Argumento perdido


Falta argumento en el comando

(104) Programa no definido


No existe el programa

(105) Variable no definida – PRIORITY


La variable del comando no ha sido definida.

(106) Variable no definida – PEND/POST


La variable del comando no ha sido definida.

Guía de Referencia ACL para Controlador B 5 -7


0404 Versión 2.28
(109) OUT of memory – líneas de programa
Se ha llegado al límite de líneas de programa configuradas.

(110) Posición no definida, no grabada o en grupo incompatible.


[punto no encontrado]
No se puede acceder a la posición indicada:
1.- la posición no se ha definido.
2.- la posición no se ha grabado
3.- el comando indica un grupo que es incompatible.

(111) OUT of memory – variables


El número de variables definidas ha llegado al límite permitido por
configuración.
Utilice el comando PURGE o,
Reconfigure el controlador.

(112) Out of memory – grupo grupo posiciones


El número de posiciones del grupo especificado ha llegado al límite
permitido en la configuración.

(113) Nombre de posición no válida

(114) Primera variable no definida


No se ha definido la primera variable del comando.

(115) Segunda variable no definida


No se ha definido la segunda variable del comando.

(116) Variable no definida – SPEED


No se ha definido la variable utilizada en el comando SPEED.

(117) OUT of memory – strings


Número de comandos con strings (PRINT, * y @) ha llegado al límite
especificado en la configuración.

5-8 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(118) Argumento(s) no valido
El comando tiene un argumento no válido.

(119) Variable no definida (lazo contador) – FOR


La variable utilizada en el comando FOR no esta definida.

(120) variable no válida (lazo contador ) – FOR


No se puede utilizar una constante en este comando.

(121) Tercera variable no definida

(122) Variable no definido – TRIGGER

(123) Entrada/Salida no válida


Se ha intentado utilizar una entrada o salida no válida.

(124) Eje no válido o no definido


La variable utilizada para designar el eje no ha sido definida, o el eje no esta
configurado

(125) Nombre ya existente o eje no válido


Se ha intentado definir una posición cuyo nombre ya existe o
Se ha definido un eje no válido al definir una posición en el grupo C.

(126) Dimensión no válida


La dimensión del array (DIM, DIMG o DIMP) debe designarse con una
constante.

(127) Error de sintaxis – índex


falta alguno de los corchetes.

(128) Constante demasiado grande.


Superado el límite de una constante (999999999)

Guía de Referencia ACL para Controlador B 5 -9


0404 Versión 2.28
(129) Secuencia no válida en programa prog
El programa contiene un error lógico. Por ejemplo:
1.- Lazo no cerrado en bucle FOR
2.- IF sin ENDIF
3.- ELSE sin ENDIF

(130) Nesting too deep at line n


Demasiado anidamiento en rutinas FOR/ENDFOR o IF/ENDIF.

(131) Pérdida de IF para línea n

(132) Pérdida de IF para línea n

(133) Pérdida de FOR para línea n

(135) Número de Label (etiqueta) ya definido

(136) Operador perdido o no válido

(137) Argumento perdido- SPEED

(138) Nombre ya en uso

(139) Relative chain loops or exceeds 32 positions.


ACL permite que una posición sea relativa a otra posición en una cadena de
32 posiciones. Esta cadena de posiciones relativas deben partir de una
posición raíz absoluta.
Se ha intentado definir una posición relativa. El error puede ser:
1.- se ha intentado enseñar una posición relativa a sí misma
2.- se han anidado más de 31 posiciones relativas

(140) Nombre de variable no válido – demasiado largo

(142) Perdida de LABEL para GOTO en línea n

5-10 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(143) Error en comando de descarga, en línea n
Error mientras se restaura un programa.
1.- El archivo backup esta mal
2.- ha cambiado la configuración del controlador.

(144) Argumento no válido – demasiado largo

(145) Posición no definida o no es un vector

(146) *** WARNING *** nombre: nombre no válido

(147) Número de puerto no válido

(148) Para ejecutar acción - libera botón de emergencia

(149) No puedo cambiar parámetro - privilege

(150) Comando ignorado - privilege

(152) Entrada no válida para panel de control (parámetros 15/16)


Entrada fuera de rango

(153) No puedo ejecutar comando. TP debe estar en modo Auto

(154) Valor demasiado bajo - SPEED

(156) Velocidad lineal excesiva

(158) Velocidad excesiva o posiciones demasiado cercanas

(159) No espacio libre para insertar posición

(160) Insertar posición esta vacío, utilizar HERE o HEREC

Guía de Referencia ACL para Controlador B 5 -11


0404 Versión 2.28
(161) INSERT permitido solo si el nombre de posición comienza por &

(162) INSERT/DELETE no permitido para un eje sencillo

(163) Valor de índice - fuera de rango

(164) DELETE permitido solo si la posición empieza por &

(165) No puedo ejecutar comando si TP esta en modo TEACH

(201) Interruptor de motores esta apagado

(205) PROGRAMAS ABORTADOS

(206) ***WARNING ****


‘BACKG’ es un nombre reservado para rutina de Background
‘BACKG’ permanece activo a menos que EMERGENCIA este pulsado
‘BACKG’ no se puede abortar por A <Enter>

(301) Grupo/eje no ha sido referenciado (home)

(302) ARITHMETIC OVERFLOW


El resultado de una operación aritmética esta fuera de rango (o no es
válida).

(303) NO POSITION ASSIGNED TO POINT pos


La posición ha sido definida usando el comando DEFP, pero sus
coordenadas no han sido grabadas.
• Usar HERE u otro comando para asignar las coordenadas a la
posición.

5-12 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
(304) AXIS DISABLED
Ha intentado mover un eje no permitido. Posibles causas:
1) No se puede ejecutar un movimiento porque el servo control de los
ejes esta desactivado (COFF).
2) Un movimiento previo del brazo ha dado un error de Impacto o error
de Trayectoria desactivando el servo control.
• Comprobar los movimientos del robot y corregir el/los comandos.

(305) TOO DEEP NESTING


Demasiadas subrutinas- GOSUB - anidadas.

(306) INVALID PROGRAM


El comando RUN, GOSUB, TRIGGER no puede ser ejecutado por fallo
sintáctico o lógico en el programa. Por ejemplo el programa contiene un
comando IF sin su correspondiente ENDIF.

(309) INDEX OUT OF RANGE


Ha intentado usar un valor índice fuera de rango de un vector de
variables o de posiciones.

(310) BAD AXIS


El eje no esta en el grupo definido por el comando, eje no configurado,
eje fuera de rango, etc.

(311) LOOPING RELATIVE CHAIN OR DEPTH EXCEEDED 32 POINTS


Ha usado más de 32 puntos relativos unidos

(312) BAD POINT COORDINATE [pos]


Ha intentado usar una posición no válida. Por ejemplo, una posición
relativa definida fuera del rango del eje especificado.
• Grabar nuevas coordenadas para la posición.

Guía de Referencia ACL para Controlador B 5 -13


0404 Versión 2.28
(315) INCOMPATIBLE POINTS
Posibles causas:
1) Ha intentado usar un comando HERE para posiciones en diferentes
grupos de ejes o posiciones que ambas son del grupo C pero
asignadas a diferentes ejes.
2) Ha intentado copiar un punto (SETP) desde un grupo de ejes a otro
grupo.

(316) NO GRIPPER CONFIGURATION


El comando de pinza (gripper) no se puede ejecutar porque no ha sido
configurada la pinza.

(317) BAD CARTESIAN POINT pos


El comando no se puede ejecutar o la posición no se puede grabar,
debido a un valor no válido de la posición especificada ( valores XYZ
fuera de rango).

(319) Interruptor de motores OFF

(320) Robot no esta en Espacio XYZ

(321) MOVES/SPLINE no permitido para un eje simple

(322) Posición debe tener coordenadas Absolutas por Joint

5-14 ACL para Controlador B Guía de Referencia


Versión Versión 2.28 0404
CAPITULO 6
CONFIGURACION DE LA MEMORIA DE
USUARIO

El Controlador-B estándar tiene 512KB de RAM con batería, que se


redistribuye durante la configuración del controlador.
Por ejemplo, cuando la configuración se realiza en ATS, mediante la
combinación de las teclas <Ctrl>+F1, la opción SCORBOT ER IX y se
seleccionan 8 ejes, la distribución por defecto de la memoria para cada tipo
de elemento será la siguiente:
400 Programas
7000 Líneas de programa
3500 Variables
4400 Posiciones grupo A
4400 Posiciones grupo B
0 Posiciones grupo C
800 Comentarios
Sólo los grupos A y B se definen en una configuración por defecto del
controlador. Grupo A son los ejes del 1 al 5 (para los robots ER IX y MK2)
o ejes 1-4 (robot ER14). Eje 6/5 es para la pinza eléctrica. El resto de ejes
son del grupo B. Para definir ejes del grupo C se debe usar el comando
CONFIG (configuración personalizada).
El número de elementos se calculan de acuerdo con la cantidad de memoria
requerida para cada elemento:
Elemento Memoria
Cabecera de programa 11 bytes cada una
Líneas de programa 10 bytes cada una
Variables de usuario 16 bytes cada una
Posiciones de grupo A o B [(número de ejes del grupo +1) x 2
+ 8] bytes cada una
Posiciones de grupo C 14 bytes cada una
Comentarios/string 12 bytes cada uno
Los parámetros y variables de usuario pueden ocupar hasta 2.5KB.
La suma de todos los elementos no debe sobrepasar los 128KB.

Guía de Referencia ACL para Controlador B 6-1


0404 Versión 2.28
El sistema requiere un número mínimo de algunos elementos, ver lista. Si se
seleccionan un número menor automáticamente el sistema seleccionará el
mínimo.
Elemento Mínimo
Programas usuario 2
Líneas programa 50
Variables usuario 10
Comentarios/string 50

Ejemplo:
Controlador configurado para 11 ejes:
El Grupo A se define como 5 ejes - ejes 1 a 5 (el robot)
La pinza se define como eje 6
El Grupo B se define como 4 ejes - ejes 7 a 10
El Grupo C se deja así sólo con un eje - eje 11
Se definirán los siguientes elementos:
100 Programas = 100x 11 = 1100 bytes
550 Líneas = 550 x 10 = 5500 bytes
200 Variables = 200 x 16 = 3200 bytes
450 Pos. Grupo A = 450 x 20 = 9000 bytes
450 Pos. Grupo B = 450 x 18 = 8100 bytes
150 Pos. Grupo C = 150 x 14 = 2100 bytes
100 comentarios = 100 x 12 = 1200 bytes
Total BBRAM usuario 30200 bytes
BBRAM reservada por el sistema 2560 bytes
Total BBRAM 32760 bytes
El total de memoria necesaria para esta configuración es 32760 bytes. La
configuración es válida porque 32760 < 131072; (131072 = 128 x 1024).

6-2 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
CAPITULO 7
PARAMETROS
Muchas de las funciones del controlador dependen del valor de los
parámetros del sistema. Los parámetros del sistema determinan operaciones
tales como:
* Servo control
* Envoltura de trabajo
* Protección de eje
* Límites de velocidad
* Operación de la pinza
* Botonera de enseñanza (instructor) y operación manual
* Cálculos cinemáticos cartesianos
Aviso!
• No cambiar los valores paramétricos con el robot en movimiento.
Cuidado al manipular los parámetros.
• Sólo los usuarios avanzados deben cambiar parámetros.
• Guardar los parámetros antes de cambiarlos.
• Asegurarse que los parámetros de protección de impacto están bien
seleccionados. Trabajar sin la protección a impacto activada puede dañar
el brazo del robot.

Guía de Referencia ACL para Controlador B 7-1


0404 Versión 2.28
Protección de Parámetros
Los parámetros están divididos en dos grupos: los de libre acceso y los
protegidos pos clave(password).
Para acceder a los parámetros protegidos debe estar en modo PRIVILEGE.
Los siguientes parámetros son libres:
• parámetros de pinza: 73, 74, 75, 76, 274 y 275.
• parámetro de suavidad: 219
• parámetros de trayectoria: 220 y 236
• parámetros de error de posición: 261 - 272

Referirse a los comandos PASSWORD y PRIVILEGE.

Comandos de acceso
Los comandos que se usan para acceder a los parámetros del sistema son los
siguientes:
SHOW PAR n Presenta el valor del parámetro n
LET PAR <n> = Cambia el valor de parámetro n a
= <nuevo valor> <nuevo valor>.
SENDPAR Presenta todos los parámetros del
sistema.
INIT CONTROL Debe lanzarse después de cambiar
cualquier parámetro; de otra forma, no se
procesan los cambios adecuadamente.
Para ver el valor actual de un parámetro usar SHOW PAR n

7-2 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
Descripción de Parámetros
El Controlador -B tiene dos tipos de parámetros:
• Parámetros aplicables al elemento independientemente del eje al que esta
conectado. Por ejemplo PAR 176 define el valor DAC aplicado al motor
de la pinza al comienzo del movimiento.
• Parámetros que son aplicados a cada eje individualmente. Estos
parámetros están en lotes de un rango de números, a intervalos de 20, en
la tabla de parámetros del controlador. El rango se indica por el término
PAR n+ eje; por ejemplo PAR 180+eje (PAR 180+2= PAR 182).
Los parámetros referentes a valores DAC están en la escala de ±5000.
(Equivalente a ±24V en el motor).Otros valores de parámetros están
indicados en pasos de encoder, tics de reloj, medidas lineales, etc..
Hay que observar que algunos parámetros sólo son válidos para una
configuración de robot específica. El efecto de otros puede cambiar
dependiendo del brazo robot utilizado. Se debe leer cuidadosamente la
documentación antes de cambiar parámetros.
Algunos parámetros son solo válidos para una configuración específica.
Lea la documentación con cuidado antes de cambiar un parámetro.

Las siguientes dos tablas describen todos los parámetros para el controlador
B.
• Tabla1: breve descripción de los parámetros clasificados de acuerdo a su
función.
• Tabla2: completa descripción de los parámetros clasificados por orden
numérico.
Los parámetros no protegidos se indican con sombra.

Guía de Referencia ACL para Controlador B 7-3


0404 Versión 2.28
Tabla1 de parámetros
Parámetros ajuste del sistema
I/O para Panel 15 Define la entrada para el interruptor Run/Hold
Control
16 Define la entrada para el interruptor Start Program
Auxiliar
18 Identifica el modelo de producción del controlador
19 Define si el mecanismo PRIVILEGE es requerido
Parámetros de Servo Control de Ejes
20 + eje Constante Proporcional de realimentación Kp
40 + eje Constante Diferencial de realimentación Kv
Servo básico 60 + eje Constante Integral de realimentación Ki
360 + eje Máximo DAC para la realimentación Integral
380 + eje Valor Media de la razón: salida analógica/pasos de encoder
320 + eje Ganancia del preamplificador PWM del driver de la tarjeta
Ganancia del 340 + eje Ganancia de la realimentación del tacómetro
driver
340 Reservados.
360
Parámetros de Servo Control Global
20 define el ciclo del servo control
78 Define si las constantes Proporcional y Diferencial son
dobladas al final del movimiento
79 Valor por el que la constante Integral es dividida durante el
movimiento.
Limites de los ejes
100 + eje Límite superior de movimiento, en pasos de encoder
120 + eje Límite inferior de movimiento, en pasos de encoder
540 + eje Rango máximo de encoders
Impacto
240 Define el grupo de ejes que responde cuando se detecta un
impacto
Modo Run 240 + eje Valor para detectar error al inicio de homing
680 + eje Valor para detectar servo error durante homing

7-4 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
280 +eje Máximo par permitido mientras se mueven los ejes
manualmente (TP o desde teclado)
780 + eje Valor para detectar servo error durante el movimiento
manual
Modo Manual
700+eje
720+eje Valores para fijar la limitación de par durante el
740+eje movimiento manual

760+eje
80+eje Compensación offset del driver. Valor del DAC para
calcular el par
Ajuste de Velocidad
180+eje Máximo valor velocidad, en (grados/seg.), (mm/seg.) o
(encoders/10mseg.)
533 Aceleración lineal máxima
534 Aceleración máxima del Pitch/Roll
535 Aceleración máxima Roll
536 Velocidad máxima lineal
537 Velocidad máxima del Pitch/Roll
538 Velocidad máxima del Roll
660+eje Máximo valor DAC que se puede aplicar a un eje
Velocidad Manual
220+eje Ajuste de velocidad para operación manual
239 Aceleración al inicio del movimiento manual
500+eje Deceleración posterior a la liberación de la tecla
238 Deceleración del movimiento Cartesiano después de liberar
tecla
294 Velocidad máxima en movimiento manual Cartesiano

Guía de Referencia ACL para Controlador B 7-5


0404 Versión 2.28
Homing
200 Define cuando se utiliza doble rutina de Home
200+eje Máximo DAC mientras Home
460+eje Velocidad de búsqueda micro de Home
560+eje Polaridad del micro de Home
13 Baja velocidad durante Home
400+eje Velocidad de búsqueda del pulso Index
420+eje Posición del pulso índex
440+eje Número de pasos de encoder para 90º de giro del motor
600+eje valor de DAC que se aplicará durante la búsqueda de Hard
Home
Cálculos Cartesianas
Estos parámetros definen las longitudes y ratios de encoder del brazo mecánico; posición
de Home; son utilizados para el cálculo de la posición Cartesiana del brazo.
El tipo de estructura del robot debe estar bien definido en la configuración.
33 Número de pasos encoder para 90º del eje 1
Escala de 34 Número de pasos encoder para 90º del eje 2
rotación (solo
35 Número de pasos encoder para 90º del eje 3
para robot)
36 Número de pasos encoder para 90º del eje 4
37 Número de pasos encoder para 90º del eje 5
1 Encoder 1 marcando una posición horizontal de referencia
Posición de 2 Encoder marcando una posición horizontal de referencia
Referencia
3 Encoder 3 marcando una posición horizontal de referencia
Horizontal
4 Encoder 4 marcando una posición horizontal de referencia
5 Encoder 5 marcando una posición horizontal de referencia
2560 Compensación del ángulo Roll para mantener la orientación
de la herramienta
Longitud (en micras o miligrados)
301 Coordenada X del eje de rotación de la unión 2 cuando el
brazo esta en la posición Home
302 Coordenada Y del TCP cuando el brazo esta en Home
303 Coordenada Z del eje de rotación de la unión 2
304 Longitud de la unión 2; desde la primera articulación
305 Longitud de la unión 3; desde la segunda articulación

7-6 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
306 Distancia desde la superficie del eje Pitch al TCP
307 Distancia desde el eje Pitch (inclinación muñeca) a la
superficie
308 Longitud. Valor del comando TOOL
309 Offset. Valor del comando TOOL
310 Angulo. Valor del comando TOOL
237 Limite Cartesiano
Trayectoria
219 Factor de suavizamiento para el movimiento MOVES
220 Perfil senoidal de velocidad para movimiento por Joint
236 Perfil senoidal de velocidad para trayectoria lineal
520+eje Máxima aceleración/deceleración
580+eje Suavizamiento de deceleración
199 Rango de deceleración cuando el interruptor Run/Hold esta
en Hold
260+eje Máximo error de posición al final de MOVED, MOVELD o
MOVECD
Pinza
73 Rango del encoder de la pinza
74 Contaje del encoder cuando pinza cerrada
75 DAC máxima para cerrar y abrir pinza
76 Duración de la apertura y cierre de la pinza
274 Salida del controlador para pinzas neumática
275 Valor DAC aplicado a la pinza después de CLOSE
276 Valor DAC aplicado a la pinza al inicio del movimiento
277 Duración del PAR 276
260+eje Cuando eje = pinza: máxima fluctuación del valor de
encoder mientras la pinza esta bloqueada.

Guía de Referencia ACL para Controlador B 7-7


0404 Versión 2.28
Tabla2 Parámetros
Parámetro Descripción
Usados por el controlador para cálculos XYZ, Solo para ejes del robot
1 Lectura del encoder 1 en la posición horizontal de referencia
2 Lectura del encoder 2 en la posición horizontal de referencia
3 Lectura del encoder 3 en la posición horizontal de referencia
4 Lectura del encoder 4 en la posición horizontal de referencia
5 Lectura del encoder 5 en la posición horizontal de referencia
Estos parámetros definen el offset del encoder desde la posición de Home
y la posición horizontal (donde todos los ejes están alineados)
13 Home lento: movimiento lento durante la rutina de Home.
Si PAR 13 = 0 ; valor por defecto
Si PAR 13 = 1 ; Dos veces mas despacio
Si PAR 13 = 3 ; Tres veces mas despacio
15 Run/Hold (Ejecución /paro) del programa
Define la entrada del controlador utilizada para controlar la
ejecución/paro desde el panel de control auxiliar
PAR 15 puede tener un valor de 1 al 16. Si PAR 15 =0 selector no
instalado; no definido.
PAR 199 define el rango de deceleración al seleccionar Hold
16 Programa Start
Define la entrada del controlador conectada al pulsador que ejecuta el
programa START en el panel de control auxiliar.
PAR 16 puede tener un valor de 1 a 16; Si PAR 16 =0 , pulsador no
instalado o definido
18 ID del controlador. Identifica el modelo de producción del controlador.
19 Determina si el modo PRIVILEGE esta activo o no.
Si PAR 19 = 0 , controlador en modo PRIVILEGE, no existe protección
de parámetros
20 Tiempo del Servo Ciclo (Controller Clock Tick).
rango 30 - 200 décimas de milisegundo.
Si PAR 20 = 100; un ciclo es ejecutado cada 10 mseg.
Si PAR 20 = 60; un ciclo es ejecutado cada 6 mseg.
20+eje Constante Proporcional de realimentación (Kp) por eje
Utilizados para cálculos XYZ. Sólo robot.
33 Número de pasos de encoder para +90º del eje 1
34 Número de pasos de encoder para +90º del eje 2
35 Número de pasos de encoder para +90º del eje 3
36 Número de pasos de encoder para +90º del eje 4
37 Número de pasos de encoder para +90º del eje 5
40+eje Constante Diferencial de realimentación (Kv) por eje
60+eje Constante Integral de realimentación (Ki) por eje
73 Rango Encoder Pinza. Número de pasos de encoder requeridos desde la
posición cerrada a la abierta.
Si PAR 73=0 : no hay encoder en la pinza
74 Valor del encoder cuando la pinza esta cerrada
75 Valor DAC aplicado al motor para abrir y cerrar la pinza

7-8 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
76 Duración del cierre de la Pinza. Tiempo requerido para cerrar y abrir la
pinza (en pulsos de reloj). Válido sólo para pinzas sin encoder y para
pinza neumática.
78 Servo Control. Si PAR 78 distinto de 0, las constantes Proporcional
(Kp) y Diferencial (Kv) son dobladas al final del movimiento.
79 Control Integral. Razón de reducción de las constantes de
realimentación integral mientras los ejes están en movimiento.
80+eje Compensación Offset del Driver. Valor del DAC utilizado para calcular
el par. Rango 0 - 5000
100+eje Límite superior de movimiento por eje
120+eje Límite inferior de movimiento por eje
140+eje Voltaje Motor/Característica de Velocidad de un motor en vacío.
Necesario para calcular la media térmica en carga del motor.
160+eje Protección térmica. DAC máximo que se puede aplicar a un motor
bloqueado. Cuando se alcanza el umbral de error , la tensión al motor se
anula.
180+eje Ajuste máximo de velocidad.
Para ejes de robot: en grados/seg.
Para ejes no de robot en pasos encoder/10 mseg.
199 Razón de deceleración del movimiento cuando se selecciona Hold en el
panel de control.
Define un porcentaje de la velocidad máxima, según se define por PAR
180+eje: 1=lento; 100=intermedio. Valor típico 4-5
200 Homing
Si PAR 200=0, el Home se ejecutará dos veces (por precisión)
200+eje Valor máximo DAC mientras Home.
219 Factor de suavizamiento en movimientos MOVES. Rango 1 - 200.
200 suavidad máxima.
220 Define la forma del perfil senoidal de la velocidad para movimiento en
Joint (MOVE)El valor determina el porcentaje de tiempo de movimiento
para la aceleración y deceleración cuando se utilice un perfil de
movimiento senoidal.
220+eje Define el ajuste de velocidad para el movimiento manual de cada eje.
Definido como un porcentaje de la velocidad máxima, definida en PAR
180+eje
236 Define la forma del perfil de la velocidad senoidal para trayectoria Lineal.
El valor determina el porcentaje de tiempo de movimiento para la
aceleración y deceleración cuando se utilice un perfil de movimiento
senoidal en MOVEL y MOVEC
237 Límite Cartesiano. Angulo mínimo permitido, en grados, entre los dos
principales uniones mientras el robot se mueve en coordenadas
cartesianas.
238 Deceleración del movimiento manual Cartesiano. rango de deceleración
cuando se deja de pulsar la tecla
239 Aceleración Manual. Rango de aceleración al inicio de un movimiento
manual.

Guía de Referencia ACL para Controlador B 7-9


0404 Versión 2.28
240 Modo Respuesta Protección Impacto. Define el grupo de ejes que
responde cuando se detecta una situación de impacto.
Si PAR 240 distinto de 0: cuando se detecta una situación de impacto,
sólo el grupo de ejes donde se ha detectado el impacto de desconecta.
Si PAR=0 todos los ejes se pararán
240+eje Error Inicio Homing. Si la posición de error (en pasos de encoder) al
inicio de la rutina de Home es mayor que el valor del parámetro, se
produce un error
260 Compensación del Roll para mantener la Orientación de la Herramienta.
Cuando se ejecuten movimientos lineales, si el valor de Pitch esta cerca
de +90º o -90º, el controlador compensará el ángulo de Roll para
mantener la orientación de la herramienta (paralela a sí misma).
PAR “&= determina el rango en el que se ejecuta el algoritmo de
compensación: (±90º - PAR 260) < ángulo pitch < (±90º +PAR 260).
Rango medio 0 - 20
260+eje Error de Posición máximo, en pasos de encoder, permitido para la
ejecución de MOVED, MOVELD, MOVECD, MOVESD y SPLINE.
(este parámetro esta activo sólo en modo EXACT)
Si el eje es una servo pinza, este parámetro define la fluctuación máxima
del valor del encoder mientras la pinza esta bloqueada
274 Configuración Pinza Neumática (OPEN/CLOSE)
Define la salida del controlador a la que esta conectada la pinza
neumática.
PAR “/$ debe tener un valor entre 1 y 16.
Permite el uso de los comandos OPEN y CLOSE desde el teclado y desde
la botonera.
275 Potencia de retención de la Pinza. Un valor constante de salida que será
aplicado a la salida analógica después de haber ejecutado un comando
CLOSE. valor típico 1000 o menor.
Sólo válido con pinzas sin encoder.
276 Valor de DAC aplicado al inicio del movimiento de la pinza durante un
tiempo definido por PAR 277
277 Duración del PAR 276 (décimas de segundo)
280+eje Par límite Movimiento Manual. El máximo par permitido en movimiento
manual (desde el TP o teclado). DAC entre 0 - 5000
294 Máxima velocidad de movimiento en Manual Cartesianas. Porcentaje de
la velocidad máxima definida en PAR 536.
300 Keyboard Stroke Rate. Cuando se maneja el robot en modo manual desde
el teclado, tiempo requerido para pulsar la tecla antes de que el carácter
sea repetido, esto produce un movimiento suave y continuo.
301 Coordenada X del eje de rotación de la unión 2 del brazo cuando el robot
esta en la posición de Home. En micras.
302 Coordenada Y (offset desde el centro a lo largo del eje Y) del TCP
cuando el robot esta en la posición de Home. Micras.
303 Coordenada Z del eje de rotación de la unión 2 del brazo. Micras
304 Longitud de la unión 2 del brazo (desde la primera unión). Micras
305 Longitud de la unión 3 del brazo (desde la segunda unión). Micras

7-10 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
306 Distancia desde el eje Pitch al TCP (para el ER IX y MK2); o
Distancia desde el flanco al TCP (para el ER14)
Definida en micras. Calculada desde PAR 307 y PAR 308
307 Distancia desde el eje Pitch al flanco (para robot ERIX y MK2), en
micras.
Para ER14, PAR 307=0
El valor de este parámetro debe fijarse a la exacta dimensión del robot.
El comando TOOL fija los parámetros 308, 309, 310 y 306
308 Valor de la longitud para el comando TOOL. Distancia desde el flanco al
TCP, en micras.
309 Valor del Offset para el comando TOOL. Distancia desde el eje de
simetría del flanco al TCP, en micras.
320+eje Ganancia Hardware del Driver. ganancia del preamplificador PWM de la
tarjeta. Rango 0 - 15, típico 1 o 2.
340
Reservado
340+eje Ganancia Hardware del Tacómetro. Selecciona uno de 16 valores de
ganancia para la realimentación del tacómetro.
Si PAR 340+eje esta en el rango 0 - 15: el valor es descargado
directamente a la ganancia hardware del tacómetro
Si PAR 340+eje > 15: se calcula la ganancia del tacómetro de forma más
compleja, de acuerdo con la velocidad deseada y el error de posición en
cada momento (Ganancia Adaptativa)
360
Reservada

Guía de Referencia ACL para Controlador B 7-11


0404 Versión 2.28
360+eje Límite Integral. El valor mayor permitido de salida analógica para la
realimentación integral. Si el valor de la salida es mayor que este valor,
no se incrementa la realimentación integral. Rango 0 - 5000
380+eje Feed Forward. Una constante que representa el valor medio de la razón:
salida analógica ⁄ contaje encoder. Rango 0 - 20.000
400+eje Fija la velocidad de búsqueda del impulso índice
Si es 0 no hay impulso índice.
420+eje Posición del Impulso Indice. Graba la distancia, en pasos de encoder,
entre el microinterruptor de Home y el impulso índice.
Durante la operación inicial el valor es cero. Después de realizar el
primer Home, se graban los valores detectados en estos parámetros. Cada
vez que se hace home se comparan los valores actuales con los
almacenados.
440+eje Número de pasos de encoder por 90º de giro del motor
460+eje Velocidad de búsqueda del microinterruptor de home. El signo de este
parámetro también determina a que lado detectará el micro.
500+eje Deceleración del Movimiento Manual. Rango de deceleración cuando se
deja de pulsar la tecla de movimiento. Define un porcentaje de la
aceleración máxima (PAR 250).
520+eje Aceleración/Deceleración máxima permitida para cada eje. En pasos de
encoder/(pulso de reloj)2
533 Aceleración Lineal Máxima en micras/(centésimas de segundo)2
534 Aceleración máxima del Pitch (ERIX y MK2)
Aceleración máxima del Roll (ER14) .
En miligrados/ centésimas de segundo)2
535 Aceleración Máxima del Roll (ERIX y MK2)
En miligrados/ (centésimas de segundo)2
536 Velocidad Lineal Máxima (micras/seg.)
537 Velocidad máxima del Pitch (ERIX y MK2)
Velocidad máxima del Roll (ER14)
miligrados/ centésimas de segundo
538 Velocidad máxima del Roll (ERIX y MK2)
miligrados/ centésimas de segundo
540+eje Rango Máximo de Encoder. Un valor utilizado para varios cálculos.
560+eje Polaridad del Microinterruptor de Home.
Define que valor es utilizado para indicar el estado de Home
Si PAR 560+eje=0: cuando el micro de home esta pulsado: HS[eje]=1
Si PAR 560+eje=1: cuando el micro de home esta pulsado: HS[eje]=0
580+eje Amortiguación de deceleración. Utilizado para ajustar la suavidad del
paro que sigue a un comando ABORT (o CLRBUF)
en pasos encoder/(pulsos de reloj)2
valor típico 5 (suave) - 100 (brusco)
600+eje Valor Salida Analógica cuando el eje ejecuta la rutina de Hard Home.

640+eje Valor Máximo Ganancia Tacómetro.


reservada

7-12 ACL para Controlador B Guía de Referencia


Versión 2.28 0404
660+eje Valor máximo de DAC: Máximo valor absoluto que se puede aplicar a
una salida analógica.
680+eje Servo Error: en Run time y durante el home, si el error de posición es
mayor que el definido en el parámetro, se detecta un condición de
impacto.
Valor típico 1000-2000
700+eje Límite de par en Movimiento Manual
720+eje Siempre que el encoder de los ejes se mueva más que el valor de PAR
740+eje 700+eje, se muestrea el valor del par y se escribe en la variable del
760+eje sistema T0.
Además, el par actual T, se mide en cada impulso de reloj y se compara
con T0.
Cada vez que (T-T0) > Tmax, se incrementa un contador interno. Cuando
el valor del contador iguala al valor del PAR 740+eje, se detecta una
condición de impacto.
El par máximo permitido se define como:
Tmax = (PAR 720 +eje) + (PAR 760+eje)x aceleración)
780+eje Servo Error. Durante el movimiento Manual, si el error de posición es
mayor que el definido en el parámetro, se detecta una condición de
impacto.
Valores típicos para ER IX/ ER 14 y MK2 : 1000 - 2000 pasos encoder

Guía de Referencia ACL para Controlador B 7-13


0404 Versión 2.28
7-14 ACL para Controlador B Guía de Referencia
Versión 2.28 0404

También podría gustarte