Epson T3 SCARA Robots Manual de usuario

Tipo
Manual de usuario

Este manual también es adecuado para

CPD-54875
EPSON RC+ 7.0
Ver.7.3
Manual de referencia
del lenguaje SPEL+
Rev.2 EM172S3392F
Manual de referencia del lenguaje SPEL+ Rev.2 ii
PRÓLOGO
Gracias por comprar nuestros productos robóticos.
Este manual contiene la información necesaria para el uso correcto del software EPSON
RC+ 7.0.
Lea atentamente este manual y otros manuales relacionados antes de instalar el sistema
robótico.
Mantenga este manual a la mano para un acceso fácil en todo momento.
Manual de referencia del lenguaje SPEL+ Rev.2 iii
MARCAS COMERCIALES
Microsoft, Windows, el logotipo de Windows, Visual Basic y Visual C++ son marcas
registradas o marcas comerciales de Microsoft Corporation en los Estados Unidos u otros
países. Pentium es una marca comercial de Intel Corporation. Otras marcas y productos
son marcas comerciales o marcas registradas de sus respectivos titulares.
ANOTACIONES DE MARCAS COMERCIALES EN ESTE
MANUAL
AVISO
Sistema operativo Microsoft® Windows® XP
Sistema operativo Microsoft® Windows® Vista
Sistema operativo Microsoft® Windows® 7
Sistema operativo Microsoft® Windows® 8
Sistema operativo Microsoft® Windows® 10
En todo este manual, Windows XP, Windows Vista, Windows 7, Windows 8, y Windows
10 se refieren a los sistemas operativos respectivos mencionados anteriormente. En
algunos casos, Windows se refiere de manera genérica a Windows XP, Windows Vista,
Windows 7, Windows 8 y Windows 10.
Ninguna parte de este manual se puede copiar o reproducir sin autorización.
El con
tenido de este manual está sujeto a cambios sin previo aviso.
Notifíquenos si encuentra errores en este manual o si tiene comentarios con respecto a su
contenido.
FABRICANTE
Manual de referencia del lenguaje SPEL+ Rev.2 iv
PRECAUCIONES DE SEGURIDAD
Solamente personal calificado deberá realizar la instalación de los robots y equipos
robóticos en conformidad con todos los códigos nacionales y locales. Lea atentamente
este manual y otros manuales relacionados cuando use este software.
Mantenga este manual a la mano para un acceso fácil en todo momento.
ADVERTENCIA
Este símbolo indica que existe un peligro de posibles lesiones
graves
o la muerte si no se siguen adecuadamente las
instrucciones asociadas.
PRECAUCIÓN
Este símbolo indica que existe un peligro de posibles daños a
la
s personas o daños físicos a los equipos e instalaciones si no
se siguen adecuadamente las instrucciones asociadas.
Manual de referencia del lenguaje SPEL+ Rev.2 v
Índice
Comandos de administración del sistema
..................................................... 1
Comandos de control del robot ..................................................................... 1
Comandos de par.......................................................................................... 6
Comandos de entrada/salida ........................................................................ 7
Comandos de administración de punto ......................................................... 9
Comandos de cambio de coordenada .......................................................... 9
Comandos de control de programa ............................................................. 10
Comandos de ejecución de programa ........................................................ 11
Pseudo instrucciones .................................................................................. 11
Comandos de administración de archivo .................................................... 12
Comandos de bus de campo ...................................................................... 12
Comandos de valor numérico ..................................................................... 13
Comandos de cadena ................................................................................. 13
Operadores lógicos ..................................................................................... 14
Comandos variables ................................................................................... 14
Comandos de seguridad ............................................................................. 14
Comandos de seguimiento del transportador ............................................. 14
Comandos de detección de fuerza .............................................................. 1 5
Comandos DB ............................................................................................. 15
Comandos PG ............................................................................................ 16
Comandos de detección de colisión ............................................................ 16
Comando de consumo de piezas ................................................................ 16
Apéndice A: Lista de condiciones de uso de comandos
de SPEL+ 960
Resumen de comandos SPEL+ 1
Manual de referencia del lenguaje SPEL+ 18
Mensajes de error de SPEL+ 778
Precaución de compatibilidad con EPSON RC+ 6.0 918
Precaución de compatibilidad con EPSON RC+ 5.0 932
Precaución de compatibilidad con EPSON RC+ Ver.4.* 946
Manual de referencia del lenguaje SPEL+ Rev.2 vi
Índice
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
1
A continuación, encontrará un resumen de los comandos SPEL+.
Comandos de administración del sistema
Reset Restablece el controlador.
SysConfig Muestra la configuración del controlador.
SysErr Arroja el último estado de error o estado de advertencia.
Date Define la fecha del sistema.
Time Define la hora del sistema.
Date$ Arroja la fecha del sistema como una cadena.
Time$ Arroja la hora del sistema como una cadena.
Hour Mu
estra/arroja la hora de operación del controlador.
Stat Arroja los bits de estado del controlador.
CtrlInfo Arroja la información del controlador.
RobotInfo Arroja la información del robot.
RobotInfo$ Arroja la información de texto del robot.
TaskInfo Arroja la información de tarea.
TaskInfo$ Arroja la información de texto de la tarea.
DispDev De
fine el dispositivo de visualización actual.
EStopOn Arroja el estado de parada de emergencia.
CtrlDev Arroja el número del dispositivo de control actual.
Cls Borra el área de texto de las ventanas Run, Operator o Command
(Ejecutar, Operador o Comando) de EPSON RC+ 6.0.
Borra la información en el panel de impresión TP.
Toff D
esactiva la pantalla de la línea de ejecución en la pantalla LCD.
Ton Especifica una tarea que muestra una línea de ejecución en la
pantalla LCD.
SafetyOn A
rroja el estado de apertura de la puerta de seguridad.
Eval E
jecuta una instrucción de la ventana Command desde un programa
y arroja el estado de error.
ShutDown Cie
rra EPSON RC+ y, opcionalmente, cierra o reinicia Windows.
TeachOn A
rroja el estado del modo Teach (Enseñanza).
WindowsStatus Arroja el estado de inicio de Windows.
Comandos de control del robot
AtHome Vuelve a ajustar si la orientación actual del robot es la posición
Home (Reposo) o no.
Calib Arroja los valores de pulso de postura del brazo actual con los
valores CalPls actuales.
CalPls Especifica y muestra los valores de pulso de posición y orientación
para la calibración.
Hofs Arroja los pulsos de compensación utilizados para la corrección de
punto cero del software.
Resumen de comandos SPEL
+
2
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
MCal Ejecuta la calibración de máquina para robots con codificadores
incrementales.
MCalComplete Arroja el estado de MCal.
MCordr Especifica y muestra el orden de movimiento de las articulaciones
para el valor Mcal de calibración de máquina. Solo se requiere para
robots con codificadores incrementales.
Power Define/arroja el modo de alimentación del servo.
Motor Define/arroja el estado del motor.
Función MHour Arroja el tiempo de funcionamiento del motor acumulado de los
motores del robot.
SFree Retira la alimentación del servo de los ejes servo especificados.
SLock Devuelve la alimentación del servo a los ejes servo especificados.
SyncRobots Inicia el movimiento del robot reservado.
Jump Salta a un punto con un movimiento de punto a punto.
Jump3 Salta a un punto con un movimiento de compuerta 3D.
Jump3CP Salta a un punto con un movimiento 3D en una ruta continua.
JumpTLZ Salta a un punto con un movimiento de compuerta 3D.
Arch Define/arroja los parámetros de arco para el movimiento de salto.
LimZ Define el límite Z superior para el comando Jump (Salto).
LimZMargin Define/arroja el margen de detección de errores cuando comienza la
operación en una posición más alta que el valor Limz.
Sense Define/arroja la condición para detener el manipulador sobre la
coordenada de destino cuando el comando Jump especifica Sense
(Detectar).
JS Arroja los estados de la operación Sense.
JT Arroja el estado del comando Jump más reciente para el robot
actual.
Go Mueve el robot a un punto con un movimiento de punto a punto.
Pass Ejecuta un movimiento de punto a punto simultáneamente en cuatro
articulaciones, que pasa cerca pero no a través de los puntos
especificados.
Pulse Mueve el robot a una posición definida en pulsos.
BGo Ejecuta un movimiento relativo de punto a punto, en el sistema de
coordenadas local seleccionado.
BMove Ejecuta un movimiento relativo de interpolación lineal, en el
sistema de coordenadas local seleccionado.
TGo Ejecuta un movimiento de punto a punto, en el sistema de
coordenadas de la herramienta actual.
TMove Ejecuta un movimiento relativo de interpolación lineal, en el
sistema de coordenadas de herramienta seleccionado.
Till Especifica la detención de movimiento cuando ocurre la entrada.
TillOn Arroja el estado Till actual.
!…! Instrucciones de procesos durante el movimiento.
Speed Define/arroja la velocidad para los comandos de movimiento de
punto a punto.
Accel Define/arroja la aceleración y desaceleración para el movimiento de
punto a punto.
SpeedFactor Define/arroja la velocidad para comandos de movimiento de punto a
punto.
Inertia Especifica o muestra la configuración de inercia del brazo del robot.
Weight Especifica o muestra la configuración de peso del brazo del robot.
Arc Mueve el brazo con interpolación circular.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
3
Arc3 M
ueve el brazo en 3D con interpolación circular.
Move Mueve el robot con interpolación lineal.
Curve Define los datos y puntos requeridos para mover el brazo a lo largo
de una ruta curva. Es posible definir muchos puntos de datos en la
ruta para mejorar la precisión de la ruta.
CVMove Realiza el movimiento de ruta de Spline definido por la orden
Curve.
SpeedS D
efine/arroja la velocidad para los comandos de movimiento lineal.
AccelS Define/arroja la aceleración y desaceleración para el movimiento
lineal.
SpeedR Define/arroja la velocidad para la rotación de la herramienta.
AccelR Define/arroja la aceleración y desaceleración para la rotación de la
herramienta.
AccelMax A
rroja el límite de valor de aceleración máximo disponible para
Accel.
Brake Ac
tiva o desactiva el freno para la articulación especificada para el
robot actual.
Home M
ueve el robot a la posición de reposo definida por el usuario.
HomeClr Borra la definición de la posición de reposo.
HomeDef Arroja el estado de la definición de la posición de reposo.
HomeSet Define la posición de reposo definida por el usuario.
Hordr Define el orden de movimiento para el comando Home.
InPos Comprueba si el robot está en posición (no se mueve).
CurPos Arroja la posición actual mientras se mueve.
TCPSpeed Arroja la velocidad calculada del punto central de la herramienta
actual.
Pallet Define un pálet o arroja un punto de pálet.
PalletClr Borra una definición de pálet.
Fine Especifica y muestra los límites de error de posicionamiento.
(Unidad: pulso)
FineDist Especifica y muestra los límites de error de posicionamiento
(Unidad: mm)
Función FineStatus Arroja si el número entero usa Fine o FineDist.
QP D
efine/arroja el estado de Quick Pause (Pausa rápida).
QPDecelR Define la velocidad de desaceleración de la pausa rápida para el
cambio de la orientación de la herramienta durante el movimiento
CP.
QPDecelS Define la velocidad de desaceleración de la pausa rápida en el
movimiento CP.
CP D
efine el modo de movimiento CP (Ruta continua).
Box Especifica y m
uestra el área de comprobación de acercamiento.
BoxClr Borra la definición del área de comprobación de acercamiento.
BoxDef Arroja si Box (Caja) está definido o no.
Plane Especifica y m
uestra el plano de comprobación de acercamiento.
PlaneClr Borra (anula la definición) de una definición de Plane (Plano).
4
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
PlaneDef Arro
ja la configuración del plano de comprobación de
acercamiento.
InsideBox Muestra un mensaje en un cuadro de diálogo, espera que el
operador ingrese texto o elija un botón y arroja los contenidos del
cuadro.
InsidePlane Arroja el estado de comprobación del plano de comprobación de
acercamiento.
GetRobotInsideBox Arroja un robot que se encuentra en el área de comprobación de
acercamiento.
GetRobotInsidePlane Arroja un robot que se encuentra en el plano de comprobación de
acercamiento.
Find Especifi
ca o muestra la condición para almacenar las coordenadas
durante el movimiento.
FindPos Arroja un punto de robot almacenado por Find (Buscar) durante un
comando de movimiento.
PosFound Arroja los estados de la operación Find.
WaitPos E
spera que el robot reduzca su aceleración y se detenga en la
posición antes de ejecutar la nueva instrucción mientras el
movimiento de ruta está activo.
Robot Selecciona el robot actual. (Arroja el número del robot según la
Función Robot)
RobotModel$ Arroja el nombre del modelo del robot.
RobotName$ Arroja el nombre del robot.
RobotSerial$ Arroja el número de serie del robot.
RobotType Arroja el tipo de robot.
TargetOK Arroja un estado que indica si es posible o no el movimiento PTP
(Punto a punto) desde la posición actual a la posición objetivo.
JRange D
efine/arroja los límites de articulación para una articulación.
Range Define los límites para todas las articulaciones.
XYLim D
efine o muestra los límites del rango de movimiento permisibles
de XY para el robot.
XYLimClr Borra la definición XYLim.
XYLimDef Arroja si XYLim está definido o no.
XY Arroja un punto desde coordenadas individuales que se pueden usar
en una expresión de punto.
Dist A
rroja la distancia entre dos puntos de robots.
PTPBoost Especifi
ca o muestra el parámetro de impulso algorítmico de
aceleración, desaceleración y velocidad para movimientos PTP
(punto a punto).
PTPBoostOK Arroja si el movimiento PTP (Punto a punto) desde una posición
actual a la posición objetivo es o no una distancia de
desplazamiento pequeña.
PTPTime Arroja el tiempo estimado para un comando de movimiento de
punto a punto sin ejecutarlo.
CX Define/arroja la coordenada del eje X de un punto.
CY Define/arroja la coordenada del eje Y de un punto.
CZ Define/arroja la coordenada del eje Z de un punto.
CU Define/arroja la coordenada del eje U de un punto.
CV Define/arroja la coordenada del eje V de un punto.
CW Define/arroja la coordenada del eje W de un punto.
CR Define/arroja la coordenada del eje R de un punto.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
5
CS De
fine/arroja la coordenada del eje S de un punto.
CT Define/arroja la coordenada del eje T de un punto.
Pls Arroja el valor de pulso de una articulación.
Agl Arroja el ángulo de la articulación en la posición actual.
PAgl Arroja un valor de articulación desde un punto especificado.
JA Arroja un punto de robot especificado en los ángulos de
articulación.
AglToPls Convierte los ángulos de robot a pulsos.
DegToRad Convierte grados en radianes.
RadToDeg Convierte radianes en grados.
Joint M
uestra la posición actual del robot en las coordenadas de
articulación.
JTran Realiza el movimiento relativo de una articulación.
PTran Realiza el movimiento relativo de una articulación en pulsos.
RealPls A
rroja el valor de pulso de la articulación especificada.
RealPos Arroja la posición actual del robot especificado.
Función RealAccel Arroja el valor Accel (Aceleración) ajustado automáticamente por
OLAccel.
PPls Arro
ja la posición del pulso de un valor de articulación especificado
desde un punto especificado.
Función LJM Arroja los datos de punto con los indicadores de orientación
convertidos para permitir el movimiento de al menos una
articulación cuando se mueve a un punto especificado basado en el
punto de referencia.
AutoLJM Define Auto LJM.
Función AutoLJM Arroja el estado de Auto LJM.
AvoidSingularity Define la función de evasión de singularidad.
Función AvoidSingularity Arroja el estado de la función de evasión de singularidad.
SingularityAngle Define el ángulo de aproximación al entorno de singularidad para la
función de evasión de singularidad.
Función SingularityAngle Arroja el ángulo de aproximación al entorno de singularidad para la
función de evasión de singularidad.
SingularitySpeed Define la velocidad de aproximación al entorno de singularidad para
la función de evasión de singularidad.
Función SingularitySpeed Arroja la velocidad de aproximación al entorno de singularidad para
la función de evasión de singularidad.
SingularityDist Define la distancia del entorno de singularidad necesaria para la
función de evasión de singularidad.
Función SingularityDist Arroja la distancia del entorno de singularidad necesaria para la
función de evasión de singularidad.
AbortMotion Cancela un comando de movimiento y coloca la tarea en ejecución
en el estado de error.
Función Align Arroja los datos de punto convertidos para alinear la orientación del
robot con el eje de coordenadas más cercano en el sistema de
coordenadas local.
Función AlignECP Arroja los datos de punto convertidos para alinear la orientación del
robot con el eje de coordenadas más cercano en el sistema de
coordenadas ECP.
SoftCP Define/arroja el modo de movimiento SoftCP.
Función SoftCP Arroja el estado del modo de movimiento SoftCP.
Here En
seña un punto de robot en la posición actual.
6
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
Where Mu
estra los datos de posición actuales del robot.
PerformMode Define el modo del robot.
Función PerformMode Arroja el número del modo de rendimiento del robot.
VSD Define el movimiento CP de velocidad variable para robots
SCARA.
Función VSD Arroja la configuración de movimiento CP de velocidad variable
para robots SCARA.
CP_Offset Define el tiempo de compensación para iniciar el comando de
movimiento posterior cuando se ejecuta CP On.
Función CP_Offset Arroja el tiempo de compensación para iniciar el comando de
movimiento posterior cuando se ejecuta CP On.
AvgSpeedClear Borra e inicializa el promedio de la velocidad de la articulación.
AvgSpeed Muestra el promedio de la velocidad de la articulación.
Función AvgSpeed Arroja el valor promedio de la velocidad de la articulación.
PeakSpeedClear Borra e inicializa la velocidad máxima para una o más
articulaciones.
PeakSpeed Muestra los valores de velocidad máxima para la articulación
especificada.
Función Peal Speed Arroja la velocidad máxima para la articulación especificada.
Comandos de par
TC Arroja la configuración del modo de control de par y el modo
actual.
TCSpeed Especifica el límite de velocidad en el control de par.
TCLim Especifica el límite de par de cada articulación para el modo de
control de par.
RealTorque Arroja el valor de instrucción actual de la articulación
especificada.
ATCLR Borra
e inicializa el par promedio para una o más articulaciones.
ATRQ Muestra el par promedio para la articulación especificada.
PTCLR Borra e inicializa el par máximo para una o más articulaciones.
PTRQ Muestra el par máximo para la articulación especificada.
OLAccel Configura e
l ajuste automático de la aceleración/desaceleración
que se está ajustando.
OLRate Muestra la calificación de sobrecarga para una o todas las
articulaciones para el robot actual.
LimitTorque Define/arroja el valor de par superior en el modo de potencia
alta.
Función LimitTorque Arroja el valor de la configuración de LimitTorque.
LimitTorqueLP Define/arroja el valor de par límite superior en el modo de
potencia baja.
Función LimitTorqueLP Arroja el valor de la configuración LimitTorqueLP.
LimitTorqueStop Especifica/arroja si se detendrá o no el robot cuando el par
alcance el límite superior en el modo de potencia alta.
Función LimitTorqueStop Arroja el valor de la configuración LimitTorqueStop.
LimitTorqueStopLP Especifica/arroja si se detendrá o no el robot cuando el par
alcance el límite superior en el modo de potencia baja.
Función LimitTorqueStopLP Arroja el valor de la configuración LimitTorqueStopLP.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
7
Comandos de entrada/salida
On Activa una salida.
Off Desactiva una salida.
Oport Lee el estado de un bit de salida.
Sw Arroja el estado de entrada.
In Lee 8 bits de entradas.
InW Arroja el estado del puerto de palabra de entrada especificado.
InBCD Lee 8 bits de entradas en el formato BCD.
Out Define/arroja 8 bits de salidas.
OutW Define simultáneamente 16 bits de salida.
OpBCD Define simultáneamente 8 bits de salida con el formato BCD.
MemOn Activa un bit de memoria.
MemOff Desactiva un bit de memoria.
MemSw Arroja el estado de un bit de memoria.
MemIn Lee 8 bits de E/S de memoria.
MemOut Define/arroja 8 bits de memoria.
MemInW Arroja el estado del puerto de palabra E/S de memoria
especificado.
Cada puerto de palabra contiene 16 bits de memoria E/S.
MemOutW Define simultáneamente 16 bits de E/S de memoria.
Wait Espera la condición o el tiempo.
TMOut Define el tiempo de inactividad predeterminado para la
instrucción Wait (Esperar).
Tw Arroja el estado de la condición Wait y el intervalo de
temporización Wait.
Input Recibe datos de entrada desde el dispositivo de visualización y
almacenados en variables.
InReal Lee un dato de entrada de 2 palabras (32 bits) como un dato de
punto flotante (en cumplimiento con IEEE754) de 32 bits.
Print Muestra caracteres en la ventana de visualización actual.
Line Input Ingresa una cadena desde la ventana de visualización actual.
Input # Permite que se reciban datos de cadena o numéricos desde un
archivo, puerto de comunicación o base de datos, y se
almacenen en una o más variables.
Print # Genera datos en el archivo, puerto de comunicación, base de
datos o dispositivo especificado.
Line Input # Lee datos de una línea desde un archivo, puerto de
comunicación, base de datos o el dispositivo.
Lof Verifica si el RS-232 o puerto TCP/IP especificado tiene líneas
de datos en su búfer.
SetIn Para la E/S virtual, define un puerto de entrada especificado (8
bits) en el valor especificado.
SetInW Para la E/S virtual, define una palabra de entrada especificada
(16 bits) en el valor especificado.
SetSw Para la E/S virtual, define un bit de entrada especificado en el
valor especificado.
IOLabel$ Arroja la etiqueta de E/S para un bit, byte o palabra de entrada o
salida especificado.
IONumber Arroja el número de E/S de la etiqueta E/S especificada.
IODef Arroja si la etiqueta de E/S especificada está definida.
8
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
OpenCom Abre u
n puerto de comunicación RS-232.
Función OpenCom Adquiere el número de tarea que ejecuta OpenCom.
CloseCom Cierra el puerto RS-232C que se abrió con OpenCom.
SetCom Define o muestra los parámetros para el puerto RS-232C.
ChkCom Arroja el número de caracteres en el búfer de recepción de un
puerto de comunicación.
OpenNet Abre u
n puerto de red TCP/IP.
Función OpenNet Adquiere el número de tarea que ejecuta OpenNet.
OutReal Genera los datos de salida del valor real (en cumplimiento con
IEEE754) de 32 bits al puerto de salida de palabras 2 (32 bits).
CloseNet Cierra el puerto TCP/IP que se abrió anteriormente con
OpenNet.
SetNet Define los parámetros para un puerto TCP/IP.
ChkNet Arroja el número de caracteres en el búfer de recepción de un
puerto de red.
WaitNet Espera que se establezca una conexión de puerto TCP/IP.
Read Lee
los caracteres desde un archivo o puerto de comunicación.
ReadBin Lee datos binarios desde un archivo o puerto de comunicación.
Write Escribe caracteres en un archivo o puerto de comunicación sin
un terminador de final de línea.
WriteBin Escribe datos binarios en un archivo o puerto de comunicación.
InputBox Mues
tra un mensaje en un cuadro de diálogo, espera que el
operador ingrese texto o elija un botón y arroja los contenidos
del cuadro.
MsgBox Muestra un mensaje en un cuadro de diálogo y espera que el
operador elija un botón.
RunDialog Ejecuta un diálogo EPSON RC+ desde un programa SPEL
+
.
LatchEnable Activa/desactiva la función de enganche de la posición del
robot según la entrada R-E/S.
Función LatchState Arroja el estado de enganche de la posición del robot con el R-
E/S.
Función LatchPos Arroja la posición del robot enganchada con la entrada R-E/S.
SetLatch Define la función de enganche de la posición de robot con la
entrada R-E/S.
Función AIO_In Lee el valor análogo desde el canal de entrada de E/S análoga.
Función AIO_InW Lee un dato de entrada de palabra desde el canal de entrada de
E/S análoga.
AIO_Out Genera un valor análogo en el canal de salida de E/S análoga.
Función AIO_Out Arroja el estado de salida del canal de salida de E/S análoga.
AIO_OutW Genera un dato de palabra en el canal de salida de E/S análoga.
Función AIO_OutW Arroja el estado de salida según una palabra del canal de salida
de E/S análoga.
AIO_Set Genera la información de salida en el canal de salida de E/S
análoga.
Función AIO_Set Arroja la información de configuración de la velocidad del
robot que está definida en el canal de salida de E/S análoga
opcional.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
9
Comandos de administración de punto
ClearPoints Borra todos los datos de punto de la memoria.
LoadPoints Carga los datos de punto desde un archivo en la memoria.
SavePoints Guarda los datos de punto en un archivo en la memoria.
ImportPoints Importa un archivo de punto en el proyecto actual para el
robot especificado.
ExportPoints Exporta un archivo de punto a la ruta especificada en la
computadora.
P# Define un punto especificado.
PDef Arroja el estado de definición de un punto especificado.
PDel Elimina los datos de posición especificados.
PLabel Define una etiqueta para un punto especificado.
PLabel$ Arroja la etiqueta de punto asociada con un número de
punto.
PNumber$ Arroja el número de punto asociada con una etiqueta de
punto.
PList Muestra los datos de punto en la memoria para el robot
actual.
PLocal Define el atributo local para un punto.
WorkQue_Add Agrega los datos de cola de trabajo (datos de punto y datos
de usuario) a la cola de trabajo especificada.
WorkQue_AutoRemove Define la función de eliminación automática en la cola de
trabajo especificada.
Función WorkQue_AutoRemove Arroja el estado de la función de eliminación automática
definida en la cola de trabajo.
Función WorkQue_Get Arroja los datos de punto desde la cola de trabajo
especificada.
Función WorkQue_Len Arroja el número de los datos de cola de trabajo válidos
registrados en la cola de trabajo especificada.
WorkQue_List Muestra la lista de datos (datos de punto y datos de usuario)
de la cola de trabajo especificada.
WorkQue_Reject Define y muestra la distancia mínima para prevenir el
registro doble de los datos de punto a la cola de trabajo
especificada.
Función WorkQue_Reject Arroja la distancia de la función de prevención de registro
doble definida en la cola de trabajo especificada.
WorkQue_Remove Elimina los datos de cola de trabajo (datos de punto y datos
de usuario) de la cola de trabajo especificada.
WorkQue_Sort Define y muestra el tipo de orden para la cola de trabajo
especificada.
Función WorkQue_Sort Arroja el tipo de orden de la cola de trabajo especificada.
WorkQue_UserData Restablece y muestra los datos de usuario (número real)
registrados en la cola de trabajo especificada.
Función WorkQue_UserDataArroja los datos de usuario (número real) registrados en la cola de
trabajo especificada.
Comandos de cambio de coordenada
Arm Define/arroja el brazo actual.
ArmSet Define un brazo.
10
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
ArmDef Arroja el estado de la definición de un brazo.
ArmClr Borra la definición de un brazo.
Tool Define/arroja el número de la herramienta actual.
TLSet Define o muestra un sistema de coordenadas de herramienta.
TLDef Arroja el estado de la definición de herramienta.
TLClr Borra una definición de herramienta.
ECP Define/arroja el número de ECP actual.
ECPSet Define o muestra un punto de control externo.
ECPDef Arroja el estado de la definición de ECP.
ECPClr Borra una definición de ECP.
Base Define y muestra el sistema de coordenadas base.
Local Define el sistema de coordenadas local.
LocalDef Arroja el estado de la definición local.
LocalClr Borra (anula la definición) un sistema de coordenadas.
Elbow Define/arroja la orientación del codo de un punto.
Hand Define/arroja la orientación de la mano de un punto.
Wrist Define/arroja la orientación de la muñeca de un punto.
J4Flag Define/arroja la configuración de J4Flag de un punto.
J6Flag Define/arroja la orientación de J6Flag de un punto.
J1Flag Define/arroja la configuración de J1Flag de un punto.
J2Flag Define/arroja la orientación de J2Flag de un punto.
J1Angle Arroja el atributo de J1Angle de un punto.
J4Angle Arroja el atributo de J4Angle de un punto.
VxCalib Crea los datos de calibración.
VxTrans Convierte las coordenadas de pixel a coordenadas de robot y arroja
los datos de punto convertidos.
VxCalInfo Arroja el estado de finalización de calibración/los datos de
calibración.
VxCalDelete Elimina los datos de calibración.
VxCalSave Guarda los datos de calibración en el archivo.
VxCalLoad Carga los datos de calibración del archivo.
Comandos de control de programa
Function Declara una función.
For...Next Ejecuta una o más instrucciones un número específico de veces.
GoSub Ejecuta una subrutina.
Return Vuelve de una subrutina.
GoTo Crea una bifurcación incondicional a un número de línea o etiqueta.
Call Llama una función de usuario.
If..Then..Else..EndIf Ejecución de instrucciones condicionales.
Else Se usa con la instrucción If para permitir que se ejecuten
instrucciones cuando la condición que se usa con la instrucción If es
falsa. Else es una opción para la instrucción If/Then.
Select ... Send Ejecuta uno de varios grupos de instrucciones, según el valor de una
expresión.
Do...Loop Construcción Do...Loop.
Declare Declara una función externa en una biblioteca de enlace dinámico
(DLL).
Trap Especifica un controlador de captura.
OnErr Define un controlador de error.
Era Arroja un número de articulación del robot para el último error.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
11
Erf$ Arroja el nombre de la función para el último error.
Erl Arroja el número de línea del error.
Err Arroja el número del error.
Ert Arroja el número de tarea del error.
Errb Arroja el número de robot del error.
ErrMsg$ Arroja el mensaje de error.
Signal Envía una señal a las tareas que ejecutan WaitSig.
SyncLock Sincroniza tareas usando un bloqueo de exclusión mutuo.
SynUnlock Desbloquea una ID de sincronización que se bloqueó anteriormente
con SyncLock.
WaitSig Espera una señal de otra tarea.
ErrorOn Arroja el estado de error del controlador.
Error Genera un error del usuario.
EResume Reanuda la ejecución después de la finalización de la rutina del
controlador de errores.
PauseOn Arroja el estado de pausa.
Exit Sale de una construcción o función loop.
Comandos de ejecución de programa
Xqt Ejecuta una tarea.
Pause Pausa todas las tareas que tienen la pausa activada.
Cont Reanuda el controlador después de ejecutar una instrucción Pause
(Pausa) y continúa la ejecución de todas las tareas.
Halt Suspende una tarea.
Quit Detiene una tarea.
Resume Reanuda una tarea en el estado de suspensión.
MyTask Arroja la tarea actual.
TaskDone Arroja el estado de finalización de la tarea.
TaskDone Arroja el estado actual de una tarea.
TaskWait Espera que una tarea termine.
Restart Reinicia el grupo de programa principal actual.
Recover Ejecuta una recuperación de posición de protección y arroja el
estado.
RecoverPos Arroja la posición en la que estaba el robot cuando se abrió la
protección.
StartMain Ejecuta la función principal desde una tarea en segundo plano.
Pseudo instrucciones
#define Define una macro.
#ifdef ... #endif Compilación condicional.
#ifndef ... #endif Compilación condicional.
#include Incluye un archivo.
#undef Anula la definición de un identificador definido anteriormente con
#define.
12
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
Comandos de administración de archivo
ChDir Cambia y muestra la carpeta actual.
ChDisk Define el disco de objeto para operaciones de archivo.
MkDir Crea una subcarpeta en una unidad de disco de controlador.
RmDir Elimina una subcarpeta vacía de una unidad de disco de
controlador.
RenDir Cambia el nombre de una carpeta.
FileDateTime$ Arroja la fecha y la hora de un archivo.
FileExists Verifica si existe un archivo.
FileLen Arroja la longitud de un archivo.
FolderExists Verifica si existe una carpeta.
Del Elimina uno o más archivos.
Copy Copia un archivo a otra ubicación.
Rename Cambia el nombre de un archivo.
AOpen Abre un archivo en el modo de anexar.
BOpen Abre un archivo en el modo binario.
ROpen Abre un archivo para lectura.
ROpen Abre un archivo para acceso de lectura/escritura.
WOpen Abre un archivo para escritura.
Input # Permite que se reciban datos de cadena o numéricos desde un
archivo, puerto de comunicación o base de datos, y se almacenen en
una o más variables.
Print # Genera datos en el archivo, puerto de comunicación, base de datos o
dispositivo especificado.
Line Input # Lee datos de una línea desde un archivo, puerto de comunicación,
base de datos o el dispositivo.
Read Lee los caracteres desde un archivo o puerto de comunicación.
ReadBin Lee datos binarios desde un archivo o puerto de comunicación.
Write Escribe caracteres en un archivo o puerto de comunicación sin un
terminador de final de línea.
WriteBin Escribe datos binarios en un archivo o puerto de comunicación.
Seek Cambia la posición del puntero del archivo para un archivo
especificado.
Close Cierra un archivo.
Eof Arroja el estado del fin de archivo.
ChDrive Cambia la unidad de disco actual para operaciones de archivo.
CurDir$ Arroja una cadena que representa la carpeta actual.
CurDrive$ Arroja una cadena que representa la unidad de disco actual.
CurDisk$ Arroja una cadena que representa el disco actual.
Flush Escribe el búfer de un archivo en el archivo.
Comandos de bus de campo
FbusIO_GetBusStatus Arroja el estado del bus de campo especificado.
FbusIO_GetDeviceStatus Arroja el estado del dispositivo de bus de campo especificado.
FbusIO_SendMsg Envía un mensaje explícito a un dispositivo de bus de campo y
arroja la respuesta.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
13
Comandos de valor numérico
Ctr Arroja el valor de un contador.
CTReset Restablece un contador.
ElapsedTime Mide un tiempo takt.
ResetElapsedTime Restablece e inicia un temporizador de medición de tiempo takt.
Tmr Arroja el valor de un temporizador.
TmReset Restablece un temporizador en 0.
Sin Arroja el seno de un ángulo.
Cos Arroja el coseno de un ángulo.
Tan Arroja la tangente de un ángulo.
Acos Arroja el arcocoseno.
Asin Arroja el arcoseno.
Atan Arroja la arcotangente.
Atan2 Arroja la arcotangente según la posición X, Y.
Sqr Arroja la raíz cuadrada de un número.
Abs Arroja el valor absoluto de un número.
Sgn Arroja el signo de un número.
Int Convierte un número real en un número entero.
BClr Borra un bit en un número y arroja el nuevo valor.
BSet Define un bit en un número y arroja el nuevo valor.
BTst Arroja el estado de 1 bit en un número.
BClr64 Borra un bit en un número y arroja el nuevo valor.
BSet64 Define un bit en un número y arroja el nuevo valor.
BTst64 Arroja el estado de 1 bit en un número.
Fix Arroja la porción de número entero de un número real.
Hex Arroja una cadena que representa un número especificado en
formato hexadecimal.
Randomize Inicializa el generador de números aleatorios.
Redim Cambia las dimensiones de una matriz en el tiempo de ejecución.
Rnd Arroja un número aleatorio.
UBound Arroja el subíndice más grande disponible para la dimensión
indicada de una matriz.
Comandos de cadena
Asc Arroja el valor ASCII de un carácter.
Chr$ Arroja el carácter de un valor ASCII numérico.
Left$ Arroja una subcadena desde el lado izquierdo de una cadena.
Mid$ Arroja una subcadena.
Right$ Arroja una subcadena desde el lado derecho de una cadena.
Len Arroja la longitud de una cadena.
LSet$ Arroja una cadena rellenada con espacios finales.
RSet$ Arroja una cadena rellenada con espacios iniciales.
Space$ Arroja una cadena que contiene caracteres de espacio.
Str$ Convierte un número en una cadena.
Val Convierte una cadena numérica en un número.
LCase$ Convierte una cadena a minúsculas.
UCase$ Convierte una cadena a mayúsculas.
LTrim$ Elimina los espacios al inicio de una cadena.
RTrim$ Elimina los espacios al final de una cadena.
Trim$ Elimina los espacios al inicio y al final de una cadena.
14
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
ParseStr Descompone una cadena y arroja una matriz de componentes.
FmtStr Aplica formato a un número o cadena.
FmtStr$ Aplica formato a un número o cadena.
InStr Arroja la posición de una cadena dentro de otra.
Tab$ Arroja una cadena que contiene un número especificado de
caracteres de pestaña.
Operadores lógicos
And Realiza una operación AND (Y) lógica y bitwise.
Or Operador Or (O).
LShift Desplaza bits a la izquierda.
LShift64 Desplaza bits a la izquierda.
Mod Operador Modulus (Módulo).
Not Operador Not (No).
RShift Desplaza bits a la derecha.
RShift64 Desplaza bits a la derecha.
Xor Operador exclusivo Or.
Mask Realiza la operación AND bitwise en las instrucciones Wait.
Comandos variables
Boolean Declara variables booleanas.
Byte Declara variables de bytes.
Double Declara variables dobles.
Global Declara variables globales.
Int32 Declara variables de 4 bytes.
Integer Declara variables de número entero de 2-bytes.
Long Declara variables de número entero largo.
Int64 Declara variables de número entero de 8 bytes.
Real Declara variables reales.
Short Declara variables de número entero de 2-bytes.
String Declara variables de cadena.
UByte Declara variables de número entero sin signo
UInt32 Declara variables de número entero de 4 bytes sin signo
UShort Declara variables de número entero de 2 bytes sin signo
UInt64 Declara variables de número entero de 8 bytes sin signo
Comandos de seguridad
GetCurrentUser$ Arroja el usuario actual de EPSON RC+.
Login Inicia sesión en EPSON RC+ 6.0 como un usuario distinto.
Comandos de seguimiento del transportador
Cnv_AbortTrack Cancela un movimiento de seguimiento a un punto de la cola
del transportador.
Función Cnv_Accel Arroja la aceleración y desaceleración del transportador.
Cnv_Accel Define la aceleración y desaceleración para el transportador.
Función Cnv_Downstream Arroja el límite de bajada del transportador especificado.
Función Cnv_Downstream Define el límite de bajada del transportador especificado.
Función Cnv_Fine Arroja la configuración Cnv_Fine actual.
Cnv_Fine Define el valor de Cnv_Fine para un transportador.
Función Cnv_Flag Arroja el estado de seguimiento del robot.
Función Cnv_Mode Arroja el modo valor del modo de configuración del
transportador.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
15
Cnv_Mode Define el valor del modo de configuración del transportador.
Función Cnv_Name$ Arroja el nombre del transportador especificado.
Función Cnv_Number Arroja el número de un transportador especificado por nombre.
Cnv_OffsetAngle Define el valor de compensación para los datos de cola del
transportador.
Función Cnv_OffsetAngle Arroja el valor de compensación de los datos de cola del
transportador.
Función Cnv_Point Arroja un punto de robot en el sistema de coordenadas del
transportador especificado, derivado de las coordenadas del
sensor.
Función Cnv_PosErr Arroja la desviación en la posición de seguimiento actual, en
comparación con el objetivo de seguimiento.
Función Cnv_Pulse Arroja la posición actual de un transportador en pulsos.
Cnv_QueAdd Agrega un punto de robot a una cola de transportador.
Función Cnv_QueGet Arroja un punto desde la cola del transportador especificado.
Función Cnv_QueLen Arroja el número de elementos en la cola del transportador
especificado.
Cnv_QueList Muestra una lista de elementos en la cola del transportador
especificado.
Cnv_QueMove Desplaza los datos desde la cola del transportador de subida a
la cola del transportador de bajada.
Cnv_QueReject Define y muestra la distancia de rechazo de la cola para un
transportador.
Función Cnv_QueReject Arroja la distancia de rechazo de piezas actual para un
transportador.
Cnv_QueRemove Elimina elementos de la cola de un transportador.
Cnv_QueUserData Define y muestra los datos de usuario asociados con una
entrada de cola.
Función Cnv_QueUserData Arroja el valor de datos de usuario asociado con un elemento
en una cola de transportador.
Función Cnv_RobotConveyor Arroja el transportador que está siendo seguido por un robot.
Función Cnv_Speed Arroja la velocidad actual de un transportador.
Cnv_Trigger Engancha la posición actual del transportador para la próxima
instrucción Cnv_QueAdd.
Función Cnv_Upstream Arroja el límite de subida para el transportador especificado.
Cnv_Upstream Define el límite de subida para el transportador especificado.
Comandos de detección de fuerza
Force_Calibrate Define cero compensaciones para todos los ejes para el sensor
de fuerza actual.
Force_ClearTrigger Borra todas las condiciones del disparador del sensor de fuerza
actual.
Force_GetForces Arroja las fuerzas y pares para todos los ejes con detección de
fuerza en una matriz.
Función Force_GetForce Arroja la fuerza para un eje especificado.
Force_Sensor Define el sensor de fuerza actual para la tarea actual.
Función Force_Sensor Arroja el sensor de fuerza actual para la tarea actual.
Force_SetTrigger Define el disparador de fuerza para el comando Till.
Comandos DB
CloseDB Cierra la base de datos que se abrió con el comando OpenDB y
libera el número de archivo.
DeleteDB Elimina datos desde la tabla en la base de datos abierta.
OpenDB Abre una base de datos o libro de Excel.
SelectDB Busca los datos en la tabla en una base de datos abierta.
UpdateDB Actualiza los datos de una tabla en la base de datos abierta.
16
Manual de referencia del lenguaje SPEL+ Rev.2
Resumen de comandos SPEL+
Comandos PG
PG_FastStop Detiene los ejes PG de inmediato.
PG_LSpeed Define la velocidad de pulso del tiempo cuando el eje PG
comienza a acelerar y termina de desacelerar.
PG_Scan Inicia el movimiento giratorio continuo de los ejes de robot
PG.
PG_SlowStop Detiene lentamente el giro continuo del eje PG.
Comandos de detección de colisión
CollisionDetect Activa o desactiva la detección de colisión.
Función CollisionDetect Arroja el valor de la configuración del comando
CollisionDetect.
Comando de consumo de piezas
HealthCalcPeriod Define el período de cálculo de los comandos de consumo de
piezas.
Función HealthCalcPeriod Arroja el período de cálculo de los comandos de consumo de
piezas.
Función HealthCtrlAlarmOn Arroja el estado de la alarma de consumo de piezas para las
piezas del controlador especificado.
HealthCtrlInfo Muestra los meses restantes antes del tiempo de reemplazo
para las piezas del controlador especificado.
Función HealthCtrlInfo Arroja los meses restantes antes del tiempo de reemplazo para
las piezas del controlador especificado.
HealthCtrlRateOffset Define la compensación para la tasa de consumo de las piezas
especificadas.
HealthCtrlReset Borra la tasa de consumo para las piezas del controlador
especificado.
Función HealthRateCtrlInfo Arroja la tasa de consumo de las piezas del controlador
especificado.
Función HealthRateRBInfo Borra la tasa de consumo de las piezas especificadas del
robot.
Función HealthRBAlarmOn Arroja el estado de la alarma de consumo de piezas para las
piezas especificadas del robot.
HealthRBAnalysis Muestra el resultado del análisis con respecto al consumo de
piezas (meses restantes antes del tiempo de reemplazo de
piezas recomendado) para las piezas especificadas del robot.
Función HealthRBAnalysis Arroja el resultado del análisis con respecto al consumo de
piezas (meses restantes antes del tiempo de reemplazo de
piezas recomendado) para las piezas especificadas del robot.
HealthRBDistance Muestra la cantidad de accionamiento de la articulación
especificada.
Función HealthRBDistance Arroja la cantidad de accionamiento de la articulación
especificada.
HealthRBInfo Muestra los meses restantes antes del tiempo de reemplazo
para las piezas especificadas del robot.
Resumen de comandos SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
17
Función HealthRBInfo Arroja los meses restantes antes del tiempo de reemplazo para
las piezas especificadas del robot.
HealthRBRateOffset Define la compensación para la tasa de consumo de las piezas
especificadas.
HealthRBReset Borra la tasa de consumo para las piezas especificadas del
robot.
HealthRBSpeed Muestra la velocidad promedio de la articulación
especificada.
Función HealthRBSpeed Arroja el promedio de la velocidad absoluta de la articulación
especificada.
Función HealthRBAlarmOn Inicia el análisis del consumo de piezas para las piezas
especificadas del robot.
HealthRBStop Detiene el análisis del consumo de piezas para las piezas
especificadas del robot.
HealthRBTRQ Muestra el valor de par de la articulación especificada.
Función HealthRBTRQ Arroja el valor de par de la articulación especificada.
18
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Esta sección describe cada comando SPEL
+
según se indica a continuación:
Sintaxis
La sintaxis describe el formato utilizado para cada comando. Para algunos comandos,
se muestra más de una sintaxis, junto con un número al que se hace referencia en la
descripción del comando. Los parámetros se muestran en cursiva.
Parámetros
Describe cada uno de los pametros para este comando.
Valores devueltos
Describe cualquier valor que arroje el comando.
Descripción
Entrega detalles acerca del funcionamiento del comando.
Nota
Entrega información adicional que puede ser importante acerca de este comando.
También consulte
Muestra otros comandos relacionados con este comando. Consulte el Índice para
obtener el número de página de los comandos relacionados.
Ejemplo
Proporciona uno o más ejemplos del uso de este comando.
Manual de referencia del lenguaje SPEL
+
Manual de referencia del lenguaje SPEL+ Rev.2
19
Manual de referencia del lenguaje SPEL+
Operadores
La siguiente tabla muestra los operadores para el lenguaje SPEL
+
.
Palabra clave o
símbolo
Ejemplo
Descripción
+ A+B Suma
 A-B Resta
* A*B Multiplicación
/ A/B División
** A**B Exponenciación
= A=B Igual
> A>B Mayor que
< A<B Menor que
>= A>=B Mayor o igual
<= A<=B Menor o igual
<> A<>B No igual
And A And B Realiza una operación AND lógica y bitwise
Mod A Mod B
Arroja el restante obtenido al dividir una expresión numérica
por otra expresión numérica.
Not Not A Realiza una negación lógica o bitwise del operando.
Or A Or B
Realiza la operación Or bitwise sobre los valores de los
operandos.
Xor A Xor B
Realiza la operación Xor bitwise sobre los valores de los
operandos.
Orden de prioridad de los operadores
Los operadores se procesan en programas en el siguiente orden.
Nivel de
prioridad
Operador Ejemplo Descripción
1 () ( A+B ) Paréntesis
2 ** A**B Exponenciación
3
* A*B Multiplicación
/ A/B División
4 Mod A Mod B
Arroja el restante obtenido al dividir una expresión
numérica por otra expresión numérica.
5
+ A+B Suma
- A-B Resta
6
= A=B Igual
<> A<>B No igual
< A<B Menor que
> A>B Mayor que
<= A<=B Menor o igual
>= A>=B Mayor o igual
7 Not Not A Realiza una negación lógica o bitwise del operando.
8 And A And B Realiza una operación AND lógica y bitwise
9 O A Or B
Realiza la operación Or bitwise sobre los valores de los
operandos.
10 Xor A Xor B
Realiza la operación Xor bitwise sobre los valores de
los operandos.
20
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Procesa las instrucciones de entrada/salida en paralelo con movimiento.
Sintaxis
motion cmd !statements !
Parámetros
motion cmd Cualquier comando de movimiento válido incluido en la siguiente lista: Arc, Arc3,
Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo, TMove.
statements Cualquier instrucción de E/S de procesamiento paralelo que se puede ejecutar
durante el movimiento. (Consulte la tabla a continuación)
Descripción
Los comandos de procesamiento paralelo se agregan a los comandos de movimiento para permitir que se
ejecuten instrucciones de E/S simultáneamente con el comienzo del desplazamiento de movimiento. Esto
significa que se puede ejecutar E/S mientras que el brazo se mueve, en lugar de esperar siempre que el
desplazamiento del brazo se detenga para luego ejecutar E/S. Incluso existe un recurso para definir cuándo
deberá comenzar la ejecución de E/S dentro del movimiento. (Consulte el parámetro "Dn" que se describe
en la tabla a continuación.)
La tabla a continuación muestra todas las instrucciones de procesamiento paralelo válidas. Cada una de
estas instrucciones se puede usar como una instrucción individual o en grupo para permitir que las
instrucciones de E/S se ejecuten durante una instrucción de movimiento.
Dn
Se usa para especificar %travel (desplazamiento) antes de que se ejecute la
siguiente instrucción paralela. “n” es un porcentaje entre 0 y 100 que representa
la posición dentro del movimiento, donde deben comenzar las instrucciones de
procesamiento paralelo. Las instrucciones que siguen el parámetro Dn
comenzarán su ejecución después de que se haya completado un n% del
desplazamiento de movimiento.
Cuando se usa con los comandos Jump, Jump3 y Jump3CP, %travel no incluye
el movimiento de alejamiento y acercamiento. Para ejecutar instrucciones
después de que se haya completado el movimiento de alejamiento, incluya D0
(cero) al principio de la instrucción.
"Dn" puede aparecer un máximo de 16 veces en una instrucción de
procesamiento paralelo.
On / Off n
Activa o desactiva el número de bit de salida "n".
MemOn / MemOff n
Activa o desactiva el número de bit de E/S "n".
Out p,d
OpBCD p,q
OutW p,d
Genera datos "d" en el puerto de salida "p".
MemOut p, d
MemOutW p,d
Genera datos "d" en el puerto de E/S de memoria "p".
Signal s
Genera una señal de sincronización.
Wait t
Retrasa en "t" segundos la ejecución de la siguiente instrucción de
procesamiento paralelo.
WaitSig s
Espera la señal "s" antes de procesar la siguiente instrucción.
Wait Sw(n) = j
Retrasa la ejecución de la siguiente instrucción de procesamiento paralelo hasta
que el bit de entrada "n" sea igual a la condición definida por "j". (Activado o
desactivado)
Wait MemSw(n) = j
Retrasa la ejecución de la siguiente instrucción de procesamiento paralelo hasta
que el bit de E/S de memoria "n" sea igual a la condición definida por "j".
(Activado o desactivado)
!...! Procesamiento paralelo
Manual de referencia del lenguaje SPEL+ Rev.2
21
Manual de referencia del lenguaje SPEL+
Wait
otras condiciones
Espera que patrones que no sean los dos anteriores estén disponibles. Consulte
Instrucción Wait (Esperar) para conocer detalles.
Print
Imprime datos al dispositivo de visualización.
Print #
Imprime datos al puerto de comunicación especificado.
Funciones externas
Ejecuta las funciones externas declaradas con la instrucción Declare (Declarar).
Notas
Cuando el movimiento se completa antes de que se completen todos los comandos de E/S
Si, después de completar el movimiento para un comando de movimiento específico, no se ha completado
la ejecución de todas las instrucciones de procesamiento paralelo, la ejecución posterior de programas se
retrasa hasta que se haya completado la ejecución de todas las instrucciones de procesamiento paralelo. Es
más probable que esta situación ocurra con movimientos cortos con muchos comandos de E/S que ejecutar
en paralelo.
Cuando se usa la instrucción Till para detener el brazo antes de completar el movimiento
deseado
Si se usa Till para detener el brazo en una posición de desplazamiento intermedio, el sistema considera que
el movimiento se completó. La siguiente ejecución de instrucción se retrasa hasta que la ejecución de todas
las instrucciones de procesamiento paralelo se hayan completado.
Cuando se usa la instrucción AbortMotion o Trap (Captura) para detener el brazo antes de
completar el movimiento
Después de que el brazo se detiene en una posición de desplazamiento intermedio, no se puede ejecutar la
instrucción D.
Si se especifica "n" cerca de un 100 %, es posible que el movimiento de ruta se desacelere
Si se usa un valor grande de “n” durante el movimiento CP, es posible que el robot se desacelere para
terminar el movimiento actual. Esto se debe a que la posición especificada normalmente sería durante la
desaceleración si no se estuviera usando CP. Para evitar la desaceleración, considere colocar la instrucción
de procesamiento después del comando de movimiento. Por ejemplo, en el siguiente ejemplo, la
instrucción On 1 se traslada desde el procesamiento paralelo durante el salto a P1 después del salto.
CP On
Jump P1 !D96; On 1!
Go P2
CP On
Jump P1
On 1
Go P2
La instrucción Jump y el procesamiento paralelo
Se debe tener en cuenta que la ejecución de instrucciones de procesamiento paralelo que se usan con la
instrucción Jump comienza después de completar el movimiento ascendente y termina al final del
movimiento descendente.
Se debe tener en cuenta que la ejecución de instrucciones de procesamiento paralelo que se usan con la
instrucción Jump3 comienza después de completar el movimiento de alejamiento y termina al final del
movimiento de acercamiento.
La instrucción Here y el procesamiento paralelo
No es posible usar la instrucción Here y el procesamiento paralelo juntos en un comando de movimiento
como este:
Go Here :Z(0) ! D10; MemOn 1 !
Asegúrese de cambiar el programa de la siguiente forma:
P999 = Here
Go P999 Here :Z(0) ! D10; MemOn 1 !
También consulte
Arc, Arc3, Go, Jump, Jump3, Jump3CP, Move, BGo, BMove, TGo, TMove
!...! Ejemplo de procesamiento paralelo
22
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Los siguientes ejemplos muestran varias formas de usar la característica de procesamiento paralelo con
comandos de movimiento:
El procesamiento paralelo con el comando Jump causa que el bit de salida 1 se active al final del
desplazamiento ascendente de la articulación Z, y cuando los ejes 1, 2 y 4 comienzan a moverse. Luego, el
bit de salida 1 se vuelve a desactivar después de que se haya completado un 50 % del desplazamiento de
movimiento Jump.
Function test
Jump P1 !D0; On 1; D50; Off 1!
Fend
El procesamiento paralelo con el comando Move (Mover) causa que el bit de salida 5 se active cuando las
articulaciones hayan completado un 10 % de su movimiento hacia el punto P1. Luego de 0,5 segundos,
desactive el bit de salida 5.
Function test2
Move P1 !D10; On 5; Wait 0.5; Off 5!
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
23
Manual de referencia del lenguaje SPEL+
#define
Define el identificador para que sea reemplazado por la cadena de reemplazo especificada.
Sintaxis
#def
ine identifier [(parameter, [parameter ])] string
Parámetros
id
entifier Palabra clave definida por el usuario, que es una abreviatura del parámetro string. Las reglas
para identificadores son las siguientes:
- El primer carácter debe ser alfabético, mientras que los caracteres posteriores pueden se
r
alf
anuméricos o un guión bajo ( _ ).
- No se permiten los caracteres de espacio o tabulación como parte de identifier
.
par
ameter Normalmente se usa para especificar una variable (o variables múltiples) que puede ser
utilizada por la cadena de reemplazo. Esto proporciona un mecanismo de definición dinámico
que se puede usar como una macro. Es posible usar un máximo de hasta 8 parámetros con el
comando #define (definir). Sin embargo, cada parámetro debe estar separado por una coma y
la lista de parámetros debe estar entre paréntesis.
string Esta es la cadena de reemplazo que reemplaza el identificador cuando se compila el
programa. Las reglas con respecto a las cadenas de reemplazo son las siguientes:
- Se permiten espacios o tabulaciones en las cadenas de reemplazo.
- Los identificadores utilizados con otras instrucciones #define no pueden ser utilizada
s
c
omo cadenas de reemplazo
.
- S
i se incluye el símbolo de comentario ( ' ), los caracteres que lo siguen se tratarán como
un comentario y no se incluirán en la cadena de reemplazo.
- La cadena de reemplazo se puede omitir. En este caso, el identificador especificado se
reemplaza con "nada" o la cadena nula. Esto elimina el identificador del programa.
Descripción
La instr
ucción #define causa que se produzca un reemplazo dentro de un programa para el identificador
especificado. Cada vez que se encuentre el identificador especificado, la cadena de reemplazo lo reemplaza
antes de la compilación. Sin embargo, el código fuente permanecerá con el identificador en lugar de la
cadena de reemplazo. Esto permite que el código sea más fácil de leer en muchos casos, usando nombres de
identificador significativos en lugar de cadenas de código largas y difíciles de leer.
El identificador definido se puede usar para realizar com
pilaciones condicionales en combinación con los
comandos #ifdef o #indef.
Si se especifica un parámetro, se puede usar el nuevo identificador como una macro.
Nota
Si u
sa #define para declarar variables o sustituir etiquetas, se producirá un error:
Se debe tener en cuenta que el uso de la instrucción #define para declarar variables, se producirá un error.
También consulte
#ifdef, #ifndef
24
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de #define
' Quita la marca de comentario de la siguiente línea para el modo Debug.
' #define DEBUG
Input #1, A$
#ifdef DEBUG
Print "A$ = ", A$
#endif
Print "The End"
#define SHOWVAL(x) Print "var = ", x
Integer a
a = 25
SHOWVAL(a)
Manual de referencia del lenguaje SPEL+ Rev.2
25
Manual de referencia del lenguaje SPEL+
#ifdef...#else...#endif
Proporciona capacidades de compilación condicional.
Sintaxis
#ifdef identifier
.
.coloque aquí el código fuente seleccionado para la compilación condicional.
[#else
.
.coloque aquí el código fuente seleccionado para la condición falsa.]
#endif
Parámetros
identifier Palabra clave definida por el usuario que, cuando está definida, permite definir el código
fuente entre #ifdef y #else o #endif que se compilará. Por lo tanto, el identificador actúa como
la condición para la compilación condicional.
Descripción
#ifdef...#else...#endif permiten realizar compilaciones condicionales de código fuente seleccionado. La
condición con respecto a si ocurrirá la compilación o no se determinará según el identifier. #ifdef primero
comprueba si el identificador especificado está definido actualmente por #define. La instrucción #else es
opcional.
Si está definido, y no se usa la instrucción #else, se compilan las instrucciones entre #ifdef y #endif. De lo
contrario, si se usa #else, se compilan las instrucciones entre #ifdef y #else.
Si no está definido, y no se usa la instrucción #else, se ignoran las instrucciones entre #ifdef y #endif sin
compilarlas. De lo contrario, si se usa #else, se compilan las instrucciones entre #else y #endif.
También consulte
#define, #ifndef
Ejemplo de #ifdef
A continuación se muestra una sección de código desde un programa de muestra que usa #ifdef. En el
siguiente ejemplo, la impresión del valor de la variable A$ se ejecutará según la presencia o ausencia de la
definición de la pseudo instrucción #define DEBUG. Si la pseudo instrucción #define DEBUG se usó
antes en esta fuente, la línea Print A$ se compilará y se ejecutará posteriormente cuando se ejecute el
programa. Sin embargo, la impresión de la cadena "The End" ocurrirá sin importar la pseudo instrucción
#define DEBUG.
' Quita la marca de comentario de la siguiente línea para el modo Debug.
' #define DEBUG
Input #1, A$
#ifdef DEBUG
Print "A$ = ", A$
#endif
Print "The End"
26
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
#ifndef...#endif
Proporciona capacidades de compilación condicional.
Sintaxis
#ifndef identifier
.
.Coloque aquí el código fuente seleccionado para la compilación condicional.
[#else
.
.coloque aquí el código fuente seleccionado para la condición verdadera.]
#endif
Parámetros
identifier Palabra clave definida por el usuario que, cuando no está definida, permite definir el código
fuente entre #ifndef y #else o #endif que se compilará. Por lo tanto, el identificador actúa
como la condición para la compilación condicional.
Descripción
Esta instrucción se llama la instrucción "If not defined" (Si no está definida). #ifndef...#else...#endif
permiten realizar compilaciones condicionales de código fuente seleccionado. La instrucción #else es
opcional.
Si está definido, y no se usa la instrucción #else, no se compilan las instrucciones entre #ifndef y #endif.
De lo contrario, si se usa #else, se compilan las instrucciones entre #else y #endif.
Si no está definido, y no se usa la instrucción #else, se compilan las instrucciones entre #ifndef y #endif.
De lo contrario, si se usa #else, no se compilan las instrucciones entre #else y #endif.
Nota
La diferencia entre #ifdef y #ifndef
La diferencia fundamental entre #ifdef y #ifndef es que la instrucción #ifdef compila el código fuente
especificado si el identificador se encuentra identificado. La instrucción #ifndef compila el código fuente
si el identificador no se encuentra identificado.
También consulte
#define, #ifdef
Ejemplo de #ifndef
A continuación se muestra una sección de código desde un programa de muestra que usa #ifndef. En el
siguiente ejemplo, la impresión del valor de la variable A$ se ejecutará según la presencia o ausencia de la
definición de la pseudo instrucción #define NODELAY. Si la pseudo instrucción #define NODELAY se
utilizó anteriormente en esta fuente, la línea Wait 1 NO se compilará junto con el resto de la fuente para
este programa cuando se compile. (es decir, se envió para su ejecución.) Si la pseudo instrucción #define
NODELAY no se usó (es decir, NODELAY no está definido) antes en esta fuente, la línea Wait 1 se
compilará y se ejecutará posteriormente cuando se ejecute el programa. La impresión de la cadena "The
End" ocurrirá sin importar la pseudo instrucción #define NODELAY.
' Comenta la siguiente línea para forzar un retraso.
#define NODELAY 1
Input #1, A$
#ifndef NODELAY
Wait 1
#endif
Print "The End"
Manual de referencia del lenguaje SPEL+ Rev.2
27
Manual de referencia del lenguaje SPEL+
#include
Incluye el archivo especificado cuando se usa la instrucción #include.
Sintaxis
#include "fileName.INC"
Parámetros
fileName fileName debe ser el nombre de un archivo de inclusión en el proyecto actual. Todos los
archivos de inclusión tienen la extensión ".inc". El nombre de archivo especifica el archivo
que se incluirá en el archivo actual.
Descripción
#include inserta los contenidos del archivo de inclusión especificado con el archivo actual cuando se usa la
instrucción #include.
Los archivos de inclusión se usan para contener instrucciones #define y declaraciones globales de variables.
La instrucción #include se debe usar fuera de cualquier definición de funciones.
Un archivo de inclusión puede contener un archivo de inclusión secundario. Por ejemplo, FILE2 puede
incluirse dentro de FILE1, y FILE3 puede incluirse dentro de FILE2. Esto se llama anidamiento.
También consulte
#define, #ifdef, #ifndef
Ejemplo de #include
Archivo de inclusión (Defs.inc)
#define DEBUG 1
#define MAX_PART_COUNT 20
Archivo de programa (main.prg)
#include "defs.inc"
Function main
Integer i
Integer Parts(MAX_PART_COUNT)
Fend
28
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
#undef
Anula la definición de un identificador definido anteriormente con #define.
Sintaxis
#undef identifier
Parámetros
identifier Palabra clave utilizada en una instrucción #decline anterior.
También consulte
#define, #ifdef, #ifndef
Manual de referencia del lenguaje SPEL+ Rev.2
29
Manual de referencia del lenguaje SPEL+
Instrucción AbortMotion
Cancela un comando de movimiento y coloca la tarea en ejecución en el estado de error.
Este comando es para usuarios experimentados y se debe comprender la especificación del comando antes
de usarla.
Sintaxis
AbortMotion {robotNumber | All }
Parámetros
robotNumber Número del robot cuyo movimiento desea detener.
All Cancela el movimiento para todos los robots.
Descripción
Según el estado del robot cuando se ejecuta AbortMotion, el resultado es diferente, como se indica a
continuación.
En cada caso, enganche un error y maneje el procesamiento del error con OnErr para continuar el
procesamiento.
El error 2999 puede usar la constante ERROR_DOINGMOTION.
El error 2998 puede usar la constante ERROR_NOMOTION.
Escriba un programa que no ejecute AbortMotion más de dos veces antes de ejecutar la ejecución continua
(Cont).
Cuando el robot está ejecutando el comando de movimiento
El robot pausa el movimiento del brazo de inmediato y cancela los movimientos restantes.
El error 2999 (ERROR_DOINGMOTION) ocurre en la tarea que estaba ejecutando el comando de
movimiento para el robot.
Para los siguientes comandos de movimiento, el robot se mueve directamente a la siguiente posición desde
el punto en el que se pausó.
Cuando el robot se pausa inmediatamente
Cuando se ejecuta AbortMotion, se cancela el movimiento restante.
El error 2999 (ERROR_DOINGMOTION) ocurre en la tarea que estaba ejecutando el comando de
movimiento para el robot cuando se especifique la instrucción Cont.
Para los siguientes comandos de movimiento, el robot se mueve directamente a la siguiente posición desde
el punto en el que se pausó.
Cuando el robot está en el estado WaitRecover (Protección abierta)
Cuando se ejecuta AbortMotion, se cancela el movimiento restante.
Los siguientes movimientos se pueden seleccionar con los indicadores del comando Recover (Recuperar).
Cuando se ejecuta "Recover robotNumber, WithMove" (Recuperar número de robot, con
movimiento), los motores del robot se encienden y se ejecuta el movimiento de recuperación.
Cuando se ejecuta Cont, ocurre el error 2999 (ERROR_DOINGMOTION) en la tarea que estaba
ejecutando el comando de movimiento para el robot.
Para los siguientes comandos de movimiento, el robot se mueve directamente a la siguiente posición
desde el punto en el que se pausó.
Cuando se ejecuta "Recover robotNumber, WithoutMove" (Recuperar número de robot, sin
movimiento), los motores del robot se encienden.
Cuando se ejecuta Cont, ocurre el error 2999 (ERROR_DOINGMOTION) en la tarea que estaba
ejecutando el comando de movimiento para el robot.
Para los siguientes comandos de movimiento, el robot se mueve directamente a la siguiente posición
desde el punto en el que se pausó, sin el movimiento de recuperación.
30
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Cuando el robot está ejecutando comandos que no sean comandos de movimiento
El error 2998 (ERROR_NOMOTION) ocurre en la tarea que estaba ejecutando anteriormente el comando
de movimiento para el robot. Cuando la tarea está esperando con los comandos Wait o Input, la tarea se
cancela oportunamente y ocurre el error 2998.
Cuando ejecute un comando de movimiento con CP On y un programa no tiene más comandos de
movimiento, ocurre el error 2998, incluso si el robot está en funcionamiento.
Cuando el robot no se está ejecutando desde un programa (tarea)
Ocurre un error.
También consulte
OnErr, Recover, Till
Ejemplo de instrucción AbortMotion
Cuando la E/S de memoria #0 se activa, se ejecuta AbortMotion y el robot vuelve a la posición de reposo.
Function main
Motor On
Xqt sub, NoEmgAbort
OnErr GoTo errhandle
Go P0
Wait Sw(1)
Go P1
Quit sub
Exit Function
errstart:
Home
Quit sub
Exit Function
errhandle:
Print Err
If Err = ERROR_DOINGMOTION Then
Print "Robot is moving" ' Ejecuta Go P0 o Go P1
EResume errstart
ElseIf Err = ERROR_NOMOTION Then
Print " Robot is not moving " ' Ejecuta Wait Sw(1)
EResume errstart
EndIf
Print "Error Stop" ' Ocurren otros errores
Quit All
Fend
Function sub
MemOff 0
Wait MemSw(0)
AbortMotion 1
MemOff 0
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
31
Manual de referencia del lenguaje SPEL+
Función Abs
Arroja el valor absoluto de un número.
Sintaxis
Ab
s(number)
Parámetros
nu
mber Cualquier expresión numérica válida.
Valores devueltos
El valo
r absoluto de un número.
Descripción
El valo
r absoluto de un número es su magnitud sin signo Por ejemplo, Abs(-1) y Abs(1) arrojan 1.
También consulte
Atan
, Atan2, Cos, Int, Mod, Not, Sgn, Sin, Sqr, Str$, Tan, Val
Ejemplo de función Abs
Lo
s siguientes ejemplos se llevan a cabo desde la ventana Command con la instrucción Print.
>
prin
t abs
(1)
1
> prin
t abs(-1)
1
> prin
t abs(-3.
54)
3.54
>
32
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Accel
Define (o muestra) la tasa de aceleración y desaceleración para las instrucciones de movimiento de punto a
punto Go, Jump y Pulse.
Sintaxis
(1) Accel accel, decel [, departAccel, departDecel, approAccel, approDecel ]
(2) Accel
Parámetros
accel Expresión entera 1 o más que representa un porcentaje de la tasa de aceleración máxima.
decel Expresión entera 1 o más que representa un porcentaje de la tasa de desaceleración
máxima.
departAccel Aceleración de alejamiento para Jump. Las entradas válidas son 1 o más.
Opcional. Solo está disponible con el comando Jump.
departDecel Desaceleración de alejamiento para Jump. Las entradas válidas son 1 o más.
Opcional. Solo está disponible con el comando Jump.
approAccel Aceleración de acercamiento para Jump. Las entradas válidas son 1 o más.
Opcional. Solo está disponible con el comando Jump.
approDecel Desaceleración de acercamiento para Jump. Las entradas válidas son 1 o más.
Opcional. Solo está disponible con el comando Jump.
Valores devueltos
Cuando se omiten los parámetros, se muestran los parámetros Accel actuales.
Descripción
Accel especifica la aceleración y desaceleración para todos los movimientos de tipo punto a punto. Esto
incluye el movimiento causado por las instrucciones de movimiento del robot Go, Jump y Pulse.
Cada parámetro de aceleración y desaceleración definido por la instrucción Accel puede ser un valor entero
de 1 o más. Este número representa un porcentaje de la aceleración (o desaceleración) máxima permitida.
Normalmente, el valor máximo es de 100. Sin embargo, algunos robots permiten configurar valores
mayores que 100. Use la función AccelMax para obtener el máximo valor disponible para Accel.
La instrucción Accel se puede usar para definir nuevos valores de aceleración y desaceleración o
simplemente para imprimir los valores actuales. Cuando se usa la instrucción Accel para definir nuevos
valores accel y decel, se necesitan los primeros 2 parámetros (accel y decel) en la instrucción Accel.
Los parámetros departAccel, departDecel, approAccel y approDecel son válidos solo para la instrucción
Jump y especifican los valores de aceleración y desaceleración para el movimiento de alejamiento al
principio de Jump y el movimiento de acercamiento de Jump.
El valor Accel se inicializa a los valores predeterminados (baja aceleración) cuando ocurre una de las
siguientes condiciones:
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+ Rev.2
33
Manual de referencia del lenguaje SPEL+
Notas
Ejecutar el comando Accel en el modo de potencia baja (Power Low)
Si se ejecuta Accel cuando el robot está en el modo de potencia baja (Power Low), se almacenan los
nuevos valores, pero los valores actuales están limitados a valores bajos.
Los valores de aceleración actuales tienen validez cuando Power está configurado en High y el modo Teach
está DESACTIVADO.
Comparación de Accel y AccelS
Es importante tener en cuenta que la instrucción Accel no define las tasas de aceleración y desaceleración
para los movimientos de línea recta y de arco. La instrucción AccelS se usa para definir las tasas de
aceleración y desaceleración para los movimientos de línea recta y arco.
Configuración Accel mayor que 100
Normalmente, el valor máximo es de 100. Sin embargo, algunos robots permiten configurar valores
mayores que 100.
En el uso general, el valor de Accel 100 es la configuración óptima que mantiene el equilibrio de la
aceleración y la vibración cuando se ajusta la posición. Sin embargo, es posible que requiera una operación
con aceleración alta para reducir el tiempo del ciclo reduciendo la vibración en la posición. En este caso,
defina Accel a un valor mayor que 100. Excepto en algunas condiciones operativas, el tiempo del ciclo no
cambiará al configurar Accel en un valor mayor que 100.
También consulte
AccelR, AccelS, Go, Jump, Jump3, Power, Pulse, Speed, TGo
Ejemplo de instrucción Accel
El siguiente ejemplo muestra un programa de movimiento simple en el que la aceleración (Accel) y la
velocidad (Speed) se definen con variables predefinidas.
<Ejemplo 1>
Function acctest
Integer slow, accslow, decslow, fast, accfast, decfast
slow = 20 'define la variable de baja velocidad
fast = 100 'define la variable de alta velocidad
accslow = 20 'define la variable de aceleración lenta
decslow = 20 'define la variable de desaceleración lenta
accfast = 100 'define la variable de aceleración rápida
decfast = 100 'define la variable de desaceleración rápida
Accel accslow, decslow
Speed slow
Jump pick
On gripper
Accel accfast, decfast
Speed fast
Jump place
.
.
.
Fend
34
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
<Ejemplo 2>
Defina la desaceleración de descenso de la articulación Z en lenta para permitir que la pieza se coloque
suavemente cuando se use la instrucción Jump. Esto significa que debemos definir el parámetro Zdnd en un
valor bajo cuando se configuren los valores Accel.
>Accel 100,100,100,100,100,35
>Accel
100 100
100 100
100 35
>
Manual de referencia del lenguaje SPEL+ Rev.2
35
Manual de referencia del lenguaje SPEL+
Función Accel
Arroja un valor de aceleración especificado.
Sintaxis
Accel(paramNumber)
Parámetros
paramNumber Expresión entera que puede tener los siguientes valores:
1: valor de especificación de aceleración
2: valor de especificación de desaceleración
3: valor de especificación de aceleración de alejamiento para Jump
4: valor de especificación de desaceleración de alejamiento para Jump
5: valor de especificación de aceleración de acercamiento para Jump
6: valor de especificación de desaceleración de acercamiento para Jump
Valores devueltos
Número entero 1 % o mayor
También consulte
Instrucción Accel
Ejemplo de función Accel
Este ejemplo usa la función Accel en un programa:
Integer currAccel, currDecel
' Obtiene la aceleración y desaceleración actual
currAccel = Accel(1)
currDecel = Accel(2)
Accel 50, 50
SRVJump pick
' Restablece los valores anteriores
Accel currAccel, currDecel
36
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AccelMax
Arroja la el límite de valor de aceleración máximo disponible para Accel.
Sintaxis
AccelMax(maxValueNumber)
Parámetros
maxValueNumber Expresión entera que puede tener los siguientes valores:
1: valor de aceleración máximo
2: valor de desaceleración máximo
3: valor de aceleración de alejamiento máximo para Jump
4: valor de desaceleración de alejamiento máximo para Jump
5: valor de aceleración de acercamiento máximo para Jump
6: valor de desaceleración de acercamiento máximo para Jump
Valores devueltos
Número entero 1 % o mayor
También consulte
Accel
Ejemplo de función AccelMax
Este ejemplo usa la función AccelMax en un programa:
' Obtiene la aceleración y desaceleración máximas
Print AccelMax(1), AccelMax(2)
Manual de referencia del lenguaje SPEL+ Rev.2
37
Manual de referencia del lenguaje SPEL+
Instrucción AccelR
Define o muestra los valores de aceleración y desaceleración para el control de rotación de la herramienta
del movimiento CP.
Sintaxis
(1) AccelR accel, [, decel]
(2) AccelR
Parámetros
accel Expresión real en grados/segundos
2
(0,1 a 5000).
decel Expresión real en grados/segundos
2
(0,1 a 5000).
Valores devueltos
Cuando se omiten los parámetros, se muestra la configuración AccelR actual.
Descripción
AccelR es efectivo cuando se usa el modificador ROT en los comandos de movimiento Move, Arc (Arco),
Arc3, BMove, TMove y Jump3CP.
El valor AccelR se inicializa a los valores predeterminados cuando ocurre una de las siguientes
condiciones:
También consulte
Arc, Arc3, BMove, Jump3CP, Power, SpeedR, TMove
Ejemplo de instrucción AccelR
AccelR 360, 200
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
38
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AccelR
Arroja un valor de aceleración de rotación de herramienta especificado.
Sintaxis
A
ccelR(paramNumber)
Parámetros
par
amNumber Expresión entera que puede tener los siguientes valores:
1: valor de especificación de aceleración
2: valor de especificación de desaceleración
Valores devueltos
Va
lor real en grados/segundos
2
También consulte
Instrucción AccelR
Ejemplo de función AccelR
Real currAccelR, currDecelR
' Obti
ene la aceleración y desaceleración actual
currAccelR = AccelR(1)
currDecelR = AccelR(2)
Manual de referencia del lenguaje SPEL+ Rev.2
39
Manual de referencia del lenguaje SPEL+
Instrucción AccelS
Define las tasas de aceleración y desaceleración para las instrucciones de movimiento del robot de línea
recta y ruta continua como Move, Arc, Arc3, Jump3, CVMove, etc.
Sintaxis
(1
) AccelS accel [de
cel ], [, departAccel, departDecel, approAccel, approDecel
]
(2) A
ccelS
Parámetros
accel
Expresión real representada en unidades mm/s
2
para definir los valores de aceleración y
desaceleración para los movimientos de línea recta y ruta continua. Si se omite decel, se
usa accel para especificar las tasas de aceleración y desaceleración.
decel Opcional. Expresión real representada en unidades mm/c
2
para definir el valor de
desaceleración.
departAccel Opcional. Expresión real para el valor de aceleración de alejamiento para Jump3,
Jump3CP.
departDecel Opcional. Expresión real para el valor de desaceleración de alejamiento para Jump3,
Jump3CP.
approAccel Opcional. Expresión real para el valor de aceleración de acercamiento para Jump3,
Jump3CP.
approDecel Opcional. Expresión real para el valor de desaceleración de acercamiento para Jump3,
Jump3CP.
Rango de entradas válidas de los parámetros
accel / de
cel
departAccel / departDecel
approAccel / approDecel
LS20, T3 0,1 a 10000
C4-A901** 0,1 a 15000
C4-A601**, C8-A1401**,
G1, G3, G6, G10/G20, LS3, LS6, RS,
C8-A701**W, C8-A901**W
0,1 a 25000
C8-A701**, C8-A701**R,
C8-A901**, C8-A901**R
0,1 a 35000
N2, X5 0,1~5000
(mm/s
2
)
Valores devueltos
Muestra los valores de Accel y Decel cuando se usan sin parámetros
Descripción
Ac
celS especifica la aceleración y desaceleración para todos los tipos de movimiento interpolados,
incluidas las interpolaciones lineales y curvas. Esto incluye el movimiento causado por las instrucciones de
movimiento del robot Move y Arc.
El valor AccelS se inicializa a los valores predeterminad
os cuando ocurre una de las siguientes condiciones:
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
40
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Notas
Ejecutar el comando AccelS en el modo de potencia baja (Power Low):
Si se ejecuta AccelS cuando el robot está en el modo de potencia baja (Power Low), se almacenan los
nuevos valores, pero los valores actuales están limitados a valores bajos.
Los valores de aceleración actuales tienen validez cuando Power está configurado en High y el modo Teach
está DESACTIVADO.
Comparación de Accel y AccelS:
Es importante tener en cuenta que la instrucción AccelS no define las tasas de aceleración y desaceleración
para los movimientos de tipo de punto a punto. (Es decir, movimientos iniciados por las instrucciones Go,
Jump y Pulse.) La instrucción Accel se usa para definir las tasas de aceleración y desaceleración para los
movimientos de tipo de punto a punto.
Valor de límite superior
El valor de límite superior de AccelS varía según la configuración de peso y la posición de la unidad de
Spline. Para conocer detalles, consulte los manuales del Manipulador.
También consulte
Accel, Arc, Arc3, Jump3, Jump3CP, Power, Move, TMove, SpeedS
Ejemplo de instrucción AccelS
El siguiente ejemplo muestra un programa de movimiento simple en el que la aceleración de línea
recta/ruta continua (AccelS) y la velocidad de línea recta/ruta continua (SpeedS) se definen con variables
predefinidas.
Function acctest
Integer slow, accslow, fast, accfast
slow = 20 'define la variable de baja velocidad
fast = 100 'define la variable de alta velocidad
accslow = 200 'define la variable de aceleración lenta
accfast = 5000 'define la variable de aceleración rápida
AccelS accslow
SpeedS slow
Move P1
On 1
AccelS accfast
SpeedS fast
Jump P2
.
.
.
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
41
Manual de referencia del lenguaje SPEL+
Función AccelS
Arroja la aceleración o desaceleración para comandos de movimiento CP.
Sintaxis
AccelS(paramNumber)
Parámetros
paramNumber Expresión entera que puede tener los siguientes valores:
1: valor de aceleración
2: valor de desaceleración
3: valor de aceleración de alejamiento para Jump3, Jump3CP
4: valor de desaceleración de alejamiento para Jump3, Jump3CP
5: valor de aceleración de acercamiento para Jump3, Jump3CP
6: valor de desaceleración de acercamiento para Jump3, Jump3CP
Valores devueltos
Valor real de 0 a 5000 mm/s/s
También consulte
Instrucción AccelS, Arc3, SpeedS, Jump3, Jump3CP
Ejemplo de función AccelS
Real savAccelS
savAccelS = AccelS(1)
42
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Acos
Arroja el arcocoseno de una expresión numérica.
Sintaxis
Acos(number)
Parámetros
number Expresión numérica que representa el coseno de un ángulo.
Valores devueltos
Valor real, en radianes, que representa el arcocoseno del parámetro number.
Descripción
Acos arroja el arcocoseno de la expresión numérica. El rango de valores es de -1 a 1. El valor devuelto por
Acos varía entre 0 a PI radianes. Si number es < -1 o > 1, ocurre un error.
Para convertir de radianes a grados, use la función RadToDeg.
También consulte
Abs, Asin, Atan, Atan2, Cos, DegToRad, RadToDeg, Sgn, Sin, Tan, Val
Ejemplo de función Acos
Function acostest
Double x
x = Cos(DegToRad(30))
Print "Acos of ", x, " is ", Acos(x)
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
43
Manual de referencia del lenguaje SPEL+
Función Agl
Arroja el ángulo de la articulación para la articulación rotacional seleccionada, o la posición de la
articulación lineal seleccionada.
Sintaxis
Agl(jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación. Los valores van desde 1
al número de articulaciones del robot. El eje S adicional es 8 y el eje T es 9.
Valores devueltos
El ángulo de la articulación para la articulación rotacional seleccionada, o la posición de las articulaciones
lineales seleccionadas.
Descripción
La función Agl se usa para obtener el ángulo de la articulación para la articulación rotacional seleccionada,
o la posición de la articulación lineal seleccionada.
Si la articulación seleccionada es rotacional, Agl arroja el ángulo actual, medido desde la posición 0 de la
articulación seleccionada, en grados. El valor devuelto es un número real.
Si la articulación seleccionada es lineal, Agl arroja la posición actual, medida desde la posición 0 de la
articulación seleccionada, en mm. El valor devuelto es un número real.
Si se selecciona un brazo auxiliar con la instrucción Arm, Agl arroja el ángulo (o posición) desde la
posición de pulso 0 de brazo estándar del brazo seleccionado.
También consulte
PAgl, Pls, PPls
Ejemplo de función Agl
Los siguientes ejemplos se llevan a cabo desde la ventana Command con la instrucción Print.
> print agl(1), agl(2)
17.234 85.355
44
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AglToPls
Convierte los ángulos de robot a pulsos.
Sintaxis
AglToPls( j1, j2, j3, j4 [, j5, j6 ], [ j7 ], [ j8, j9 ] )
Parámetros
j1 – j6 Expresiones reales que representan los ángulos de articulación.
j7 Expresión real que representa el ángulo de la articulación n.° 7. Para robots de tipo de
articulación de 7 ejes.
j8 Expresión real que representa el ángulo del eje S adicional.
j9 Expresión real que representa el ángulo del eje T adicional.
Valores devueltos
Un punto de robot cuya ubicación es determinada por los ángulos de articulación convertidos en pulsos.
Descripción
Use AglToPls para crear un punto desde los ángulos de articulación.
Nota
La asignación a un punto puede causar que se pierda parte de la posición de la articulación.
En ciertos casos, cuando el resultado de AglToPls se asigna a una variable de datos de punto, el brazo se
mueve a una posición diferente de la posición de la articulación especificada por AglToPls.
Por ejemplo:
P1 = AglToPls(0, 0, 0, 90, 0, 0)
Go P1 ' se mueve a la posición de articulación AglToPls(0, 0, 0, 0, 0, 90)
De forma similar, cuando se usa la función AglToPls como parámetro en un comando de movimiento CP,
el brazo se puede mover a una posición de articulación distinta de la posición de articulación especificada
por AglToPls.
Move AglToPls(0, 0, 0, 90, 0, 0) ' se mueve a la posición de articulación AglToPls(0,
0, 0, 0, 0, 90)
Cuando se usa la función AglToPls como un parámetro en un comando de movimiento PTP, ese problema
no ocurre.
También consulte
Agl, JA, Pls
Ejemplo de función AglToPls
Go AglToPls(0, 0, 0, 90, 0, 0)
Manual de referencia del lenguaje SPEL+ Rev.2
45
Manual de referencia del lenguaje SPEL+
Función AIO_In
Lee el valor análogo desde el canal de entrada de E/S análoga opcional.
Sintaxis
AIO_In(Channel Number)
Parámetros
Channel Number Especifica el número de canal para la E/S análoga.
Valores devueltos
Arroja el valor de entrada análogo del canal de E/S análoga que se especifica en el número de canal en
números reales. El rango de valores devueltos varía según la configuración del rango de entradas de la placa de
E/S análoga.
Descripción
InFunction
También consulte
AIO_InWFunction, AIO_Out, AIO_OutW, AIO_OutFunction, AIO_OutWFunction, AIO_Set, Wait
Ejemplo de función AIO_In
Function main
Real var1
var1 = AIO_In(2) 'Adquiere el estado de entrada de la entrada del canal análogo 2
If var1 > 5.0 Then
Go P1
Go P2
'Ejecuta otro comando de movimiento aquí
'.
'.
Else
Print "Error in initialization!"
Print "Sensory Inputs not ready for cycle start"
Print "Please check analog inputs 2."
EndIf
Fend
46
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AIO_InW
Lee el valor análogo desde el canal de entrada de E/S análoga opcional.
Sintaxis
AIO_InW(Channel Number)
Parámetros
Channel Number Especifica el número de canal para la E/S análoga.
Valores devueltos
Arroja los estados de entrada (números enteros largos desde 0 a 65535) del canal de E/S análoga
especificado.
Las medidas contra el voltaje (corriente) de entrada de la placa y los valores devueltos son los siguientes
según la configuración del rango de entrada de la placa de E/S análoga.
Datos de entrada Configuración de rango de entrada
Hexadecimal Decimal
10,24 (V) 5,12 (V)
0 a 5,12
(V)
0 a
10,24(V)
0 a 24 (mA)
0xFFFF 65535 10,23969 5,11984 5,12000 10,24000 24,00000
0x8001 32769 0,00031 0,00016 2,56008 5,12016 12,00037
0x8000 32768 0,00000 0,00000 2,56000 5,12000 12,00000
0x0000 0 -10,24000 -5,12000 0,00000 0,00000 0,00000
También consulte
AIO_InFunction, AIO_Out, AIO_OutW, AIO_OutFunction, AIO_OutWFunction, AIO_Set, Wait
Ejemplo de función AIO_In
Long word0
word0 = AIO_InW(1)
Manual de referencia del lenguaje SPEL+ Rev.2
47
Manual de referencia del lenguaje SPEL+
AIO_Out
Genera un valor análogo desde el canal de salida de E/S análoga opcional.
Sintaxis
AIO_O
ut Channel Number, Outputdata [, Forced]
Parámetros
Ch
annel Number Especifica el número de canal para la E/S análoga.
Output data Especifica el número real de tipo Real que indica el voltaje de salida [V] o el valor de
corriente [mA] en una fórmula o valor.
Forced Opcional. Normalmente se omite.
Descripción
G
enera el valor Real que indica el voltaje [V] o la corriente [mA] especificados para el puerto de salida
análogo que se especificó en el puerto de canal. Define el rango de salida de voltaje del puerto de salida
análogo o la selección de salida de voltaje y corriente con el interruptor de la placa. Si se configura un
valor que está fuera del rango del puerto de E/S análogo, genera el valor límite (valores máximo y mínimo)
que no se encuentra fuera del rango.
El comando AIO_Out se convierte en un error si se está generando la información de velocidad con el canal
especificado. Detiene la generación de información de velocidad y ejecuta el comando AIO_Out.
Nota
Indicador Forced
Especifica el indicador
si se está generando la E/S análoga cuando se opera la parada de emergencia o se
abre la puerta de seguridad con las tareas NoPause y NoEmgAbort (se especifica una tarea especial para
que NoPause o NoEmgAbort se inicien al ejecutar Xqt).
Debe tener cuidado con el diseño del sistema ya que la salida de E/S análoga cambia al operar la parada de
emergencia o al abrir la Puerta de seguridad.
También consulte
AIO_In, A
IO_InFunction, AIO_OutW, AIO_OutFunction, AIO_OutWFunction, AIO_Set
Ejemplo de AIO_Out
Genera 7,0 [V] desde el canal 1 de E/S análogo.
A
IO_Out 1, 7.0
48
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AIO_Out
Arroja el valor análogo en un número real que se genera en el canal de salida de E/S análogo opcional.
Sintaxis
AIO_O
ut(Channel Number)
Parámetros
C
hannel Number Especifica el número de canal para la E/S análoga.
Valores devueltos
Ar
roja el voltaje del canal de E/S análogo y el estado de salida de corriente especificados en un número real.
La unidad de salida de voltaje es [V] y la de salida de corriente es [mA].
Esta función está disponible al producir la información de velocidad del robot en el canal especificado.
También consulte
AIO_In, A
IO_InFunction, AIO_Out, AIO_OutW, AIO_OutWFunction, AIO_Set, Wait
Ejemplo de función AIO_Out
Real rdata01
r
data01 = AIO_Out(1)
Manual de referencia del lenguaje SPEL+ Rev.2
49
Manual de referencia del lenguaje SPEL+
AIO_OutW
Genera el valor análogo de 16 bits desde el canal de salida de E/S análoga opcional.
Sintaxis
AIO_OutW Channel Number, Output data [, Forced]
Parámetros
Channel Number Especifica el número de canal para la E/S análoga.
Output data Especifica los datos de salida (Expresión entera desde 0 a 65535) en una fórmula o
valor.
Forced Opcional. Normalmente se omite.
Descripción
Genera a un canal de E/S especificado con un número de canal.
Para los datos de salida, especifica una expresión entera desde 0 a 65535 en una fórmula o valor.
El voltaje de salida (corriente) es el siguiente, según la configuración del rango de salida que se define con
el interruptor de la placa.
Datos de salida Configuración de rango de salida
Hexadecimal Decimal
10 (V) 5 (V)
0 a 5 (V) 0 a 10 (V)
4 a 20
(mA)
0 a 20
(mA)
0xFFFF 65535 9,99970 4,99985 5,00000 10,00000 20,00000 20,00000
0x8001 32769 0,00031 0,00015 2,50008 5,00015 12,00024 10,00031
0x8000 32768 0,00000 0,00000 2,50000 5,00000 12,00000 10,00000
0x0000 0 -10,00000 -5,00000 0,00000 0,00000 4,00000 0,00000
Nota
Indicador Forced
Especifica el indicador si se está generando la E/S análoga cuando se opera la parada de emergencia o se
abre la puerta de seguridad con las tareas NoPause y NoEmgAbort (se especifica una tarea especial para
que NoPause o NoEmgAbort se inicien al ejecutar Xqt) y una tarea en segundo plano.
Debe tener cuidado con el diseño del sistema ya que la salida de E/S análoga cambia al operar la parada de
emergencia o al abrir la Puerta de seguridad.
También consulte
AIO_In, AIO_InFunction, AIO_Out, AIO_OutFunction, AIO_OutWFunction, AIO_Set, Wait
Ejemplo de AIO_OutW
AIO_OutW 1, &H8000
50
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AIO_OutW
Arroja el valor de salida análoga en números enteros largos desde 0 a 65535, que se genera en un canal de
E/S análogo opcional.
Sintaxis
AIO_OutW(Channel Number)
Parámetros
Channel Number Especifica el número de canal para la E/S análoga.
Valores devueltos
Arroja el estado de salida del canal de E/S análogo especificado en números enteros largos desde 0 a
65535.
Las medidas contra el voltaje (corriente) de salida de la placa y los valores devueltos son los siguientes
según la configuración del rango de salida de la placa de E/S análoga.
Datos de salida Configuración de rango de salida
Hexadecimal Decimal
10 (V) 5 (V)
0 a 5 (V) 0 a 10 (V) 4 a 20
(mA)
0 a 20
(mA)
0xFFFF 65535 9,99970 4,99985 5,00000 10,00000 20,00000 20,00000
0x8001 32769 0,00031 0,00015 2,50008 5,00015 12,00024 10,00031
0x8000 32768 0,00000 0,00000 2,50000 5,00000 12,00000 10,00000
0x0000 0 -10,00000 -5,00000 0,00000 0,00000 4,00000 0,00000
Esta función está disponible al producir la información de velocidad del robot en el canal especificado.
También consulte
AIO_In, AIO_InFunction, AIO_Out, AIO_OutW, AIO_OutFunction, AIO_Set, Wait
Ejemplo de función AIO_OutW
Long word0
word0 = AIO_OutW(1)
Manual de referencia del lenguaje SPEL+ Rev.2
51
Manual de referencia del lenguaje SPEL+
AIO_Set
Genera la información de velocidad del robot al canal de salida de E/S análoga opcional.
Sintaxis
(1) AIO_Set channelNumber, On, {RefTCPSpeed | RealTCPSpeed | RefECPSpeed |
RealECPSpeed }, MaximumOutputSpeed [,MiminumOutputSpeed]
(2) AIO_Set Channel Number, Off
(3) AIO_Set [Channel Number]
Parámetros
Channel Number Especifica el número de canal para la E/S análoga.
On Especifica los datos de salida (Expresión entera desde 0 a 65535) en una
fórmula o valor.
Off Finaliza la generación análoga de la información de velocidad e inicializa la
salida a "0".
RefTCPSpeed Genera la velocidad ordenada del TCP que está seleccionado actualmente.
RealTCPSpeed Genera la velocidad real del TCP que está seleccionado actualmente.
RefECPSpeed Genera la velocidad ordenada del ECP que está seleccionado actualmente.
RealECPSpeed Genera la velocidad real del ECP que está seleccionado actualmente.
MaximumOutputSpeed Especifica el número real de tipo Real (unidad [mm/s]) que indica la velocidad
cuando se genera el valor máximo del rango de salida en una fórmula o valor.
MinimumOutputSpeed Especifica el número real de tipo Real (unidad [mm/s]) que indica la velocidad
cuando se genera el valor mínimo del rango de salida en una fórmula o valor. El
valor es "0" [0 mm/s] cuando se omite.
Descripción
Realiza la generación en tiempo real de la velocidad de TCP (punto central de herramienta) o ECP (punto
de control externo) con el voltaje análogo o la corriente al canal de E/S análogo especificado por el número
de canal. Define la selección del voltaje o la corriente análogos y la configuración del rango de salida con
un interruptor y un puente en la placa de E/S análoga.
La velocidad del robot, que corresponde a un valor mínimo y máximo del rango de salida, es determinada
por la interpolación lineal según la velocidad de salida mínima y máxima, como se muestran en la figura a
continuación.
Si se especifica la velocidad ordenada (RefTCPSpeed o RefECPSpeed), genera la forma de onda de
velocidad ideal según el valor del comando que se está aplicando al robot.
Si se especifica la velocidad real (RealTCPSpeed Y RealECPSpeed), genera la forma de onda de velocidad
Velocidad de punta [mm/s]
Velocidad de salida máxima
Velocidad de salida mínima
Salida mínima
Salida máxima
Salida
[V o mA]
52
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
calculada según el movimiento real del robot.
Si se especifica el TCP (RefTCPSpeed o RealTCPSpeed), genera la velocidad del punto central de la
herramienta seleccionada actualmente (de forma predeterminada: Herramienta 0).
Si especifica el ECP (RefECPSpeed o RealECPSpeed), genera la velocidad del punto de control externo
(ECP) que está seleccionado actualmente. Si ECP no está seleccionado (cuando ECP = 0), genera la salida
mínima.
Si solo se especifica el número del canal, muestra la información de configuración de salida de la E/S del
canal análogo especificado. Si se omiten todos los argumentos, muestra la información de configuración
de salida de la E/S de todos los canales análogos especificados.
También consulte
AIO_In, AIO_InFunction, AIO_Out, AIO_OutFunction, AIO_Out, AIO_OutWFunction, AIO_Set,
Wait
Ejemplo de AIO_Set
Define la salida de velocidad real del TCP del robot 1 y la herramienta 1 al canal de la salida análoga.
Realiza la salida análoga de la velocidad de funcionamiento del robot y desactiva la configuración de salida
de velocidad.
Robot 1
Tool 1
Motor On
Power High
SpeedS 2000
AccelS 5000
AIO_Set 1, On, RealTCPSpeed, 2000.0, 0.0
Move P1
AIO_Set 1, Off
Manual de referencia del lenguaje SPEL+ Rev.2
53
Manual de referencia del lenguaje SPEL+
Función AIO_Set
Arroja la información de configuración de la salida de velocidad del robot que está definida en el
canal de salida de E/S análoga opcional.
Sintaxis
AIO_Set(channelNumber, Index)
Parámetros
Channel number Especifica el número de canal para la E/S análoga.
Index Especifica el índice de información de configuración de adquisición en un número
entero.
Valores devueltos
La siguiente tabla muestra la información que está disponible desde la función AIO_Set:
Índice
analítico
Información
1 On
(
1
)
/ Off
(
0
)
2 RefTCPSpeed(0)/ RealTCPSpeed(1)/ RefECPSpeed(2)/ RealECPSpeed(3)
3 Velocidad de salida máxima [mm/s]
4 Velocidad de salida mínima [mm/s]
También consulte
AIO_InAIO_InFunction, AIO_Out, AIO_OutW, AIO_OutFunction, AIO_OutWFunction, AIO_Set,
Wait
Ejemplo de función AIO_Set
Print “Analog Ch#1 speed output is: ”, AIO_Set(1, 1)
54
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Align
Arroja los datos de punto convertidos para alinearse con la orientación del robot (U, V, W) en el punto
especificado en el sistema de coordenadas de herramienta con el eje más cercano o especificado del sistema
de coordenadas local.
Sintaxis
(1) Align (Point[, localNumber[,axisNumber] ])
Parámetros
Point Los datos de punto.
localNumber El número del sistema de coordenadas local al que se hará referencia para la
alineación de la orientación.
Si se omite, se usa el sistema de coordenadas base.
axisNumber Especifica el número del eje para alinear la orientación del robot. Si se omite, la
orientación del robot se alineará con el eje con las coordenadas más cercanas.
Constante Valor
COORD_X_PLUS 1: Eje +X
COORD_Y_PLUS 2: Eje +Y
COORD_Z_PLUS 3: Eje +Z
COORD_X_MINUS 4: Eje -X
COORD_Y_MINUS 5: Eje -Y
COORD_Z_MINUS 6: Eje -Z
Descripción
Cuando opere el robot de 6 ejes (incluida la serie N), es posible que sea necesario alinear la orientación del
robot con un eje del sistema de coordenadas local sin cambiar la posición del sistema de coordenadas de
herramienta (origen) definido con los datos de punto.
La función Align convierte los datos de orientación (U, V, W) de los datos de punto especificados y se
alinea con el eje más cercano o especificado del sistema de coordenadas local especificado.
Para los robots, excepto los robots de 6 ejes (incluida la serie N), arroja un punto especificado.
También consulte
Función AlignECP, Función LJM
Ejemplo de función Align
Move Align(P0) ROT
P1 = Align(P0, 1)
Move P1 ROT
P2 = Align(P0, 1, 3)
Move P2 ROT
Manual de referencia del lenguaje SPEL+ Rev.2
55
Manual de referencia del lenguaje SPEL+
Función AlignECP
Arroja los datos de punto convertidos para alinearse con la orientación del robot (U, V, W) en el punto
especificado en el sistema de coordenadas de herramienta con el eje más cercano del sistema de
coordenadas ECP.
Sintaxis
(1) AlignECP (Point, ECPNumber)
Parámetros
Point Los datos de punto.
ECPNumber El número del sistema de coordenadas ECP que será una referencia para la alineación
de la orientación.
Descripción
Cuando opere el robot de 6 ejes (incluida la serie N), es posible que sea necesario alinear la orientación del
robot con un eje del sistema de coordenadas local sin cambiar la posición del sistema de coordenadas de
herramienta (origen) definido con los datos de punto.
La función AlignECP convierte los datos de orientación (U, V, W) de los datos de punto especificados y se
alinea con el eje más cercano del sistema de coordenadas local especificado.
Para los robots, excepto los robots de 6 ejes (incluida la serie N), arroja un punto especificado.
También consulte
Función Align, Función LJM
Ejemplo de función AlignECP
Move AlignECP(P0) ROT
P1 = AlignECP(P0, 1)
Move P1 ROT
56
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Operador And
Operador que se usa para realizar una función And lógica o bitwise de 2 expresiones.
Sintaxis
result = expr1 And expr2
Parámetros
expr1, expr2 Para la función lógica And, cualquier expresión válida que arroja un resultado booleano.
Para la función bitwise And, una expresión entera.
result Para la función lógica And, el resultado es un valor booleano. Para la función bitwise And,
el resultado es un valor entero.
Descripción
Se usa una función lógica And para combinar los resultados de 2 o más expresiones en 1 resultado
booleano único. La siguiente tabla indica las posibles combinaciones.
expr1 expr
2
Resultado
Verdadero Verdadero Verdadero
Verdadero Falso Falso
Falso Verdadero Falso
Falso Falso Falso
Una función bitwise And realiza una comparación bitwise de bits posicionados de forma idéntica en dos
expresiones numéricas y define el bit correspondiente en result según la siguiente tabla:
Si el bit en expr1
es
Y el bit en expr2 es
El resultado
es:
0 0 0
0 1 0
1 0 0
1 1 1
También consulte
LShift, Mask, Not, Or, RShift, Xor
Ejemplo del operador And
Function LogicalAnd(x As Integer, y As Integer)
If x = 1 And y = 2 Then
Print "The values are correct"
EndIf
Fend
Function BitWiseAnd()
If (Stat(0) And &H800000) = &H800000 Then
Print "The enable switch is open"
EndIf
Fend
>print 15 and 7
7
>
Manual de referencia del lenguaje SPEL+ Rev.2
57
Manual de referencia del lenguaje SPEL+
Instrucción AOpen
Abre un archivo en el modo de anexar.
Sintaxis
A
Open fileName As #fileNumber
.
.
Close #fileNumber
Parámetros
fil
eName Expresión de cadena que especifica una ruta y nombre de archivo válidos. Si se
especifica solo un nombre de archivo, el archivo debe estar en la carpeta actual.
Consulte ChDisk para conocer detalles.
fileNumber Expresión entera que representa valores desde 30 a 63.
Descripción
Abre el archivo especificado y lo identifica según el número de archivo especificado. Esta instrucción se
usa para agregar datos al archivo especificado. Si no se encuentra el archivo especificado, crea un archivo
nuevo.
El fileNumber especificado identifica el archivo mientras está abierto y no se puede usar para referirse a un
archivo diferente hasta que el archivo actual esté cerrado. fileNumber es utilizado por otras operaciones
como Print#, Write, Flush y Close.
Use la instrucción Close para cerrar el archivo y liberar el número de archivo.
Recomendamos que use la función FreeFile para obtener el número de archivo para que el mismo número
no
sea utilizado por más de una tarea.
Notas
Hay una ruta de red disponible.
fer de escritura en archivo
La escritura en archivo se almacena en el búfer. Los datos almacenados en el búfer se pueden escribir con
la instrucción Flush. También, al cerrar un archivo con la instrucción Close, los datos almacenados en el
búfer se pueden escribir.
También consulte
Close, Print #, BOpen, ROpen, UOpen, WOpen, FreeFile, Flush
Ejemplo de instrucción AOpen
I
nteger fileNum, i
FileNum = FreeFile
W
Open "TEST.TXT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next I
Close #fileNum
....
....
....
FileNum = FreeFile
AOpen "TEST.TXT" As #FileNum
For i = 101 to 200
Print #FileNum, i
Next i
Close #FileNum
58
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucciones Arc y Arc3
Arc mueve el brazo al punto especificado utilizando la interpolación circular en el plano XY.
Arc3 mueve el abrazo hasta el punto especificado mediante una interpolación circular en tres dimensiones.
Estos dos comandos están disponibles para robots SCARA (incluidos los de la serie RS) y de 6 ejes
(incluidos los de la serie N).
Sintaxis
(1) Arc midPoint, endPoint [ROT] [CP] [ searchExpr ] [!...!] [SYNC]
(2) Arc3 midPoint, endPoint [ROT] [ECP] [CP] [ searchExpr ] [!...!] [SYNC]
Parámetros
midPoint Expresión de punto. El punto medio (que el usuario enseñó anteriormente) por el cual de
desplaza el brazo de camino al endPoint desde el punto actual.
endPoint Expresión de punto. El punto final (que el usuario enseñó anteriormente) hasta el cual se
desplaza el brazo durante el movimiento de tipo arco. Esta es la posición final al terminar el
movimiento circular.
ROT Opcional. :Decide la velocidad/aceleración/desaceleración en favor de la rotación de la
herramienta.
ECP Opcional. Movimiento de punto de control externo. Este parámetro es válido cuando se
activa la opción ECP.
CP Opcional. Especifica un movimiento de ruta continua.
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Puede que se usen instrucciones de procesamiento paralelo con la instrucción Arc. Estas son
opcionales. (Consulte la descripción del procesamiento paralelo para conocer más detalles).
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se ejecute
SyncRobots.
Descripción
Arc y Arc3 se usan para mover el brazo en un movimiento de tipo circular desde la posición actual hasta
endPoint mediante midPoint. El sistema calcula automáticamente una curva basado en los tres puntos
(posición actual, endPoint y midPoint) y luego se mueve a lo largo de esa curva hasta llegar al punto que
define endPoint. Las coordenadas de midPoint y endPoint se deben enseñar previamente antes de ejecutar
la instrucción. Las coordenadas no se pueden especificar en la instrucción en sí.
Arc y Arc3 usan el valor de velocidad SpeedS y los valores de aceleración y desaceleración AccelS.
Consulte Uso de Arc3 con CP a continuación para conocer la relación entre la velocidad/aceleración y la
aceleración/desaceleración. No obstante, si se usa el parámetro modificador ROT, Arc y Arc3 usan el valor
de velocidad SpeedR y los valores de aceleración y desaceleración AccelR. En este caso, el valor de
velocidad SpeedS y el valor de aceleración y desaceleración AccelS no tienen efecto.
Normalmente, cuando la distancia de movimiento es 0 y solo cambia la orientación de la herramienta,
ocurrirá un error. Sin embargo, mediante el uso del parámetro ROT y la priorización de la aceleración y la
desaceleración de la rotación de la herramienta, es posible realizar el movimiento sin un error. Cuando no
hay un cambio de orientación con el parámetro modificador ROT y la distancia de movimiento no es "0",
ocurrirá un error.
También, cuando la rotación de la herramienta es grande en comparación con la distancia de movimiento, y
cuando la velocidad de rotación supera la velocidad especificada del manipulador, ocurrirá un error. En este
caso, reduzca la velocidad o agregue el parámetro modificador ROT para dar prioridad a la velocidad
Manual de referencia del lenguaje SPEL+ Rev.2
59
Manual de referencia del lenguaje SPEL+
Work
rotacional/aceleración/desaceleración.
Cuando se usa ECP (solo Arc3), la trayectoria del punto de control externo que corresponde al número
ECP especificado con la instrucción ECP se mueve en forma circular respecto del sistema de coordenadas
de la herramienta. En este caso, la trayectoria del punto central de la herramienta no sigue una línea
circular.
Configuración de velocidad y aceleración para el movimiento de arco
SpeedS y AccelS se usan para configurar la velocidad y aceleración de las instrucciones Arc y Arc3.
SpeedS y AccelS le permiten al usuario especificar una velocidad en mm/seg. y la aceleración en mm/seg
2.
Notas
La instrucción Arc funciona solo en el plano horizontal
El recorrido del arco es un arco verdadero en el plano horizontal. El recorrido se interpola mediante los
valores de endPoint como su base para Z y U. Use Arc3 para los arcos tridimensionales.
Verificación de rango para la instrucción Arc
Las instrucciones Arc y Arc3 no pueden calcular una verificación de rango de la trayectoria antes del
movimiento de arco. Por lo tanto, incluso para las posiciones objetivo que están dentro del rango permitido,
mientras está desplazándose, el robot podría atravesar un recorrido que no tiene un rango válido y se
detendría con un impacto grave que podría dañar el brazo. Para evitar que esto suceda, asegúrese de realizar
verificaciones de rango mediante la ejecución del programa a baja velocidad antes de ejecutarlo a mayor
velocidad.
Configuración de movimiento sugerido para el movimiento de arco
Dado que el movimiento de arco comienza desde la posición actual, puede que sea necesario usar Go, Jump
u otro comando de movimiento relacionado para llevar el robot hasta la posición deseada antes de ejecutar
Arc o Arc3.
Uso de Arc, Arc3 con CP
El parámetro CP provoca que el brazo se mueva hasta el punto final sin desacelerar ni detenerse en el punto
que se define con endPoint. Esto se hace para permitir al usuario enlazar una serie de instrucciones de
movimiento que causan que el brazo se mueva a lo largo de una ruta continua mientras mantiene una
velocidad especificada durante todo el movimiento. Las instrucciones Arc y Arc3 sin CP siempre provocan
que el brazo desacelere hasta detenerse antes de llegar al punto final.
Posibles errores
Cambio de los atributos Hand
Preste mucha atención a los atributos HAND (Mano) de los puntos usados con la instrucción Arc. Si la
orientación de la mano cambia (de derecha a izquierda, o viceversa) durante el movimiento de
TCP
Traba
j
o
ECP
60
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
interpolación circular, se genera un error. Esto significa que los valores del atributo de brazo (/L a la
izquierda o /R a la derecha) deben ser iguales para la posición actual y los puntos midPoint y endPoint.
Intento de mover el brazo fuera del envolvente de trabajo
Si el movimiento circular especificado intenta mover el brazo fuera del envolvente de trabajo del brazo, se
genera un error.
También consulte
!Parallel Processing!, AccelS, Move, SpeedS
Ejemplo de instrucciones Arc, Arc3
El siguiente diagrama muestra el movimiento de arco que se originó en el punto P100 y luego se movió por
P101 hasta llegar a P102. La siguiente función podría generar este tipo de arco:
Function ArcTest
Go P100
Arc P101, P102
Fend
P 1 0 2
P 1 0 1
P 1 0 0
Consejo
Cuando trata de usar la instrucción Arc por primera vez, se sugiere que pruebe un arco simple que apunte
directamente a la parte delantera del robot, casi al medio del envolvente de trabajo. Trate de visualizar el
arco que se puede generar y asegúrese de que no está enseñando puntos de una manera que el brazo de
robot trate de moverse fuera del envolvente de trabajo normal.
Manual de referencia del lenguaje SPEL+ Rev.2
61
Manual de referencia del lenguaje SPEL+
Instrucción Arch
Define o muestra los parámetros Arch (Arco) para usarlos con las instrucciones Jump, Jump3, Jump3CP.
Sintaxis
(1) Arch archNumber, departDist, approDist
(2) Arch archNumber
(3) Arch
Parámetros
archNumber Expresión entera que representa el número de arco que debe definir. Los números de arco
válidos son de 0 a 6, lo que crea un total de siete entradas en la tabla Arch. (consulte la
siguiente tabla Arch predeterminada)
departDist La distancia vertical que se movió (Z) al inicio del movimiento Jump antes de comenzar el
movimiento horizontal. (especificada en milímetros)
Para Jump3 y Jump3CP, especifica la distancia de alejamiento antes de un movimiento de
alcance. (especificado en milímetros)
approDist La distancia vertical necesaria (como se midió desde la posición Z del punto hacia donde se
mueve el brazo) para moverse completamente de forma vertical con todo el movimiento
horizontal completo. (especificado en milímetros)
Para Jump3 y Jump3CP, especifica la distancia de acercamiento antes de un movimiento de
alcance. (especificado en milímetros)
Valores devueltos
Muestra la tabla Arch cuando se usa sin los parámetros.
La tabla Arch del número de arco especificado aparecerá solo cuando se especifique el número de arco.
Descripción
El principal objetivo de la instrucción Arch es definir los valores de la tabla Arch que son necesarios para
usarse con la instrucción de movimiento Jump. El movimiento Arch se realiza según los parámetros que
corresponden al número de arco seleccionado en el modificador Jump C. (Para entender completamente la
instrucción Arch, el usuario debe primero comprender la instrucción Jump).
Las definiciones de Arch le permiten al usuario "redondear las esquinas" en la dirección Z cuando usa la
instrucción Jump C. Mientras la instrucción Jump especifica el punto hacia el cual se moverá (incluida la
posición final de la articulación Z), las entradas de la tabla Arch especifican la distancia en que se moverá
hacia arriba antes de que inicie el movimiento horizontal (riseDist) y la distancia ascendente desde la
posición final de la articulación Z para completar todo el movimiento horizontal (fallDist). (Consulte el
siguiente diagrama)
Distancia de
alejamiento
Distancia de
acercamiento
62
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Existe un total de 8 entradas en la tabla Arch Definition con (Definición de arco) y el usuario puede definir
7 de ellas (0-6). La octava entrada (Arch 7) es el arco predeterminado que no especifica realmente ningún
arco en absoluto y se conoce como "movimiento de compuerta". (Consulte el siguiente diagrama de
Movimiento de compuerta) La instrucción Jump usada con la entrada de arco predeterminada (entrada 8)
genera que el brazo haga lo siguiente:
1) Comienza a moverse solo con el movimiento de la articulación Z hasta que alcanza el valor de
coordenadas Z especificado con el comando LimZ. (El valor Z superior)
2) Después, se mueve de manera horizontal hasta la posición del punto objetivo hasta alcanzar las
posiciones finales X, Y y U.
3) Para completar la instrucción Jump mueva el brazo hacia abajo solo con el movimiento de la
articulación Z hasta alcanzar la posición de la articulación Z.
Movimiento de compuerta
(Jump con Arch 7)
P0
P1
Valores predeterminados de la tabla Arch
Número
de arco
Distancia de
alejamiento
Distancia de
acercamiento
0 30 30
1 40 40
2 50 50
3 60 60
4 70 70
5 80 80
6 90 90
Notas
Otra causa para el movimiento de compuerta
Cuando el valor especificado de la distancia de elevación o de la distancia de caída es mayor que la
distancia real de la articulación Z, distancia que el robot debe recorrer para llegar a la posición objetivo, se
genera el movimiento de compuerta. (es decir, no ocurre ningún movimiento de tipo arco).
Los valores Arch se mantienen
Los valores de la tabla Arch se guardan permanentemente y no cambian hasta que el usuario los modifica.
La trayectoria del movimiento Jump cambia según el movimiento y la velocidad
La trayectoria del movimiento Jump consiste en el movimiento vertical y el movimiento horizontal. No es
una trayectoria de ruta continua. La trayectoria real de Jump de movimiento de arco no se determina solo
por los parámetros de Arch. También depende del movimiento y la velocidad.
En una trayectoria de Jump, la distancia de alejamiento aumenta y la distancia de acercamiento disminuye
cuando la velocidad de movimiento está configurada a un valor alto. Cuando la distancia de caída de la
trayectoria es más corta que la esperada, reduzca la velocidad o la desaceleración, o aumente la distancia de
caída.
Siempre tenga cuidado al optimizar la trayectoria de Jump en sus aplicaciones. Ejecute Jump con el
movimiento y la velocidad deseados para verificar la trayectoria real.
Manual de referencia del lenguaje SPEL+ Rev.2
63
Manual de referencia del lenguaje SPEL+
Cuando la velocidad es menor, la trayectoria será menor. Si se ejecuta Jump con una alta velocidad para
verificar una trayectoria de movimiento de arco, el efector final puede chocar con un objeto con menor
velocidad.
Incluso si se ejecutan los comandos Jump con la misma distancia y velocidad, la trayectoria se ve afectada
por el movimiento de los brazos del robot. Como ejemplo general, para el robot SCARA, la distancia
vertical ascendente aumenta y la distancia vertical descendente disminuye cuando el movimiento del primer
brazo es grande. Cuando la distancia de caída vertical disminuye y la trayectoria es menor que la esperada,
reduzca la velocidad o la desaceleración, o cambie la distancia de caída para que sea mayor.
También consulte
Jump, Jump3, JumpCP
Ejemplo de instrucción Arch
Los siguientes son ejemplos de la configuración Arch hecha desde la ventana Command.
> arch 0, 15, 15
> arch 1, 25, 50
> jump p1 c1
> arch
arch0 = 15.000 15.000
arch1 = 25.000 50.000
arch2 = 50.000 50.000
arch3 = 60.000 60.000
arch4 = 70.000 70.000
arch5 = 80.000 80.000
arch6 = 90.000 90.000
>
64
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Arch
Arroja la configuración de arcos.
Sintaxis
Arch(archNumber, paramNumber)
Parámetros
archNumber Expresión entera que representa la configuración del arco desde la cual se puede
recuperar el parámetro (0 a 6).
paramNumber 1: distancia de alejamiento
2: distancia de acercamiento
Valores devueltos
Número real que incluye la distancia.
También consulte
Instrucción Arch
Ejemplo de función Arch
Real archValues(6, 1)
Integer i
' Guarda los valores del arco actual
For i = 0 to 6
archValues(i, 0) = Arch(i, 1)
archValues(i, 1) = Arch(i, 2)
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
65
Manual de referencia del lenguaje SPEL+
Instrucción Arm
Selecciona o muestra el número de brazo que se usará.
Sintaxis
(1) Arm armNumber
(2) Arm
Parámetros
armNumber Expresión entera opcional. El rango válido es de 0 a 15. El usuario puede
seleccionar hasta 16 brazos diferentes. El brazo 0 es el brazo de robot estándar
(predeterminado). Los brazos 1 a 15 son auxiliares y se definen con la instrucción
ArmSet. Cuando se omiten, se muestra el número de brazo actual.
Valores devueltos
Cuando se ejecuta una instrucción Arm sin parámetros, el sistema muestra el número actual del brazo.
Descripción
Le permite al usuario especificar qué brazo se debe usar para las instrucciones del robot. El brazo permite
que cada brazo auxiliar use los datos de posición comunes. Si no hay ningún brazo auxiliar instalado,
funciona el brazo estándar (número de brazo 0). Ya que al momento de la entrega el número de brazo se
especificó como “0”, no es necesario usar la instrucción Arm para seleccionar un brazo. Sin embargo, si se
usan brazos auxiliares, primero se deben definir con la instrucción ArmSet.
La capacidad de configuración del brazo auxiliar se ofrece para permitir a los usuarios configurar los
parámetros correctos del robot cuando la configuración del robot real es levemente diferente de la del robot
estándar. Por ejemplo, si el usuario montó una segunda articulación de orientación al segundo eslabón del
robot, es probable que el usuario desee definir los eslabones del robot adecuados para el nuevo brazo
auxiliar que se forma. Esto permite que el brazo auxiliar funcione correctamente bajo las siguientes
condiciones:
- Especificar que 2 o más brazos se muevan a través de un punto de datos único.
- Usar Pallet.
- Usar el movimiento de ruta continua.
- Usar especificaciones de posición relativa.
- Usar coordenadas locales.
Para los robots SCARA (incluida la serie RS) con articulaciones giratorias utilizados con un sistema de
coordenadas cartesiano, los cálculos de ángulo de articulación se basan en los parámetros definidos por el
parámetro ArmSet. Por lo tanto, este comando es esencial si se requiere una definición de brazo o mano
auxiliar.
Notas
Arm 0
El usuario no puede definir ni cambiar Arm 0 mediante la instrucción ArmSet. Se reserva ya que se usa
para definir la configuración estándar del robot. Cuando el usuario configura el brazo en “0”, esto significa
usar los parámetros estándar del brazo de robot.
Número de brazo no definido
Cuando se seleccionan los números del brazo auxiliar sin que el comando ArmSet los defina, se genera un
error.
66
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
También consulte
Ar
mClr, ArmSet, ECPSet, TLSet
Ejemplo de instrucción Arm
Lo
s siguientes ejemplos son definiciones de brazos auxiliares potenciales que usan las instrucciones
ArmSet y Arm. ArmSet define el brazo auxiliar y Arm define qué brazo usar como el brazo actual. (Arm 0
es el brazo de robot predeterminado y no puede ser ajustado por el usuario.)
Desde la ventana Command:
> Arm
Set 1, 300, -12, -30, 300, 0
> ArmSet
arm0 250 0 0 300 0
>
arm
1 300
Arm 0
-12 -30 300 0
>
Jum
p
P1
'Salta a P1 con la configuración de brazo estándar
> Arm
1
> Jum
p
P1
'Salta a P1 con el brazo auxiliar 1
Manual de referencia del lenguaje SPEL+ Rev.2
67
Manual de referencia del lenguaje SPEL+
Función Arm
Arroja el número de brazo actual del robot actual.
Sintaxis
Arm
Valores devueltos
Número entero que incluye el número de brazo actual.
También consulte
Instrucción Arm
Ejemplo de función Arm
Print "The current arm number is: ", Arm
68
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ArmClr
Borra (anular definición) una definición de brazo.
Sintaxis
ArmClr armNumber
Parámetros
armNumber Expresión entera que representa cuál de los 15 brazos se debe borrar (anular
definición).
(Arm 0 es el brazo predeterminado y no se puede borrar).
También consulte
Arm, ArmSet, ECPSet, Local, LocalClr, Tool, TLSet
Ejemplo de instrucción ArmClr
ArmClr 1
Manual de referencia del lenguaje SPEL+ Rev.2
69
Manual de referencia del lenguaje SPEL+
Función ArmDef
Arroja el estado de definición del brazo.
Sintaxis
ArmDef (armNumber)
Parámetros
armNumber Expresión entera que representa el brazo para el cual se arroja el estado.
Valores devueltos
Es True si se definió el brazo especificado, de lo contrario es False.
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLClr, TLSet
Ejemplo de función ArmDef
Function DisplayArmDef(armNum As Integer)
Integer i
If ArmDef(armNum) = False Then
Print "Arm ", ArmNum, "is not defined"
Else
Print "Arm ", armNum, " Definition:"
For i = 1 to 5
Print ArmSet(armNum, i)
Next i
EndIf
Fend
70
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ArmSet
Especifica y arroja los brazos auxiliares.
Sintaxis
(1) ArmSet armNumber, link2Dist, joint2Offset, zOffset, [link1Dist], [orientAngOffset]
(2) ArmSet armNumber
(3) ArmSet
Parámetros
armNumber Expresión entera: El rango válido es de 1 a 15. El usuario puede definir hasta 15
brazos auxiliares distintos.
p
aramNumber Robots SCARA (incluida la serie RS)
1
Distancia horizontal desde la articulación n.º 2 hasta el centro
de orientación (mm)
2
Compensación de ángulo de la articulación n.º 2 (grados)
3
Compensación de altura (mm)
4
Distancia horizontal desde la articulación n.º 1 hasta la
articulación n.º 2 (mm)
5
Compensación de ángulo de la articulación de orientación en
grados.
Valores devueltos
Cuando se inicia la instrucción ArmSet sin parámetros, el sistema muestra todos los números y parámetros
del brazo auxiliar.
Se muestran los números y parámetros del brazo especificado solo cuando se especifica el número del
brazo.
Descripción
Permite al usuario especificar los parámetros del brazo auxiliar que se usarán además de la configuración
del brazo estándar. Esto no resulta útil cuando está instalado en el robot un brazo o mano auxiliar. Cuando
usa un brazo auxiliar, la instrucción Arm se encarga de seleccionar el brazo.
Los parámetros link1Dist y orientAngOffset son opcionales. Si se omiten, los valores predeterminados son
los valores del brazo estándar.
La capacidad de configuración del brazo auxiliar se ofrece para permitir a los usuarios configurar los
parámetros correctos del robot cuando la configuración del robot real es levemente diferente de la del robot
estándar. Por ejemplo, si el usuario montó una segunda articulación de orientación al segundo eslabón del
robot, es probable que el usuario desee definir los eslabones del robot adecuados para el nuevo brazo
auxiliar que se forma. Esto permite que el brazo auxiliar funcione correctamente bajo las siguientes
condiciones:
- Especificar que 2 o más brazos se muevan a través de un punto de datos único.
- Usar Pallet.
- Usar el movimiento de ruta continua.
- Usar especificaciones de posición relativa.
- Usar coordenadas locales.
Para los robots SCARA (incluida la serie RS) con articulaciones giratorias utilizados con un sistema de
coordenadas cartesiano, los cálculos de ángulo de articulación se basan en los parámetros definidos por el
parámetro ArmSet. Por lo tanto, este comando es esencial si se requiere una definición de brazo o mano
auxiliar.
Manual de referencia del lenguaje SPEL+ Rev.2
71
Manual de referencia del lenguaje SPEL+
Nota
Arm 0
El usuario no puede definir ni cambiar Arm 0. Se reserva ya que se usa para definir la configuración
estándar del robot. Cuando el usuario configura el brazo en 0, significa que utiliza los parámetros estándar
del brazo de robot.
Brazo auxiliar
Eje Y
Brazo
auxiliar
Articulación n.º1
Articulación n.º2
Brazo auxiliar
Articulación n.º1
Articulación n.º2
X Axis
Robot SCARA
Robot cartesiano
Robots SCARA (Serie RS)
También consulte
Arm, ArmClr
Ejemplo de instrucción ArmSet
Los siguientes ejemplos son definiciones de brazos auxiliares potenciales que usan las instrucciones
ArmSet y Arm. ArmSet define el brazo auxiliar y Arm define qué brazo usar como el brazo actual. (Arm 0
es el brazo de robot predeterminado y no puede ser ajustado por el usuario.)
Desde la ventana Command:
> ArmSet 1, 300, -12, -30, 300, 0
> ArmSet
Arm 0: 125.000, 0.000, 0.000, 225.000, 0.000
Arm 1: 300.000, -12.000, -30.000, 300.000, 0.000
> Arm 0
> Jump P1 'Salta a P1 con la configuración de brazo estándar
> Arm 1
> Jump P1 'Salta a P1 con el brazo auxiliar 1
Serie RS:
Vista desde
esta dirección
72
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ArmSet
Arroja un parámetro de ArmSet.
Sintaxis
ArmSet(armNumber, paramNumber)
Parámetros
armNumber Expresión entera que representa el número de brazo para el cual se recuperan los
valores.
paramNumber Expresión entera que representa el parámetro que se debe recuperar (0 a 5), como se
describe a continuación.
Robots SCARA (incluida la serie RS)
paramNumber Valor devuelto
1 Distancia horizontal desde la articulación n.º 2 hasta el centro de orientación (mm)
2 Compensación de ángulo de la articulación n.º 2 (grados)
3 Compensación de altura (mm)
4 Distancia horizontal desde la articulación n.º 1 hasta la articulación n.º 2 (mm)
5 Compensación de ángulo de la articulación de orientación en grados.
Valores devueltos
Número real que incluye el valor del parámetro especificado, como se describió anteriormente.
Brazo auxiliar
Eje Y
Brazo
auxiliar
Articulación n.° 1
Articulación n.° 2
Brazo auxiliar
Articulación n.° 1
Articulación n.° 2
Eje X
Robot SCARA
Cartesian Robot
Robots SCARA (Serie RS)
También consulte
ArmClr, Instrucción ArmSet
Ejemplo de función ArmSet
Real x
x = ArmSet(1, 1)
Serie RS:
Vista desde
esta dirección
Manual de referencia del lenguaje SPEL+ Rev.2
73
Manual de referencia del lenguaje SPEL+
Función Asc
Arroja el código ASCII del primer carácter en una cadena de caracteres.
(Arroja el código de carácter en un número decimal).
Sintaxis
Asc(string)
Parámetros
string Cualquier expresión de cadena válida de un cacter de largo como mínimo.
Valores devueltos
Arroja un número entero que representa el código ASCII del primer carácter en la cadena enviada a la
función Asc.
Descripción
La función Asc se usa para convertir un carácter a su representación numérica ASCII. La cadena de
caracteres enviada a la función ASC puede ser una constante o una variable.
Nota
Solamente se arroja el valor ASCII del primer carácter
Aunque la instrucción Asc permite cadenas de caracteres de más de 1 carácter de largo, esta instrucción usa
solo el primer carácter en realidad. Asc solamente arroja el valor ASCII del primer carácter.
También consulte
Chr$, InStr, Left$, Len, Mid$, Right$, Space$, Str$, Val
Ejemplo de función Asc
En este ejemplo se utiliza la instrucción Asc en un programa y desde la ventana Command, de la siguiente
forma:
Function asctest
Integer a, b, c
a = Asc("a")
b = Asc("b")
c = Asc("c")
Print "The ASCII value of a is ", a
Print "The ASCII value of b is ", b
Print "The ASCII value of c is ", c
Fend
Desde la ventana Command:
>print asc("a")
97
>print asc("b")
98
>
74
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Asin
Arroja el valor de arcoseno de una expresión numérica.
Sintaxis
Asin(number)
Parámetros
number Expresión numérica que representa el seno de un ángulo.
Valores devueltos
Valor real, en radianes, que representa el seno del arco del parámetro number.
Descripción
Asin arroja valor de arcoseno de la expresión numérica. El rango de valores es de -1 a 1. El valor que
arroja Asin varía de -PI / 2 a PI / 2 radianes. Si number es < -1 o > 1, ocurre un error.
Para convertir de radianes a grados, use la función RadToDeg.
También consulte
Abs, Acos, Atan, Atan2, Cos, DegToRad, RadToDeg, Sgn, Sin, Tan, Val
Ejemplo de función Asin
Function asintest
Double x
x = Sin(DegToRad(45))
Print "Asin of ", x, " is ", Asin(x)
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
75
Manual de referencia del lenguaje SPEL+
Función AtHome
Se arroja esta función si el robot actual se encuentra en su posición de reposo o no.
Sintaxis
At
Home
Valores devueltos
Es Tru
e si el robot actual está en su posición de reposo, de lo contrario es False.
Descripción
La func
ión AtHome se arroja si el robot actual se encuentra en su posición de reposo o no. Para registrar la
posición de reposo, use el comando HomeSet o Robot Manager (Administrador del robot). Para mover la
posición de reposo, use el comando Home.
También consulte
Ho
me, HomeClr, HomeDef, HomeSet, Hordr, MCalComplete
76
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Atan
Arroja el valor de la arcotangente de una expresión numérica.
Sintaxis
Atan(number)
Parámetros
number Expresión numérica que representa la tangente de un valor angular.
Valores devueltos
Valor real, en radianes, que representa el valor de la arcotangente del parámetro number.
Descripción
Atan arroja el valor de la arcotangente de la expresión numérica. La expresión numérica (number) puede
ser cualquier valor numérico. El valor que arroja Atan varía de -PI a PI radianes.
Para convertir de radianes a grados, use la función RadToDeg.
También consulte
Abs, Acos, Asin, Atan2, Cos, DegToRad, RadToDeg, Sgn, Sin, Tan, Val
Ejemplo de función Atan
Function atantest
Real x, y
x = 0
y = 1
Print "Atan of ", x, " is ", Atan(x)
Print "Atan of ", y, " is ", Atan(y)
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
77
Manual de referencia del lenguaje SPEL+
Función Atan2
Arroja el ángulo de los puntos de conexión de la línea imaginaria (0,0) y (X, Y) en radianes.
Sintaxis
Atan2(X, Y)
Parámetros
X Expresión numérica que representa la coordenada X.
Y Expresión numérica que representa la coordenada Y.
Valores devueltos
Valor numérico en radianes (-PI a +PI).
Descripción
Atan2(X, Y) arroja el ángulo de la línea que conecta los puntos (0, 0) y (X, Y). Esta función trigonométrica
arroja un ángulo de arcotangente en los cuatro cuadrantes.
También consulte
Abs, Acos, Asin, Atan, Cos, DegToRad, RadToDeg, Sgn, Sin, Tan, Val
Ejemplo de función Atan2
Function at2test
Real x, y
Print "Please enter a number for the X Coordinate:"
Input x
Print "Please enter a number for the Y Coordinate:"
Input y
Print "Atan2 of ", x, ", ", y, " is ", Atan2(x, y)
Fend
78
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ATCLR
Borra e inicia el par promedio para una o más articulaciones.
Sintaxis
ATCLR [j1 [,j2 [, j3 [, j4 [, j5 [, j6 [, j7 [, j8 [, j9]]]]]]]]]
Parámetros
j1 – j9 Expresión entera que representa el número de articulación. Si no se suministra
ningún parámetro, entonces se borran los valores del par promedio de todas las
articulaciones.
El eje S adicional es 8 y el eje T es 9. Si se proporciona un número de articulación
no existente, ocurre un error.
Descripción
ATCLR borra los valores del par promedio de todas las articulaciones especificadas.
Debe ejecutar ATCLR antes de ejecutar ATRQ.
También consulte
ATRQ, PTRQ
Ejemplo de instrucción ATCLR
<Ejemplo 1>
El siguiente es un ejemplo que sirve para mostrar los valores de par de las articulaciones especificadas
después de borrar los valores de par reales de todas las articulaciones.
> atclr
> go p1
> atrq 1
0.028
> atrq
0.028 0.008
0.029 0.009
0.000 0.000
>
<Ejemplo 2>
El siguiente es un ejemplo que sirve para mostrar los valores de par de las articulaciones especificadas
después de borrar los valores de par reales de J1, J4 y J5 para los robots de varios ejes verticales.
> atclr 4, 1, 5
> go p1
> ptrq 1
0.227
> ptrq 4
0.083
Manual de referencia del lenguaje SPEL+ Rev.2
79
Manual de referencia del lenguaje SPEL+
Instrucción ATRQ
Muestra el par promedio de la articulación especificada.
Sintaxis
ATRQ [jointNumber]
Parámetros
jointNumber Opcional. Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Muestra los valores de par promedio de todas las articulaciones.
Descripción
ATRQ muestra el par promedio del RMS (valor cuadrático medio) de la articulación especificada. Se
puede obtener el estado de carga del motor con esta instrucción. El resultado es un valor real desde 0 a 1,
donde 1 es el par promedio máximo.
Debe ejecutar ATCLR antes de ejecutar este comando.
Esta instrucción tiene restricción de tiempo. Debe ejecutar ATRQ dentro de 60 segundos después de
ejecutar ATCLR. Cuando se supera este tiempo, ocurre el error 4030.
También consulte
ATCLR, Función ATRQ, PTRQ
Ejemplo de instrucción ATRQ
> atclr
> go p1
> atrq 1
0.028
> atr
q
0.028 0.008
0.029 0.009
0.000 0.000
>
80
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ATRQ
Arroja el par promedio de la articulación especificada.
Sintaxis
ATRQ (jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor real de 0 a 1.
Descripción
La función ATRQ arroja el par promedio del RMS (valor cuadrático medio) de la articulación especificada.
Se puede obtener el estado de carga del motor con esta instrucción. El resultado es un valor real desde 0 a
1, donde 1 es el par promedio máximo.
Debe ejecutar ATCLR antes de ejecutar esta función.
Esta instrucción tiene restricción de tiempo. Debe ejecutar ATRQ dentro de 60 segundos después de
ejecutar ATCLR. Cuando se supera este tiempo, ocurre el error 4030.
También consulte
Instrucción ATRQ, PTCLR, PTRQ
Ejemplo de función ATRQ
Este ejemplo usa la función ATRQ en un programa:
Function CheckAvgTorque
Integer i
Go P1
ATCLR
Go P2
Print "Average torques:"
For i = 1 To 4
Print "Joint ", i, " = ", ATRQ(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
81
Manual de referencia del lenguaje SPEL+
Instrucción AutoLJM
Configura la función LJM automática.
Sintaxis
AutoLJM { On | Off }
Parámetros
On | Off On: Hablita la función LJM automática.
Off: Deshabilita la función LJM automática.
Descripción
AutoLJM está disponible para los siguientes comandos:
Arc, Arc3, Go, Jump3, Jump3CP, Move
Cuando AutoLJM está habilitado (On), el manipulador funciona con el movimiento mínimo de la
articulación, al igual que la función LJM, ya sea que se haya aplicado o no la función LJM a los datos de
posición para que se transfieran a cada comando. Por ejemplo, para obtener el mismo efecto que Go
LJM(P1), puede escribir un programa de la siguiente manera:
AutoLJM On
Go P1
AutoLJM Off
Dado que AutoLJM puede habilitar LJM dentro de una sección en particular de un programa, no es
necesario editar cada comando de movimiento.
Cuando AutoLJM está deshabilitado (Off), la función LJM solo se habilita cuando se aplica a los datos de
posición para que se transfieran a cada comando de movimiento.
En cualquiera de los siguientes casos, AutoLJM se configuró específicamente en la configuración del
controlador (valor predeterminado de fábrica: Off).
Notas
Doble aplicación de AutoLJM y función LJM
Si se aplica la función If LJM a los datos de puntos para que se transfieran al comando de movimiento
mientras AutoLJM está habilitado, LJM se aplicará dos veces cuando se ejecute el comando.
Para Move LJM(P1, Here) y Move LJM(P1), habilitar AutoLJM no tendrá un efecto en el movimiento. No
obstante, si AutoLJM está habilitado para Move LJM(P1, P0), puede existir una diferencia en las
posiciones de finalización del movimiento de Move LJM(LJM(P1, P0), Here), que habilitaron AutoLJM, y
las posiciones de Move LJM(P1, P0), que no habilitaron AutoLJM.
Se recomienda escribir un programa para no duplicar las funciones AutoLJM y LJM.
Precaución de uso de AutoLJM
Puede configurar la función AutoLJM para que esté habilitado al inicio del controlador gracias a la
configuración de las preferencias del controlador. Sin embargo, si Auto LJM está habilitado en todo
momento gracias a las preferencias o comandos del controlador, esta función ajusta automáticamente la
postura del manipulador para reducir la distancia de movimiento, incluso cuando trata de mover la
articulación ampliamente. Por lo tanto, se recomienda crear un programa para aplicar la función LJM solo
cuando sea necesario, mediante la función LJM o el comando AutoLJM.
Inicio del controlador
Restablecer
Todas las tareas se detienen.
Motor encendido
Cambio del modo de
operación
automático/programación
82
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
También consulte
Fun
ción AuoLJM, Función LJM
Ejemplo de instrucción AutoLJM
AutoLJM On
Go P1
Go P2
AutoLJM Off
Manual de referencia del lenguaje SPEL+ Rev.2
83
Manual de referencia del lenguaje SPEL+
Función AutoLJM
Arroja el estado de AutoLJM.
Sintaxis
AutoLJM
Valores devueltos
0 = LJM automático desactivado
1 = LJM automático activado
También consulte
AutoLJM
Ejemplo de función AutoLJM
If AutoLJM = Off Then
Print "AutoLJM is off"
EndIf
84
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción AvgSpeedClear
Borra e inicia el promedio de los valores de velocidad absolutos para una o más articulaciones.
Sintaxis
AvgSpeedClear [j1 [,j2 [, j3 [, j4 [, j5 [, j6 [, j7 [, j8 [, j9]]]]]]]]]
Parámetros
j1 – j9 Expresión entera que representa el número de articulación. Si no se suministra ningún
parámetro, entonces se borran los valores promedio de todas las articulaciones.
El eje S adicional es 8 y el eje T es 9. Si se proporciona un número de articulación no
existente, ocurre un error.
Descripción
AvgSpeedClear borra el promedio de los valores de velocidad absolutos de las articulaciones especificadas.
Debe ejecutar AvgSpeedClear antes de ejecutar AvgSpeed.
Este comando no admite los ejes adicionales PG.
También consulte
AvgSpeed, PeakSpeed
Ejemplo de instrucción AvgSpeedClear
<Ejemplo 1>
El siguiente es un ejemplo que sirve para mostrar los valores de velocidad promedio de las articulaciones
especificadas después de borrar los valores de velocidad promedio de todas las articulaciones.
> AvgSpeedClear
> Go P1
> AvgSpeed 1
0.073
> AvgSpeed
0.073 0.044
0.021 0.069
0.001 0.108
0.000 0.000
0.000
>
<Ejemplo 2>
El siguiente es un ejemplo que sirve para mostrar los valores de velocidad promedio de las articulaciones
especificadas después de borrar los valores de velocidad promedio de J1, J4 y J5 para los robots de varios
ejes verticales.
> AvgSpeedClear 4, 1, 5
> Go P1
> AvgSpeed 1
0.226
> AvgSpeed 4
0.207
Manual de referencia del lenguaje SPEL+ Rev.2
85
Manual de referencia del lenguaje SPEL+
Instrucción AvgSpeed
Muestra el promedio de los valores de velocidad absolutos de las articulaciones especificadas.
Sintaxis
AvgSpeed [jointNumber]
Parámetros
jointNumber Opcional. Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Muestra el promedio de los valores absolutos de la velocidad actual para las articulaciones especificadas.
Si no se especifica ninguna articulación, aparece el promedio de los valores de velocidad absolutos de todas
las articulaciones.
Descripción
AvgSpeed muestra el valor promedio de los valores de velocidad absolutos de las articulaciones
especificadas. Se puede obtener el estado de carga del motor con esta instrucción. El resultado es un valor
real desde 0 a 1, donde 1 es el valor de velocidad promedio máximo.
Si el valor promedio es inferior a 0,001, el resultado aparecerá como 0.
Debe ejecutar AvgSpeedClear antes de la ejecución de este comando.
Esta instrucción tiene restricción de tiempo. Debe ejecutar AvgSpeed dentro de 60 segundos después de
haber ejecutado AvgSpeedClear. Cuando se supera este tiempo, ocurre el error 4088.
Cuando use este controlador virtual o realice un simulacro, el promedio de los valores de velocidad
absoluta se calcula a partir de la velocidad ordenada en lugar de la velocidad real.
Este comando no admite los ejes adicionales PG.
También consulte
AvgSpeedClear, Función AvgSpeed, PeakSpeed
Ejemplo de instrucción AvgSpeed
>
AvgSpeedClear
>
Go P1
> AvgSpeed 1
0.226
> AvgSpee
d
0.226 0.133
0.064 0.207
0.003 0.314
0.000 0.000
0.000
>
86
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función AvgSpeed
Arroja el valor promedio de los valores de velocidad absolutos de las articulaciones especificadas.
Sintaxis
AvgSpeed (jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor real de 0 a 1.
Descripción
La función AvgSpeed arroja el valor promedio de los valores de velocidad absolutos de las articulaciones
especificadas. Con esta función se puede obtener el estado de carga del motor. El resultado es un valor
real desde 0 a 1, donde 1 es el valor de velocidad promedio máximo.
Debe ejecutar AvgSpeedClear antes de la ejecución de este comando.
Esta instrucción tiene restricción de tiempo. Debe ejecutar la función AvgSpeed dentro de 60 segundos
después de ejecutar la instrucción AvgSpeed. Cuando se supera este tiempo, ocurre el error 4088.
Cuando use este controlador virtual o realice un simulacro, el promedio de los valores de velocidad
absoluta se calcula a partir de la velocidad ordenada en lugar de la velocidad real.
Este comando no admite los ejes adicionales PG.
También consulte
AvgSpeed, AvgSpeedClear, PeakSpeed
Ejemplo de función AvgSpeed
En este ejemplo se usa la función AvgSpeed en un programa:
Function CheckAvgSpeed
Integer i
Go P1
AvgSpeedClear
Go P2
Print "Average speeds:"
For i = 1 To 6
Print "Joint ", i, " = ", AvgSpeed (i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
87
Manual de referencia del lenguaje SPEL+
Instrucción AvoidSingularity
Configura la función de evasión de singularidad.
Sintaxis
Av
oidSingularity { mode }
Parámetros
mod
e Expresión entera que representa un modo de evasión de singularidad que se puede usar
Constante
Val
or Mo
do
SING_NON
E 0 Deshabilita la función de evasión de singularidad.
SING_THRU 1 Habilita la función de evasión de singularidad.
SING_THRUROT 2 Habilita la función de evasión de singularidad en
movimientos CP con un identificador ROT.
SING_VSD 3 Habilita la función de movimiento CP de velocidad
variable.
SING_AUTO 4 Selecciona la función de evasión de singularidad o la
función de movimiento CP de velocidad variable
automáticamente.
SING_AVOID 5 Habilita la función de evasión de singularidad del codo.
Descripción
A
voidSingularity está disponible para los siguientes comandos:
Move, Arc, Arc3, Jump3, Jump3CP, JumpTLZ
Una función de evasión de singularidad sirve para evitar errores de aceleración cuando el robot de 6 ejes
verticales (incluida la serie N) o de serie RS se acerca a la singularidad en el movimiento CP, gracias a que
cambia a una trayectoria distinta y, posteriormente, regresa a la trayectoria original una vez pasada la
singularidad. Dado que la función de evasión de singularidad se configura normalmente en “1: Enabled”
(1: habilitado) en el inicio del controlador, no es necesario cambiar esta configuración. Si no desea tener la
función de evasión de singularidad para asegurarse de que exista compatibilidad con software que no
admite dicha función, o para evitar una brecha en la trayectoria, desactive esta función.
Una función de movimiento CP de velocidad variable controla automáticamente la velocidad, mientras
mantiene la trayectoria, cuando el robot de 6 ejes verticales (incluida la serie N) o de serie RS se acerca a la
singularidad, con el fin de evitar el error de aceleración o el error de sobreaceleración, y regresa al
comando de velocidad normal después de dejar la singularidad. Para sobrepasar la singularidad mientras se
mantiene la trayectoria, las articulaciones n.º 1, n.º 2, n.º 4 y n.º 6 puede moverse bastante.
Si se cambia el parámetro de AvoidSingularity, esta función permanece habilitada hasta el siguiente inicio
del controlador.
En el inicio del controlador, AvoidSingularity se configuró específicamente en la configuración del
controlador (valor predeterminado de fábrica: 1). Además, los parámetros de SingularityAngle,
SingularitySpeed y SingularityDist se restablecen a sus valores predeterminados cuando se cambia la
configuración de AvoidSingularity.
88
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Notas
Configuración de la condición del entorno de singularidad para el robot de 6 ejes verticales y
el robot serie N
Para determinar si el manipulador se acerca al entorno de singularidad de la muñeca, se usa el ángulo de la
articulación n.º 5 y la velocidad angular de la articulación n.º 4. De forma predeterminada, el ángulo de la
articulación n.º 5 se configura en ±10 grados y el ángulo de la articulación n.º 4 se configura en ±10 %
respecto de la velocidad máxima de la articulación. Para cambiar esta configuración, use los comandos
SingularityAngle y SingularitySpeed.
Además, para determinar si el manipulador se acerca al entorno de singularidad de la mano, se usan las
coordenadas del punto P. De forma predeterminada, la distancia entre el punto P y el eje de rotación de la
articulación n.º 1 se configura en 30 mm. Para cambiar esta configuración, use el comando SingularityDist.
Configuración de la condición del entorno de singularidad del robot serie RS
Para determinar si el manipulador se acerca al entorno de singularidad de la mano, se usan las coordenadas
del punto de origen en el sistema de coordenadas de la herramienta predeterminada 0. De forma
predeterminada, la distancia entre el punto de origen y el eje de rotación de la articulación n.º 1 se
configura en 30 mm. Para cambiar esta configuración, use el comando SingularityDist.
Precauciones para el robot serie N
A diferencia de otros modelos, la configuración predeterminada de la función de evasión de singularidad
para la serie N es 3: Habilita la función de movimiento CP de velocidad variable”.
Los robots serie N tienen una singularidad de codo distinta de las singularidades de muñeca y mano.
El área de singularidad de codo es el lugar donde la articulación n.º 3 se encuentra en 0 grados (la
articulación n.º 3 y n.º 2 se superponen entre sí). Para conocer detalles del movimiento de evasión cerca del
área de la singularidad de codo, consulte el Manual del usuario de EPSON RC+.
Diferencia entre SING_THRU y SING_AVOID
SING_THRU evita las singularidades de muñeca y hombro, pero no la singularidad de codo.
Para evitar la singularidad de codo, use SING_AVOID. No obstante, tenga presente que el movimiento de
evasión de la singularidad de codo cambia ampliamente la trayectoria a diferencia de otros movimientos de
evasión de singularidad.
Cuando se selecciona SING_AVOID para los modelos de manipuladores que no son serie N, se genera el
error 4002.
También consulte
Función AvoidSingularity, SingualrityAngle, SingularitySpeed, SingularityDist
Ejemplo de instrucción AvoidSingularity
AvoidSingularity 0 Deshabilita la evasión de singularidad y opera el manipulador
Move P1
Move P2
AvoidSingularity 1
Manual de referencia del lenguaje SPEL+ Rev.2
89
Manual de referencia del lenguaje SPEL+
Función AvoidSingularity
Arroja el estado de AvoidSingularity.
Sintaxis
Av
oidSingularity
Valores devueltos
0 = Fu
nción de evasión de singularidad deshabilitada
1 = Función de evasión de singularidad habilitada
2 = Función de evasión de singularidad habilitada para los comandos del movimiento CP con un
identificador ROT
3 = Función de movimiento CP de velocidad variable habilitada
4 = Selección automática de la función de evasión de singularidad o la función de movimiento CP de
velocidad variable
5 = Función de evasión de singularidad de codo habilitada
También consulte
AvoidSingularity
Ejemplo de función AvoidSingularity
If Avo
idSingularity = Off Then
Print "AvoidSingularity is off"
EndIf
90
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Base
Define y muestra el sistema de coordenadas base.
Sintaxis
(1) Base pCoordinateData
(2) Base pOrigin, pXaxis, pYaxis, [ { X | Y } ]
Parámetros
pCoordinateData Los datos de punto que representan los datos de coordenada del origen y la dirección.
pOrigin Expresión entera que representa el punto de origen con el sistema de coordenadas del
robot.
pXaxis Expresión entera que representa un punto a lo largo del eje X mediante el sistema de
coordenadas del robot, en caso de especificarse la alineación X.
pYaxis Expresión entera que representan un punto a lo largo del eje Y mediante el sistema
de coordenadas del robot, en caso de especificarse la alineación Y.
X | Y Opcional. Si se especifica la alineación X, entonces pXaxis se encuentra en el eje X
del nuevo sistema de coordenadas y solamente se usa la coordenada Z de pYaxis. Si
se especifica la alineación Y, entonces pYaxis se encuentra en el eje Y del nuevo
sistema de coordenadas y solamente se usa la coordenada Z de pXaxis. Si se omite,
se supone la alineación X.
Descripción
Define el sistema de coordenadas base mediante la especificación del origen de dicho sistema y el ángulo
de rotación, en relación con el sistema de coordenadas absoluto del robot.
Para restablecer el sistema de coordenadas base al valor predeterminado, ejecute la siguiente instrucción.
Esto permitirá que el sistema de coordenadas base sea igual al sistema de coordenadas absolutas del robot.
Base XY(0, 0, 0, 0)
Nota
El cambio del sistema de coordenadas base afecta a todas las definiciones locales
Cuando se cambian las coordenadas base, se deben redefinir todos los sistemas de coordenadas locales.
También consulte
Local
Ejemplo de instrucción Base
Define el origen del sistema de coordenadas base en 100 mm en el eje X y 100 mm en el eje Y
> Base XY(100, 100, 0, 0)
Manual de referencia del lenguaje SPEL+ Rev.2
91
Manual de referencia del lenguaje SPEL+
Función BClr
Borra un bit en un número y arroja el nuevo valor
Sintaxis
BClr (number, bitNum)
Parámetros
number Especifica el valor numérico para borrar el bit según una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 31) que se borrará según una expresión o valor
numérico.
Valores devueltos
Arroja el nuevo valor del valor numérico especificado (número entero).
También consulte
BClr64, BSet, BSet64, BTst, BTst64
Ejemplo de función BClr
flags = BClr(flags, 1)
92
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función BClr64
Borra un bit en un número y arroja el nuevo valor.
Sintaxis
BClr64 (number, bitNum)
Parámetros
number Especifica el valor numérico para borrar el bit según una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 63) que se borrará según una expresión o valor
numérico.
Valores devueltos
Arroja el nuevo valor del valor numérico especificado (número entero).
También consulte
BClr, BSet, BSet64, BTst, BTst64
Ejemplo de función BClr64
flags = BClr64(flags, 1)
Manual de referencia del lenguaje SPEL+ Rev.2
93
Manual de referencia del lenguaje SPEL+
Instrucción BGo
Ejecuta el movimiento relativo de punto a punto, en el sistema de coordenadas locales seleccionado.
Sintaxis
BGo destination [CP] [PerformMode modeNumber] [searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
CP Opcional. Especifica un movimiento de ruta continua.
PerformMode Opcional. Especifique el modo de rendimiento del robot.
modeNumber Especifica el modo de operación asignado a PerformMode con un valor de
número entero (1 a 3) o con la siguiente constante. Si se especifica
PerformMode, no se puede omitir este parámetro.
Constante Valor Descripción
Mode_Standard 1
Define el modo estándar
Mode_High_Speed 2
Define el modo de alta velocidad
Mode_Low_Oscillation 3 Define el modo de baja oscilación
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para
ejecutar E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se
ejecute SyncRobots.
Descripción
Ejecuta el movimiento relativo de punto a punto, en el sistema de coordenadas locales seleccionado, en la
expresión de punto destination.
Si no se especifica un sistema de coordenadas, ocurrirá un movimiento relativo en Local 0 (sistema de
coordenadas base).
Los atributos de la orientación del brazo especificados en la expresión de punto de destino se ignoran. El
manipulador mantiene los atributos de orientación del brazo actual. Sin embargo, para manipuladores de 6
ejes (incluida la serie N), los atributos de orientación del brazo se cambian automáticamente de modo que
la distancia de desplazamiento de la articulación sea la menor posible. Esto es equivalente a especificar el
parámetro modificador LJM para la instrucción Move. Por lo tanto, si desea cambiar la orientación del
brazo más de 180 grados, se debe ejecutar varias veces.
El modificador Till también se usa para completar BGo mediante la desaceleración y detención del robot en
una posición de desplazamiento intermedio, si se cumple la condición actual Till.
El modificador Find se usa para almacenar un punto en FindPos cuando la condición Find se vuelve
verdadera durante el movimiento.
Cuando se usa el procesamiento paralelo, es posible ejecutar otros procesamientos en paralelo con el
comando de movimiento.
94
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
El parámetro CP causa que comience la aceleración del siguiente comando de movimiento cuando
comienza la desaceleración para el comando de movimiento actual. En este caso, el robot no se detendrá
en la coordenada de destino y continuará moviéndose al siguiente punto.
Los modos de movimiento de desaceleración y movimiento de aceleración se pueden combinar cuando se
define PerformMode mientras el movimiento de ruta está activado. Algunas combinaciones no están
disponibles según los modos de operación. Para conocer detalles, consulte Instrucción PerformMode.
También consulte
Accel, BMove, Find, !....! Parallel Processing, Point Assignment, PerformMode, Speed, Till, TGo,
TMove, Tool
Ejemplo de instrucción BGo
> BGo XY(100, 0, 0, 0) 'Se mueve 100 mm en la dirección X (en el sistema de
coordenadas locales)
Function BGoTest
Speed 50
Accel 50, 50
Power High
P1 = XY(300, 300, -20, 0)
P2 = XY(300, 300, -20, 0) /L
Local 1, XY(0, 0, 0, 45)
GoP1
Print Here
BGo XY(0, 50,
Print Here
0, 0)
Go P2
Print Here
BGo XY(0, 50,
0,
0)
Print Here
BGo XY(0, 50,
Print Here
0, 0) /1
Fend
[Output]
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0,000 W: 0.000 /R /0
X: 300.000 Y: 350.000 Z: -20.000 U: 0.000 V: 0,000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0,000 W: 0.000 /L /0
X: 300.000 Y: 350.000 Z: -20.000 U: 0.000 V: 0,000 W: 0.000 /L /0
X: 264.645 Y: 385.355 Z: -20.000 U: 0.000 V: 0,000 W: 0.000 /L /0
Manual de referencia del lenguaje SPEL+ Rev.2
95
Manual de referencia del lenguaje SPEL+
Instrucción BMove
Ejecuta el movimiento relativo de interpolación lineal, en el sistema de coordenadas locales seleccionado.
Sintaxis
BMove destination [ROT] [CP] [ searchExpr ] [ !...! ] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
ROT Opcional. Decide la velocidad/aceleración/desaceleración en favor de la
rotación de la herramienta.
CP Opcional. Especifica un movimiento de ruta continua.
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para
ejecutar E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se
ejecute SyncRobots.
Descripción
Ejecuta el movimiento relativo interpolado lineal, en el sistema de coordenadas locales seleccionado que se
especifica en la expresión de punto destination.
Si no se especifica un sistema de coordenadas, ocurrirá un movimiento relativo en Local 0 (sistema de
coordenadas base).
Los atributos de la orientación del brazo especificados en la expresión de punto de destino se ignoran. El
manipulador mantiene los atributos de orientación del brazo actual. Sin embargo, para manipuladores de 6
ejes (incluida la serie N), los atributos de orientación del brazo se cambian automáticamente de modo que
la distancia de desplazamiento de la articulación sea la menor posible. Esto es equivalente a especificar el
parámetro modificador LJM para la instrucción Move. Por lo tanto, si desea cambiar la orientación del
brazo más de 180 grados, se debe ejecutar varias veces.
BMove utiliza el valor de velocidad SpeedS y los valores de aceleración y desaceleración AccelS. Consulte
Uso de BMove con CP, a continuación, para conocer la relación entre velocidad/aceleración y
aceleración/desaceleración. No obstante, si se usó el parámetro modificar ROT, BMove usa el valor de
velocidad SpeedR y los valores de aceleración y desaceleración AccelR. En este caso, el valor de
velocidad SpeedS y el valor de aceleración y desaceleración AccelS no tienen efecto.
Normalmente, cuando la distancia de movimiento es "0" y solo cambia la orientación de la herramienta,
ocurrirá un error. Sin embargo, mediante el uso del parámetro ROT y la priorización de la aceleración y la
desaceleración de la rotación de la herramienta, es posible realizar el movimiento sin un error. Cuando no
hay un cambio de orientación con el parámetro modificador ROT y la distancia de movimiento no es "0",
ocurrirá un error.
También, cuando la rotación de la herramienta es grande en comparación con la distancia de movimiento, y
cuando la velocidad de rotación supera la velocidad especificada del manipulador, ocurrirá un error. En este
caso, reduzca la velocidad o agregue el parámetro modificador ROT para dar prioridad a la velocidad
rotacional/aceleración/desaceleración.
El modificador Till se usa para completar BMove mediante la desaceleración y detención del robot en una
posición de desplazamiento intermedio, si se cumple la condición actual Till.
96
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
El modificador Find se usa para almacenar un punto en FindPos cuando la condición Find se vuelve
verdadera durante el movimiento.
Cuando se usa Till y se cumple la condición Till, el manipulador se suspende de inmediato y finaliza el
comando de movimiento. Si no se cumple la condición Till, el manipulador se mueve hasta el punto de
destino.
Cuando se usa Find y se cumple la condición Find, se almacena la posición actual. Consulte Find para
conocer detalles.
Cuando se usa el procesamiento paralelo, es posible ejecutar otros procesamientos en paralelo con el
comando de movimiento.
Nota
Uso de BMove con CP
El parámetro CP causa que el brazo se mueva al destino sin desacelerar o detenerse en el punto definido
según el destino. Esto se hace para permitir al usuario enlazar una serie de instrucciones de movimiento
que causan que el brazo se mueva a lo largo de una ruta continua mientras mantiene una velocidad
especificada durante todo el movimiento. La instrucción BMove sin CP siempre provoca que el brazo
desacelere hasta detenerse antes de llegar al punto destination.
También consulte
AccelS, BGo, Find, !....! Parallel Processing, Point Assignment, SpeedS, TGo, Till, TMove, Tool
Ejemplo de instrucción BMove
> BMove XY(100, 0, 0, 0)'Se mueve 100 mm en la dirección X (en el sistema de
coordenadas locales)
Function BMoveTest
Speed 50
Accel 50, 50
SpeedS 100
AccelS 1000, 1000
Power High
P1 = XY(300, 300, -20, 0)
P2 = XY(300, 300, -20, 0) /L
Local 1, XY(0, 0, 0, 45)
Go P1
Print
Here
BMove
Print
XY(0,
Here
50, 0, 0)
Go P2
Print
Here
BMove
Print
XY(0,
Here
50, 0, 0)
BMove
Print
XY(0,
Here
50, 0, 0) /1
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
97
Manual de referencia del lenguaje SPEL+
[Output]
X: 300.000 Y: 300.000 Z: -20.000
U:
0.000 V: 0,000 W: 0.000 /R /0
X: 300.000 Y: 350.000 Z: -20.000
U:
0.000 V: 0,000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -20.000
U:
0.000 V: 0,000 W: 0.000 /L /0
X: 300.000 Y: 350.000 Z: -20.000
U:
0.000 V: 0,000 W: 0.000 /L /0
X: 264.645 Y: 385.355 Z: -20.000
U:
0.000 V: 0,000 W: 0.000 /L /0
98
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Boolean
Declara variables de tipo booleano. (Número entero de 2 bytes).
Sintaxis
Boolean varName [(subscripts)], [ varName [(subscripts)]...]
Parámetros
varName Nombre de la variable que el usuario desea declarar como de tipo booleano.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Boolean se usa para declarar variables como de tipo booleano. Las variables de tipo booleano pueden
incluir uno de dos valores, False y True. Las variables locales se deben declarar al inicio de una función.
Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32, UINT64,
UShort
Ejemplo de instrucción Boolean
Boolean partOK
Boolean A(10) 'Matriz de una dimensión del valor booleano
Boolean B(10, 10) 'Matriz de dos dimensiones del valor booleano
Boolean C(5, 5, 5) 'Matriz de tres dimensiones del valor booleano
partOK = CheckPart()
If Not partOK Then
Print "Part check failed"
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
99
Manual de referencia del lenguaje SPEL+
Instrucción BOpen
Abre un archivo el modo binario.
Sintaxis
BOpen fileName As #fileNumber
.
.
Close #fileNumber
Parámetros
fileName Expresión de cadena que especifica una ruta y nombre de archivo válidos.
Si se especifica solo un nombre de archivo, el archivo debe estar en la carpeta actual.
Consulte ChDisk para conocer detalles.
fileNumber Expresión entera que representa valores desde 30 a 63.
Descripción
Abre el archivo especificado y lo identifica según el número de archivo especificado. Esta instrucción se
usa para acceder al archivo especificado en modo binario. Si no se encuentra el archivo especificado, se
crea un nuevo archivo. Si el archivo existe, leerá y escribirá los datos desde el inicio.
Use los comandos ReadBin y WriteBin para leer y escribir los datos en modo binario.
Nota
Hay una ruta de red disponible.
El fileNumber especificado identifica el archivo mientras está abierto y no se puede usar para referirse a un
archivo diferente hasta que el archivo actual esté cerrado. fileNumber lo usan otras operaciones del
archivo, como ReadBin, WriteBin, Seek, Eof, Flush y Close.
La posición de lectura/escritura (puntero) del archivo se puede cambiar con el comando Seek. Cuando se
cambia entre el acceso de lectura y escritura, use Seek para volver a ubicar el puntero del archivo.
Use la instrucción Close para cerrar el archivo y liberar el número de archivo.
Recomendamos que use la función FreeFile para obtener el número de archivo para que el mismo número
no sea utilizado por más de una tarea.
También consulte
Close, AOpen, FreeFile, ReadBin, ROpen, UOpen, WOpen, WriteBin
Ejemplo de instrucción BOpen
Integer fileNum, i
fileNum = FreeFile
BOpen "TEST.DAT" As #fileNum
For i = 0 To 100
WriteBin #fileNum, i
Next i
Flush #fileNum
Seek #fileNum, 10
ReadBin #fileNum, i
Print "data = ", i
Close #fileNum
100
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Box
Especifica y muestra el área de control de acercamiento.
Sintaxis
(1) Box AreaNum [, robotNumber], minX, maxX, mixY, maxY, minZ, maxZ [localNumber]
(2) Box AreaNum, robotNumber, minX, maxX, mixY, maxY, minZ, maxZ, remote OutLogic
[localNumber]
(3) Box AreaNum, robotNumber
(4) Box
Parámetros
AreaNum Expresión entera que representa el número de área desde 1 a 15.
robotNumber Opcional. Expresión entera que especifica el robot que desea configurar.
Si se omite, se usa el número del robot actual.
minX La posición de coordenada X mínima que se puede configurar en el área de
control de acercamiento.
maxX La posición de coordenada X máxima que se puede configurar en el área de
control de acercamiento.
minY La posición de coordenada Y mínima que se puede configurar en el área de
control de acercamiento.
maxY La posición de coordenada Y máxima que se puede configurar en el área de
control de acercamiento.
minZ La posición de coordenada Z mínima que se puede configurar en el área de
control de acercamiento.
maxZ La posición de coordenada Z máxima que se puede configurar en el área de
control de acercamiento.
Remote OutLogic On | Off (Activado, desactivado)
Configure la lógica de salida remota. Para configurar la salida E/S en On
(Activado) cuando se acerque Box, use On. Para configurar la salida E/S en Off
(Desactivado) cuando se acerque Box, use Off. Cuando se omite el parámetro, se
usa On.
localNumber Especifique el número del sistema de coordenadas locales de 0 a 15.
Asegúrese de agregar /LOCALantes del número. Cuando se omite el
parámetro, se usa el número del sistema de coordenadas locales “0”.
Valores devueltos
Cuando se usa la sintaxis (3), aparece la configuración del área especificada.
Cuando se usa la sintaxis (4), aparece la configuración de área para todos los números de área del robot
actual.
Descripción
Box se usa para configurar el área de control de acercamiento. El área de control de acercamiento sirve
para comprobar los acercamientos del efector final del robot en esta área. La posición del efector final se
calcula según la herramienta actual. El área de control de acercamiento se configura en el sistema de
coordenadas base del robot o el sistema de coordenadas locales mediante localNumber, y se encuentra entre
los valores máximo y mínimo de X, Y y Z del sistema de coordenadas especificado.
Cuando se usa el área de control de acercamiento, el sistema detecta acercamientos en cualquier estado de
potencia del motor mientras esté activado el controlador.
También puede usar la función GetRobotInsideBox o la función InsideBox para obtener el resultado del
control de acercamiento. La función GetRobotInsideBox se puede usar para la condición de espera del
Manual de referencia del lenguaje SPEL+ Rev.2
101
Manual de referencia del lenguaje SPEL+
Box1
Robot 1
Robot 2
comando Wait. Puede ofrecer el resultado de control para la E/S mediante la configuración de la salida
remota.
Cuando varios robots usan un área, debe definir el área desde cada sistema de coordenadas del robot.
Límite superior de los ejes X, Y, Z
Límite inferior de los ejes X, Y, Z
Configure Box 1 desde la posición de Robot 1
Box 1, 1, 100, 200, 0, 100, 0, 100
El límite inferior de los ejes X, Y, Z es (100, 0, 0) y el límite superior es (200, 100, 100)
Configure Box 1 desde Robot 2
Box 1, 2, -200, -100, 0, 100, 0, 100
El límite inferior de los ejes X, Y, Z es (200, 0, 0) y el límite superior es (100, 100, 100)
Notas
Desactivación del área de control de acercamiento mediante el eje de coordenada
Puede desactivar el área de control de acercamiento de cada eje de coordenada. Para desactivar solamente
el eje Z, defina minZ y maxZ en 0. Por ejemplo, Box 1, 200, 300, 0, 500, 0, 0.
En este caso, se comprueba si el efector final del robot se encuentra en el área dimensional XY.
Valores predeterminados del área de control de acercamiento
Los valores predeterminados de la instrucción Box son "0, 0, 0, 0, 0, 0". (La comprobación del área de
control de acercamiento está desactivada).
Selección de herramienta
Se ejecuta la comprobación de acercamiento para la herramienta actual. Cuando cambia la herramienta, el
control de acercamiento podría mostrar el acercamiento de la herramienta de adentro hacia afuera del área,
o al revés, aunque el robot no esté funcionando.
Eje adicional
Para el robot que tiene el eje ST adicional (incluido el eje de funcionamiento), el plano de control de
acercamiento que se configurará no depende de la posición del eje adicional, sino que se basa en el sistema
de coordenadas base del robot.
Consejo
Configuración de la instrucción Box desde Robot Manager
EPSON RC+ cuenta con un cuadro de diálogo para señalar y activar que permite definir el área de control
de acercamiento. El método más simple de configurar los valores Box es mediante el uso de la página Box
de Robot Manager.
También consulte
BoxClr, BoxDef, GetRobotInsideBox, InsideBox, Plane
102
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Box
<Ejemplo 1>
Estos son ejemplos que sirven para configurar el área de control de acercamiento mediante la instrucción
Box.
> Box 1, -200, 300, 0, 500, -100, 0
> Box
Box 1: 1, -200.000, 300.000, 0.000, 500.000, -100.000, 0.000, ON
/LOCAL0
<Ejemplo 2>
Lo siguiente corresponde a un programa sencillo para configurar los valores Box mediante la
especificación de los números 1 y 2 del sistema de coordenadas locales.
Function SetBox
Integer i
Box 1, -200, 300, 0, 500, -100, 0 /LOCAL1
i = 2
Box 2, 100, 200, 0, 100, -200, 100 /LOCAL(i)
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
103
Manual de referencia del lenguaje SPEL+
Función Box
Arroja el área de control de acercamiento especificada.
Sintaxis
Box(Ar
eaNum, [robotNumber], limit)
Parámetros
Ar
eaNum Expresión entera que representa el número de área.
robotNumber Opcional. Expresión entera que especifica el robot que desea configurar.
Si se omite, se usa el número del robot actual.
limit Expresión entera que especificará el límite que se arrojará.
1: Límite inferior
2: Límite superior
Valores devueltos
Cua
ndo selecciona 1 para limit, el punto incluye el límite inferior de las coordenadas X, Y, Z.
Cuando selecciona 2 para limit, el punto incluye el límite superior de las coordenadas X, Y, Z.
También consulte
Box, BoxClr
, BoxDef, GetRobotInsideBox, InsideBox
Ejemplo de función Box
P1 = Bo
x(1,1)
P2 = Box(1,2)
104
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción BoxClr
Borra la definición del área de control de acercamiento.
Sintaxis
BoxC
lr AreaNum [,robotNumber]
Parámetros
Ar
eaNum Expresión entera que representa el número de área desde 1 a 15.
robotNumber Opcional. Expresión entera que especifica el robot que desea configurar.
Si se omite, se usa el número del robot actual.
También consulte
Box, BoxDef
, GetRobotInsideBox, InsideBox
Ejemplo de instrucción BoxClr
En
este ejemplo se usa la función BoxClr en un programa.
Function ClearBox
If BoxDef(1) = True Then
BoxC
lr 1
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
105
Manual de referencia del lenguaje SPEL+
Función BoxDef
Indica si se definió o no Box.
Sintaxis
BoxD
ef(AreaNum) [, robotNumber]
Parámetros
Ar
eaNum Expresión entera que representa un número de área de 1 a 15.
robotNumber Expresión entera que representa el número de robot que desea configurar.
Si se omite, se especificará el número del robot actual.
Valores devueltos
Es True
si el área de control de acercamiento se define para el número de área especificado, de lo contrario
es False.
También consulte
Box, BoxClr
, GetRobotInsideBox, InsideBox
Ejemplo de función BoxDef
En
este ejemplo se usa la función BoxDef en un programa.
Function ClearBox
If BoxD
ef(1) = True Then
BoxClr 1
EndIf
Fend
106
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Brake
Activa o desactiva el freno de la articulación especificada del robot actual.
Sintaxis
Brake
status, jointNumber
Parámetros
st
atus La palabra clave On se usa para activar el freno. La palabra clave Off se usa para desactivar
el freno.
jointNumber El número de la articulación desde 1 a 6.
Descripción
E
l comando Brake se usa para activar o desactivar los frenos de una articulación del robot de 6 ejes
(incluida la serie N). Solo se puede ejecutar como un comando. Este comando tiene como fin que lo use
solamente el personal de mantenimiento.
Cuando se ejecuta la instrucción Brake, se inicia el parámetro de control del robot.
Consulte Motor On para conocer detalles.
ADVERTENCIA
Sea
sumamente precavido cuando desactive un freno. Asegúrese de que la
articulación cuente con un soporte adecuado, de lo contrario, puede caerse y
generar daños al robot y al personal.
Nota
Antes de liberar el freno, prepárese para usar el interruptor de parada de emergencia
Cuan
do el controlador está en el estado de parada de emergencia, los frenos del motor se bloquean. Tenga
presente que el brazo del robot podría caerse por su propio peso cuando se desactiva el freno con el
comando Brake.
También consulte
Motor, Power, Reset, SFree, SLock
Ejemplo de instrucción Brake
> brake on, 1
>
brake off, 1
Manual de referencia del lenguaje SPEL+ Rev.2
107
Manual de referencia del lenguaje SPEL+
Función Brake
Arroja el estado del freno de una articulación especificada.
Sintaxis
Brake (jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación. El valor varía desde 1 hasta el
número de articulaciones en el robot.
Valores devueltos
0 = Freno desactivado, 1 = Freno activado.
También consulte
Freno
Ejemplo de función Brake
If brake(1) = Off Then
Print Joint 1 brake is off
EndIf
108
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función BSet
Define un bit en un número y arroja el nuevo valor.
Sintaxis
BSet (number, bitNum)
Parámetros
number Especifica el valor para definir el bit con una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 31) que se definirá según una expresión o valor
numérico.
Valores devueltos
Arroja el valor definido del bit del valor numérico especificado (número entero).
También consulte
BClr, BClr64, BSet64, BTst, BTst64
Ejemplo de función BSet
flags = BSet(flags, 1)
Manual de referencia del lenguaje SPEL+ Rev.2
109
Manual de referencia del lenguaje SPEL+
Función BSet64
Define un bit en un número y arroja el nuevo valor.
Sintaxis
BSet64 (number, bitNum)
Parámetros
number Especifica el valor para definir el bit con una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 63) que se definirá según una expresión o valor
numérico.
Valores devueltos
Arroja el valor definido del bit del valor numérico especificado (número entero).
También consulte
BClr, BClr64, BSet, BTst, BTst64
Ejemplo de función BSet64
flags = BSet64(flags, 1)
110
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función BTst
Arroja el estado de 1 bit en un número.
Sintaxis
BTst (number, bitNum)
Parámetros
number Especifica el número para la prueba de bit con una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 31) que se probará.
Valores devueltos
Arroja los resultados de la prueba de bit (número entero 1 o 0) del valor numérico especificado.
También consulte
BClr, BClr64, BSet, BSet64, BTst64
Ejemplo de función BTst
If BTst(flags, 1) Then
Print "Bit 1 is set"
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
111
Manual de referencia del lenguaje SPEL+
Función BTst64
Arroja el estado de 1 bit en un número.
Sintaxis
BTst64 (number, bitNum)
Parámetros
number Especifica el número para la prueba de bit con una expresión o valor numérico.
bitNum Especifica el bit (número entero de 0 a 63) que se probará.
Valores devueltos
Arroja los resultados de la prueba de bit (número entero 1 o 0) del valor numérico especificado.
También consulte
BClr, BClr64, BSet, BSet64, BTst
Ejemplo de función BTst64
If BTst64(flags, 1) Then
Print "Bit 1 is set"
End If
112
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Byte
Declara las variables de tipo byte. (Número entero de 2 bytes).
Sintaxis
Byte varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar como de tipo byte.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Byte se usa para declarar variables como de tipo byte. Las variables de tipo byte pueden incluir números
enteros que varían de -128 a +127. Las variables locales se deben declarar al inicio de una función.
Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Byte
En los siguientes ejemplos se declara una variable de tipo byte y luego se le asigna un valor. Entonces se
realiza una operación And bitwise para ver si el bit alto del valor en la variable test_ok está activado (1) o
desactivado (0). El resultado se imprime en la pantalla. (Desde luego, en este ejemplo, el bit alto de la
variable test_ok siempre estará configurado dado que le asignamos el valor 15 a la variable).
Function Test
Byte A(10) 'Matriz de una dimensión del byte
Byte B(10, 10) 'Matriz de dos dimensiones del byte
Byte C(5, 5, 5) 'Matriz de tres dimensiones del byte
Byte test_ok
test_ok = 15
Print "Initial Value of test_ok = ", test_ok
test_ok = (test_ok And 8)
If test_ok <> 8 Then
Print "test_ok high bit is ON"
Else
Print "test_ok high bit is OFF"
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
113
Manual de referencia del lenguaje SPEL+
Instrucción Calib
Reemplaza a los valores de pulso de la postura del brazo actual con los valores CalPls actuales.
Sintaxis
C
alib joint1, [joint2 ], [joint3], [joint4] , [joint5] , [joint6], [joint7] , [joint8] , [joint9]
Parámetros
joi
nt Número entero de 1 a 9 que especifica el número de articulación que se calibrará.
Aunque, de forma normal, solamente una articulación necesitaría de calibración al
mismo tiempo, se pueden calibrar hasta nueve articulaciones al mismo tiempo con el
comando Calib.
El eje S adicional es el octavo y el eje adicional T es el noveno.
Descripción
C
alcula y especifica automáticamente el valor de compensación (Hofs). Esta compensación es necesaria
para hacer coincidir el origen de cada uno de los motores de las articulaciones del robot con el origen
mecánico del robot correspondiente.
El comando Calib se debe usar cuando el valor de pulso del motor ha cambiado. El suceso más común
para usarlo es después de un cambio de motor. Normalmente, los valores de pulso de la posición de
calibración coincidirían con los valores de pulso de CalPls. Sin embargo, después de las operaciones de
mantenimiento, como el cambio de motores, estos dos conjuntos de valores ya no coincidirán y, por lo
tanto, la calibración se vuelve innecesaria.
La calibración se puede conseguir cuando mueve el brazo hasta la posición de calibración que desea y
ejec
uta posteriormente el comando Calib. Mediante la ejecución de Calib, el valor de pulso de la posición
de calibración cambia al valor CalPls (el valor de pulso correcto para la posición de calibración).
Para poder realizar una calibración adecuada, debe det
erminar los valores de Hofs. Para que se calculen
automáticamente los valores de Hofs, mueva el brazo a la posición de calibración deseada y ejecute Calib.
El controlador calcula automáticamente los valores de Hofs según los valores de pulso de la calibración y
según los valores de pulso de CalPls.
Nota
Teng
a precaución cuando use el comando Calib
Calib está diseñado para usarse solo para fines de mantenimiento. Ejecute Calib solo cuando sea necesario.
Ejecutar Calib genera el reemplazo del valor de Hofs. Debido a que los cambios inesperados del valor de
Hofs pueden generar un movimiento impredecible del robot, tenga precaución y ejecute Calib solo cundo
sea necesario.
Posible error
Error de ningún número de articulación especificado
Si el n
úmero de articulación no se especifica con el comando Calib, se genera un error.
También consulte
C
alPls, Hofs
114
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Calib
Ejemplo desde la ventana Command.
>
CalPls 'Muestra los valores CalPls actuales
65523, 43320, -1550, 21351
>
Pulse
'Muestra los valores Pulse actuales
PULSE: 1: 65526 pls 2: 49358 pls 3: 1542 pls 4: 21299 pls
> Cal
ib
2 'Ejecuta
la calibración solo para la articulación 2
>
Pulse
'Muestra los valores de pulso (cambiados)
PULSE: 1: 65526 pls 2: 43320 pls 3: 1542 pls 4: 21299 pls
>
Manual de referencia del lenguaje SPEL+ Rev.2
115
Manual de referencia del lenguaje SPEL+
Instrucción Call
Llama a una función del usuario.
Sintaxis
Call funcName [(argList)]
Parámetros
funcName El nombre de una función que se está llamando.
argList Opcional. Lista de argumentos que se especificaron en la declaración de la función.
Para el argumento, use la siguiente sintaxis:
[ByRef] varName [( )], o expresión numérica
ByRef Opcional. Especifique ByRef cuando haga referencia a la variable que será
vista por la función que realiza la llamada. En este caso, el cambio de
argumento en una función se puede reflejar a la variable del lado que llama.
Se pueden cambiar los valores recibidos como referencia.
Descripción
La instrucción Call genera la transferencia del control del programa a una función (definida en
Function...Fend). Esto significa que la instrucción Call ordena que el programa se ejecute fuera de la
función actual y se traslade a la función especificada por Call. Entonces, la ejecución del programa sigue
en esa función hasta que se llega a una función Exit o a una instrucción Fend. Posteriormente se transfiere
el control de vuelta a la función de llamada original en la siguiente instrucción, después de la instrucción
Call.
Puede omitir la palabra clave Call y los paréntesis del argumento. Por ejemplo, aquí puede ver una
instrucción de llamada usada con o sin la palabra clave Call:
Call MyFunc(1, 2)
MyFunc 1, 2
Puede llamar una función externa en una biblioteca de enlace dinámico (DLL). Para conocer detalles,
consulte Instrucción Declare.
Para ejecutar una subrutina dentro de una función, use GoSub...Return.
Puede especificar una variable como un argumento. Cuando se especifica el parámetro ByRef, puede
reflejar el cambio de argumento en la función en la variable de la sección de llamada.
Cuando se especifica el parámetro ByRef, necesita especificar también ByRef para la lista de argumentos
de la definición de función (instrucción Function) y la definición de la función de DLL (instrucción
Declare).
ByRef es necesario cuando se entrega una variable de matriz como un argumento.
También consulte
Function, GoSub
Ejemplo de instrucción Call
<Archivo1: MAIN.PRG>
Function main
Call InitRobot
Fend
<Archivo2: INIT.PRG>
Function InitRobot
If Motor = Off Then
Motor On
EndIf
Power High
Speed 50
Accel 75, 75
Fend
116
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CalPls
Especifica y muestra la posición y los valores de pulso de la orientación para la calibración.
Sintaxis
(1) CalPls j1Pulses, j2Pulses, j3Pulses, j4Pulses, [j5Pulses, j6Pulses], [j7Pulses], [j8Pulses,
j9Pulses]
(2) CalPls
Parámetros
j1Pulses Valor de pulso de la primera articulación. Esta es una expresión entera larga.
j2Pulses Valor de pulso de la segunda articulación. Esta es una expresión entera larga.
j3Pulses Valor de pulso de la tercera articulación. Esta es una expresión entera larga.
j4Pulses Valor de pulso de la cuarta articulación. Esta es una expresión entera larga.
j5Pulses Opcional. Valor de pulso de la quinta articulación. Esta es una expresión entera larga.
j6Pulses Opcional. Valor de pulso de la sexta articulación. Esta es una expresión entera larga.
j7Pulses Opcional. Valor de pulso de la séptima articulación. Esta es una expresión entera larga.
j8Pulses Opcional. Valor de pulso de la octava articulación. Esta es una expresión entera larga.
j9Pulses Opcional. Valor de pulso de la novena articulación. Esta es una expresión entera larga.
Valores devueltos
Cuando se omiten los parámetros, aparecen los valores CalPls actuales.
Descripción
Especifica y mantiene los valores de pulso correctos de la posición para la calibración.
CalPls está diseñado para usarse para el mantenimiento, como después de cambiar motores o cuando la
posición cero del motor necesita coincidir con la posición cero mecánica correspondiente del brazo. Esta
coincidencia de la posición cero del motor con la posición cero mecánica correspondiente del brazo se
denomina calibración.
Normalmente, los valores de pulso de la posición de calibración coinciden con los valores de pulso de
CalPls. No obstante, después de realizar las operaciones de mantenimiento, como el cambio de motores,
estos dos conjuntos de valores dejan de coincidir, por lo que se necesita realizar una calibración.
Para realizar la calibración mueva el brazo hasta una posición de calibración determinada y luego ejecute
Calib. Mediante la ejecución de Calib, el valor de pulso de la posición de calibración cambia al valor
CalPls (el valor de pulso correcto para la posición de calibración).
Debe determinar los valores Hofs para ejecutar la calibración. Para que se calculen automáticamente los
valores de Hofs, mueva el brazo a la posición de calibración deseada y ejecute Calib. El controlador
calcula automáticamente los valores Hofs según los valores de pulso de la posición de calibración y según
los valores CalPls.
Nota
Los valores CalPls no se pueden cambiar con el apagado y encendido de alimentación
Los valores CalPls no se inician cuando se apaga y se vuelve a encender la alimentación principal del
controlador. El único método para modificar los valores CalPls es ejecutar el comando Calib.
También consulte
Calib, Hofs
Manual de referencia del lenguaje SPEL+ Rev.2
117
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción CalPls
Operación de la ventana Monitor
> CalPls 'Muestra los valores CalPls actuales
65523, 43320, -1550, 21351
> Pulse
PULSE: 1: 65526 pls 2: 49358 pls 3: -1542 pls 4: 21299 pls
> Calib 4
> Pulse
PULSE: 1: 65526 pls 2: 49358 pls 3: -1542 pls 4: 21351 pls
>
118
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CalPls
Arroja el valor de pulso de la calibración que especifica la instrucción CalPls.
Sintaxis
CalPls(joint)
Parámetros
joint Expresión entera que representa un número de articulación del robot o 0 en el estado de
CalPls devuelto.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor entero que incluye el número de pulsos de calibración. Cuando joint es 0, arroja 1 o 0, dependiendo
de si CalPls se ejecutó.
También consulte
CalPls
Ejemplo de función CalPls
En este ejemplo se usa la función CalPls en un programa:
Function DisplayCalPlsValues
Integer i
Print "CalPls Values:"
For i = 1 To 4
Print "Joint ", i, " CalPls = ", CalPls(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
119
Manual de referencia del lenguaje SPEL+
Instrucción ChDir
Cambia y muestra el directorio actual.
Sintaxis
(1) ChDir pathName
(2) ChDir
Parámetros
pathName Expresión de cadena que representa el nombre de la nueva ruta predeterminada.
Consulte ChDisk para conocer detalles.
Descripción
(1) Cambia al directorio especificado mediante la especificación del parámetro.
(2) Cuando se omite el parámetro, se muestra el directorio actual. Se usa esto para mostrar el directorio
actual cuando no se conoce.
ChDir está disponible solo con el disco de computadora.
Cuando está encendido, el directorio de raíz será el directorio actual si no hay ningún proyecto abierto,
pero si se abre un proyecto, el directorio del proyecto será el directorio actual.
Si cambia la unidad de disco con ChDrive, el directorio raíz será el directorio actual.
También consulte
ChDrive, ChDisk, CurDir$
Ejemplo de instrucción ChDir
Los siguientes ejemplos se llevan a cabo desde la ventana Command.
> ChDir \ 'Cambia el directorio actual al directorio de raíz
> ChDir.. 'Cambia el directorio actual al directorio principal
> Cd \TEST\H55 'Cambia el directorio actual a \H55 en \TEST
> Cd 'Muestra el directorio actual
A:\TEST\H55\
120
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ChDisk
Configura el disco de objeto para las operaciones del archivo.
Sintaxis
ChDisk PC|USB|RAM
Parámetros
PC Carpetas (como disco duro) en la parte de Windows
USB Memoria USB en la parte Real
RAM Memoria en la parte Real
Descripción
Especifica qué disco debe usar para las operaciones de archivos. Lo predeterminado es el disco de
computadora.
El controlador del robot admite los siguientes discos como el objeto de las operaciones de archivos.
Computadora
Carpetas en la parte de Windows
La configuración inicial es PC y, normalmente, no tiene que cambiar esta
configuración.
Tiene acceso a los archivos en las carpetas del proyecto.
USB
Memoria USB conectada al puerto de memoria del controlador
Esto es útil para intercambiar archivos cuando no usa la parte de
Windows (RC+).
RAM
Archivos temporales en la memoria
Estos archivos no se guardan cuando apaga el controlador.
Esto resulta útil para guardar temporalmente los datos.
Algunos de los comandos SPEL
+
cambian el objeto de las operaciones de archivos de acuerdo con la
configuración ChDisk. Asimismo, la configuración ChDisk está disponible solamente con el disco de
computadora para algunos comandos.
ChDisk
ChDrive
ChDir
no afecta...
Curve
CVMove
LoadPoints
SavePoints
Nombre de archivo ImportPoints
El objeto es siempre las carpetas del proyecto.
Se puede especificar el nombre del archivo.
Si se especifica la ruta, sucede un error.
ChDisk
no afecta...
Access, nombre de archivo Excel de
OpenDB
Ruta de origen de ImportPoints
VLoadModel
VSaceImage
VSaveModel
El objeto es siempre las carpetas de Windows.
Si se especifica solamente el nombre del
archivo, se puede ver afectado por la unidad
de disco y carpeta actuales.
También puede especificar una ruta completa.
Es ejecutable
cuando ChDisk es
PC
ChDir
FolderExists
MkDir
RenDir
RmDir
Si lo ejecuta sin la configuración ChDisk en
PC, se genera un error.
Si solo se especifican el nombre del archivo y
de la carpeta, puede verse afectado por la
unidad de disco y carpeta actuales.
También puede especificar una ruta completa.
USB y RAM no cuentan con directorios.
Manual de referencia del lenguaje SPEL+ Rev.2
121
Manual de referencia del lenguaje SPEL+
Es ejecutable
cuando ChDisk es
USB o RAM
Copiar
Del
FileDataTime
FileExist
FileLen
AOpen, BOpen, ROpen, UOpen,
WOpen
Rename
Cuando ChDisk es PC:
Si solo se especifican el nombre del archivo y
de la carpeta, puede verse afectado por la
unidad de disco y carpeta actuales.
También puede especificar una ruta completa.
Cuando ChDisk es USB o RAM:
Solo se puede especificar el nombre de
archivo y si se especifica la ruta, se genera un
error.
Special Declare Consulte Declare para conocer detalles.
Se puede aceptar cualquier nombre de archivo
especificado.
No puede verse afectado por la unidad de
disco y carpeta actuales
Para decidir una ruta completa cuando ChDisk es PC, realice lo siguiente:
Solo nombre de archivo “abc.txt” Unidad de disco actual + Directorio actual + Nombre
de archivo especificado
“C:\EpsonRC70
\
Projects
\
ProjectName\abc.txt”
Ruta completa sin unidad
de disco
“\abc.txt”
Unidad de disco actual + Ruta completa especificada
“C:\abc.txt”
Ruta completa con unidad
de disco
“d:\abc.txt” Ruta completa especificada
“d:\abc.txt”
La unidad de disco es una
carpeta de red
“k:\abc.txt”
Ruta completa especificada
“k:\abc.txt”
Ruta de red “\\Epson\data\abc.txt” Ruta completa especificada
“\\Epson\data\abc.txt”
Puede tener una configuración ChDisk por controlador.
Si desea configurar más de un disco como un sistema, tome un control excepcional para cambiar la
configuración ChDisk.
También consulte
ChDir, ChDrive, CurDisk$
Ejemplo de instrucción ChDisk
Ejemplos de la ventana Command.
> ChDisk PC
122
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ChDrive
Cambios a la unidad de disco actual para las operaciones de archivos.
Sintaxis
Ch
Drive drive
Parámetros
dr
ive Expresión de cadena o literal que incluye una letra de unidad de disco válida.
Descripción
Ch
Drive está disponible solamente con el disco para computadora.
Cuando se enciende el equipo, la unida
d “C” aparecerá como unidad de disco actual si hay un proyecto
cerrado. Si hay un proyecto abierto, la unidad del proyecto abierto será la unidad de disco actual.
Consulte ChDisk para conocer detalles.
También consulte
Ch
Dir, ChDisk, CurDrive$
Ejemplo de instrucción ChDrive
Los sig
uientes ejemplos se llevan a cabo desde la ventana Command.
> ChDri
ve
d
Manual de referencia del lenguaje SPEL+ Rev.2
123
Manual de referencia del lenguaje SPEL+
Función ChkCom
Arroja el número de caracteres en el búfer de recepción de un puerto de comunicación.
Sintaxis
ChkCom ( portNumber As Integer )
Parámetros
portNumber Valor entero que especifica el número de puerto RS-232C
Parte Real 1 a 8
Parte de Windows 1001 a 1008
Valores devueltos
Cantidad de caracteres recibida (número entero).
Si el puerto no puede recibir caracteres, se arrojan los siguientes valores negativos para informar el estado
actual del puerto:
-2 El puerto está en uso por otra tarea
-3 El puerto no está abierto
También consulte
CloseCom, OpenCom, Read, Write
Ejemplo de función ChkCom
Integer numChars
numChars = ChkCom(1)
124
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ChkNet
Arroja el número de caracteres en el búfer de recepción de un puerto de red.
Sintaxis
ChkNet ( portNumber As Integer )
Parámetros
portNumber Número de puerto TCP/IP (201 a 216)
Valores devueltos
Cantidad de caracteres recibida (número entero).
Si el puerto no puede recibir caracteres, se arrojan los siguientes valores negativos para informar el estado
actual del puerto:
-1 El puerto está abierto, pero no se ha establecido la comunicación
-2 El puerto está en uso por otra tarea
-3 El puerto no está abierto
También consulte
CloseNet, OpenNet, Read, Write
Ejemplo de función ChkNet
Integer numChars
numChars = ChkNet(201)
Manual de referencia del lenguaje SPEL+ Rev.2
125
Manual de referencia del lenguaje SPEL+
Función Chr$
Arroja el carácter que especifica el valor numérico ASCII.
Sintaxis
Chr$(number)
Parámetros
number Expresión entera entre 1 y 255.
Valores devueltos
Arroja un carácter que corresponde al código ASCII especificado con el valor number.
Descripción
Chr$ arroja una cadena de caracteres (1 carácter) que tiene el valor ASCII del parámetro number. Cuando
el number especificado está fuera del rango de 1 a 255, se genera un error.
También consulte
Asc, Instr, Left$, Len, Mid$, Right$, Space$, Str$, Val
Ejemplo de función Chr$
En el siguiente ejemplo se declara una variable de tipo cadena y luego se asigna la cadena "ABC" a esta. Se
usa la instrucción Chr$ para convertir los valores numéricos ASCII en caracteres "A", "B" y "C". &H
significa que el número que sigue está representado en formato hexadecimal. (&H41 significa Hex 41)
Function Test
String temp$
temp$ = Chr$(&H41) + Chr$(&H42) + Chr$(&H43)
Print "The value of temp = ", temp$
Fend
126
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ClearPoints
Borra la memoria de datos de la posición del robot.
Sintaxis
ClearPoints
Descripción
ClearPoints inicia el área de datos de la posición del robot. Use esta instrucción para borrar las definiciones
de puntos que residen en la memoria antes de enseñar nuevos puntos.
También consulte
Plist, LoadPoints, SavePoints
Ejemplo de instrucción ClearPoints
En el siguiente ejemplo se muestran ejemplos sencillos del uso del comando ClearPoints (desde la ventana
Command). Tenga presente que no se muestra ningún punto de enseñanza cuando se inicia el comando
Plist luego de ejecutar el comando ClearPoints.
>P1=100,200,-20,0/R
>P2=0,300,0,20/L
>plist
P1=100,200,-20,0/R
P2=0,300,0,20/L
>clearpoints
>plist
>
Manual de referencia del lenguaje SPEL+ Rev.2
127
Manual de referencia del lenguaje SPEL+
Instrucción Close
Cierra un archivo que se abrió con AOpen, BOpen, ROpen, UOpen o WOpen.
Sintaxis
Close #fileNumber
Parámetros
fileNumber Expresión entera cuyo valor varía de 30 a 63.
Descripción
Cierra el archivo mencionado con el identificador de archivo fileNumber y lo libera.
También consulte
AOpen, BOpen, Flush, FreeFile, Input #, Print #, ROpen, UOpen, WOpen
Ejemplo de instrucción Close
En este ejemplo se abre un archivo, se escriben datos en él, luego se abre el mismo archivo y se leen los
datos en una variable de matriz.
Integer fileNumber, i, j
ileNumber = FreeFile
WOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Close #fileNum
FileNum = FreeFile
ROpen "TEST.DAT" As #fileNum
For i = 0 to 100
Input #fileNum, j
Print j
Next i
Close #fileNum
128
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CloseCom
Cierra el puerto RS-232C que se abrió con OpenCom.
Sintaxis
CloseCom #portNumber | All
Parámetros
portNumber Número de puerto RS-232C que debe cerrar.
Parte Real 1 a 8
Parte de Windows 1001 a 1008
Si se especifica All, la tarea cierra todos los puertos RS-232C abiertos.
También consulte
ChkCom, OpenCom
Ejemplo de instrucción CloseCom
CloseCom #1
Manual de referencia del lenguaje SPEL+ Rev.2
129
Manual de referencia del lenguaje SPEL+
Instrucción CloseDB
Cierra la base de datos que se abrió con el comando OpenDB y libera el número de archivo.
Sintaxis
CloseDB #fileNumber
Parámetros
fileNumber Número de base de datos especificado con OpenDB de 501 a 508
Descripción
CloseDB cierra la base de datos en el libro de Excel y libera el número de la base de datos.
Nota
- Se requiere la conexión de una computadora con RC+ instalado.
También consulte
OpenDB, SelectDB, UpdateDB, DeleteDB, Input #, Print #
Ejemplo de instrucción CloseDB
Consulte el ejemplo de uso de OpenDB.
130
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CloseNet
Cierra el puerto TCP/IP abierto anteriormente con OpenNet.
Sintaxis
C
loseNet #portNumber | All
Parámetros
portN
umber Número de puerto TCP/IP que debe cerrar (201 a 216)
Si se especifica All, la tarea cierra todos los puertos TCP/IP abiertos.
También consulte
Ch
kNet, OpenNet
Ejemplo de instrucción CloseNet
CloseNet #201
Manual de referencia del lenguaje SPEL+ Rev.2
131
Manual de referencia del lenguaje SPEL+
Instrucción Cls
Borra el área de texto de la ventana Run, Operator o Command de EPSON RC+. También borra el panel
de impresión TP.
Sintaxis
(1) Cls #deviceID
(2) Cls
Parámetros
deviceID 21 RC+
24 TP (solo TP1)
20 TP3
Cuando se omite deviceID, se borra el dispositivo de visualización.
Descripción
Cls borra el área de texto de la ventana Run u Operator de EPSON RC+, dependiendo desde dónde se
inició el programa.
Si se ejecuta Cls desde un programa que se inició desde la ventana Command, se borra el área de texto de
la ventana Command.
Cuando se omite deviceID, se borra la pantalla del dispositivo de visualización actual.
Ejemplo de instrucción Cls
Si este ejemplo se ejecuta desde la ventana Run o la ventana Operator, el área de texto de la ventana se
borrará cuando se ejecute Cls.
Function main
Integer i
Do
Fend
Loop
For i = 1 To 10
Print i
Next i
Wait 3
Cls
132
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_AbortTrack
Cancela el movimiento de seguimiento hacia un punto de cola del transportador.
Sintaxis
Cnv_AbortTrack [ stopZheight ]
Parámetros
stopZheight Opcional. Expresión real que especifica que la posición Z del robot no debería
moverse después de cancelar el seguimiento.
Descripción
Cuando hay un comando de movimiento hacia un punto de cola del transportador en curso, se puede
ejecutar Cnv_AbortTrack para cancelarlo.
Si se especifica stopZHeight, el robot se moverá hacia arriba hasta este valor solamente si la posición del
eje Z al momento de la cancelación es inferior a stopZHeight, y desacelerará hasta detenerse.
Si se omite stopZHeight, el robot desacelera hasta detenerse sin el movimiento de alejamiento en la
dirección Z.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_RobotConveyor
Ejemplo de instrucción Cnv_AbortTrack
' Tarea para monitorear el robot, cuya pieza que se está siguiendo ha pasado al área de bajada
Function WatchDownstream
Robot 1
Do
If g_TrackInCycle And Cnv_QueLen(1, CNV_QUELEN_DOWNSTREAM) > 0 Then
' Cancela el seguimiento del robot actual y mueve el eje Z del robot a 0
g_AbortTrackInCycle = TRUE
Cnv_AbortTrack 0
g_AbortTrackInCycle = FALSE
EndIf
Wait .01
Loop
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
133
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Accel
Configura la aceleración y desaceleración del movimiento de seguimiento en Conveyor Tracking.
Sintaxis
Cnv_Accel (conveyorNumber) , accel/decel
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
accel/decel Aceleración y desaceleración del movimiento de seguimiento
Descripción
Configura la aceleración y desaceleración del movimiento de seguimiento en Conveyor Tracking.
La aceleración y desaceleración no se pueden configurar por separado.
Cambie los parámetros cuando la configuración de aceleración genere un error o cuando sea necesario
reducir el tiempo de recogida de trabajo. El valor predeterminado es 2000 [mm/seg
2
].
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Función Cnv_Accel
Ejemplo de instrucción Cnv_Accel
Cnv_Accel 1,2000
134
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Accel
Arroja la aceleración y la desaceleración del movimiento de seguimiento en el Conveyor Tracking.
Sintaxis
Cnv_Accel (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
Valores devueltos
Valor real en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Accel
Ejemplo de función Cnv_Accel
Print Cnv_Accel (1)
Manual de referencia del lenguaje SPEL+ Rev.2
135
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Downstream
Define el límite de bajada del transportador especificado.
Sintaxis
Cnv_Downstream (conveyorNumber) , lowerLimit
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
lowerLimit Un borde del lado de bajada del área de seguimiento
Valores devueltos
Con el uso de Cnv_Downstream, se puede cambiar el borde de bajada que se determinó con el asistente de
calibración. Sin embargo, si se utiliza un límite de bajada sesgado, no se puede cambiar el valor con
Cnv_Downstream.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Upstream
Ejemplo de instrucción Cnv_Downstream
Cnv_Downstream 1,500
136
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Downstream
Arroja el límite de bajada del transportador especificado.
Sintaxis
Cnv_Downstream (conveyorNumber )
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
Valores devueltos
Valor real en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Upstream
Ejemplo de función Cnv_Downstream
Print "Downstream limit: ", Cnv_Downstream(1)
Manual de referencia del lenguaje SPEL+ Rev.2
137
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Fine
Define el valor de Cnv_Fine para un transportador.
Sintaxis
Cnv_Fine conveyorNumber [, fineValue]
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
fineValue Opcional. Expresión real que especifica la distancia en la que se realiza el
seguimiento en milímetros. Un valor de 0 significa que no se utiliza Cnv_Fine.
Si se omite, aparece la configuración actual de Cnv_Fine.
Descripción
Después de confirmar que se ha realizado la operación de seguimiento, especifique la distancia desde la
pieza que sea aceptable para el comando siguiente. Cuando se especifica “0”, no se utilizará la
configuración de Cnv_Fine y se aceptará el siguiente comando cuando se complete el comando de
movimiento.
El valor predeterminado de “0” mm se define automáticamente cuando se presentan las siguientes
condiciones:
Se crea el transportador.
Se inicia el controlador.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Función Cnv_Fine
Ejemplo de instrucción Cnv_Fine
Cnv_Fine 1, 5
138
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Fine
Arroja la configuración Cnv_Fine actual.
Sintaxis
C
nv_Fine (conveyorNumber)
Parámetros
co
nveyorNumber Expresión entera que representa el número de transportador (de 1 a 16).
Valores devueltos
Va
lor real de Cnv_Fine en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_Fine
Ejemplo de función Cnv_Fine
f
real
f = Cnv_Fine(1)
Manual de referencia del lenguaje SPEL+ Rev.2
139
Manual de referencia del lenguaje SPEL+
Función Cnv_Flag
Arroja el estado de seguimiento del robot.
Sintaxis
Cnv_Flag (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16).
Valores devueltos
0: No se cancela ni detiene el seguimiento.
1: El seguimiento se detuvo.
La posición del límite de bajada no es la correcta. Defina el límite de bajada más cerca del de subida
que la posición actual.
2: El seguimiento se canceló.
La posición del límite de bajada o la posición de espera del robot no son las correctas. Defina el límite
de bajada más cerca del de subida que la posición actual, o mueva la posición de espera del robot más
cerca del límite de bajada.
3: El seguimiento se canceló.
La posición del límite de bajada o el tiempo de recogida no son los correctos. Defina el límite de bajada
más cerca del de subida que la posición actual o reduzca el tiempo de recogida de trabajo.
4: El seguimiento se detuvo.
La cantidad de las piezas de trabajo excede la capacidad de procesamiento del robot.
Los valores devueltos distintos a “0” se arrojan solo cuando se define la línea de cancelación de
seguimiento.
Cuando aparece el valor distinto a 0, se recomienda tomar las medidas antes descritas para cada valor
devuelto.
Para conocer detalles sobre la línea de cancelación de seguimiento, consulte el Manual del usuario.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
Ejemplo de función Cnv_Flag
Print Cnv_Flag (1)
140
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_LPulse
Arroja el valor de pulso enganchado por un disparador de trasportador.
Sintaxis
C
nv_LPulse (conveyorNumber)
Parámetros
C
onveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Descripción
A
rroja los últimos pulsos del transportador enganchados por los cables del disparador de hardware o
Cnv_Trigger.
Valores devueltos
Los
valores largos que contienen los pulsos enganchados del transportador especificado.
Nota
Este comando solo funcionará si la o
pción Conveyor Tracking está activada.
También consulte
C
nv_Trigger, Cnv_Pulse
Ejemplo de función Cnv_LPulse
P
rint "Latched conveyor position: ", Cnv_LPulse(1)
Manual de referencia del lenguaje SPEL+ Rev.2
141
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Mode
Define un modo de seguimiento de seguimiento de transportador.
Sintaxis
Cn
v_Mode (conveyorNumber, modeNumber)
Parámetros
conve
yorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
modeNumber 0: Modo de prioridad de cantidad de recogida
1: Modo de prioridad de precisión de recogida
2: Modo de transportador de velocidad variable
Descripción
D
efine un modo de seguimiento de seguimiento de transportador.
Cnv_Mode solo está disponible para los transportadores lineales.
Define el modo de seguimiento antes de empezar el movimiento de seguimiento. Si no se definen los
parámetros o la velocidad del transportador es de 350 mm/seg o superior, se definirá el modo de prioridad
de la cantidad de recogida.
Modo de prioridad de cantidad de recogida: Aunque este modo sea inferior en cuanto a la precisión de
recogida al modo de prioridad de precisión de recogida, requiere menos
tiempo para alcanzar las piezas de trabajo en movimiento. Por ende, este
modo es adecuado para los sistemas de transportadores donde el espacio
entre las piezas de trabajo es angosto o los sistemas de transportadores de
alta velocidad.
Modo de prioridad de precisión de recogida: Aunque este modo tarda más tiempo para alcanzar las
piezas de trabajo si se compara con el modo de prioridad de cantidad de
recogida, esto mejora la precisión de recogida. Por ende, este modo es
adecuado para los sistemas de transportadores para piezas de trabajo
pequeñas.
Modo de transportador de velocidad variable: Este modo se puede usar para los transportadores que
repiten detenciones o se mueven de manera aleatoria. También se puede
utilizar para que los transportadores se muevan a una velocidad
constante. No obstante, este modo es inferior en cuanto a la cantidad de
recogida que el modo de prioridad de cantidad de recogida y tiene menor
precisión que el modo de prioridad de precisión de recogida.
Los modos 0y 1sol
o son compatibles con los transportadores circulares. Cuando se especifica
“2”, el manipulador se mueve igual que en el modo “0”.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Fun
ción Cnv_Mode
Ejemplo de instrucción Cnv_Mode
C
nv_Mode 1, 1
142
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Mode
Arroja un modo de seguimiento de Conveyor Tracking.
Sintaxis
Cnv_Mode (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Arroja un valor real de 0 a 2.
0: Modo de prioridad de cantidad de recogida
1: Modo de prioridad de precisión de recogida
2: Modo de transportador de velocidad variable
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_Mode
Ejemplo de función Cnv_Mode
Print Cnv_Mode (1)
Manual de referencia del lenguaje SPEL+ Rev.2
143
Manual de referencia del lenguaje SPEL+
Función Cnv_Name$
Arroja el nombre del transportador especificado.
Sintaxis
Cnv_Name$ (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Una cadena que contiene el nombre del transportador.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Number
Ejemplo de función Cnv_Name$
Print "Conveyor 1 Name: ", Cnv_Name$(1)
144
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Number
Arroja el número de un transportador especificado por nombre.
Sintaxis
Cnv_Number (conveyorName)
Parámetros
conveyorName Expresión de cadena que representa el nombre del transportador.
Valores devueltos
Número de transportador de número entero.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Name$
Ejemplo de función Cnv_Number
Integer cnvNum
cnvNum = Cnv_Number("Main Conveyor")
Manual de referencia del lenguaje SPEL+ Rev.2
145
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_OffsetAngle
Define el valor de compensación para los datos de cola del transportador.
Sintaxis
Cnv_OffsetAngle conveyorNumber [, offsetAngle]
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
offsetAngle Valor real que representa el valor de compensación para los datos de cola del
transportador (unidad: grado).
Opcional. Si se omite, aparece la compensación actual.
Descripción
Define el valor de compensación para los datos de cola del transportador.
Cnv_OffsetAngle está disponible solo para el transportador circular.
Conveyor Tracking puede provocar retraso en el seguimiento según cuál sea la velocidad del transportador.
Si ocurre el retraso en el seguimiento, el robot entrega las piezas en la posición incorrecta, que se mueven
por el retraso.
Cnv_OffsetAngle entrega el valor de compensación a la cola a fin de regresar el robot a la posición
correcta.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Función Cnv_OffsetAngle
Ejemplo de instrucción Cnv_OffsetAngle
Cnv_OffsetAngle 1, 5
146
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_OffsetAngle
Arroja el valor de compensación para los datos de cola del transportador.
Sintaxis
Cnv_OffsetAngle (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Valor entero (unidad: grado).
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_OffsetAngle
Ejemplo de función Cnv_OffsetAngle
OffsetAngle real
offsetAngle = Cnv_OffsetAngle (1)
Manual de referencia del lenguaje SPEL+ Rev.2
147
Manual de referencia del lenguaje SPEL+
Función Cnv_Point
Arroja un punto de robot en el sistema de coordenadas del transportador especificado, derivado de las
coordenadas del sensor.
Sintaxis
Cnv_Point (conveyorNumber, sensorX, sensorY [, sensorU])
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
sensorX Expresión real para la coordenada X del sensor.
sensorY Expresión real para la coordenada Y del sensor.
sensorU Opcional. Expresión real para la coordenada U del sensor.
Valores devueltos
Punto de robot en el sistema de coordenadas del transportador.
Descripción
La función Cnv_Point se debe utilizar para crear los puntos que se puedan agregar a la cola del
transportador. Para los transportadores de visión, el sensorX y el sensorY son las coordenadas de visión
desde la cámara. Para los transportadores de sensores, el sensorX y el sensorY pueden estar en 0, puesto
que estos son el origen del sistema de coordenadas del transportador.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Speed
Ejemplo de función Cnv_Point
Boolean found
Integer i, numFound
Real x, y, u
Cnv_Trigger 1
VRun FindParts
VGet FindParts.Part.NumberFound, numFound
For i = 1 To numFound
VGet FindParts.Part.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
148
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_PosErr
Arroja la desviación en la posición de seguimiento actual, si se compara con el objetivo de seguimiento.
Sintaxis
Cnv_PosErr (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Valor real en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_MakePoint
Ejemplo de función Cnv_PosErr
Print "Conveyor 1 position error: ", Cnv_PosErr(1)
Manual de referencia del lenguaje SPEL+ Rev.2
149
Manual de referencia del lenguaje SPEL+
Función Cnv_Pulse
Arroja la posición actual de un transportador en pulsos.
Sintaxis
Cnv_Pulse (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
El valor largo de los pulsos actuales para el transportador especificado.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Trigger, Cnv_LPulse
Ejemplo de función Cnv_Pulse
Print "Current conveyor position: ", Cnv_Pulse(1)
150
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueAdd
Agrega un punto de robot a la cola de un transportador.
Sintaxis
C
nv_QueAdd conveyorNumber, pointData [, userData ]
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
pointData El punto de robot que se va a agregar a la cola del transportador.
userData Opcional. Expresión real utilizada para guardar la información del usuario junto con
el punto.
Descripción
pointData se
agrega al final de la cola del transportador. Se registra junto con la posición de pulso actual
del transportador enganchado.
Si la distancia entre pointData
y el punto previo en la cola se encuentra en o por debajo de lo especificado
por Cnv_QueReject, no se pueden agregar los datos del punto a la cola y no se producirá ningún error.
El valor máximo de datos en cola es de 1000.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cn
v_RobotConveyor
Ejemplo de instrucción Cnv_QueAdd
Boolean found
I
nteger i, numFound
Real x, y, u
Cnv_Trigger 1
V
Run FindParts
VGet FindParts.Part.NumberFound, numFound
For i = 1 To numFound
VGet FindParts.Part.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
151
Manual de referencia del lenguaje SPEL+
Función Cnv_QueGet
Arroja un punto desde la cola del transportador especificado.
Sintaxis
Cnv_QueGet (conveyorNumber [, index ] )
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
index Opcional. La expresión entera que representa el índice de los datos de la cola que
desea recuperar.
Valores devueltos
Un punto de robot en el sistema de coordenadas del transportador especificado.
Descripción
Utilice Cnv_QueGet para recuperar los puntos de la cola del transportador. Cuando se omite queNumber,
se arroja el primer punto en la cola. De otro modo, se arroja el punto del queNumber especificado.
Cnv_QueGet no borra el punto de la cola. En cambio, debe usar Cnv_QueRemove para borrarlo.
Para seguir una pieza a medida que se mueve el transportador, se debe usar Cnv_QueGet en una instrucción
de comando de movimiento.
Por ejemplo:
Jump Cnv_QueGet(1) ' esto sigue la pieza
No puede asignar el resultado de Cnv_QueGet a un punto y moverse al punto para seguirlo.
P1 = Cnv_QueGet(1)
Jump P1 ' esto no realiza un seguimiento de la pieza.
Cuando asigna el resultado de Cnv_QueGet a un punto, los valores de coordenadas corresponden a la
posición de la pieza en la que se ejecutó la asignación del punto.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_QueLen, Cnv_QueRemove
Ejemplo de función Cnv_QueGet
' Salta a la primera pieza en la cola y la sigue
Jump Cnv_QueGet(1)
On gripper
Wait .1
Jump place
Off gripper
Wait .1
Cnv_QueRemove 1
152
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_QueLen
Arroja el número de elementos en la cola del transportador especificado.
Sintaxis
Cnv_QueLen (conveyorNumber [, paramNumber ] )
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
paramNumber Opcional. La expresión entera que especifica qué datos arrojará para la longitud.
Constante simbólica Valor Significado
CNV_QUELEN_ALL 0 Arroja el número total de elementos en cola.
CNV_QUELEN_UPSTREAM 1 Arroja el número de elementos de subida.
CNV_QUELEN_PICKUPAREA 2 Arroja el número de elementos en el área de recogida.
CNV_QUELEN_DOWNSTREAM 3 Arroja el número de elementos de bajada.
Valores devueltos
Número entero de elementos.
Descripción
Cnv_QueLen se utiliza para averiguar cuántos elementos están disponibles en la cola. Normalmente, para
el que quiera saber cuántos elementos hay en el área de recogida.
También se puede utilizar Cnv_QueLen como argumento para la instrucción de espera.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_QueGet
Ejemplo de función Cnv_QueLen
Do
Do While Cnv_QueLen(1, CNV_QUELEN_DOWNSTREAM) > 0
Cnv_QueRemove 1, 0
Loop
If Cnv_QueLen(1, CNV_QUELEN_PICKUPAREA) > 0 Then
Jump Cnv_QueGet(1, 0) C0
On gripper
Wait .1
Cnv_QueRemove 1, 0
Jump place
Off gripper
Jump idlePos
EndIf
Loop
Manual de referencia del lenguaje SPEL+ Rev.2
153
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueList
Muestra una lista de elementos en la cola del transportador especificado.
Sintaxis
Cnv_QueList conveyorNumber, [ numOfItems ]
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
numOfItems Opcional. Expresión entera para especificar la cantidad de elementos que desea
mostrar. Si se omite, se muestran todos los elementos.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_QueGet
Ejemplo de instrucción Cnv_QueList
Cnv_QueList 1
154
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueMove
Mueve los datos desde la cola del transportador de subida a la cola del transportador de bajada.
Sintaxis
C
nv_QueMove conveyorNumber, [ index ], [ userData ]
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
index Opcional. La expresión entera que especifica el índice de los datos de la cola que se
moverá.
(El primer elemento en la cola está indizado como #0.)
userData Opcional. Expresión real utilizada para guardar la información del usuario junto con
el elemento.
Descripción
Cnv
_QueMove se usa para mover uno o más elementos desde la cola de un transportador a la cola de
transportador de bajada asociada. Si se especifica el índice, se mueve el primer elemento (índice #0) de la
cola.
Nota
Este comando solo funcionará si la opción Conve
yor Tracking está activada.
También consulte
C
nv_QueGet
Ejemplo de instrucción Cnv_QueMove
Cnv_QueMove 1
Manual de referencia del lenguaje SPEL+ Rev.2
155
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueReject
Define y muestra la distancia de rechazo de la cola para un transportador.
Sintaxis
C
nv_QueReject conveyorNumber [, rejectDistance ]
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
rejectDistance Opcional. Expresión real que especifica la distancia mínima permitida entre piezas
en la cola en milímetros. Si se especifica un valor negativo, se definirá 0 mm. Si se
omite, aparece la rejectDistance actual.
Descripción
U
tilice Cnv_QueReject para especificar la distancia mínima entre las piezas a fin de evitar el registro doble
en la cola. Como las piezas son escaneadas por el sistema de visión, será encontradas más de una vez, pero
solo se deben registrar una vez. Cnv_QueReject ayuda a que el sistema filtre el registro doble.
Nota
Este comando solo funcionará si la opción Con
veyor Tracking está activada.
También consulte
Fun
ción Cnv_QueReject
Ejemplo de instrucción Cnv_QueReject
Cnv_QueReject 1, 20
156
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_QueReject
Arroja la distancia de rechazo de piezas actual para un transportador.
Sintaxis
Cnv_QueReject (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Valor real en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_QueReject
Ejemplo de función Cnv_QueReject
Real rejectDist
RejectDist = Cnv_QueReject(1)
Manual de referencia del lenguaje SPEL+ Rev.2
157
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueRemove
Elimina elementos de la cola de un transportador.
Sintaxis
C
nv_QueRemove conveyorNumber [, index | All ]
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
index Opcional. La expresión entera que especifica el índice del primer elemento para
eliminarlo o especificar All (Todos) para eliminarlos todos.
Descripción
U
tiliza Cnv_QueRemove para eliminar uno o más elementos de la cola de un transportador. Normalmente,
se eliminan elementos de la cola después de terminar con los datos.
Nota
Este comando solo funcionará si la opción Con
veyor Tracking está activada.
También consulte
Cn
v_QueAdd
Ejemplo de instrucción Cnv_QueRemove
Jump Cnv_QueGet(1)
O
n gripper
Wait .1
Jump place
Off gripper
Wait .1
' Elimina los datos del transportador
Cnv_QueRemove 1
158
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_QueUserData
Define y muestra los datos de usuario asociados con una entrada de cola.
Sintaxis
C
nv_QueUserData conveyorNumber, [ index ], [ userData ]
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
index Opcional. Expresión entera que especifica el índice del número de elemento en la
cola.
userData Opcional. Expresión real que especifica los datos de usuario.
Descripción
Cnv_QueUser
Data se utiliza para guardar su propia información con cada elemento en una cola de
transportador. Los datos de usuario son opcionales. No es necesario para la operación normal.
Nota
Este comando solo funcionará si la opción Conve
yor Tracking está activada.
También consulte
Fun
ción Cnv_QueUserData
Ejemplo de instrucción Cnv_QueUserData
Cnv_QueUserData 1, 1,
angle
Manual de referencia del lenguaje SPEL+ Rev.2
159
Manual de referencia del lenguaje SPEL+
Función Cnv_QueUserData
Arroja el valor de datos de usuario asociado con un elemento en la cola de un transportador.
Sintaxis
Cnv_QueUserData (conveyorNumber [, index ])
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
index Opcional. Expresión entera que especifica el índice del número de elemento en la
cola.
Valores devueltos
Valor real.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_QueUserData
Ejemplo de función Cnv_QueUserData
' Agrega a la cola
Cnv_QueAdd 1, Cnv_Point(1, x, y), angle
' Elimina de la cola
angle = Cnv_QueUserData(1) ' cambia al valor predeterminado para el índice de la cola
de 0
Jump Cnv_QueGet(1) :U(angle)
Cnv_QueRemove 1
160
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_RobotConveyor
Arroja el transportador que está siendo seguido por un robot.
Sintaxis
Cnv_RobotConveyor [ ( robotNumber ) ]
Parámetros
robotNumber Expresión entera que representa el número de robot.
Valores devueltos
Número de transportador de número entero. 0 = no se está siguiendo ningún transportador.
Descripción
Cuando se utilizan varios robots, se puede usar Cnv_RobotConveyor para ver a qué transportador está
siguiendo actualmente un robot.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Instrucción Cnv_MakePoint
Ejemplo de función Cnv_RobotConveyor
Integer cnvNum
cnvNum = Cnv_RobotConveyor(1)
Manual de referencia del lenguaje SPEL+ Rev.2
161
Manual de referencia del lenguaje SPEL+
Función Cnv_Speed
Arroja la velocidad actual de un transportador.
Sintaxis
Cnv_Speed (conveyorNumber)
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Para transportadores rectos, un valor real en milímetros por segundo. Para transportadores circulares, un
valor real en grados por segundo.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Pulse
Ejemplo de instrucción Cnv_Speed
Print "Conveyor speed: ", Cnv_Speed(1)
162
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Trigger
Engancha la posición actual del transportador para la instrucción Cnv_QueAdd siguiente.
Sintaxis
Cnv_Trigger conveyorNumber
Parámetros
conveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Descripción
Cnv_Trigger es un comando disparador de software que se debe utilizar si no existe un disparador de
hardware conectado a la placa PG para el nuevo codificador del transportador.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_QueAdd
Ejemplo de instrucción Cnv_Trigger
Boolean found
Integer i, numFound
Real x, y, u
Cnv_Trigger 1
VRun FindParts
VGet FindParts.Part.NumberFound, numFound
For i = 1 To numFound
VGet FindParts.Part.CameraXYU(i), found, x, y, u
Cnv_QueAdd 1, Cnv_Point(1, x, y)
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
163
Manual de referencia del lenguaje SPEL+
Instrucción Cnv_Upstream
Define el límite de subida del transportador especificado.
Sintaxis
Cnv_Upstream (conveyorNumber), upperLimit
Parámetros
conveyorNumber Expresión entera que representa el número de transportador (de 1 a 16)
upperLimit Un borde del lado de subida del área de seguimiento
Valores devueltos
Con el uso de Cnv_Upperstream, puede cambiar el límite de subida que se determinó con el asistente de
calibración. Sin embargo, si se utiliza un límite de subida sesgado, no se puede cambiar el valor con
Cnv_Upperstream.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
Cnv_Downstream
Ejemplo de instrucción Cnv_Upstream
Cnv_Upstream 1,200
164
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Cnv_Upstream
Arroja el límite de subida del transportador especificado.
Sintaxis
C
nv_Upstream (conveyorNumber)
Parámetros
co
nveyorNumber Expresión entera que especifica el número de transportador (de 1 a 16)
Valores devueltos
Va
lor real en milímetros.
Nota
Este comando solo funcionará si la opción Conveyor Tracking está activada.
También consulte
C
nv_Downstream
Ejemplo de Función Cnv_Upstream
Print "Upstream limit: ", Cnv
_Upstream(1)
Manual de referencia del lenguaje SPEL+ Rev.2
165
Manual de referencia del lenguaje SPEL+
Instrucción CollisionDetect
Activa y desactiva la detección de colisión del robot actual.
Sintaxis
(1
) Coll
isionDetect
status
(2) Coll
isionDetect status, jointNumbe
r
(
3)
Coll
isionDetect
Parámetros
st
atus On: Activa la detección de colisión.
Off: Desactiva la detección de colisión.
jointNumber Robots SCARA (incluida la serie RS): Especificar la articulación mediante un
número de articulación entre 1 y 4
Robots de 6 ejes verticales (incluida la serie N): Especificar la articulación mediante un
número de la articulación entre 1 y 6.
Resultado
A
rroja el estado actual de CollisionDetect cuando se omiten los parámetros.
Descripción
Se utiliza Coll
isionDetect para activar la detección de colisión. Cuando se detecta una colisión, el robot se
detendrá inmediatamente. Esto es útil para reducir los daños a los robots y los periféricos a causa de una
colisión o interferencia en los modos de potencia alta o potencia baja.
La detección de colisión está disponible para los robots de uso general compatibles con EPSON RC+ 7.0
Ver. 7.2 o superior (robots SCARA y de 6 ejes verticales). Si este comando se utiliza mientras está
conectado un robot no compatible (serie X5, etc.), ocurre un error.
La ejecución de este comando tarda un poco. Si se le da prioridad al tiempo del ciclo, reduzca al mínimo el
uso de este comando en el programa.
Esta función se puede activar o desactivar para cada articulación o para todas. El valor predeterminado es
all joints on(todas las articulaciones activadas).
(El valor predeterminado es "desactivado" si la versión de firmware es anterior a la Ver. 7.2.0.x.)
La configuración vuelve al valor predeterminado cuando se apaga el controlador. En otros casos, la
configuración no cambia a menos que se configure explícitamente lo contrario con este comando.
Cuando se detecta una colisión, se generará el error 5057 Se detectó una colisión en el modo de potencia
altao el error 5058 Se detectó una colisión en el modo de potencia bajay se detendrá el robot.
A fin de reducir los daños en el modo de potencia alta, también es efectivo utilizar el comando junto con la
restricción de par del límite superior mediante LimitTorque. A fin de reducir los daños en el modo de
potencia baja, también es efectivo utilizar el comando junto con la restricción de par del límite superior
mediante LimitTorqueLP.
También consulte el Manual del usuario EPSON RC+ 7.0 6.18.10 Función de detección de colisión.
También consulte
Limi
tTorque, Función LimitTorque, LimitTorqueLP, Función LimitTorqueLP
Ejemplo de instrucción CollisionDetect
C
ollisionDetect On ' Activa la detección de colisión de todas las articulaciones
CollisionDetect Off, 5 ' Activa la detección de colisión solo para la articulación #5
CollisionDetect
' Apa
recerá el resultado como “on, on, on, on, off, on”.
166
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CollisionDetect
Arroja el valor de configuración del comando CollisionDetect.
Sintaxis
C
ollisionDetect(jointNumber)
Parámetros
jo
intNumber Especificar la articulación mediante un número de articulación entre 1 y 6.
Valores devueltos
A
rroja el valor de configuración del comando CollisionDetect mediante un entero.
1 = ON
0 = OFF
También consulte
C
ollisionDetect
Ejemplo de función CollisionDetect
Print CollisionDetect(1) 'M
uestra el valor de CollisionDetect para la articulación #1.
Manual de referencia del lenguaje SPEL+ Rev.2
167
Manual de referencia del lenguaje SPEL+
Instrucción Cont
Reanuda el controlador después de que se ha ejecutado la instrucción de pausa y continúa la ejecución de
todas las tareas.
Este comando es para usuarios experimentados y se debe comprender la especificación del comando
antes de usarla.
Sintaxis
Cont
Descripción
A fin de ejecutar la instrucción Cont desde un programa, se debe configurar la casilla de verificación
[Enable advanced task commands] (Activar comandos de tareas avanzadas) en la página Setup | System
Configuration | Controller | Preferences (Configuración - Configuración del sistema - Controlador -
Preferencias ) de EPSON RC+. Sin embargo, incluso si esta preferencia está activada, no se puede ejecutar
la instrucción Cont desde una tarea ejecutada mediante Trap SGClose.
El comando Cont reanuda las tareas del controlador detenidas con la instrucción de pausa o con protección
abierta y continúa la ejecución de todas las tareas. Tiene la misma función que el botón <Continue>
(Continuar) en la ventana Run (Ejecutar), la ventana Operator (Operador) y la entrada remota continua.
Si ejecuta el comando Cont durante el estado WaitRecover (a la espera de la recuperación después de la
protección abierta), activará los motores del robot y ejecutará el movimiento de recuperación. Entonces, se
reanudará el programa.
Si solo se desea activar los motores y ejecutar el movimiento de recuperación, utilice el comando Recover.
PRECAUCI
ÓN
Cuando se ejecuta el comando Cont desde un programa, se debe comprender
la especificación del comando y confirmar que el sistema cuenta con las
condiciones adecuadas para el comando Cont. El uso incorrecto, como la
ejecución continua de un comando dentro de un bucle, puede deteriorar la
seguridad del sistema.
También consulte
Pause, Recover
Ejemplo de instrucción Cont
Function main
Xqt 2, monitor, NoPause
Do
Fend
Loop
Jump P1
Jump P2
Function monitor
Do
Fend
Loop
If Sw(pswitch) = On then
Pausa
Wait Sw(pswitch) = Off and Sw(cswitch) = On
Cont
End If
168
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Copy
Copia un archivo a otra ubicación.
Sintaxis
Copy source, destination
Parámetros
source Nombre de la ruta y nombre del archivo de la ubicación original del archivo que se
copiará.
Consulte ChDisk para conocer detalles.
destination Nombre de la ruta y nombre del archivo del destino en que se copiael archivo
original.
Consulte ChDisk para conocer detalles.
Descripción
Copia el nombre del archivo source en el nombre de archivo de destination especificado.
No se puede especificar el mismo nombre de ruta y nombre de archivo para los archivos de origen y de
destino.
Si el destino ya existe, ocurrirá un error.
Nota
Hay una ruta de red disponible.
No están permitidos los caracteres comodines (*, ?) en los nombres de archivos especificados.
Cuando se utiliza en la ventana Command (Comando), se pueden omitir las comillas y las comas.
También consulte
ChDir, MkDir
Ejemplo de comando Copy (Copiar)
El siguiente ejemplo se lleva a cabo desde la ventana Command.
>copy TEST.DAT TEST2.DAT
>Copy TEST.DAT : 'NG
!! Error: 7203 Access is denied.
> Copy TEST.DAT :\ 'OK
>
Manual de referencia del lenguaje SPEL+ Rev.2
169
Manual de referencia del lenguaje SPEL+
Función Cos
Arroja el coseno de una expresión numérica.
Sintaxis
Cos(number)
Parámetros
number Expresión numérica en radianes.
Valores devueltos
Valor numérico en radianes que representa el coseno de la expresión numérica number.
Descripción
Cos arroja el coseno de la expresión numérica. La expresión numérica (number) debe estar en unidades de
radianes. El valor arrojado por la función Cos se encontrará entre -1 y 1
Para convertir los grados a radianes, utilice la función DegToRad.
También consulte
Abs, Atan, Atan2, Int, Mod, Not, Sgn, Sin, Sqr, Str$, Tan, Val
Ejemplo de función Cos
El siguiente ejemplo muestra un programa simple que utiliza Cos.
Función costest
Real x
Print "Please enter a value in radians"
Input x
Print "COS of ", x, " is ", Cos(x)
Fend
En los siguientes ejemplos se utiliza Cos desde la ventana Command.
Mostrar el coseno de 0.55:
>print cos(0.55)
0.852524522059506
>
Mostrar cel coseno de 30 º:
>print cos(DegToRad(30))
0.866025403784439
>
170
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CP
Define el modo de movimiento CP (Continuous Path [Ruta continua]).
Sintaxis
CP { On | Off }
Parámetros
On | Off Se utiliza la palabra clave On para activar el movimiento de la ruta. Se utiliza la palabra clave
Off para desactivar el modo CP.
Descripción
Se puede utilizar el modo de movimiento CP (Continuous Path) para las instrucciones de movimiento del
robot Arc, Arc3, Go, Jump, Jump3, Jump3CP, JumpTLZ y Move.
Cuando el modo CP está activado, cada comando de movimiento ejecuta la siguiente instrucción en cuanto
empieza la desaceleración. El movimiento Continuous Path continuará sin importar si se especifica o no el
parámetro CP en cada movimiento.
Cuando CP está desactivado, esta función solo estará activa cuando se especifique el parámetro CP en cada
comando de movimiento.
Movimiento normal
0
Tiempo
Movimiento de ruta
0
Inicio de la
aceleración
Tiempo
Cuando CP está activado, el movimiento de la ruta continuará sin una desaceleración completa entre los
dos movimientos CP (Arc, Arc3, Jump3, Jump3CP, JumpTLZ y Move), o los dos movimientos PTP (Go,
Jump).
En contraste, se producirá una desaceleración completa entre un movimiento CP y un movimiento PTP.
Se definirá como desactivado CP en los siguientes casos
También consulte
Función CP, Arc, Arc3, Go, Jump, Jump3, Jump3CP, JumpTLZ, Move
Ejemplo de instrucción CP
CP On
Move P1
Move P2
CP Off
Inicio del controlador
Motor On
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Ve
l
oc
i
dad
Ve
l
oc
i
dad
Manual de referencia del lenguaje SPEL+ Rev.2
171
Manual de referencia del lenguaje SPEL+
Función CP
Arroja el estado del movimiento de la ruta.
Sintaxis
CP
Valores devueltos
0 = Movimiento de la ruta desactivado, 1 = Movimiento de la ruta activado.
También consulte
Instrucción CP
Ejemplo de función CP
If CP = Off Then
Print "CP is off"
EndIf
172
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CP_Offset
Define el tiempo de compensación para empezar el comando de movimiento siguiente cuando se ejecuta
CP On.
Sintaxis
(1) CP_Offset [ On [, OffsetTime ] ]
(2) CP_Offset Off
Parámetros
On | Off On: Activa la función de compensación de inicio del comando de movimiento en CP On.
Si se omite, aparece la configuración actual.
Off: Desactiva la función de compensación de inicio del comando de movimiento en CP On.
OffsetTime Especifica el tiempo de compensación para empezar el comando siguiente en CP On con un
valor real entre 10 y 24 (unidad: ms). Si se omite, se definirá el valor predeterminado (10
ms).
Descripción
CP_Offset está disponible para los siguientes comandos.
Move, Arc, Arc3, CVMove
Si se agrega el parámetro CP a CP On o a los comandos de movimiento, se ejecutará el comando siguiente
al mismo tiempo en que empieza a desacelerar el movimiento anterior.
Como resultado, los movimientos se vuelven un movimiento de ruta, como se muestra a continuación,
donde se superponen la desaceleración del primer comando y la aceleración del comando siguiente.
En este momento, el inicio de la desaceleración del primer comando y el inicio de la aceleración del
comando siguiente no son estrictamente simultáneos, debido al tiempo de sobrecarga de procesamiento
para empezar la instrucción. Por lo tanto, la velocidad se reduce en el punto de conmutación en el
movimiento de la ruta, y el movimiento no tendrá una velocidad constante.
CP_Offset soluciona este problema mediante la aceleración del tiempo de inicio del comando de
movimiento siguiente.
Mediante la activación de CP_Offset, el inicio del procesamiento del comando del movimiento siguiente se
acelerará según el tiempo especificado para el parámetro OffsetTime, y se sincronizará el inicio de la
desaceleración de robot real y el inicio de la aceleración del comando siguiente. Como resultado, se puede
mejorar la velocidad constante.
Se define el parámetro OffsetTime de manera predeterminada. Ajuste el parámetro según su aplicación.
En especial, cuando el comando siguiente tiene !Parallel Processing!(Procesamiento paralelo), se
alarga el tiempo de sobrecarga necesario para iniciar el movimiento. Por lo tanto, se debe definir el
parámetro OffsetTime en un valor más alto que el valor predeterminado, aproximadamente a 16 ms.
Para definir el parámetro OffsetTime para CP_Offset, mida la velocidad del punto central de la herramienta
para el movimiento objetivo mediante TCPSpeed. La configuración de un valor adecuado para el
parámetro OffsetTime mejoró el movimiento en el punto de conmutación para que se acerque a un
0
Manual de referencia del lenguaje SPEL+ Rev.2
173
Manual de referencia del lenguaje SPEL+
movimiento constante.
TCPSpeed aumenta cuando el OffsetTime es demasiado largo, y TCPSpeed disminuye cuando el
OffsetTime es demasiado corto. El ajuste de CP_Offset debe realizarse en el sistema real. El ajuste
adecuado no se puede hacer en el simulador, puesto que el tiempo de procesamiento para iniciar el
comando difiere del controlador real.
174
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Programa de muestra para medir el uso de TCPSpeed
Fu
nction main
Motor On
Power High
SpeedS 250; AccelS 1500
Speed 50; Accel 50, 50
Go XY(300, 500, 500, 90, 0, 180)
CP_Offset On
X
qt printTcPSpeed
Move XY(0, 500, 500, 90, 0, 180) CP
Move XY(-300, 500, 500, 90, 0, 180)
Quit printTcPSpeed
CP_Offset Off
Fend
Function printTcPSpeed
Do
Print TCPSpeed
Loop
Fend
Ejemplo del ajuste de OffsetTime
Este comando no está diseñado para el movimiento PTP. En el movimiento PTP, el movimiento será un
mo
vimiento de ruta habitual.
CP_Offset se desactiva cuando ocurre alguna de las siguientes condiciones:
Inicio del controlador
Motor On
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o Quit All detiene las tareas
300
250
200
150
OffsetTime adecuado
OffsetTime=0
100
OffsetTime demasiado largo
50
0
TCPSpeed [mm/seg]
1
Manual de referencia del lenguaje SPEL+ Rev.2
175
Manual de referencia del lenguaje SPEL+
También consulte
Función CP_Offset, CP, Move, Arc, Arc3, CVMove
Ejemplo de instrucción CP_Offset
CP_Offset On
Move P1
Move P2
CP_Offset Off
176
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CP_Offset
Arroja el tiempo de compensación para empezar el comando de movimiento siguiente cuando se ejecuta CP
On.
Sintaxis
CP_Offset
Valores devueltos
El número real que representa el tiempo de compensación para iniciar el comando de movimiento.
También consulte
Instrucción CP_Offset
Ejemplo de Función CP_Offset
Si CP_Offset = O Then
Print "CP_Offset is off"
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
177
Manual de referencia del lenguaje SPEL+
Función Ctr
Arroja el valor de contador del contador de entrada de hardware especificado.
Sintaxis
Ctr(bitNumber)
Parámetros
bitNumber Número de bit de entrada de hardware definido como contador. Solo puede haber 16
contadores activos a la vez.
Valores devueltos
El número actual del contador de entrada de hardware especificado. (Expresión entera desde 0-65535)
Descripción
Ctr funciona con la instrucción CTReset para permitir que sean usadas las entradas de hardware como
contadores.
Cada vez que se especifica una entrada de hardware como contador se conmuta del estado desactivado a
activado, lo que provoca que el contador aumente en 1.
Se puede usar la función Ctr en cualquier momento para obtener el valor del contador actual para toda
entrada del contador. Cualquier entrada de hardware se puede usar como contador. Sin embargo, solo
puede haber 16 contadores activos a la vez.
Gráfico de regulación de pulso de contador
Alto
(ACTIVADO)
También consulte
CTReset
Ejemplo de función Ctr
El siguiente ejemplo muestra un código que se puede usar para obtener un valor de contador de entrada de
hardware.
CTReset 3 'Restablece el contador de la entrada 3 a 0
On 0 'Activa un interruptor de salida
Wait Ctr(3) >= 5
Off 0 'Cuando los ciclos de la entrada 5 son contados para desactivar el interruptor de la
entrada 3 (salida 0 desactivada)
4 ms o más
Bajo
(DESACT.)
4 ms o más
178
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción CTReset
Restablece el valor de contador del contador de entrada especificado y permite que la entrada sea un
contador.
Sintaxis
CTReset(bitNumber)
Parámetros
bitNumber Número de bit de entrada definido como contador. Esto debe ser una expresión
entera que representa un bit de entrada válida. Solo puede haber 16 contadores
activos a la vez.
Descripción
CTReset funciona con la función CTR para permitir que sean usadas las entradas como contadores.
CTReset define el bit de entrada especificada como contador y luego inicia el contador. Si la entrada
especificada ya se usa como contador, se vuelve a restablecer e iniciar.
Notas
Desconexión de la alimentación y sus efectos en los contadores
La desconexión de la alimentación principal desconecta todos los contadores.
Uso de la función Ctr
Utilice la función Ctr para recuperar los valores de los contadores de la entrada de hardware.
También consulte
Ctr
Ejemplo de instrucción CTReset
El siguiente ejemplo muestra un código que se puede usar para obtener un valor de contador de entrada de
hardware.
CTReset 3 'Restablece el contador 3 a 0
On 0 'Activa un interruptor de salida
Wait Ctr(3) >= 5
Off 0 'Cuando los ciclos de la entrada 5 son contados para desactivar el interruptor de la
entrada 3 (salida 0 desactivada)
Manual de referencia del lenguaje SPEL+ Rev.2
179
Manual de referencia del lenguaje SPEL+
Función CtrlDev
Arroja el número de dispositivo de control actual.
Sintaxis
CtrlDev
Valores devueltos
21 PC
22 E/S remota
26 Ethernet remoto
29 RS232C remoto
20 TP3
También consulte
Función CtrlInfo
Ejemplo de función CtrlDev
Print "The current control device is: ", CtrlDev
180
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CtrlInfo
Arroja la información del controlador.
Sintaxis
CtrlInfo (index)
Parámetros
index Expresión entera que representa el índice de la información que desea recuperar.
Descripción
En la tabla siguiente se muestra la información que está disponible desde la función CtrlInfo:
Índice
analíti
co
Bit Valor Descripción
0 No
disponi
ble
Obtenido para la compatibilidad.
Use el índice 9 para obtener la versión de firmware del controlador.
1
Estado del controlado
r
0 &H1 Estado Read
1 &H2 Estado Start
2 &H4 Estado Pause
3-7
Sin defini
r
8 &H100 Estado Estop
9 &H200 Protección abierta
10 &H400 Estado Erro
r
11 &H800 Estado Critical erro
r
12 &H1000 Advertencia
13 &H2000
Estado WaitRecover (a la espera de la recuperación de la protección
abierta)
14 &H4000 Estado Recover
(
recu
p
eración de la
p
rotección abierta
)
15-31
Sin defini
r
2
0 &H1 Interruptor de activación está encendido
1-31
Sin defini
r
3
0 &H1 Se detectó un
p
roblema en el circuito del modo Teach
1 &H2 Se detectó un problema en el circuito de protección
2 &H4 Se detectó un problema en el circuito Estop
3-31
Sin defini
r
4
No
disponi
ble
0 - Modo normal
1 - Modo Dry Run
5
No
disponi
ble
Dispositivo de control:
21 - RC+
22 - Remoto
26 - Ethernet remoto
29 - RS232C remoto
20 - TP3
6
No
disponi
ble
Número de robots definidos
7
No
disponi
ble
Modo de operación:
0 - Modo Program
1 - Modo Auto
Manual de referencia del lenguaje SPEL+ Rev.2
181
Manual de referencia del lenguaje SPEL+
Índice
analíti
co
Bit Valor Descripción
8
No
disponi
ble
Sin definir
9
No
disponi
ble
Versión de firmware del controlador
N.º principal *1000000 + N.º secundario *10000 + N.º de rev. *100 +
N.º de compilación
(Ejemplo) La versión 1.6.2.4 es 1060204
10
No
disponi
ble
Estado SMART del disco duro
0 : El estado SMART es normal
1 : El estado SMART no es normal
Si el estado SMART no es normal, puede estar descompuesto el disco
duro. Debe respaldar los datos inmediatamente y cambiar el disco duro
por uno nuevo.
Cuando se usa la opción RAID, no se puede usar el estado SMART;
siempre arrojará que está normal.
Valores devueltos
El valor largo de los datos deseados
También consulte
RobotInfo, TaskInfo
Ejemplo de función CtrlInfo
Print "The controller version: ", CtrlInfo(6)
182
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CurDir$
Arroja una cadena que representa el directorio actual.
Sintaxis
Cu
rDir$
Valores devueltos
U
na cadena que incluye la unidad de disco actual y la ruta.
También consulte
Ch
Dir, CurDrive$ , CurDisk$
Ejemplo de función CurDir$
Print "The current directory is: ", Cu
rDir$
Manual de referencia del lenguaje SPEL+ Rev.2
183
Manual de referencia del lenguaje SPEL+
Función CurDisk$
Arroja una cadena que representa el disco actual.
Sintaxis
CurDisk$
Valores devueltos
Una cadena que contiene la letra del disco actual.
También consulte
ChDisk, CurDir$, CurDrive$
Ejemplo de función CurDisk$
Print "The current disk is: ", CurDisk$
184
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función CurDrive$
Arroja una cadena que representa la unidad de disco actual.
Sintaxis
CurDrive$
Valores devueltos
Una cadena que contiene la letra de la unidad de disco actual.
También consulte
ChDrive, CurDir$, CurDisk$
Ejemplo de función CurDrive$
Print "The current drive is: ", CurDrive$
Manual de referencia del lenguaje SPEL+ Rev.2
185
Manual de referencia del lenguaje SPEL+
Función CurPos
Arroja la posición objetivo actual del robot especificado.
Sintaxis
CurPos
Valores devueltos
Un punto de robot que representa la posición objetivo actual del robot especificado.
También consulte
InPos, FindPos, RealPos
Ejemplo de función CurPos
Function main
Xqt showPosition
Do
Jump P0
Jump P1
Loop
Fend
Function showPosition
Do
P99 = CurPos
Print CX(P99), CY(P99)
Loop
Fend
186
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Curve
Define los datos y los puntos necesarios para mover el brazo a lo largo de la ruta curva. Es posible definir
muchos puntos de datos en la ruta para mejorar la precisión de la ruta.
Sintaxis
Curve fileName, closure, mode, numAxes, pointList
Parámetros
fileName Una expresión de cadena para el nombre del archivo en el que se guardan los datos del punto.
El nombre del archivo especificado tendrá la extensión .CVT al final, por lo que el usuario no
debe especificar la extensión. Cuando se ejecuta la instrucción Curve, se creará un archivo.
No puede especificar una ruta de archivo y fileName no tiene efecto de ChDisk.
Consulte ChDisk para conocer detalles.
closure Especifica si la curva definida está cerrada o no, o si se dejó abierta al final del movimiento
curvo. Se debe definir este parámetro en uno de los dos valores posibles, como se muestra a
continuación.
C - Curva cerrada
O - Curva abierta
Cuando se especifica la curva abierta, la instrucción Curve crea los datos para detener el
brazo en el último punto de la serie de puntos especificados. Cuando se especifica la curva
cerrada, la instrucción Curve crea los datos necesarios para continuar el movimiento hasta el
punto final especificado y luego detener el movimiento después de regresar el brazo al punto
de inicio de la serie de puntos especificados por la instrucción Curve.
mode Especifica si se interpola o no automáticamente el brazo en la dirección tangencial del eje U.
También puede especificar el número ECP en los cuatro bits superiores.
Configuración de modo
Corrección
tangencial
Número
ECP
Hexadecimal Decimal
&H00 0
No
0
&H10 16 1
&H20 32 2
… …
&HA0 160 10
&HB0 176 11
&HC0 192 12
&HD0 208 13
&HE0 224 14
&HF0 240 15
&H02 2
0
&H12 18 1
&H22 34 2
… …
&HA2 162 10
&HB2 178 11
&HC2 194 12
&HD2 210 13
&HE2 226 14
&HF2 242 15
Manual de referencia del lenguaje SPEL+ Rev.2
187
Manual de referencia del lenguaje SPEL+
Cuando se especifica la corrección tangencial, Curve utiliza solo la coordenada del eje U del
punto de inicio de la serie de puntos. La corrección tangencial continuamente mantiene la
alineación de la herramienta tangente a la curva del plano XY. Se especifica al instalar las
herramientas como cortadores que requieren la alineación tangencial continua. Cuando se
especifica una curva cerrada (mediante el parámetro closure [Cierre]) con una interpolación
automática en la dirección tangencial del eje U, este gira 360 º desde el punto de inicio. Por lo
tanto, antes de ejecutar la instrucción CVMove, se debe definir el rango de movimiento del
eje U mediante la instrucción Range (Rango), de manera que la rotación de 360 º del eje U no
provoque un error.
Cuando se use ECP, se debe especificar el número ECP en los cuatro bits superiores.
Cuando se genera una curva que considere la posición del eje adicional incluida en los datos
del punto, se debe especificar el noveno bit como 1. Por ejemplo, cuando no se use ninguna
compensación de orientación o ECP y se genere una curva que considere la posición del eje
adicional, especifique &H100.
Cuando se genera una curva para el eje adicional, una los datos de los puntos continuos del
eje S y eje T de manera separada al sistema de coordenadas del robot.
Sin embargo, si el eje adicional consta del eje PG, no genera una curva con el punto continuo,
sino que crea los datos para moverse hasta el punto final.
numAxes Número entero 2, 3, 4 o 6 que especifica el número de los ejes controlados durante el
movimiento curvo de la manera siguiente:
2 - Genera una curva en el plano XY sin movimiento del eje Z o rotación del eje U.
(excepto para robots de 6 ejes [incluida la serie N])
3 - Genera una curva en el espacio XYZ sin rotación del eje U.
(excepto para robots de 6 ejes [incluida la serie N])
4 - Genera una curva en el espacio XYZ con rotación del eje U.
(excepto para robots de 6 ejes [incluida la serie N])
6 - Genera una curva en el espacio XYZ con rotación de los ejes U, V y W
(exclusivamente para robots de 6 ejes [incluida la serie N]).
Los ejes no seleccionados que se controlarán durante el movimiento Curve mantienen sus
posiciones de pulso del codificador anterior y no se mueven durante el movimiento Curve.
pointList { point expression | P(start:finish) } [, output command ] ...
Este parámetro es en realidad una serie de números de puntos e instrucciones de salida
opcionales, ya sea separados por comas o un rango ascendente de puntos separados por dos
puntos. Normalmente las series de puntos están separados por comas, como se muestra a
continuación:
Curve "MyFile", O, 0, 4, P1, P2, P3, P4
Algunas veces el usuario define una serie de puntos mediante un rango ascendente de puntos
como se muestra a continuación:
Curve "MyFile", O, 0, 4, P(1:4)
En el caso que se muestra más arriba, el usuario definió una curva con los puntos P1, P2, P3 y
P4.
output command es opcional y se usa para controlar la operación de salida durante el
movimiento curvo. El comando puede estar activado o desactivado para las salidas digitales
o salidas de memoria. Al escribir un comando de salida después de algún número de punto
en la serie de puntos se provoca la ejecución del comando de salida cuando el brazo llega al
punto justo antes del comando de salida. Se pueden incluir un máximo de 16 comandos de
salida en una instrucción Curve. En el ejemplo siguiente, se ejecuta el comando "On 2" justo
cuando el brazo llega al punto P2, entonces el brazo pasa por todos los puntos entre P3 y P10,
ambos incluidos.
Curve "MyFile", C, 0, 4, P1, P2, ON 2, P(3:10)
188
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Descripción
Curve crea los
datos que mueven el brazo manipulador a lo largo de la curva definida por la serie de puntos
pointList y guarda los datos en un archivo del controlador. La instrucción CVMove usa los datos en el
archivo creado por Curve para mover el manipulador como ruta continua.
El archivo de la curva se guarda en la memoria Compact Flash dentro del controlador. Por lo tanto, Curve
empieza a escribir en la memoria Compact Flash. La escritura frecuente en la memoria Compact Flash
reducirá la vida útil de la memoria Compact Flash. Recomendamos usar Curve solo para guardar los datos
del punto.
Curve calcula los valores independientes de las coordenadas X, Y, Z, U, V, W para cada punto que utilice
un función de ranura cúbica para crear la trayectoria. Por ende, si los puntos están bastante separados entre
sí o si se cambia la orientación del robot repentinamente de punto a punto, es posible que no se complete la
trayectoria deseada.
No es necesario especificar las necesidades o las aceleraciones antes de ejecutar la instrucción Curve. Los
parámetros de velocidad y aceleración del brazo se pueden cambiar en cualquier momento antes de ejecutar
CVMove con el uso de las instrucciones SpeedS o AccelS.
Los puntos definidos en un sistema de coordenadas local se pueden usar en la serie para ubicar la curva en
la posición deseada. Al definir todos los puntos especificados en la serie de puntos para la instrucción
Curve como puntos con atributos locales, se pueden cambiar los puntos en el sistema de coordenadas local
mediante la instrucción Local posterior a la instrucción Curve.
Notas
Use la corrección tangencial cuando sea posible
Se recomienda que se utilice la corrección tangencial cuando sea posible, en especial al utilizar CVMove en
un bucle continuo a través de los mismos puntos. Si no se usa la corrección tangencial, es posible que el
robot no siga la ruta correcta a velocidades más altas.
Número máx. y mín. de puntos permitidos para la curva abierta
Se pueden especificar las curvas abiertas mediante el uso de entre 3 y 200 puntos.
Número máx. y mín. de puntos permitidos para la curva cerrada
Se pueden especificar las curvas cerradas mediante el uso de entre 3 y 50 puntos.
Posible error
Intento de mover el brazo fuera del envolvente de trabajo
La inst
rucción Curve no puede revisar el rango de movimiento para la ruta de la curva definida. Esto
significa que la ruta definida por un usuario puede provocar que el brazo del robot se mueva hacia afuera
del envolvente de trabajo normal. En este caso se producirá un error de "fuera de rango".
También consulte
Fun
ción AccelS, Arc, CVMove, ECP, Move, SpeedS
Ejemplo de instrucción Curve
El siguiente
ejemplo asigna el nombre MYCURVE.CVT al archivo de datos de curva libre, crea un trazado
de curva de P1 a P7, activa el puerto de salida 2 en P2 y desacelera el brazo en P7.
Configura la curva
> cur
ve "mycurve", O, 0, 4, P1, P2, On 2, P(3:7)
Mueve el brazo a P1 en una línea recta
>
jump P1
Mueve el brazo según la definición de curva llamada “mycurve”
>
cvm
ove "mycur
ve"
Manual de referencia del lenguaje SPEL+ Rev.2
189
Manual de referencia del lenguaje SPEL+
Instrucción CVMove
Realiza el movimiento de ruta continua de Spline definido por la instrucción Curve.
Sintaxis
CVMove fileName [CP] [searchExpr] [SYNC]
Parámetros
fileName Una expresión de cadena para el nombre del archivo. Se debe crear este archivo antes de la
instrucción Curve y se debe guardar en el disco duro de una computadora.
No puede especificar una ruta de archivo y fileName no tiene efecto de ChDisk.
Consulte ChDisk para conocer detalles.
CP Opcional. Especifica el movimiento de la ruta continua después del último punto.
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
SYNC Reserva un comando de movimiento. Un robot no se moverá hasta que SyncRobots
instrucciones.
Descripción
CVMove realiza el movimiento de ruta continua Spline definido por los datos en el archivo fileName, que
se encuentra en la memoria del controlador. El archivo se debe crear antes mediante el comando Curve.
Es posible que existan varios archivos al mismo tiempo en el sistema. Si el nombre del archivo no tiene
una extensión, se agrega automáticamente la extensión .CVT.
El usuario puede cambiar la velocidad y la aceleración del movimiento de la ruta continua para CVMove
mediante las instrucciones SpeedS y AccelS.
Cuando la instrucción Curve se ha ejecutado previamente con definiciones locales, se puede cambiar la
posición de operación con el uso de la instrucción local.
Al ejecutar CVMove, tenga cuidado de que el robot no choque con el equipo periférico. Cuando intenta
cambiar la orientación de la mano del robot de 6 ejes (incluida la serie N) entre los puntos adyacentes de
manera repentina, debido a la naturaleza de la función Spline cúbica, el robot de 6 ejes puede empezar a
cambiar la orientación de los puntos anteriores y siguientes y moverse en una trayectoria inesperada.
Verifique la trayectoria atentamente antes de ejecutar un CVMove y tenga cuidado de que el robot no
choque con el equipo periférico.
Especifique los puntos para que estén cercanos entre sí y con un intervalo equidistante. No cambie
repentinamente la orientación de la mano entre los puntos adyacentes.
El parámetro CP causa que comience la aceleración del siguiente comando de movimiento cuando
comienza la desaceleración para el comando de movimiento actual. En este caso, el robot no se detendrá
en la coordenada de destino y continuará moviéndose al siguiente punto.
También consulte
Función AccelS, Arc, Curve, Move, SpeedS, Till, TillOn
Ejemplo de instrucción CVMove
El siguiente ejemplo asigna el nombre MYCURVE.CVT al archivo de datos de curva libre, crea un trazado
de curva de P1 a P7, activa el puerto de salida 2 en P2 y desacelera el brazo en P7.
Configura la curva
> curve "mycurve", O, 0, 4, P1, P2, On 2, P(3:7)
Mueve el brazo a P1 en una línea recta
> jump P1
Mueve el brazo según la definición de curva llamada “mycurve”
> cvmove "mycurve"
190
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Define el valor de coordenada de los datos de un punto.
CV, CW solo son para robots de 6 ejes (incluida la serie N).
CR solo es para los robots de tipo articulado.
CS y CT son solo para robots con ejes adicionales.
Sintaxis
CX(point) = value
CY(point) = value
CZ(point) = value
CU(point) = value
CV(point) = value
CW(point) = value
CR(point) = value
CS(point) = value
CT(point) = value
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Expresión real que representa el nuevo valor de coordenada en milímetros.
También consulte
Funciones CX, CY, CZ, CU, CV, CW, CR, CS y CT
Ejemplo de instrucciones CX, CY, CZ, CU, CV, CW, CR, CS y CT
CX(pick) = 25.34
Instrucciones CX, CY, CZ, CU, CV, CW, CR, CS y
CT
Manual de referencia del lenguaje SPEL+ Rev.2
191
Manual de referencia del lenguaje SPEL+
Funciones CX, CY, CZ, CU, CV, CW, CR, CS y CT
Recupera un valor de coordenada desde un punto
Las funciones CV, CW solo son para los robots de 6 ejes (incluida la serie N).
CS y CT son solo para robots con ejes adicionales.
Sintaxis
CX (point)
CY (point)
CZ (point)
CU (point)
CV (point)
CW (point)
CR (point)
CS (point)
CT (point)
Parámetros
point Expresión de punto.
Valores devueltos
Arroja el valor de coordenada especificado. Los valores devueltos para CX, CY, CZ son números reales en
milímetros. Los valores devueltos para CU, CV, CW son números reales en grados.
Arroja valores de las funciones CS, CT: Valores reales en mm o grados. Depende de la configuración de
ejes adicionales.
Descripción
Se usa para recuperar un valor de coordenada individual de un punto.
A fin de obtener la coordenada de la posición actual del robot, utilice el parámetro "Here for the point"
(Aquí para el punto).
También consulte
Instrucciones CX, CY, CZ, CU, CV, CW, CR, CS y CT
Ejemplo de funciones CX, CY, CZ, CU, CV, CW, CR, CS y CT
En el siguiente ejemplo se extrae el valor de la coordenada del eje X del punto “pick” (Recoger) y se pone
el valor de coordenada en la variable x.
Función cxtest
Real x
x = CX(pick)
Print "The X Axis Coordinate of point 'pick' is", x
Fend
192
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Date
Muestra la fecha.
Sintaxis
Fecha
Valores devueltos
Aparece la fecha actual.
También consulte
Time, Date$
Ejemplo de instrucción Date
Ejemplo desde la ventana Command.
>Date
2009/08/01
Manual de referencia del lenguaje SPEL+ Rev.2
193
Manual de referencia del lenguaje SPEL+
Función Date$
Arroja la fecha del sistema.
Sintaxis
Date$
Valores devueltos
Una cadena que contiene la fecha en formato aaaa/mm/dd.
También consulte
Date, Time, Time$
Ejemplo de función Date$
Print "Today's date: ", Date$
194
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Declare
Declara una función externa en una biblioteca de enlace dinámico (DLL).
Sintaxis
Declare funcName, dllFile, [ alias ] [, (argList)] As type
Parámetros
funcName El nombre de la función como será llamada desde su programa.
dllFile La ruta y el nombre del archivo de la biblioteca. Debe ser una cadena literal
(caracteres delimitados por comillas). También puede utilizar una macro definida
por #define. Si no existe alguna ruta especificada, entonces RC+ buscará el archivo
en el directorio del proyecto actual. Si no lo encuentra, entonces se supone que el
archivo está en el directorio system32 de Windows. Se puede omitir la extensión del
archivo, pero siempre se supondrá que es un .DLL.
alias Opcional. El nombre real de la función en el DLL o en el índice de funciones. El
nombre distingue entre mayúsculas y minúsculas. El alias debe ser una cadena literal
(caracteres delimitados por comillas). Si se utiliza un índice, se debe usar el carácter
# antes del índice. Si se omite, se puede utilizar un nombre de función especificado
por funcName como nombre de la función en DLL.
arglist Opcional. Lista de argumentos en DLL. Consulte la sintaxis siguiente.
[ {ByRef | ByVal} ] varName [( )] As type
ByRef Opcional. Especifique ByRef cuando haga referencia a la variable que
será vista por la función que realiza la llamada. En este caso, el cambio
de argumento en una función se puede reflejar a la variable del lado que
llama. Se pueden cambiar los valores recibidos como referencia.
ByVal Opcional. Especifique ByVal cuando no desee que los cambios en el
valor de la variable sean vistos por la función de llamada. Este es el valor
predeterminado.
varName Obligatorio. Nombre de la variable que representa el argumento; sigue
las convenciones de nomenclatura de variables estándar. Si se utiliza una
variable de la matriz como argumento, se debe especificar ByRef.
type Obligatorio. Debe declarar el tipo de argumento.
Descripción
Utilice Declare para llamar las funciones DLL desde el programa actual. Se debe usar Declare fuera de las
funciones.
La instrucción Declare revisa que exista el archivo DLL y la función en el tiempo de compilación.
Pasar las variables numéricas ByVal
SPEL: Declare MyDLLFunc, "mystuff.dll", "MyDLLFunc", (a As Long) As Long
VC++ long _stdcall MyDllFunc(long a);
Pasar las variables de cadena ByVal
SPEL: Declare MyDLLFunc, "mystuff.dll", "MyDLLFunc", (a$ As String) As
Long
VC++ long _stdcall MyDllFunc(char *a);
Manual de referencia del lenguaje SPEL+ Rev.2
195
Manual de referencia del lenguaje SPEL+
Pasar las variables numéricas ByRef
SPEL: Declare MyDLLFunc, "mystuff.dll", "MyDLLFunc", (ByRef a As Long) As
Long
VC++ long _stdcall MyDllFunc(long *a);
Pasar las variables de cadena ByRef
SPEL: Declare MyDLLFunc, "mystuff.dll", "MyDLLFunc", (ByRef a$ As String)
As Long
VC++ long _stdcall MyDllFunc(char *a);
Cuando se pasa una cadena con ByRef, se puede cambiar la cadena en la DLL. Longitud máxima de
cadena es de 255 caracteres. Debe asegurarse de no exceder la longitud máxima.
Pasar las matrices numéricas ByRef
SPEL: Declare MyDLLFunc, "mystuff.dll", "MyDLLFunc", (ByRef a() As Long)
As Long
VC++ long _stdcall MyDllFunc(long *a);
Arrojar los valores de la función DLL
La función DLL puede arrojar un valor para algún tipo de dato, lo que incluye la cadena. Sin embargo,
para una cadena, se debe devolver un puntero a una cadena asignada en la función DLL. Y el nombre de la
función debe terminar con el signo de moneda, como sucede con todas las variables y las funciones de la
cadena SPEL
+
. Observe que el alias no lleva el sufijo del signo de moneda.
Por ejemplo:
Declare ReturnLong, "mystuff.dll", "ReturnLong", As Long
Declare ReturnString$, "mystuff.dll", "ReturnString", As String
Function main
Print "ReturnLong = ", ReturnLong
Print "ReturnString$ = ", ReturnString$
Fend
También consulte
Function...Fend
Ejemplo de instrucción Declare
' Declara una función DLL. Puesto que no se especifica una ruta, el archivo puede estar en el
directorio del proyecto actual
' o en el directorio System32 de Windows
Declare MyDLLTest, "mystuff.dll", "MyDLLTest" As Long
Function main
Print MyDLLTest
Fend
' Declara una función DLL con dos argumentos enteros y utiliza un #define para definir el nombre
del archivo DLL
#define MYSTUFF "mystuff.dll"
Declare MyDLLCall, MYSTUFF, "MyTestFunc", (var1 As Integer, var2 As
Integer) As Integer
' Declara una función DLL mediante una ruta o índice.
Declare MyDLLTest, "c:\mydlls\mystuff.dll", "#1" As Long
196
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función DegToRad
Convierte grados en radianes.
Sintaxis
DegToRad(degrees)
Parámetros
degrees Expresión real que representa los grados que se convertirán en radianes.
Valores devueltos
Un valor doble que contiene la cantidad de radianes.
También consulte
ATan, ATan2, función RadToDeg
Ejemplo de función DegToRad
s = Cos(DegToRad(x))
Manual de referencia del lenguaje SPEL+ Rev.2
197
Manual de referencia del lenguaje SPEL+
Instrucción Del
Elimina uno o más archivos.
Sintaxis
Del fileName
Parámetros
fileName La ruta y el nombre del archivo o archivos que se eliminarán. Se debe especificar el nombre
del archivo con una extensión. Consulte ChDisk para conocer detalles.
Descripción
Elimina el archivo o los archivos especificados.
Ejemplo de instrucción Del
Ejemplo desde la ventana Command.
>Del TEST.PTS' Elimina el archivo de punto del directorio actual.
>Del c:TEST.PTS' NG
!! Error: 7213 The file specified by path does not exist.
>Del c:\TEST.PTS' OK
198
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción DeleteDB
Elimina los datos de la tabla en la base de datos abierta.
Sintaxis
DeleteDB #databaseNum,tableNumber [,condition]
Parámetros
databaseNum Especifica el número de la base de datos (entero desde 501 a 508) especificada en
OpenDB.
tableNumber Especifica el nombre de la tabla, cuyos datos se eliminarán.
condition Especifica la condición para eliminar los datos.
Se puede especificar una condición compuesta, mediante AND (Y) y OR (O).
Si no se especifica la condición, se eliminarán todos los datos de la tabla.
Descripción
Elimina los datos que coinciden con la condición de eliminación de la tabla especificada en la base de datos
abierta.
Si la base de datos es un libro de Excel, no se puede ejecutar este comando.
Nota
- Se requiere la conexión de una computadora con RC+ instalado.
También consulte
OpenDB, CloseDB, SelectDB, UpdateDB
Manual de referencia del lenguaje SPEL+ Rev.2
199
Manual de referencia del lenguaje SPEL+
Función DiffToolOrientation
Arroja el ángulo de los ejes de coordenadas de los sistemas de coordenadas para herramientas, a fin de
mostrar la diferencia entre las orientaciones de la herramienta y los dos puntos especificados.
Sintaxis
DiffToolOrientation (pointData1, pointData2 , axisNumber)
Parámetros
pointData1 Especifica los datos del primer punto.
pointData2 Especifica los datos del segundo punto.
axisNumber Especifica el eje de coordenadas del sistema de coordenadas para herramientas.
Constante Valor
COORD_X_PLUS 1: Eje +X
COORD_Y_PLUS 2: Eje +Y
COORD_Z_PLUS 3: Eje +Z
Valores devueltos
Ángulo (valor real de 0 a 180 grados)
Descripción
Arroja el ángulo (valor real, de 0 a 180 grados) entre el eje de coordenadas especificado de los sistemas de
coordenadas para herramientas, lo que indica la diferencia entre las orientaciones de la herramienta de los
dos puntos especificados. Los resultados no se ven afectados por el orden de los parámetros: pointData1 y
pointData2. Los resultados tampoco se ven afectados por la relación de posición (valores de coordenadas
de X, Y y Z) entre los puntos de origen de los dos puntos.
Ejemplo de función DiffToolOrientation
'Muestra el ángulo entre los ejes Z de coordenadas de la herramienta del punto 1 y el punto 2.
Print DiffToolOrientation(P1, P2, COORD_Z_PLUS)
200
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción DispDev
Define el dispositivo de visualización actual.
Sintaxis
DispDev (deviceID)
Parámetros
deviceID La ID del dispositivo para el dispositivo de visualización deseado.
21 RC+
24 TP (solo TP1)
20 TP3
También están disponibles los siguientes parámetros.
21 DEVID_SELF
24 DEVID_TP
20 DEVID_TP3
También consulte
Función DispDev
Ejemplo de instrucción DispDev
DispDev DEVID_TP
Manual de referencia del lenguaje SPEL+ Rev.2
201
Manual de referencia del lenguaje SPEL+
Función DispDev
Arroja el dispositivo de visualización actual.
Sintaxis
DispDev
Valores devueltos
Valor entero que contiene deviceID.
21 RC+
24 TP (solo TP1)
20 TP3
También consulte
Instrucción DispDev
Ejemplo de función DispDev
Print "The current display device is ", DispDev
202
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Dist
Arroja la distancia entre dos puntos de robot.
Sintaxis
Dist (point1, point2)
Parámetros
point1, point2 Especifica dos expresiones de puntos del robot.
Valores devueltos
Arroja la distancia entre ambos puntos (valor real en mm).
Descripción
Incluso si está usando el eje adicional, solo se arroja la distancia de desplazamiento del robot.
No incluye la distancia de desplazamiento del eje adicional mientras se usa el eje adicional como eje de
ejecución.
Para el robot de tipo articulado, no significa nada el valor devuelto de esta función.
También consulte
CU, CV, CW, CX, CY, CZ
Ejemplo de función Dist
Distancia real
distancia = Dist(P1, P2)
Manual de referencia del lenguaje SPEL+ Rev.2
203
Manual de referencia del lenguaje SPEL+
Instrucción Do...Loop
Repite un bloque de instrucciones cuando una condición es verdadera o hasta que una condición se vuelva
verdadera.
Sintaxis
Do [ { While | Until } condition ]
[statements]
[Exit Do]
[statements]
Loop
O bien se puede usar esta sintaxis:
Do
[statements]
[Exit Do]
[statements]
Loop [ { While | Until } condition ]
La sintaxis de la instrucción Do Loop (Hacer bucle) tiene estas partes:
Parte Descripción
condition Opcional. Expresión numérica o expresión de cadena que es verdadera o falsa. Si la
condition es Null (valor nulo), se trata a la condición como falsa.
statements Una o más instrucciones que están repetidas durante o hasta que la condition sea verdadera.
Descripción
Cualquier número de las instrucciones Exit Do (Salir hacer) se puede poner en cualquier parte de Do...Loop
como una manera alternativa para salir de un Do...Loop. A menudo Exit Do se utiliza después de evaluar
alguna condición, por ejemplo, If...Then (Si... entonces), en cuyo caso la instrucción Exit Do traspasa el
control a la instrucción inmediatamente posterior a Loop (Bucle).
Cuando se usa dentro de instrucciones anidadas de tipo Do...Loop, Exit Do transfiere el control al bucle
que está un nivel de anidamiento por encima del bucle en el que ocurre Exit Do.
También consulte
For...Next, Select...Send
Ejemplo de instrucción Do...Loop
Do While Not Lof(1)
Line Input #1, tLine$
Print tLine$
Loop
204
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción doble
Declara las variables de tipo doble. (Número de doble precisión de 8 bytes).
Sintaxis
Double varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de la variable que el usuario desea declarar como de tipo doble.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Se usa Double para declarar las variables como de tipo doble. Las variables locales se deben declarar al
inicio de una función. Las variables globales y de módulo se deben declarar fuera de las funciones.
El número de dígitos válido para Double es 14.
También consulte
Boolean, Byte, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Double
El siguiente ejemplo muestra un programa simple que declara algunas variables que utilizan Double.
Función doubletest
Double var1
Double A(10) 'Matriz de una sola dimensión de Double
Double B(10, 10) 'Matriz de dos dimensiones de Double
Double C(5, 5, 5) 'Matriz de tres dimensiones de Double
Double arrayvar(10)
Integer i
Print "Please enter a Number:"
Input var1
Print "The variable var1 = ", var1
For i = 1 To 5
Print "Please enter a Number:"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
205
Manual de referencia del lenguaje SPEL+
Instrucción ECP
Selecciona o muestra el ECP (punto de control externo) actual.
Sintaxis
(1) ECP ECPNumber
(2) ECP
Parámetros
ECPNumber Opcional. Expresión entera de 0 a 15 que representa cuál de las 16 definiciones de
ECP utilizar con las siguientes instrucciones movimiento. ECP 0 hace que la
selección de ECP no sea válida.
Valores devueltos
Muestra el ECP actual cuando se utiliza sin parámetros.
Descripción
ECP selecciona el punto de control externo especificado por ECPnumber (ECPNumber).
Nota
Este comando solo funcionará si la opción External Control Point está activada.
Desconexión y su efecto en la selección de ECP
Desconectar la alimentación principal borra la selección de ECP.
También consulte
ECPSet
Ejemplo de instrucción ECP
>ecpset 1, 100, 200, 0, 0
>ecp 1
206
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ECP
Arroja el número de ECP (punto de control externo) actual.
Sintaxis
ECP
Valores devueltos
Entero que contiene el número de ECP actual.
Nota
Este comando solo funcionará si la opción External Control Point está activada.
También consulte
Instrucción ECP
Ejemplo de función ECP
Integer savECP
savECP = ECP
ECP 2
Call Dispense
ECP savECP
Manual de referencia del lenguaje SPEL+ Rev.2
207
Manual de referencia del lenguaje SPEL+
Instrucción ECPClr
Borra (anula definición) un punto de control externo.
Sintaxis
ECPClr ECPNumber
Parámetros
ECPNumber Expresión entera que representa cuál de los 15 puntos de control externo borrar
(anular definición). (ECP0 es el valor predeterminado y no se puede borrar).
Nota
Este comando solo funcionará si la opción External Control Point está activada.
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLSet
Ejemplo de instrucción ECPClr
ECPClr 1
208
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ECPDef
Arroja el estado de la definición de ECP.
Sintaxis
ECPDef (ECPNumber)
Parámetros
ECPNumber Expresión entera que representa para cuál ECP se debe arrojar el estado.
Valores devueltos
True (Verdadero) si se ha definido el ECP especificado, o de lo contrario, False (Falso).
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLClr, TLSet
Ejemplo de instrucción ECPDef
Function DisplayECPDef(ecpNum As Integer)
If ECPDef(ecpNum) = False Then
Print "ECP ", ecpNum, "is not defined"
Else
Print "ECP ", ecpNum, ": ",
Print ECPSet(ecpNum)
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
209
Manual de referencia del lenguaje SPEL+
Instrucción ECPSet
Define o muestra un punto de control externo.
Sintaxis
(1) ECPSet ECPNum, ECPPoint
(2) ECPSet ECPNum
(3) ECPSet
Parámetros
ECPNum Número entero del 1 al 15 que representa a cuál de los 15 puntos de control externo se
define.
ECPPoint Pnumber o P(expr) o etiqueta de punto o expresión de punto.
Valores devueltos
Cuando se omiten los parámetros, aparecen las definiciones actuales de ECPSet.
Cuando solo se especifica el número de ECP, aparecen las definiciones del ECPSet especificado.
Descripción
Define un punto de control externo.
Nota
Este comando solo funcionará si la opción External Control Point está activada.
Ejemplo de instrucción ECPSet
ECPSet 1, P1
ECPSet 2, 100, 200, 0, 0
210
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función ECPSet
Arroja un punto que contiene la definición de un punto de control externo para el ECP especificado.
Sintaxis
ECPSet(ECPNumber)
Parámetros
ECPNumber Expresión entera que representa número del ECP que desea recuperar.
Valores devueltos
Un punto que contiene la definición de ECP.
Nota
Este comando solo funcionará si la opción External Control Point está activada.
También consulte
Instrucción ECPSet
Ejemplo de función ECPSet
P1 = ECPSet(1)
Manual de referencia del lenguaje SPEL+ Rev.2
211
Manual de referencia del lenguaje SPEL+
Función ElapsedTime
Arroja el tiempo transcurrido desde que empieza el temporizador de medición de tiempo takt en segundos.
Sintaxis
ElapsedTime
Valores devueltos
Un valor real que representa el tiempo transcurrido de un temporizador de medición de tiempo takt.
(Unidad: segundos)
El rango válido es desde 0 a aproximadamente 1.7E+31. La resolución del temporizador es de 0,001
segundos.
Descripción
Arroja el tiempo transcurrido desde que empieza el temporizador de medición de tiempo takt. A diferencia
de la función Tmr, la función ElapsedTime no cuenta el tiempo mientras el programa está detenido.
El temporizador de medición de tiempo takt se puede restablecer con la instrucción ResetElapsedTime.
Real overhead
ResetElapsedTime
overHead = ElapsedTime
También consulte
ResetElapsedTime, función Tmr
Ejemplo de función ElapsedTime
ResetElapsedTime 'Restablece el temporizador de medición de tiempo takt
For i = 1 To 10 'Se ejecuta 10 veces
GoSub Cycle
Next
Print ElapsedTime / 10 'Mide un tiempo takt y lo muestra
212
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Elbow P1, Above
Go P1
Instrucción Elbow
Define la orientación del codo de un punto.
Sintaxis
(1) Elbow point, [value]
(2) Elbow
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Expresión entera.
1 = Arriba (/A)
2 = Debajo (/B)
Valores devueltos
Cuando se omiten ambos parámetros, aparece la orientación del codo para la posición del robot actual.
Si se omite value, aparece la orientación del codo para el punto especificado.
También consulte
Función Elbow, Hand, J4Flag, J6Flag, Wrist
Ejemplo de instrucción Elbow
Elbow P0, Below
Elbow pick, Above
Elbow P(myPoint), myElbow
P1 = 0.000, 490.000, 515.000, 90.000, -40.000, 180.000
Elbow P1, Below
Go P1
Manual de referencia del lenguaje SPEL+ Rev.2
213
Manual de referencia del lenguaje SPEL+
Función Elbow
Arroja la orientación del codo de un punto.
Sintaxis
Elbow [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces arroja la orientación del codo de
la posición actual del robot.
Valores devueltos
1 Arriba (/A)
2 Debajo (/B)
También consulte
Instrucción Elbow, Hand, Wrist, J4Flag, J6Flag
Ejemplo de Función Elbow
Print Elbow(pick)
Print Elbow(P1)
Print Elbow
Print Elbow(P1 + P2)
214
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Eof
Arroja el estado del fin de archivo.
Sintaxis
Eof (fileNumber)
Parámetros
fileNumber Número entero entre 30 y 60 o expresión que representa el número del archivo que se debe
revisar.
Valores devueltos
Verdadero si el puntero del archivo está al final del archivo, de lo contrario es falso.
Descripción
Eof solo es funcional si se abre el archivo en modo de lectura.
Se produce un error si se abrió el archivo con las instrucciones AOpen o WOpen.
También consulte
Lof
Ejemplo de función Eof
Integer fileNum
String data$
fileNum = FreeFile
UOpen "TEST.DAT" As #fileNum
Do While Not Eof(fileNum)
Line Input #fileNum, data$
Print "data = ", data$
Loop
Close #fileNum
Manual de referencia del lenguaje SPEL+ Rev.2
215
Manual de referencia del lenguaje SPEL+
Función Era
Arroja el número de las articulaciones en las que se produjo un error.
Sintaxis
Era[(taskNum)]
Parámetros
taskNumber Expresión entera que representa un número de tarea entre 0 y 32.
Si se omite el número de tarea o se usa "0", se especifica la tarea actual.
Valores devueltos
El número de articulación que provocó el error en el rango entre 0 y 9, como se describe a continuación:
0 - El error actual no fue causado por un eje servo.
1 - El error fue causado por la articulación número 1
2 - El error fue causado por la articulación número 2
3 - El error fue causado por la articulación número 3
4 - El error fue causado por la articulación número 4
5 - El error fue causado por la articulación número 5
6 - El error fue causado por la articulación número 6
7 - El error fue causado por la articulación número 7
8 - El error fue causado por la articulación número 8 (eje S adicional)
9 - El error fue causado por la articulación número 9 (eje T adicional)
Descripción
Se utiliza Era cuando se produce un error a fin de determinar si el error fue provocado por una de las
articulaciones del robot y para arrojar el número de la articulación que causó el error. Si el error actual no
fue provocado por ninguna articulación, Era arroja “0”.
También consulte
Erl, Err, ErrMsg$, Ert, OnErr, Trap
Ejemplo de función Era
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
EndIf
Fend
216
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción EResume
Reanuda la ejecución después de la finalización de la rutina del controlador de errores.
Sintaxis
EResume [{ label | Next }]
Descripción
EResume
Si el error se produjo en el mismo procedimiento que el controlador de errores, se reanuda la ejecución con
la instrucción que provocó el error. Si el error se produjo en un procedimiento llamado, se reanuda la
ejecución en la instrucción Call en el procedimiento que contiene el controlador de errores.
EResume Next
Si el error se produjo en el mismo procedimiento que el controlador de errores, se reanuda la ejecución con
la instrucción inmediatamente posterior a la instrucción que provocó el error. Si el error se produjo en un
procedimiento llamado, se reanuda la ejecución con la instrucción inmediatamente posterior a la última
instrucción Call en el procedimiento que contiene el controlador de errores.
EResume { label }
Si el error se produjo en el mismo procedimiento que el controlador de errores, se reanuda la ejecución en
la instrucción que contiene la etiqueta.
También consulte
OnErr
Ejemplo de instrucción EResume
Function main
Integer retry
OnErr GoTo eHandler
Do
RunCycle
Loop
Exit Function
eHandler:
Select Err
Case MyError
retry = retry + 1
If retry < 3 Then
EResume ' try again
Else
Print "MyError has occurred ", retry, " times
EndIf
Send
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
217
Manual de referencia del lenguaje SPEL+
Función Erf$
Arroja el nombre de la función en que se produjo el error.
Sintaxis
Erf$[(taskNumber)]
Parámetros
taskNumber Expresión entera que representa un número de tarea desde 0 a 32.
Si se omite el número de tarea o se usa "0", se especifica la tarea actual.
Valores devueltos
El nombre de la función donde se produjo el último error.
Descripción
Erf$ se utiliza junto con OnErr. Erf$ arroja el nombre de la función en que se produjo el último error. El
uso de Erf$ en combinación con Err, Ert, Erl y Era permite que el usuario determine mucho más sobre el
error.
También consulte
Era, Erl, Err, ErrMsg$, Ert, OnErr
Ejemplo de función Erf$
Los siguientes elementos se arrojan en el ejemplo de programa a continuación.
En qué tarea ocurrió el error (función Ert)
En qué función se produjo el error (función Erf$)
Dónde ocurrió el error (función Erl)
En qué articulación ocurrió el error (función Era)
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "Function at which error occurred is ", Erf$(errTask)
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
EndIf
Fend
218
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Erl
Arroja el número de línea donde se produjo el error.
Sintaxis
Erl[(taskNumber)]
Parámetros
taskNumber Expresión entera que representa un número de tarea desde 0 a 32.
Si se omite el número de tarea o se usa "0", se especifica la tarea actual.
Valores devueltos
El número de la tarea donde se produjo el último error.
Descripción
Erl se utiliza junto con OnErr. Erl arroja el número de línea donde se produjo el error. El uso de Erl en
combinación con Err, Ert, y Era permite que el usuario determine mucho más sobre el error.
También consulte
Era, Erf$, Err, ErrMsg$, Ert, OnErr
Ejemplo de función Erl
Los siguientes elementos se arrojan en el ejemplo de programa a continuación.
En qué tarea ocurrió el error (función Ert)
Dónde ocurrió el error (función Erl)
Qué error ocurrió (función Err)
En qué articulación ocurrió el error (función Era)
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
219
Manual de referencia del lenguaje SPEL+
Función Err
Arroja el estado de error más reciente.
Sintaxis
Err [ (taskNumber) ]
Parámetros
taskNumber Opcional. Expresión entera que representa un número de tarea desde 0 a 32.
“0” especifica la tarea actual.
Valores devueltos
Arroja un código de error numérico en forma de entero.
Descripción
Err permite que el usuario lea el código de error actual. Esto junto con las capacidades del controlador de
errores de SPEL
+
le permiten al usuario determinar qué error se produjo y reaccionar como corresponda.
Err se utiliza junto con OnErr.
Para obtener el error del controlador, use la función SysErr.
También consulte
Era, Erf$, Erl, ErrMsg$, EResume, Ert, OnErr, Return, SysErr
Ejemplo de función Err
El siguiente ejemplo muestra un programa de utilidad simple que comprueba si existen los puntos P0 a
P399. Si el punto no existe, se mostrará un mensaje en la pantalla para informar al usuario de que el punto
no existe. El programa usa la instrucción CX para comprobar si se definió o no cada punto. Cuando un
punto no está definido, el control se traslada al controlador de errores y se muestra un mensaje en la
pantalla para indicar al usuario el punto que no estaba definido.
Función errtest
Integer i, errnum
Real x
OnErr GoTo eHandle
For i = 0 To 399
x = CX(P(i))
Next i
Exit Function
'
'
'*********************************************
'* Error Handler *
'*********************************************
eHandle:
errnum = Err
' Comprueba si se está usando un punto no definido
If errnum = 78 Then
Print "Point number P", i, " is undefined!"
Else
Print "ERROR: Error number ", errnum, " Occurred."
EndIf
EResume Next
Fend
220
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Errb
Arroja el número del robot en el que ocurrió el error.
Sintaxis
Errb
Valores devueltos
Arroja el número del robot en el que ocurrió el error.
Descripción
Errb busca y arroja el número de robot donde se produjo el error. Si el robot no es la causa del error, se
arrojará “0”.
También consulte
Era, Erl, Err, ErrMsg$, OnErr, Trap
Ejemplo de función Errb
Los siguientes elementos se arrojan en el ejemplo de programa a continuación.
En qué tarea ocurrió el error (función Ert)
Dónde ocurrió el error (función Erl)
Qué error ocurrió (función Err)
En qué articulación ocurrió el error (función Era)
En qué articulación ocurrió el error (función Errb)
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
Print “Robot number in which error occurred is “, errb
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
221
Manual de referencia del lenguaje SPEL+
Función ErrMsg$
Arroja el mensaje de error que corresponde al número de error especificado.
Sintaxis
ErrMsg$(errNumber, langID)
Parámetros
errNumber Expresión entera que contiene el número de error por el cual se recibe el mensaje.
langID Opcional. Expresión entera que contiene la ID del idioma según los siguientes valores.
0 - Inglés
1 - Japonés
2 - Alemán
3 - Francés
4 - Chino simplificado
5 - Chino tradicional
Si se omite, se usa inglés.
Valores devueltos
Arroja el mensaje de error que se describe en la tabla de códigos de error.
También consulte
Era, Erl, Err, Ert, OnErr, Trap
Ejemplo de función ErrMsg$
Los siguientes elementos se arrojan en el ejemplo de programa a continuación.
En qué tarea ocurrió el error (función Ert)
Dónde ocurrió el error (función Erl)
En qué articulación ocurrió el error (función Era)
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
EndIf
Fend
222
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Error
Genera un error del usuario.
Sintaxis
(1) Error task Number, errorNumber
(2) Error errorNumber
Parámetros
taskNumber Opcional. Expresión entera que representa un número de tarea desde 0 a 32.
“0” especifica la tarea actual.
errorNumber Expresión entera que representa un número de error válido. El rango de los números
de error de usuario está entre 8000 y 8999.
Descripción
Utilice la instrucción Error para generar los errores de sistema o definidos por el usuario. Se pueden definir
las etiquetas de errores de usuario con el User Error Editor (Editor de errores de usuario) en el entorno de
desarrollo de EPSON RC+.
También consulte
Era, Erl, Err, OnErr
Ejemplo de instrucción Error
#define ER_VAC 8000
If Sw(vacuum) = Off Then
Error ER_VAC
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
223
Manual de referencia del lenguaje SPEL+
Función ErrorOn
Arroja el estado de error del controlador.
Sintaxis
ErrorOn
Valores devueltos
Verdadero si el estado del controlador tiene errores, de lo contrario falso.
Descripción
La función ErrorOn solo se utiliza para la tarea NoEmgAbort (tarea especial que utiliza NoEmgAbort en
Xqt) y tareas en segundo plano.
También consulte
ErrorOn, SafetyOn, SysErr, Wait, Xqt
Ejemplo de función ErrorOn
El siguiente ejemplo muestra un programa que monitorea el error del controlador y activa o desactiva la
E/S según el número del error cuando este ocurre.
Notas
Indicador Forced
Este ejemplo de programa usa el indicador Forced para el comando On/Off.
Al diseñar el sistema, asegúrese de que las salidas E/S cambien durante el error o una parada de emergencia
o apertura de la puerta de seguridad.
Después del error
Como este programa, termine la tarea rápidamente después de completar el control de errores.
Function main
Xqt ErrorMonitor, NoEmgAbort
:
:
Fend
Function ErrorMonitor
Wait ErrorOn
If 4000 < SysErr Then
Print "Motion Error = ", SysErr
Off 10, Forced
On 12, Forced
Else
EndIf
Fend
Print "Other Error = ", SysErr
Off 11, Forced
On 13, Forced
224
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Ert
Arroja el número de tarea donde se produjo un error.
Sintaxis
Ert
Valores devueltos
El número de tarea donde se produjo el error.
Descripción
Se usa Ert cuando se produce un error para determinar en qué tarea se produjo.
Ert arroja el número de la manera siguiente:
Ninguna tarea con error (0), tarea normal (1 a 32), tarea en segundo plano (65 a 80), tarea TRAP (257 a
267).
También consulte
Era, Erl, Err, ErrMsg$, OnErr, Trap
Ejemplo de función Ert
Los siguientes elementos se arrojan en el ejemplo de programa a continuación.
En qué tarea ocurrió el error (función Ert)
Dónde ocurrió el error (función Erl)
En qué articulación ocurrió el error (función Era)
Function main
OnErr Goto eHandler
Do
Call PickPlace
Loop
Exit Function
eHandler:
Print "The Error code is ", Err
Print "The Error Message is ", ErrMsg$(Err)
errTask = Ert
If errTask > 0 Then
Print "Task number in which error occurred is ", errTask
Print "The line where the error occurred is Line ", Erl(errTask)
If Era(errTask) > 0 Then
Print "Joint which caused the error is ", Era(errTask)
EndIf
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
225
Manual de referencia del lenguaje SPEL+
Función EStopOn
Arroja el estado de parada de emergencia.
Sintaxis
EStopOn
Valores devueltos
Verdadero si el estado está en parada de emergencia, de lo contrario, falso.
Descripción
La función EStopOn solo se utiliza para la tarea NoEmgAbort (tarea especial que utiliza NoEmgAbort en
Xqt).
También consulte
ErrorOn, SafetyOn, Wait, Xqt
Ejemplo de función EStopOn
En el siguiente ejemplo se muestra un programa que monitorea la parada de emergencia y activa o
desactiva la E/S cuando se produce una parada de emergencia.
Notas
Indicador Forced
Este ejemplo de programa usa el indicador Forced para el comando On/Off.
Al diseñar el sistema, asegúrese de que las salidas E/S cambien durante el error o en una parada de
emergencia o protección abierta.
Control de errores
Como este programa, termine la tarea rápidamente después de completar el control de errores.
Salidas desactivadas durante parada de emergencia
Como este ejemplo de programa, cuando la tarea ejecuta la activación y desactivación de E/S después de la
parada de emergencia, se debe desmarcar la casilla de verificación [Setup]-[System Configuration]-
[Controller]-[Preferences]-[Outputs off during emergency stop] (Configuración - Configuración del sistema
- Controlador - Preferencias - Salidas desactivadas durante parada de emergencia). Si esta casilla
permanece marcada, no se garantiza el orden de ejecución de la desactivación con el controlador o de la
activación con la tarea.
Function main
Xqt EStopMonitor, NoEmgAbort
:
:
Fend
Function EStopMonitor
Wait EStopOn
Print "EStop !!!"
Off 10, Forced
On 12, Forced
Fend
226
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Eval
Ejecuta una instrucción de la ventana Command desde un programa y arroja el estado de error.
Sintaxis
Eval( command [ , reply$ ] )
Parámetros
command Una expresión de cadena que contiene un comando que desea ejecutar.
reply$ Opcional. Una variable de cadena que contiene la respuesta del comando.
Si el comando está en estado de error, arrojará “!Error: error code” (Error: Código de
error).
Si la respuesta tiene más de 255 caracteres, se truncarán los caracteres adicionales.
Valores devueltos
El código de error devuelto al ejecutar el comando.
Incluso si la ejecución del comando provoca un error, la función misma no será un error. Tampoco se
ingresa en el registro del sistema.
Cuando el comando se finaliza con éxito, arroja “0”.
Descripción
Se puede ejecutar cualquier comando (comandos ejecutables desde la ventana Command) desde el puerto
de comunicación como TCP/IP mediante Eval. Se requiere más tiempo para ejecutar esta función que
cuando se usa una instrucción normal.
Utilice el parámetro reply$ para obtener la respuesta del comando. Por ejemplo, si el comando era “Print
Sw(1)”, entonces reply$ sería un “1” o un “0”.
También consulte
Códigos de error
Ejemplo de función Eval
En este ejemplo se muestra cómo ejecutar un comando que se lee en RS-232. Después de ejecutar el
comando, se arroja un código de error al host. Por ejemplo, host podría enviar un comando como "motor
on" (motor encendido).
Integer errCode
String cmd$
OpenCom #1
Do
Line Input #1, cmd$
errCode = Eval(cmd$)
Print #1, errCode
Loop
Manual de referencia del lenguaje SPEL+ Rev.2
227
Manual de referencia del lenguaje SPEL+
Instrucción Exit
Sale de una construcción o función de bucle.
Sintaxis
Exit { Do | For | Function }
Descripción
La sintaxis de la instrucción Exit (salir) tiene estas formas:
Instrucción Descripción
Exit Do Proporciona una forma de salir de una instrucción Do... Loop. Solo se puede usar en una
instrucción Do... Loop. Exit Do traspasa el control a la instrucción que sigue a la
instrucción Loop. Cuando se usa dentro de instrucciones anidadas de tipo Do...Loop, Exit
Do transfiere el control al bucle que está un nivel de anidamiento por encima del bucle en
el que ocurre Exit Do.
Exit For Proporciona una forma de salir de un bucle For. Solo se puede usar en un bucle
For...Next. Exit For transfiere el control a la instrucción a continuación de la instrucción
Next. Cuando se usa dentro de bucles anidados For, Exit For transfiere el control al
bucle que está un nivel de anidamiento por encima del bucle en el que ocurre Exit For.
Función Exit Sale inmediatamente del procedimiento de función en el que aparece. La ejecución
continúa con la instrucción que sigue a la instrucción que llamó a la función.
También consulte
Do...Loop, For...Next, Function...Fend
Ejemplo de instrucción Exit
For i = 1 To 10
If Sw(1) = On Then
Exit For
EndIf
Jump P(i)
Next i
228
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ExportPoints
Exporta un archivo de punto a la ruta especificada.
Sintaxis
ExportPoints fileName, destination
Parámetros
fileName Expresión de cadena que contiene el archivo específico que se exportará.
La extensión debe ser ".pts". No puede especificar una ruta de archivo y fileName no tiene
efecto de ChDisk. Consulte ChDisk para conocer detalles.
destination Especifique la ruta y el nombre del archivo para guardar el archivo.
La extensión debe ser ".pts". Consulte ChDisk para conocer detalles.
Descripción
ExportPoints copia un archivo de punto especificado a una carpeta en la computadora.
Si el archivo ya existe en la carpeta, se sobrescribirá.
Posibles errores
El archivo no existe
Si la ruta especificada no existe, ocurrirá un error.
No se puede especificar una ruta
Si fileName contiene una ruta, ocurrirá un error.
También consulte
Dir, LoadPoints, SavePoints, FileExists, FolderExists
Ejemplo de instrucción ExportPoints
Function main
LoadPoints "robot1.pts"
:
SavePoints "robot1.pts"
If FolderExists("c:\mypoints\") Then
ExportPoints "robot1.pts", "c:\mypoints\model1.pts"
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
229
Manual de referencia del lenguaje SPEL+
Función FbusIO_GetBusStatus
Arroja el estado del bus de campo especificado.
Sintaxis
FbusIO_GetBusStatus(busNumber)
Parámetros
busNumber Expresión entera que representa el número del sistema de bus de campo. Este número
debe ser 16. Esta es la ID del bus conectado a la placa maestra del bus de campo en el lado
de la computadora del controlador.
Valores devueltos
0 - OK
1 - Desconectado
2 - Apagado
Descripción
FbusIO_GetBusStatus puede usarse para verificar el estado general del bus de campo.
Nota
Este comando solo funcionará si la opción Fieldbus Master está activada.
También consulte
FbusIO_GetDeviceStatus, FbusIO_SendMsg
Ejemplo de función FbusIO_GetBusStatus
Long sts
sts = FbusIO_GetBusStatus(16)
230
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función FbusIO_GetDeviceStatus
Arroja el estado del dispositivo de bus de campo especificado.
Sintaxis
FbusIO_GetDeviceStatus(busNumber, deviceID)
Parámetros
busNumber Expresión entera que representa el número del sistema de bus de campo. Este número
debe ser 16. Esta es la ID del bus conectado a la placa maestra del bus de campo en el lado
de la computadora del controlador.
deviceID Expresión entera que representa la ID de bus de campo del dispositivo.
Valores devueltos
0 - OK
1 - Desconectado
2 - Apagado
3 - Error de sincronización. El dispositivo está arrancando o tiene una velocidad en baudios incorrecta.
Descripción
FbusIO_GetDeviceStatus puede usarse para verificar el estado general de un dispositivo de bus campo.
Nota
Este comando solo funcionará si la opción Fieldbus Master está activada.
También consulte
FbusIO_GetBusStatus, FbusIO_SendMsg
Ejemplo de función FbusIO_GetDeviceStatus
Long sts
sts = FbusIO_GetDeviceStatus(1, 10)
Manual de referencia del lenguaje SPEL+ Rev.2
231
Manual de referencia del lenguaje SPEL+
Instrucción FbusIO_SendMsg
Envía un mensaje explícito a un dispositivo de bus de campo y devuelve la respuesta.
Sintaxis
FbusIO_SendMsg (busNumber, deviceID, msgParam, sendData(), recvData())
Parámetros
busNumber Expresión entera que representa el número del sistema de bus de campo.
Este número debe ser 16. Esta es la ID del bus conectado a la placa maestra del bus de
campo en el lado de la computadora del controlador.
deviceID Expresión entera que representa la ID de bus de campo del dispositivo.
msgParam Expresión entera para el parámetro del mensaje. No se usa con DeviceNet.
sendData Matriz de tipo Byte que contiene datos que se envían al dispositivo. Esta matriz debe
dimensionarse de acuerdo con el número de bytes que se enviarán. Si no hay bytes para
enviar, especifique 0.
recvData Matriz de tipo Byte que contiene los datos recibidos del dispositivo. Esta matriz se
redimensionará automáticamente de acuerdo con el número de bytes recibidos.
Descripción
FBusIO_SendMsg se usa para consultar un dispositivo de bus de campo. Consulte al fabricante del
dispositivo para obtener información sobre la compatibilidad para mensajes.
Nota
Este comando solo funcionará si la opción Fieldbus Master está activada.
También consulte
FbusIO_GetBusStatus, FbusIO_GetDeviceStatus
232
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción FbusIO_SendMsg
' Envía un mensaje explícito al dispositivo DeviceNet
Byte sendData(5)
Byte recvData(0)
Integer i
sendData(0) = &H0E ' Comando
sendData(1) = 1 ' Clase
sendData(3) = 1 ' Instancia
sendData(5) = 7 ' Atributo
' msgParam es 0 para DeviceNet
FbusIO_SendMsg 1, 1, 0, sendData(), recvData()
' Muestra la respuesta
For i = 0 to UBound(recvData)
Print recvData(i)
Next i
' Envía el mensaje al dispositivo Profibus
Byte recvData(0)
Integer i
' msgParam es el número de servicio
FbusIO_SendMsg 16, 1, 56, 0, recvData()
' Muestra la respuesta
For i = 0 to UBound(recvData)
Print recvData(i)
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
233
Manual de referencia del lenguaje SPEL+
Función FileDateTime$
Arroja la fecha y la hora de un archivo.
Sintaxis
FileDateTime$(filename)
Parámetros
fileName Una expresión de cadena que contiene un nombre de archivo que se va a comprobar.
También se pueden incluir la unidad de disco y la ruta.
Si solo se especifica el nombre del archivo, se muestra el archivo en el directorio
actual.
Consulte ChDisk para conocer detalles.
Nota
Hay una ruta de red disponible.
Valores devueltos
Arroja la fecha y hora de la última actualización en el siguiente formato:
m/d/aaaa hh:mm:ss
También consulte
FileExists, FileLen
Ejemplo de función FileDateTime$
String myPath$
myPath$ = ":\TEST\TEST.DAT"
If FileExists(myPath$) Then
Print "Last access date and time: ", FileDateTime$(myPath$)
Print "Size: ", FileLen(myPath$)
EndIf
234
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función FileExists
Comprueba si existe un archivo.
Sintaxis
FileExists ( filename )
Parámetros
fileName Una expresión de cadena que contiene un nombre de archivo que se va a comprobar.
También se pueden incluir la unidad de disco y la ruta.
Si solo se especifica el nombre del archivo, el archivo se comprueba en el directorio
actual.
Consulte ChDisk para conocer detalles.
Nota
Hay una ruta de red disponible.
Valores devueltos
True si el archivo existe, False si no es así.
También consulte
FolderExists, FileLen, FileDateTime$
Ejemplo de función FileExists
String myPath$
myPath$ = ":\TEST\TEST.DAT"
If FileExists(myPath$) Then
Print "Last access date and time: ", FileDateTime$(myPath$)
Print "Size: ", FileLen(myPath$)
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
235
Manual de referencia del lenguaje SPEL+
Función FileLen
Arroja la longitud de un archivo.
Sintaxis
FileLen ( filename )
Parámetros
fileName Una expresión de cadena que contiene un nombre de archivo que se va a comprobar.
Esto incluye el nombre de la unidad de disco y el nombre de la ruta.
Si solo se especifica el nombre del archivo, el archivo se comprueba en el directorio
actual.
Consulte ChDisk para conocer detalles.
Nota
Hay una ruta de red disponible.
Valores devueltos
Arroja la cantidad de bytes en el archivo.
También consulte
FileDateTime$, FileExists
Ejemplo de función FileLen
String myPath$
myPath$ = ":\TEST\TEST.DAT"
If FileExists(myPath$) Then
Print "Last access date and time: ", FileDateTime$(myPath$)
Print "Size: ", FileLen(myPath$)
EndIf
236
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Find
Especifica o muestra la condición para almacenar las coordenadas durante el movimiento.
Sintaxis
Find [condition]
Parámetros
condition Ingrese el estado especificado como disparador
[Event] operador comparativo ( =, <>, >=, >, <, <=) [Expresión entera]
Se pueden usar las siguientes funciones y variables en Event:
Funciones : Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW, Ctr
GetRobotInsideBox, GetRobotInsidePlane, AIO_In, AIO_InW,
AIO_Out, AIO_OutW
Variables : Byte, Inr32, Integer, Long, Short, UByte, UInt32, UShort global
preserve variable, Global variable, module variable
También, puede especificar múltiples condiciones de suceso si usa los siguientes
operadores.
Operador : And, Or, Xor
Ejemplo : Trap 1, Sw(5) = On
Trap 1, Sw(5) = On And Till(6) = Off
Descripción
La instrucción Find puede usarse por sí sola o como modificador de un comando de movimiento.
La condición Find debe incluir como mínimo una de las funciones anteriores.
Cuando las variables están incluidas en la condición Find, sus valores se calculan cuando se configura la
condición Find. Se recomienda no usar variables. De lo contrario, la condición puede ser una condición no
intencional. Se permiten múltiples instrucciones Find. La condición Find más reciente es la que será la
actual.
Cuando los parámetros se omiten, se muestra la definición actual de Find.
Notas
Configuración de Find al encenderse la alimentación principal
Al encenderse, la condición Find es:
Find Sw(0) = On 'Input bit 0 is on
Uso de la función PosFound para verificar Find
Use la función PosFound para verificar si se cumplió la condición Find después de ejecutar un comando de
movimiento mediante un modificador Find.
Uso de variables en la expresión de la condición del suceso
- Las variables disponibles son del tipo de número entero (Byte, Int32, Integer, Long, Short, UByte, UInt32,
UShort)
- Las variables de matriz no están disponibles
- Las variables locales no están disponibles
- Si el valor de una variable no puede cumplir la condición del suceso por más de 0,01 segundos, el sistema
no puede recuperar el cambio en las variables.
- Hasta 64 pueden esperar a las variables en un sistema (incluidas las que se usan en las expresiones de la
condición del suceso, como Wait). Si es superior a 64, ocurre un error durante la compilación del
proyecto.
- Si trata de trasladar una variable que espera variables como referencia con Byref, ocurrirá un error.
Manual de referencia del lenguaje SPEL+ Rev.2
237
Manual de referencia del lenguaje SPEL+
- Cuando se incluye una variable en el miembro del lado derecho de la expresión de la condición del suceso,
el valor se calcula al iniciar el comando de movimiento. Recomendamos no usar variables en una
expresión entera para evitar crear condiciones no intencionales.
También consulte
FindPos, Go, Jump, PosFound
Ejemplo de instrucción Find
Find Sw(5) = On
Go P10 Find
If PosFound Then
Go FindPos
Else
Print "Cannot find the sensor signal."
EndIf
238
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función FindPos
Arroja un punto de robot almacenado por Fine durante un comando de movimiento.
Sintaxis
FindPos
Valores devueltos
Un punto de robot que se almacenó durante un comando de movimiento mediante Find.
También consulte
Find, Go, Jump, PosFound, CurPos, InPos
Ejemplo de función FindPos
Find Sw(5) = On
Go P10 Find
If PosFound Then
Go FindPos
Else
Print "Cannot find the sensor signal."
EndIf
Manual de referencia del lenguaje SPEL+ Rev.2
239
Manual de referencia del lenguaje SPEL+
Instrucción Fine
Especifica y muestra la precisión de posicionamiento de los puntos objetivo.
Sintaxis
(1) Fine axis1, axis2, axis3, axis4, [axis5, axis6], [axis7], [axis8, axis9]
(2) Fine
Parámetros
axis1 Expresiones enteras que van desde (0 a 65535), que representan el error de posicionamiento
permisible para la 1ª articulación.
axis2 Expresiones enteras que van desde (0 a 65535), que representan el error de posicionamiento
permisible para la 2ª articulación.
axis3 Expresiones enteras que van desde (0 a 65535), que representan el error de posicionamiento
permisible para la 3ª articulación.
axis4 Expresiones enteras que van desde (0 a 65535), que representan el error de posicionamiento
permisible para la 4ª articulación.
axis5 Opcional. Expresiones enteras que van desde (0 a 65535), que representan el error de
posicionamiento permisible para la 5ª articulación. Solo para robots de 6 ejes (incluida la
serie N).
axis6 Opcional. Expresiones enteras que van desde (0 a 65535), que representan el error de
posicionamiento permisible para la 6ª articulación. Solo para robots de 6 ejes (incluida la
serie N).
axis 7 Opcional. Expresiones enteras que van desde (0 a 65535), que representan el error de
posicionamiento permisible para la 7ª articulación. Solo para el robot de 7 ejes de tipo con
articulaciones.
axis 8 Opcional. Expresiones enteras que van desde (0 a 65535), que representan el error de
posicionamiento permisible para la 7ª articulación. Solo para el eje S adicional.
axis 9 Opcional. Expresiones enteras que van desde (0 a 65535), que representan el error de
posicionamiento permisible para la 7ª articulación. Solo para el eje T adicional.
* Para los manipuladores de la serie C8, el error de posicionamiento permisible es de 0 a 131070.
Valores devueltos
Cuando se usa sin parámetros, Fine muestra los valores actuales de fine para cada eje.
Descripción
Fine especifica, para cada articulación, el error de posicionamiento permisible para detectar la finalización
de cualquier movimiento determinado.
Esta comprobación de finalización del posicionamiento comienza después de que la CPU ha completado el
envío del pulso de posición objetivo al servosistema. Debido al retardo servo, el robot no habrá alcanzado
aún la posición objetivo. Esta comprobación sigue ejecutándose cada ciertos milisegundos hasta que cada
articulación haya llegado dentro de la configuración de rango especificada. El posicionamiento se
considera finalizado cuando todos los ejes han llegado a los rangos especificados. Cuando ha finalizado el
posicionamiento, el control del programa pasa a la siguiente instrucción, no obstante, el servosistema
mantiene el control de la posición objetivo del robot.
Cuando se usan rangos relativamente grandes con la instrucción Fine, el posicionamiento se confirmará de
forma relativamente temprana en el movimiento, y ejecuta la siguiente instrucción.
Los ajustes Fine predeterminados dependen del tipo de robot. Consulte su manual del robot para conocer
detalles.
240
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Notas
Tiempos de ciclo y la instrucción Fine
El valor Fine no afecta el control de aceleración o desaceleración del brazo del manipulador. Sin embargo,
valores Fine menores pueden provocar que el sistema funcione más lento porque puede al servosistema
puede tomarle más tiempo (algunos milisegundos) ubicarse en el rango de posición aceptable. Una vez que
el brazo está ubicado dentro del rango de posición aceptable (definido por la instrucción Fine), la CPU
ejecuta la siguiente instrucción del usuario.
Inicialización de Fine (por Motor On, SLock, SFree)
Cuando se usa cualquiera de los siguientes comandos, el valor Fine se inicializará en el valor
predeterminado:
Instrucciones SLock, SFree, Motor.
Asegúrese de restablecer los valores Fine después de ejecutar uno de los comandos anteriores.
Posible error
Si no ha finalizado el posicionamiento de Fine en alrededor de 2 segundos, ocurrirá el Error 4024. Este
error normalmente significa que se debe ajustar el balance del servosistema. (Llame a su distribuidor para
obtener asistencia).
También consulte
Accel, AccelR, AccelS, Arc, Go, Jump, Move, Speed, SpeedR, SpeedS, Pulse, FineDist,
FineStatus
Ejemplo de instrucción Fine
Los siguientes ejemplos muestran la instrucción Fine usada en una función del programa y desde la ventana
del monitor.
Function finetest
Fine 5, 5, 5, 5 'reduce la precisión a +/- 5 Pulso
Go P1
Go P2
Fend
> Fine 10, 10, 10, 10
>
> Fine
10, 10, 10, 10
Manual de referencia del lenguaje SPEL+ Rev.2
241
Manual de referencia del lenguaje SPEL+
Función Fine
Arroja la configuración de Fine para una articulación especificada.
Sintaxis
Fine(joint)
Parámetros
joint Expresión entera que representa el número de articulación cuya configuración de Fine se
recuperará.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor real.
También consulte
Accel, AccelS, Arc, Go, Jump, Move, Speed, SpeedS, Pulse
Ejemplo de función Fine
Este ejemplo usa la función Fine en un programa:
Function finetst
Integer a
a = Fine(1)
Fend
242
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción FineDist
Especifica y muestra los límites de error de posicionamiento. La unidad del valor de configuración es
“mm”.
Sintaxis
(1) FineDist value
(2) FineDist
Parámetros
value Lo valores permitidos de posicionamiento van de 0,001 [mm] a 10 [mm].
Valores devueltos
Si el parámetro no se especifica, FineDist muestra el valor actual configurado.
Fine y FineDist
La diferencia entre Fine y FineDist es la unidad de la comprobación del posicionamiento.
La instrucción Fine configura el valor de comprobación del posicionamiento en el pulso, y se realiza la
comprobación del posicionamiento en cada eje.
La instrucción Fine configura el valor de comprobación del posicionamiento en mm, y se realiza la
comprobación del posicionamiento en el sistema de coordenadas de la Herramienta número 0.
Fine y FineDist se pueden usar al mismo tiempo. Si Fine y FineDist se usan en el programa como se
muestra a continuación, la comprobación del posicionamiento la realizará FineDist. (Si se invierte el orden
de Fine y FineDist, Fine ejecutará la comprobación de posicionamiento).
Function test
Fine 5, 5, 5, 5
FineDist 0.1
Fend
Go P1
Go P2
Manual de referencia del lenguaje SPEL+ Rev.2
243
Manual de referencia del lenguaje SPEL+
Nota
Inicialización de Fine (por Motor On, SLock, SFree)
Cuando se usa cualquiera de los siguientes comandos, el valor FineDist se inicializará en el valor
predeterminado y Fine ejecutará la comprobación del posicionamiento:
Instrucciones SLock, SFree, Motor.
Asegúrese de restablecer el valor FineDist después de ejecutar uno de los comandos anteriores.
Posible error
Si el posicionamiento de FineDist no finaliza en alrededor de 2 segundos, ocurrirá el Error 4024. Este error
normalmente significa que se debe ajustar el balance del servosistema.
También consulte
Accel, AccelR, AccelS, Arc, Go, Jump, Move, Speed, SpeedR, SpeedS, Pulse, Fine, FineStatus
Ejemplo de instrucción FineDist
El siguiente ejemplo muestra la instrucción FineDist usada en una función del programa y desde la ventana
del monitor.
Function fineDisttest
Fine 0.1 'Set precision to +/- 0.1 mm
Go P1
Go P2
Fend
> FineDist 0.1
>
> FineDist
0.1
244
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función FineStatus
Arroja si Fine o FineDist son usadas por un número entero.
Sintaxis
FineStatus
Valores devueltos
Arroja si se usa Fine o no o si FineDist es usada por un número entero.
1 = Fine is used
2 = FineDist is used
También consulte
Fine, FineDist
Ejemplo de función FineStatus
Print FineStatus
Manual de referencia del lenguaje SPEL+ Rev.2
245
Manual de referencia del lenguaje SPEL+
Función Fix
Arroja la parte de número entero de un número real.
Sintaxis
Fix(number)
Parámetros
number Expresión real que contiene el número que se debe corregir.
Valores devueltos
Un valor entero que contiene la parte de número entero del número real.
También consulte
Int
Ejemplo de función Fix
>print Fix(1.123)
1
>
246
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Flush
Escribe el búfer de un archivo en el archivo.
Sintaxis
Flush #fileNumber
Parámetros
#fileNumber Valor entero de 30 a 63 o una expresión
Descripción
Escribe el búfer de un archivo en el archivo especificado.
No se puede usar Flush si el archivo se abrió con ROpen.
Ejemplo de instrucción Flush
Integer fileNum, i
fileNum = FreeFile
UOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Flush #fileNum
Close #fileNum
Manual de referencia del lenguaje SPEL+ Rev.2
247
Manual de referencia del lenguaje SPEL+
Instrucción FmtStr
Aplica un formato a una expresión numérica o de fecha/hora.
Sintaxis
FmtStr expFormat, strFormat, stringVar
Parámetros
expression Expresión numérica o de fecha/hora a la que se aplicará formato.
Especifique la expresión de fecha/hora en yyyy/mm/dd.
strFormat Cadena de especificación de formato.
stringVar Variable de cadena de salida.
Descripción
Arroja la cadena con formato de acuerdo con strFormat.
Especificadores de formato numérico
Carácter Descripción
Ninguno Muestra el número sin formato.
(0) Marcador de posición de dígito. Muestra un dígito o un cero. Si la expresión tiene un dígito
en la posición en la que aparece "0" en la cadena de formato, lo muestra; de lo contrario,
muestra un cero en esa posición. Si el número tiene menos dígitos que ceros (en cualquier
lado del decimal) en la expresión de formato, muestra el primer o último "0". Si el número
tiene más dígitos a la derecha del separador de decimales que ceros a la derecha del separador
de decimales en la expresión del formato, redondea el número a tantos puestos decimales
como hay ceros. Si el número tiene más dígitos a la izquierda del separador de decimales que
ceros a la izquierda del separador de decimales en la expresión del formato, muestra los
dígitos adicionales sin modificarlos.
(#) Marcador de posición de dígito. Muestra un dígito o nada. Si la expresión tiene un dígito en la
posición en la que aparece "#" en la cadena de formato, lo muestra; de lo contrario, no
muestra nada en esa posición. Este símbolo funciona como el marcador de posición del
dígito 0, excepto que el primer y último cero no se muestran si el número tiene la misma
cantidad de dígitos, o menos, que caracteres "#" en cada lado del separador decimal en la
expresión de formato.
(.) Marcador de posición decimal. En algunas localidades, se usa una coma como separador
decimal. El marcador de posición decimal determina la cantidad de dígitos que se muestra a
la izquierda y a la derecha del separador decimal. Si la expresión del formato solo contiene
signos numéricos a la izquierda de este símbolo, los números menores a 1 comienzan con un
separador decimal. Para mostrar un cero al principio que se representa con fracciones, use "0"
como el marcador de posición del primer dígito a la izquierda del separador decimal. El
carácter real utilizado como marcador de posición decimal en la salida con formato depende
del formato de número reconocido por su sistema.
(,) Separador de miles. En algunas localidades, se usa un punto como separador de miles. El
separador de miles separa los miles de las centenas dentro de un número que tiene cuatro o
más espacios a la izquierda del separador decimal. El uso del separador de miles se especifica
si el formato contiene un separador de miles rodeado por marcadores de posición de dígito (0
o #). Dos separadores de miles adyacentes o un separador de miles inmediatamente a la
izquierda del separador decimal (sin importar si se especifica un decimal) significa "dividir el
número por 1000 para escalarlo, redondearlo de ser necesario". Por ejemplo, puede usar la
cadena de formato "##0,," para representar 100 millones como "100". Los números menores a
1 millón se muestran como "0". Si hay dos separadores de miles adyacentes en cualquier
posición que no sea inmediatamente a la izquierda del separador decimal, simplemente se
considera que especifica el uso del separador de miles. El carácter real utilizado como
separador de miles en la salida con formato depende el formato de número reconocido por su
sistema.
248
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Especificadores de expresión de fecha/hora
Carácter Descripción
(:) Separador de hora. En algunas localidades, es posible que se usen otros caracteres. El
separador de hora separa horas, minutos y segundos cuando se aplica el formato a los
valores de tiempo. El carácter real utilizado como separador de horas en la salida con
formato depende de la configuración de Windows.
(/) Separador de fecha. En algunas localidades, es posible que se usen otros caracteres. El
separador de fecha separa el día, el mes y el año cuando se aplica el formato a los valores
de fecha. El carácter real utilizado como separador de fecha en la salida con formato
depende de la configuración de Windows.
c Muestra la fecha en "ddddd" y la hora en "ttttt", en ese orden. Si el número de serie no
tiene una fracción, solo muestra la fecha. Si la información de temporización no tiene el
número entero, solo muestra la información de temporización.
d Muestra la fecha con el día primero sin "0". (1 a 31)
dd Muestra la fecha con el día primero con "0". (01 a 31)
ddd Muestra la abreviatura del día de la semana. (Dom a sáb)
dddd Muestra el día de la semana sin abreviar. (Domingo a sábado)
ddddd Muestra el día, el mes y el año en el formato de la configuración corta de datos de
Windows. La configuración predeterminada del formato de visualización corta de datos
es m/d/aa.
dddddd Muestra los valores de serie de la fecha como día, mes y año en la configuración de
visualización larga de datos de Windows. La configuración predeterminada de la
visualización larga de datos es mmmm dd, aaaa.
w Muestra el día de la semana con un número. (1: Domingo ~ 7: Sábado)
ww Muestra la cantidad de semanas en un año con un número (1 a 54).
m Muestra el mes con el primer día sin un "0". (1 a 12)
Incluso si este carácter se coloca inmediatamente después de "h" o "hh", no muestra
"minutos". Para mostrar "minutos", use "n" o "nn".
mm Muestra el mes con el primer día con "0" (01 a 12).
Incluso si este carácter se coloca inmediatamente después de "h" o "hh", no muestra
"minutos". Para mostrar "minutos", use "n" o "nn".
mmm Muestra el nombre del mes abreviado (Ene a dic)
mmmm Muestra el nombre del mes sin abreviar (Enero a diciembre).
q Muestra la cantidad de trimestres en un año (1 a 4).
y Muestra el día de un año. (1 a 366)
yy Muestra el año en 2 dígitos. (00 a 99)
yyy Muestra el año en 4 dígitos. (100 a 9999)
h Muestra la hora en un reloj de 24 horas sin "0" al principio. (0 a 23)
hh Muestra la hora en un reloj de 24 horas con "0" al principio. (00 a 23)
n Muestra el minuto sin "0" al principio. (0 a 59)
nn Muestra el minuto con "0" al principio. (00 a 59)
s Muestra el segundo sin "0" al principio. (0 a 59)
ss Muestra el segundo con "0" al principio. (00 a 59)
t t t t t Muestra el tiempo (hora, minuto, segundo) con el separador de tiempo de la configuración
de Windows. Si se usa la opción "initial zero", el tiempo antes de las 10:00 am/pm se
muestra con "0" al principio. El formato de hora predeterminado de Windows es h:nn:ss.
AM/PM Muestra la hora en un reloj de 12 horas y la mañana y tarde con AM/PM (mayúsculas).
am/pm Muestra la hora en un reloj de 12 horas y la mañana y tarde con am/pm (minúsculas).
A/P Muestra la hora en un reloj de 12 horas y la mañana y tarde con A/P (mayúsculas).
a/p Muestra la hora en un reloj de 12 horas y la mañana y tarde con a/p (minúsculas).
Manual de referencia del lenguaje SPEL+ Rev.2
249
Manual de referencia del lenguaje SPEL+
AMPM Muestra la hora en un reloj de 12 horas. Para la mañana, muestra AM con una cadena y
para la tarde, muestra PM con una cadena, cada uno con la configuración de formato de
Windows. Si la cadena especificada coincide con la configuración de Windows, es
posible usar mayúsculas y minúsculas para AM/PM. La configuración predeterminada de
Windows es AM/PM.
Nota
Una combinación de especificadores de formato numérico y especificadores de hora/fecha
Ocurre un error si se especifican el especificador de formato numérico y el especificador de
hora/fecha.
También consulte
Left$, Right$, Str$
Ejemplo de instrucción FmtStr
Function SaveData
String d$, f$, t$
' Crea el nombre del archivo con el formato
' mes, día, hora, minuto
d$ = Date$
t$ = Time$
d$ = d$ + " " + t$
FmtStr d$, "mmddhhnn", f$
f$ = f$ + ".dat"
WOpen f$ as #30
Print #30, "data"
Close #30
Fend
250
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función FmtStr$
Aplica formato a una expresión numérica.
Sintaxis
FmtStr$ (expFormat, strFormat)
Parámetros
expFormat Expresión numérica o de fecha/hora a la que se aplicará formato.
Especifique la expresión de fecha/hora en yyyy/mm/dd.
strFormat Cadena de especificación de formato.
Valores devueltos
Una cadena que contiene la expresión con formato.
Descripción
Use FmtStr$ para dar formato de cadena a una expresión numérica.
Especificadores de formato numérico
Carácter Descripción
Ninguno Muestra el número sin formato.
(0) Marcador de posición de dígito. Muestra un dígito o un cero. Si la expresión tiene un dígito
en la posición en la que aparece "0" en la cadena de formato, lo muestra; de lo contrario,
muestra un cero en esa posición. Si el número tiene menos dígitos que ceros (en cualquier
lado del decimal) en la expresión de formato, muestra el primer o último "0". Si el número
tiene más dígitos a la derecha del separador de decimales que ceros a la derecha del separador
de decimales en la expresión del formato, redondea el número a tantos puestos decimales
como hay ceros. Si el número tiene más dígitos a la izquierda del separador de decimales que
ceros a la izquierda del separador de decimales en la expresión del formato, muestra los
dígitos adicionales sin modificarlos.
(#) Marcador de posición de dígito. Muestra un dígito o nada. Si la expresión tiene un dígito en la
posición en la que aparece "#" en la cadena de formato, lo muestra; de lo contrario, no
muestra nada en esa posición. Este símbolo funciona como el marcador de posición del
dígito 0, excepto que el primer y último cero no se muestran si el número tiene la misma
cantidad de dígitos, o menos, que caracteres "#" en cada lado del separador decimal en la
expresión de formato.
(.) Marcador de posición decimal. En algunas localidades, se usa una coma como separador
decimal. El marcador de posición decimal determina la cantidad de dígitos que se muestra a
la izquierda y a la derecha del separador decimal. Si la expresión del formato solo contiene
signos numéricos a la izquierda de este símbolo, los números menores a 1 comienzan con un
separador decimal. Para mostrar un cero al principio que se representa con fracciones, use "0"
como el marcador de posición del primer dígito a la izquierda del separador decimal. El
carácter real utilizado como marcador de posición decimal en la salida con formato depende
del formato de número reconocido por su sistema.
(,) Separador de miles. En algunas localidades, se usa un punto como separador de miles. El
separador de miles separa los miles de las centenas dentro de un número que tiene cuatro o
más espacios a la izquierda del separador decimal. El uso del separador de miles se especifica
si el formato contiene un separador de miles rodeado por marcadores de posición de dígito (0
o #). Dos separadores de miles adyacentes o un separador de miles inmediatamente a la
izquierda del separador decimal (sin importar si se especifica un decimal) significa "dividir el
número por 1000 para escalarlo, redondearlo de ser necesario". Por ejemplo, puede usar la
cadena de formato "##0,," para representar 100 millones como "100". Los números menores a
1 millón se muestran como "0". Si hay dos separadores de miles adyacentes en cualquier
posición que no sea inmediatamente a la izquierda del separador decimal, simplemente se
considera que especifica el uso del separador de miles. El carácter real utilizado como
separador de miles en la salida con formato depende el formato de número reconocido por su
sistema.
Manual de referencia del lenguaje SPEL+ Rev.2
251
Manual de referencia del lenguaje SPEL+
Especificadores de expresión de fecha/hora
Carácter Descripción
(:) Separador de hora. En algunas localidades, es posible que se usen otros caracteres. El
separador de hora separa horas, minutos y segundos cuando se aplica el formato a los
valores de tiempo. El carácter real utilizado como separador de horas en la salida con
formato depende de la configuración de Windows.
(/) Separador de fecha. En algunas localidades, es posible que se usen otros caracteres. El
separador de fecha separa el día, el mes y el año cuando se aplica el formato a los valores
de fecha. El carácter real utilizado como separador de fecha en la salida con formato
depende de la configuración de Windows.
c Muestra la fecha en "ddddd" y la hora en "ttttt", en ese orden. Si el número de serie no
tiene una fracción, solo muestra la fecha. Si la información de temporización no tiene el
número entero, solo muestra la información de temporización.
d Muestra la fecha con el día primero sin "0". (1 a 31)
dd Muestra la fecha con el día primero con "0". (01 a 31)
ddd Muestra la abreviatura del día de la semana. (Dom a sáb)
dddd Muestra el día de la semana sin abreviar. (Domingo a sábado)
ddddd Muestra el día, el mes y el año en el formato de la configuración corta de datos de
Windows. La configuración predeterminada del formato de visualización corta de datos
es m/d/aa.
dddddd Muestra los valores de serie de la fecha como día, mes y año en la configuración de
visualización larga de datos de Windows. La configuración predeterminada de la
visualización larga de datos es mmmm dd, aaaa.
w Muestra el día de la semana con un número. (1: Domingo ~ 7: Sábado)
ww Muestra la cantidad de semanas en un año con un número (1 a 54).
m Muestra el mes con el primer día sin un "0". (1 a 12)
Incluso si este carácter se coloca inmediatamente después de "h" o "hh", no muestra
"minutos". Para mostrar "minutos", use "n" o "nn".
mm Muestra el mes con el primer día con "0" (01 a 12).
Incluso si este carácter se coloca inmediatamente después de "h" o "hh", no muestra
"minutos". Para mostrar "minutos", use "n" o "nn".
mmm Muestra el nombre del mes abreviado (Ene a dic)
mmmm Muestra el nombre del mes sin abreviar (Enero a diciembre).
q Muestra la cantidad de trimestres en un año (1 a 4).
y Muestra el día de un año. (1 a 366)
yy Muestra el año en 2 dígitos. (00 a 99)
yyy Muestra el año en 4 dígitos. (100 a 9999)
h Muestra la hora en un reloj de 24 horas sin "0" al principio. (0 a 23)
hh Muestra la hora en un reloj de 24 horas con "0" al principio. (00 a 23)
n Muestra el minuto sin "0" al principio. (0 a 59)
nn Muestra el minuto con "0" al principio. (00 a 59)
s Muestra el segundo sin "0" al principio. (0 a 59)
ss Muestra el segundo con "0" al principio. (00 a 59)
t t t t t Muestra el tiempo (hora, minuto, segundo) con el separador de tiempo de la configuración
de Windows. Si se usa la opción "initial zero", el tiempo antes de las 10:00 am/pm se
muestra con "0" al principio. El formato de hora predeterminado de Windows es h:nn:ss.
AM/PM Muestra la hora en un reloj de 12 horas y la mañana y tarde con AM/PM (mayúsculas).
am/pm Muestra la hora en un reloj de 12 horas y la mañana y tarde con am/pm (minúsculas).
A/P Muestra la hora en un reloj de 12 horas y la mañana y tarde con A/P (mayúsculas).
a/p Muestra la hora en un reloj de 12 horas y la mañana y tarde con a/p (minúsculas).
252
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
AMPM Muestra la hora en un reloj de 12 horas. Para la mañana, muestra AM con una cadena y
para la tarde, muestra PM con una cadena, cada uno con la configuración de formato de
Windows. Si la cadena especificada coincide con la configuración de Windows, es
posible usar mayúsculas y minúsculas para AM/PM. La configuración predeterminada de
Windows es AM/PM.
Nota
Una combinación de especificadores de formato numérico y especificadores de hora/fecha
Ocurre un error si se especifican el especificador de formato numérico y el especificador de hora/fecha.
También consulte
Left$, Right$, Str$
Ejemplo de función FmtStr$
Function SendDateCode
String d$, f$
f$ = FmtStr$(10, "000.00")
OpenCom #1
Print #1, f$
CloseCom #1
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
253
Manual de referencia del lenguaje SPEL+
Función FolderExists
Comprueba si existe una carpeta.
Sintaxis
FolderExists(pathName)
Parámetros
pathName Una expresión de cadena que contiene la ruta de la carpeta que se comprobará.
También se pueden incluir la unidad de disco. Consulte ChDisk para conocer
detalles.
Nota
Esta función es ejecutable solo con el disco de la computadora.
Valores devueltos
True si la carpeta existe, False si no es así.
También consulte
FileExists, MkDir
Ejemplo de función FolderExists
If Not FolderExists(":\TEST") Then
MkDir ":\TEST"
EndIf
254
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción For...Next
Las instrucciones For...Next se usan juntas para crear un bucle en que las instrucciones ubicadas
entre For y Next se ejecutan múltiples veces según lo que especifique el usuario.
Sintaxis
For var = initValue To finalValue [Step increment ]
statements
Next [var]
Parámetros
var La variable de recuento usada con el bucle For...Next. Esta variable normalmente se
define como un número entero, pero también se puede definir como una variable
Real.
initValue El valor inicial para la var de contador.
finalValue El valor final para la var de contador. Cuando se cumple este valor, se completa el
bucle For...Next y la ejecución continúa a partir de la instrucción que sigue a la
instrucción Next.
increment Un parámetro opcional que define el incremento de recuento para cada vez que la
instrucción Next se ejecuta dentro del bucle For...Next. Esta variable puede ser
positiva o negativa. Sin embargo, si el valor es negativo, el valor inicial de la
variable debe ser mayor que el valor final de la variable. Si se excluye el valor de
incremento, el sistema automáticamente incrementa en “1”.
statements Se puede insertar cualquier instrucción SPEL
+
válida dentro del bucle For...Next.
Descripción
For...Next ejecuta un conjunto de instrucciones dentro de un bucle una cantidad especificada de veces. El
inicio del bucle es la instrucción For. El final del bucle es la instrucción Next. Se usa una variable para
contar el número de veces que se ejecutan las instrucciones dentro del bucle.
La primera expresión numérica (initValue ) es el valor inicial del contador. Este valor puede ser positivo o
negativo siempre que la variable finalValue y el incremento Step correspondan correctamente.
La segunda expresión numérica (finalValue ) es el valor final del contador. Este es el valor que una vez
alcanzado provoca que termine el bucle For...Next y el control del programa pasa a la siguiente instrucción
a continuación de la instrucción Next.
Las instrucciones del programa después de la instrucción For se ejecutan hasta que se alcanza la instrucción
Next. Luego la variable (var) del contador se incrementa en el valor Step definido por el parámetro
increment. Si no se usa la opción Step, el contador se incrementa en “1 (uno)”.
A continuación la variable (var) del contador se compara con el valor final. Si el contador es menor o igual
que el valor final, se ejecutan nuevamente las instrucciones a continuación de la instrucción For. Si la
variable del contador es mayor que el valor final, la ejecución se bifurca fuera del bucle For...Next y
continúa con la instrucción inmediatamente posterior a la instrucción Next.
Manual de referencia del lenguaje SPEL+ Rev.2
255
Manual de referencia del lenguaje SPEL+
Notas
Valores Step negativos:
Si el valor del incremento Step (increment) es negativo, la variable (var) del contador disminuye (reduce)
cada vez que pasa por el bucle y el valor inicial debe ser mayor que el valor final para que el bucle
funcione.
No se requiere la variable a continuación de Next:
Se puede omitir el nombre de la variable a continuación de la instrucción Next. Sin embargo, para los
programas que contienen bucles anidados For...Next, se recomienda incluir el nombre de la variable a
continuación de la instrucción Next para ayudar a identificar rápidamente los bucles.
Cuando una variable se sale del bucle, el valor no es un valor final.
Function forsample
Integer i
For i = 0 To 3
Next
Print i ' Displays 4
Fend
También consulte
Do...Loop
Ejemplo de instrucción For...Next
Function fornext
Integer counter
For counter = 1 to 10
Go Pctr
Next counter
For counter = 10 to 1 Step -1
Go Pctr
Next counter
Fend
256
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Force_Calibrate
Define cero compensaciones para todos los ejes para el sensor de fuerza actual.
Sintaxis
Force_Calibrate
Parámetros
On | Off El Control de par puede ser On u Off.
Descripción
Debe llamar a Force_Calibrate para cada sensor cuando se inicie su aplicación. Esto tomará en cuenta el
peso de los componentes montados en el sensor.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Force_Sensor
Ejemplo de instrucción Force_Calibrate
Force_Calibrate
Manual de referencia del lenguaje SPEL+ Rev.2
257
Manual de referencia del lenguaje SPEL+
Force_ClearTrigger
Borra todas las condiciones del disparador del sensor de fuerza actual.
Sintaxis
Force_ClearTrigger
Descripción
Use Force_ClearTrigger para borrar todas las condiciones para el disparador del sensor de fuerza actual.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Force_Sensor, Force_SetTrigger
Ejemplo de instrucción Force_ClearTrigger
Force_ClearTrigger
258
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Force_GetForces
Arroja las fuerzas y pares para todos los ejes de sensores de fuerza en una matriz.
Sintaxis
Force_GetForces array()
Parámetros
array() Matriz real con un límite máximo de 6.
Valores devueltos
Los elementos de la matriz se completan como sigue:
Index Axis Constant
1 X Force FORCE_XFORCE
2 Y Force FORCE_YFORCE
3 Z Force FORCE_ZFORCE
4 X Torque FORCE_XTORQUE
5 Y Torque FORCE_YTORQUE
6 Z Tor
q
ue FORCE
_
ZTORQUE
Descripción
Use Force_GetForces para leer todos los valores de fuerza y par de una vez.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Función Force_GetForce
Ejemplo de instrucción Force_GetForces
Real fValues(6)
Force_GetForces fValues()
Manual de referencia del lenguaje SPEL+ Rev.2
259
Manual de referencia del lenguaje SPEL+
Función Force_GetForce
Arroja la fuerza para un eje especificado.
Sintaxis
Force_GetForce (axis)
Parámetros
axis
Expresión entera que
Eje
representa al eje.
Constante
Valor
X Force FORCE_XFORCE 1
Y Force FORCE_YFORCE 2
Z Force FORCE_ZFORCE 3
X Torque FORCE_XTORQUE 4
Y Torque FORCE_YTORQUE 5
Z Torque FORCE_ZTORQUE 6
Valores devueltos
Arroja un valor real.
Descripción
Use Force_GetForce para leer el valor de la fuerza actual para un eje. Las unidades se determinan según el
tipo de sensor de fuerza.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Force_GetForces
Ejemplo de función Force_GetForce
Print Force_GetForce(1)
260
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Force_Sensor
Define el sensor de fuerza actual para la tarea actual.
Sintaxis
Force_Sensor sensorNumber
Parámetros
sensorNumber Expresión entera que representa el número del sensor.
Descripción
Cuando se usan varios sensores de fuerza en el mismo sistema, debe establecer el sensor de fuerza actual
antes de usar otros comandos de detección de fuerza.
Si su sistema tiene solo un sensor, no es necesario que use Force_Sensor porque el número predeterminado
del sensor es 1.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Función Force_Sensor
Ejemplo de instrucción Force_Sensor
Force_Sensor 1
Manual de referencia del lenguaje SPEL+ Rev.2
261
Manual de referencia del lenguaje SPEL+
Función Force_Sensor
Arroja el sensor de fuerza actual para la tarea actual.
Sintaxis
Force_Sensor
Descripción
Force_Sensor arroja el sensor actual para la tarea actual. Cuando se inicia una tarea, el número del sensor
se configura automáticamente en 1.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Force_Sensor
Ejemplo de función Force_Sensor
var = Force_Sensor
262
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Force_SetTrigger
Define el disparador de fuerza para el comando Till.
Sintaxis
Force_SetTrigger axis, Threshold, CompareType
Parámetros
axis Expresión entera que contiene el eje del sensor de fuerza deseado.
Eje Constante Valor
X Force FORCE_XFORCE 1
Y Force FORCE_YFORCE 2
Z Force FORCE_ZFORCE 3
X Torque FORCE_XTORQUE 4
Y Torque FORCE_YTORQUE 5
Z Tor
q
ue FORCE
_
ZTORQUE 6
Threshold Expresión real que contiene el umbral deseado en las unidades para el sensor que se
utiliza.
CompareType Comparación Constante Valo
r
Menor o igual que FORCE_LESS 0
Mayor o igual que FORCE_GREATER 1
Descripción
Para detener el movimiento con un sensor de fuerza, debe definir el disparador para el sensor, luego usar
Till Force en la instrucción de movimiento.
Puede definir el disparador con varios ejes. Llame a Force_SetTrigger para cada eje. Para desactivar un
eje, defina el umbral en 0.
Nota
Este comando solo funcionará si la opción Force Sensing está activada.
También consulte
Force_Calibrate
Ejemplo de instrucción Force_SetTrigger
'Configure al disparador para que detenga el movimiento cuando la fuerza sea menor que 1 en el eje
Z.
Force_SetTrigger 3, -1, 0
SpeedS 3
AccelS 5000
Move Place Till Force
Manual de referencia del lenguaje SPEL+ Rev.2
263
Manual de referencia del lenguaje SPEL+
Función FreeFile
Arroja/reserva un número de archivo que actualmente no está en uso.
Sintaxis
FreeFile
Valores devueltos
Número entero entre 30 y 63.
También consulte
AOpen, BOpen, ROpen, UOpen, WOpen, Close
Ejemplo de función FreeFile
Integer fileNum, i, j
fileNum = FreeFile
WOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Close #fileNum
fileNum = FreeFile
ROpen "TEST.DAT" As #fileNum
For i = 0 to 100
Input #fileNum, j
Print "data = ", j
Next i
Close #fileNum
264
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Function...Fend
Una función es un grupo de instrucciones de programa que incluye una instrucción Function como la
primera instrucción y una instrucción Fend como la última instrucción.
Sintaxis
Function funcName [(argList)] [As type(function)]
statements
Fend
Parámetros
funcName El nombre que se da al grupo específico de instrucciones limitadas entre las
instrucciones Function y Fend. El nombre de la función debe contener caracteres
alfanuméricos y puede tener una longitud de hasta 64 caracteres. También se
permiten las barras bajas.
argList Opcional. Lista de variables que representan argumentos que se transfieren al
procedimiento de Function cuando se lo llama. Múltiples variables se separan con
comas.
El argumento arglist tiene la siguiente sintaxis:
[ {ByRef | ByVal} ] varName [( )] As type(argument)
ByRef Opcional. Especifique ByRef cuando haga referencia a la
variable que será vista por la función que realiza la llamada.
En este caso, el cambio de argumento en una función se
puede reflejar a la variable del lado que llama.
ByVal Opcional. Especifique ByVal cuando no desee que los
cambios en el valor de la variable sean vistos por la función
de llamada. Este es el valor predeterminado.
varName [( )] Obligatorio. Nombre de la variable que representa el
argumento; sigue las convenciones de nomenclatura de
variables estándar. Si usa una variable de matriz como
argumento, debe especificar ByRef y agregar paréntesis
vacíos “()” que representan la matriz después del nombre de
la variable.
As type (argument) Obligatorio. Debe declarar el tipo de argumento.
As type (function) Use este parámetro si desea obtener valores devueltos. Debe declarar el tipo de
valores devueltos.
Valores devueltos
Valor cuyo tipo de datos se especifica como la cláusula As al final de la declaración de función (As
type(function)).
Descripción
La instrucción Function indica el comienzo de un grupo de instrucciones SPEL
+
. Para indicar donde
finaliza una función, usamos la instrucción Fend. Todas las instrucciones ubicadas entre las instrucciones
Function y Fend se consideran parte de la función.
La combinación de instrucciones Function...Fend podría considerarse como un recipiente donde todas las
instrucciones ubicadas entre las instrucciones Function y Fend corresponden a esa función. Pueden existir
múltiples funciones en un archivo de programa.
Si desea usar el valor devuelto, asigne el valor al nombre de la variable que tiene el mismo nombre que la
función y luego termine la función.
También consulte
Call, Fend, Halt, Quit, Return, Xqt
Manual de referencia del lenguaje SPEL+ Rev.2
265
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Function...Fend
<Ejemplo 1>
El siguiente ejemplo muestra 3 funciones que están dentro de un único archivo. Las funciones llamadas
task2 y task3 se ejecutan como tareas en segundo plano mientras que la tarea principal llamada main se
ejecuta en primer plano.
Function main
Xqt 2, task2 'Ejecuta task2 en segundo plano
Xqt 3, task3 'Ejecuta task3 en segundo plano
'....más instrucciones aquí
Fend
Function task2
Do
On 1
On 2
Off 1
Off 2
Loop
Fend
Function task3
Do
On 10
Wait 1
Off 10
Loop
Fend
<Ejemplo 2>
En el siguiente ejemplo, la secuencia del control de presión para los periféricos se proporciona como un
argumento y el resultado enviado al dispositivo externo se muestra como un valor devuelto.
Function main
Integer iResult
Real Sequence1(200)
.
.
iResult = PressureControl(ByRef Sequence1()) 'El argumento es una
matriz
.
Print "Result:", iResult
.
Fend
Function PressureControl(ByRef Array1() As Real) As Integer
.
(Presión de control para los periféricos de acuerdo con Array1)
.
PressureControl = 3 'Valor devuelto
.
.
Fend
266
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función GetCurrentUser$
Arroja el usuario actual de EPSON RC+.
Sintaxis
GetCurrentUser$
Valores devueltos
Cadena que contiene la logID del usuario actual.
Nota
Este comando solo funcionará si la opción Security está activada.
También consulte
Instrucción LogIn
Ejemplo de función GetCurrentUser$
String currUser$
currUser$ = GetCurrentUser$
Manual de referencia del lenguaje SPEL+ Rev.2
267
Manual de referencia del lenguaje SPEL+
Función GetRobotInsideBox
Arroja un robot que está en el área de comprobación de acercamiento.
Sintaxis
GetRobotInsideBox(AreaNum)
Parámetros
AreaNum Valor de número entero (1 a 15) que representa el área de comprobación de
acercamiento cuyo estado desea que se arroje.
Valores devueltos
Arroja el robot que está en el área de comprobación de acercamiento especificada con AreaNum en bit.
Bit 0 : Robot 1 ……… Bit 15 : Robot 16
Si el robot no configura el área de comprobación de acercamiento, bit siempre es 0.
Por ejemplo, Robot 1, Robot 3 están en el área de comprobación de acercamiento, bit 0, bit 2 será On y se
arrojará 5.
También consulte
Box, InsideBox
Ejemplo de función GetRobotInsideBox
El siguiente programa usa la función GetRobotInsideBox.
Espere a que el estado sea que no hay robots en el área de comprobación de acercamiento.
Function WaitNoBox
Wait GetRobotInsideBox(1) = 0
Espere a que el estado sea que solo el Robot 2 está en el área de comprobación de acercamiento.
Function WaitInBoxRobot2
Wait GetRobotInsideBox(1) = &H2
El siguiente programa usa la función GetRobotInsideBox en el procesamiento paralelo del comando de
movimiento. Cuando un robot esté en el área de comprobación de acercamiento específica mientras está
ejecutándose, activa la E/S. En este caso, hay robot conectado al controlador.
Function Main
Motor On
Power High
Speed 30; Accel 30, 30
Go P1 !D0; Wait GetRobotInsideBox(1) = 1; On 1!
Fend
Nota
Se debe describir D0.
268
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función GetRobotInsidePlane
Arroja un robot que está en el plano de comprobación de acercamiento.
Sintaxis
GetRobotInsidePlane ( PlaneNum )
Parámetros
PlaneNum Valor de número entero (1 a 15) que representa el plano de comprobación de
acercamiento cuyo estado desea que se arroje.
Valores devueltos
Arroja el número del robot que está en el plano de comprobación de acercamiento especificado con
PlaneNum en bit.
Bit 0 : Robot 1 ……… Bit 15 : Robot 16
Si el robot no configura el plano de comprobación de acercamiento, siempre arroja un bit de 0.
Por ejemplo, Robot 1, Robot 3 están en el plano de comprobación de acercamiento, bit 0, bit 2 será On y se
arrojará 5.
También consulte
InsidePlane, Plane
Ejemplo de función GetRobotInsidePlane
El siguiente programa usa la función GetRobotInsidePlane.
Espere a que el estado sea que no hay robots en el plano de comprobación de acercamiento.
Function WaitNoPlane
Wait GetRobotInsidePlane(1) = 0
Espere a que el estado sea que solo el Robot 2 está en el plano de comprobación de acercamiento.
Function WaitInPlaneRobot2
Wait GetRobotInsidePlane(1) = &H2
El siguiente programa usa la función GetRobotInsidePlane en el procesamiento paralelo del comando de
movimiento. Cuando un robot está en el plano de comprobación de acercamiento específico mientras está
ejecutándose, activa la E/S. En este caso, hay robot conectado al controlador.
Function Main
Motor On
Power High
Speed 30; Accel 30, 30
Go P1 !D0; Wait GetRobotInsidePlane(1) = 1; On 1!
Fend
Nota
Se debe describir D0.
Manual de referencia del lenguaje SPEL+ Rev.2
269
Manual de referencia del lenguaje SPEL+
Instrucción Global
Declara variables con alcance global. Se puede acceder a las variables globales desde cualquier lugar.
Sintaxis
Global [ Preserve ] dataType varName [(subscripts)] [, varName [(subscripts)] , ...]
Parámetros
Preserve Si se especifica Preserve, la variable conserva sus valores. Los valores son borrados
por los cambios del proyecto. Si se omite Preserve, la variable no conserva sus
valores.
dataType Tipo de datos que incluye Boolean, Byte, Double, Int32, Integer, Long, Real, Short,
String, UByte, UInt32 o UShort.
varName Nombre de variable. Los nombres pueden tener hasta 32 caracteres de longitud.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 hasta el valor de
límite máximo.
La cantidad total de elementos de matriz disponibles para las variables globales es de
10000 para las cadenas y 100000 para todos los otros tipos.
La cantidad total de elementos de matriz disponibles para las variables globales
conservadas es de 400 para las cadenas y 4000 para todos los otros tipos.
Para calcular el total de elementos utilizado en una matriz, use la siguiente fórmula.
(Si no se usa una dimensión, substituya 0 por el valor ubound)
elementos totales = (ubound1 + 1) * (ubound2 + 1) * (ubound3 + 1)
Descripción
Las variables globales son variables que se pueden usar en más de 1 archivo dentro del mismo proyecto.
Se borran cada vez que se inicia una función desde la ventana Run o la ventana Operator a menos que se
declaren con la opción Preserve.
Cuando se declara en la opción Preserve, la variable conserva el valor al desactivar el controlador.
Las variables Global Preserve se pueden usar con la opción RC+ Connectivity.
Se recomienda que los nombres de las variables globales comiencen con un prefijo "g_" para reconocer
fácilmente dichas variables en un programa. Por ejemplo:
Global Long g_PartsCount
También consulte
Boolean, Byte, Double, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32, UInt64,
UShort
270
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Global
El siguiente ejemplo muestra 2 archivos de programa separados. El primer archivo de programa define
algunas variables globales y las inicializa. El segundo archivo a continuación también usa estas variables
globales.
FILE1 (MAIN.PRG)
Global Integer g_Status
Global Real g_MaxValue
Function Main
g_Status = 10
g_MaxValue = 1.1
.
.
Fend
FILE2 (TEST.PRG)
Function Test
Print "status1 = , g_Status
Print "MaxValue = , g_MaxValue
.
.
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
271
Manual de referencia del lenguaje SPEL+
Instrucción Go
Mueve el brazo usando un movimiento de punto a punto desde la posición actual hasta el punto
especificado o la posición X, Y, Z, U, V, W. La instrucción Go puede mover cualquier combinación de
articulaciones de 1 a 6 al mismo tiempo.
Sintaxis
Go destination [CP] [LJM [orientationFlag]] [PerformMode modeNumber]
[searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
CP Opcional. Especifica un movimiento de ruta continua.
LJM Opcional. Convierte el destino objetivo con la función LJM.
orientationFlag Opcional. Especifica un parámetro que selecciona un indicador de orientación para la
función LJM.
PerformMode Opcional. Especifique el modo de rendimiento del robot.
modeNumber Especifica el modo de operación asignado a PerformMode con un valor de número
entero (1 a 3) o con la siguiente constante. Si se especifica PerformMode, no se puede
omitir este parámetro.
Constante Valor Descripción
Mode_Standard 1
Define el modo estándar
Mode_High_Speed 2
Define el modo de alta velocidad
Mode_Low_Oscillation 3 Define el modo de baja oscilación
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para ejecutar
E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se ejecute
SyncRobots.
Descripción
Go mueve de forma simultánea todas las articulaciones del brazo del robot mediante movimiento de punto
a punto. El destino para la instrucción Go puede definirse de diversas formas:
- Mediante el uso de un punto específico hacia el cual moverse. Por ejemplo: Go P1.
- Mediante el uso de una posición de coordenadas explícita hacia la cual moverse. Por ejemplo: Go
XY(50, 400, 0, 0).
- Mediante el uso de un punto con una compensación de coordenadas. Por ejemplo: Go P1 +X(50).
- Mediante el uso de un punto pero con un valor de coordenadas diferente. Por ejemplo: Go P1
:X(50).
La ruta no es predecible porque cada articulación se interpola entre el punto actual y el punto objetivo.
Tenga cuidado con la interferencia con los periféricos.
La instrucción Speed determina la velocidad del brazo para el movimiento iniciado por la instrucción Go.
La instrucción Accel define la aceleración.
Con el parámetro CP, el brazo puede acelerar para el siguiente comando de movimiento mientras que el
brazo comienza a desacelerar hasta detenerse. En este caso, el brazo no se posiciona en el punto objetivo.
272
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Con el parámetro LJM, el brazo se mueve al punto en el que el punto objetivo se convierte mediante una
función LJM, con el punto actual como punto de referencia.
Go LJM (P1, Here, 1) puede ser Go P1 LJM 1.
En este punto, los datos del punto original P1 no cambian.
El parámetro LJM está disponible para los robots de 6 ejes (incluida la serie N) y los robots de la serie RS.
Cuando use orientationFlag con el valor predeterminado, se puede omitir.
Go P1 LJM
Los modos de movimiento de desaceleración y movimiento de aceleración se pueden combinar cuando se
define PerformMode mientras el movimiento de ruta está activado. Algunas combinaciones no están
disponibles según los modos de operación. Para conocer detalles, consulte Instrucción PerformMode.
Notas
Diferencia entre Go y Move
La instrucción Move y la instrucción Go ambas provocan que el brazo del robottico se mueva. Sin
embargo, la diferencia principal entre las 2 instrucciones es que la instrucción Go genera un movimiento de
punto a punto, mientras que la instrucción provoca que el brazo se mueva en línea recta. La instrucción Go
se usa cuando al usuario le interesa principalmente la orientación del brazo cuando llega al punto. La
instrucción Move se usa cuando es importante controlar la ruta del brazo del robot mientras se mueve.
Diferencia entre Go y Jump
La instrucción Jump y la instrucción Go ambas provocan que el brazo del robot se mueva de un punto a
otro punto. Sin embargo, la instrucción JUMP tiene una característica adicional. Jump genera que el efector
final del robot se mueva primero hacia arriba al valor LimZ, luego en dirección horizontal hasta estar sobre
el punto objetivo, para luego finalmente bajar al punto objetivo. Esto permite que Jump se use para
garantizar esquivar objetos y lo que es más importante, mejorar los tiempos de ciclo para los movimientos
de recoger y colocar.
Instrucciones apropiadas Speed y Acceleration con Go
Las instrucciones Speed y Accel se usan para especificar la velocidad y aceleración del manipulador
durante el movimiento causado por la instrucción Go. Preste suma atención al hecho de que las
instrucciones Speed y Accel se aplican a movimiento del tipo de punto a punto (como el de la instrucción
Go) mientras que el movimiento de interpolación lineal y circular usa las instrucciones SpeedS y AccelS.
Usar Go con el modificador opcional Till
El modificador opcional Till permite al usuario especificar una condición para hacer que el robot desacelere
hasta detenerse en una posición intermedia antes de completar el movimiento causado por la instrucción
Go. Si la condición Till no se cumple, el robot se desplaza hacia la posición objetivo. Go con el
modificador Till se puede usar de 2 formas como se describe a continuación:
(1) Go con el modificador Till
Comprueba si la condición Till actual se llega a cumplir. Si se cumple, este comando se completa
al desacelerar y detener el robot en una posición intermedia antes de completar el movimiento
causado por la instrucción Go.
(2) Go con el modificador Till, el modificador Sw(Input bit number) y la condición Input
Esta versión de Go con el modificador Till permite al usuario especificar la condición Till en la
misma línea con la instrucción Go en lugar de usar la definición actual anteriormente definida
para Till. La condición especificada es simplemente una comprobación contra una de las entradas.
Esto se logra mediante la instrucción Sw. El usuario puede comprobar si la entrada está activada o
desactivada y causar que el brazo se detenga según la condición especificada. Esta característica
actúa casi como un bloqueo en que el movimiento se interrumpe (detiene) una vez que se cumple
la condición Input. Si la condición input nunca se cumple durante el movimiento del robot, el
brazo logra llegar al punto especificado por destination.
Usar Go con el modificador opcional Find
El modificador opcional Find permite al usuario especificar una condición para hacer que el robot registre
una posición durante el movimiento causado por la instrucción Go. Go con el modificador Find se puede
usar de 2 formas como se describe a continuación:
Manual de referencia del lenguaje SPEL+ Rev.2
273
Manual de referencia del lenguaje SPEL+
(1) Go con el modificador Find:
Comprueba si la condición Find actual se llega a cumplir. Si se cumple, la posición actual se
almacena en el punto especial FindPos.
(2) Go con el modificador Find, el modificador Sw(Input bit number) y la condición Input:
Esta versión de Go con el modificador Find permite al usuario especificar la condición Find en la
misma línea con la instrucción Go en lugar de usar la definición actual anteriormente definida
para Find. La condición especificada es simplemente una comprobación contra una de las
entradas. Esto se logra mediante la instrucción Sw. El usuario puede comprobar si la entrada está
activada o desactivada y causar que la posición actual se almacene en el punto especial FindPos.
La instrucción Go siempre desacelera hasta detenerse
La instrucción Go siempre causa que el brazo se desacelere hasta detenerse antes de llegar al destino final
del movimiento.
Posible error
Intento de movimiento fuera del envolvente de trabajo de los robots
Cuando se usen coordenadas explícitas con la instrucción Go, debe asegurarse de que las coordenadas
definidas estén dentro del envolvente de trabajo válido de los robots. Cualquier intento de mover el robot
fuera del envolvente de trabajo válido ocasionará un error.
También consulte
!...! Parallel Processing, Accel, Find, Jump, Move, Pass, P#= (Point Assignment), PerformMode,
Pulse, Speed, Sw, Till
Ejemplo de Go
El ejemplo a continuación muestra un movimiento simple de punto a punto entre los puntos P0 y P10.
Luego, en el programa, el brazo se mueve en línea recta hacia el punto P2 hasta que se activa la entrada n.°
2. Si la entrada 2 se activa durante Go, el brazo se desacelera hasta detenerse antes de llegar al punto P2 y
se ejecuta la siguiente instrucción del programa.
Ejemplo de función
Integer i
Home
Go P0
Go P1
For i = 1 to 10
Go P(i)
Next i
Go P2 Till Sw(2) = On
If Sw(2) = On Then
Print "Input #2 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P2."
Else
Print "The move to P2 completed successfully."
Print "Input #2 never came on during the move."
EndIf
Fend
A continuación se muestran algunos ejemplos desde la ventana de comandos:
>Go Here +X(50) ' Mover solamente en la dirección X a 50 mm de la posición actual
>Go P1 ' Ejemplo simple de mover al punto P1
>Go P1 :U(30) ' Mover a P1 pero usar +30 como la posición hacia la cual se
mueva la articulación U
>Go P1 /L ' Mover a P1 asegurarse de que el brazo termine en una posición a
274
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
la izquierda
>Go XY(50, 450, 0, 30) ' Mover a la posición X=50, Y=450, Z=0, U=30
<Otro ejemplo de codificación>
Till Sw(1) = Off And Sw(2) = On ' Especifica las condiciones Till para las entradas 1 y
2
Go P1 Till ' Detener si se cumple la condición Till actual definida en la línea
anterior
Go P2 Till Sw(2) = On ' Detener si la entrada Bit 2 es On
Go P3 Till ' Detener si se cumple la condición Till actual definida en la línea
anterior
Manual de referencia del lenguaje SPEL+ Rev.2
275
Manual de referencia del lenguaje SPEL+
GoSub...Return
GoSub transfiere el control del programa a una subrutina. Una vez que se completa la subrutina, el control
del programa vuelve a la línea a continuación de la instrucción GoSub que inició la subrutina.
Sintaxis
GoSub { label }
{ label:}
statements
Return
Parámetros
label Cuando el usuario especifica una etiqueta, la ejecución del programa saltará a la línea
en la que reside la etiqueta. La etiqueta puede tener hasta 32 caracteres de longitud.
Sin embargo, el primer carácter debe ser un carácter alfabético (no numérico).
Descripción
La instrucción GoSub causa que el control del programa se bifurque a la etiqueta de instrucción
especificada por el usuario. El programa luego ejecuta la instrucción en esa línea y continúa la ejecución
por los números subsiguientes de la línea hasta que se encuentre la instrucción Return. Luego, la
instrucción Return causa que el control del programa se transfiera de vuelta a la línea inmediatamente
posterior a la línea con la que se inició GoSub en primer lugar. (es decir, la instrucción GoSub provoca la
ejecución de una subrutina y luego la ejecución se devuelve a la instrucción que sigue a la instrucción
GoSub). Asegúrese de siempre terminar cada subrutina con Return. Esto ordena a la ejecución del
programa que vuelva a la línea siguiente a la instrucción GoSub.
Posibles errores
Bifurcación a una instrucción no existente
Si la instrucción GoSub intenta bifurcar el control a una etiqueta no existente, se emitirá un error 3108.
Se encontró Return sin GoSub
Se usa una instrucción Return para "volver" desde una subrutina al programa original que emitió la
instrucción GoSub. Si se encuentra una instrucción Return sin que primero se haya emitido una instrucción
GoSub, ocurrirá un error 2383. Una instrucción Return por sí sola no significa nada, ya que el sistema no
sabe adonde volver.
También consulte
GoTo, OnErr, Return
276
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción GoSub
El siguiente ejemplo muestra una función simple que usa una instrucción GoSub para bifurcarse a una
etiqueta y ejecutar algunas instrucciones E/S y luego volver.
Function main
Integer var1, var2
GoSub checkio 'GoSub con uso de etiqueta
On 1
On 2
Exit Function
checkio: 'La subrutina comienza aquí
var1 = In(0)
var2 = In(1)
If var1 = 1 And var2 = 1 Then
On 1
Else
Off 1
Fend
EndIf
Return 'La subrutina termina aquí
Manual de referencia del lenguaje SPEL+ Rev.2
277
Manual de referencia del lenguaje SPEL+
Instrucción GoTo
La instrucción GoSub causa que el control del programa se bifurque incondicionalmente a una etiqueta de
instrucción designada.
Sintaxis
GoTo { label }
Parámetros
label La ejecución del programa saltará a la línea en la que reside la etiqueta. La etiqueta puede
tener hasta 32 caracteres. Sin embargo, el primer carácter debe ser un carácter alfabético (no
numérico).
Descripción
La instrucción GoSub causa que el control del programa se bifurque a la etiqueta especificada por el
usuario. El programa luego ejecuta la instrucción en esa línea y continúa la ejecución a partir de esa línea.
GoTo se usa más comúnmente para saltar a una etiqueta de salida debido a un error.
Nota
Usar demasiadas instrucciones GoTo
Tenga cuidado con la instrucción GoTo porque usar demasiadas instrucciones GoTo en un programa puede
hacer que este sea difícil de entender. La regla general es intentar usar la menor cantidad posible de
instrucciones GoTo. Casi siempre son necesarias algunas instrucciones GoTo. Sin embargo, saltar por todo
el código fuente mediante el uso de demasiadas instrucciones GoTo es una forma fácil de crear problemas.
También consulte
GoSub, OnErr
Ejemplo de instrucción GoTo
El siguiente ejemplo muestra una función simple que usa una instrucción GoTo para bifurcarse a una
etiqueta de línea.
Function main
If Sw(1) = Off Then
GoTo mainAbort
EndIf
Print "Input 1 was On, continuing cycle"
.
.
Exit Function
mainAbort:
Print "Input 1 was OFF, cycle aborted!"
Fend
278
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Halt
Suspende temporalmente la ejecución de una tarea especificada.
Sintaxis
Halt taskIdentifier
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
El nombre de la tarea corresponde al nombre de la función usada en una instrucción
Xqt o una función iniciada desde la ventana Run o la ventana Operator. Si se usa
una expresión entera, el rango es de 1 a 16 para tareas normales y de 257 a 261 para
tareas de captura.
Descripción
Halt suspende temporalmente la tarea en ejecución tal como especifica el nombre o el número de la tarea.
Para continuar la tarea donde quedó, use Resume. Para detener completamente la ejecución de la tarea, use
Quit. Para mostrar el estado de la tarea, haga clic en el icono del administrador de tareas en la barra de
herramientas de EPSON RC+ para ejecutar el Administrador de tareas.
Halt también detiene la tarea cuando la tarea especificada es una tarea NoPause, una tarea NoEmgAbort
(tarea especial que usa NoPause o NoEmgAbort en Xqt), tareas de captura o las tareas en segundo plano.
Sin embargo, detener estas tareas requiere una consideración suficiente. Normalmente, no se recomienda
Halt para la tarea especial.
También consulte
Quit, Resume, Xqt
Ejemplo de instrucción Halt
El ejemplo a continuación muestra una función llamada “flicker” (parpadeo) que es iniciada por Xqt, luego
es suspendida temporalmente por Halt y reanudada nuevamente por Resume.
Function main
Xqt flicker 'Ejecutar la función flicker
Do
Wait 3 'Ejecutar la tarea flicker durante 3 segundos
Halt flicker
Wait 3 'Suspender la tarea flicker durante 3 segundos
Resume flicker
Loop
Fend
Function flicker
Do
On 1
Wait 0.2
Off 1
Wait 0.2
Loop
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
279
Manual de referencia del lenguaje SPEL+
Instrucción Hand
Define la orientación de la mano de un punto.
Sintaxis
(1) Hand point, [Lefty | Righty]
(2) Hand
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
Lefty | Righty Orientación de la mano.
Valores devueltos
Cuando se omiten ambos parámetros, se muestra la orientación de la mano para la posición actual del robot.
Si se omite Lefty | Righty, se muestra la orientación de la mano para el punto especificado.
También consulte
Elbow, Hand Function, J4Flag, J6Flag, Wrist, J1Flag, J2Flag
Ejemplo de instrucción Hand
Hand P0, Lefty
Hand pick, Righty
Hand P(myPoint), myHand
P1 = -364.474, 120.952, 469.384, 72.414, 1.125, -79.991
Hand P1, Righty
Go P1
Hand P1, Lefty
Go P1
280
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Hand
Arroja la orientación de la mano de un punto.
Sintaxis
Hand [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, se arroja la orientación de la mano de la
posición actual del robot.
Valores devueltos
1 Righty (/R)
2 Lefty (/L)
También consulte
Elbow, Wrist, J4Flag, J6Flag, J1Flag, J2Flag
Ejemplo de función Hand
Print Hand(pick)
Print Hand(P1)
Print Hand
Print Hand(P1 + P2)
Manual de referencia del lenguaje SPEL+ Rev.2
281
Manual de referencia del lenguaje SPEL+
HealthCalcPeriod
Define y muestra un período que calcula los meses restantes de la información de comandos de
consumo de piezas.
Sintaxis
(1) HealthCalcPeriod Period
(2) HealthCalcPeriod
Parámetros
Period Especifica un período para calcular en números enteros (1 a 7). (Unidad: día) El valor
predeterminado es “7”.
Valores devueltos
Muestra el valor de configuración actual de HealthCalcPeriod si se omite el parámetro.
Descripción
La información de los meses restantes de comandos de consumo de piezas se calcula automáticamente
basándose en la condición operativa pasada. El comando HealthCalcPeriod define y muestra un período
operativo para este cálculo.
Si se define un período más largo, se calculan los meses restantes que suprimen la influencia de
variaciones. Sin embargo, tómese un tiempo para mostrar el “tiempo restante” correctamente después de
cambiar el movimiento o la velocidad.
El valor de configuración de HealthCalcPeriod se aplica a todos los robots, articulaciones y piezas
controlados por el controlador ejecutado.
Nota
Configurar el período
El período que se define en el comando HealthCalcPeriod es el período de ejecución del controlador.
Tenga cuidado de que no sea el mismo que el tiempo real.
Cálculo de los “meses restantes” y “tasa de consumo” cuando se borran.
Calcule los meses restantes cada día a pesar del valor de configuración de HealthCalcPeriod hasta que
supere el período de configuración por primera vez después de borrar la información de comandos de
consumo de piezas de EPSON RC+, los meses restantes y la tasa de consumo de
HealthCtrlReset o HealthRBReset
También consulte
HealthCalcPeriod Function, HealthCtrlInfo, HealthRBInfo, HealthCtrlReset, HealthRBReset
HealthCalcPeriod en el ejemplo funcional
> HealthCalcPeriod 3
> HealthCalcPeriod
3
282
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función HealthCalcPeriod
Arroja el período de cálculo de los meses restantesde la información de los comandos de consumo de
piezas que está actualmente definida.
Sintaxis
HealthCalcPeriod
Valores devueltos
Arroja el período de cálculo en un número entero. (Unidad: día)
También consulte
HealthCalcPeriod
HealthCalcPeriod en el ejemplo funcional
Ejemplo para mostrar el período de cálculo.
Print "period is", HealthCalcPeriod
Manual de referencia del lenguaje SPEL+ Rev.2
283
Manual de referencia del lenguaje SPEL+
Función HealthCtrlAlarmOn
Arroja el estado de la alarma de consumo de piezas para las piezas del controlador especificado.
Sintaxis
HealthCtrlAlarmOn(partType)
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas cuyo estado de alarma
desea obtener.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
Valores devueltos
Es True si la alarma de consumo de piezas se activa para las piezas específicas, de lo contrario es False.
La alarma de consumo de piezas ocurre cuando la tasa de consumo de piezas obtenida por
HealthRateCtrlInfo supera el 100 %.
También consulte
HealthCtrlInfo, HealthRateCtrlInfo
Ejemplo de función HealthCtrlAlarmOn
El ejemplo a continuación determina si la alarma de consumo de piezas ocurre para las baterías del
controlador.
Function PrintAlarm
If HealthCtrlAlarmOn(HEALTH_CONTROLLER_TYPE_BATTERY) = True Then
Print "Controller Battery OK"
Else
Print "Controller Battery NG"
EndIf
Fend
284
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthCtrlInfo
Muestra los meses restantes antes del tiempo de reemplazo recomendado para las piezas especificadas del
controlador.
Sintaxis
HealthCtrlInfo partType
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas de las cuales desea
obtener los meses restantes antes del tiempo de reemplazo recomendado.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
Descripción
Muestra los meses restantes antes del tiempo de reemplazo recomendado para las piezas especificadas del
controlador.
Los meses restantes se calculan en función de la tasa de consumo de las piezas a partir del uso pasado y la
cantidad de cambio en la tasa de consumo que se obtiene en cada operación de un período, el que se
establece en HealthCalcPeriod del controlador.
Notas
Dado que los meses restantes se calculan en función de la cantidad de cambio en la tasa de consumo que se
obtiene en cada operación de un período, el que se establece en HealthCalcPeriod del controlador, no se
pueden calcular adecuadamente en los siguientes casos:
- Si el comando se ejecuta cuando el tiempo de funcionamiento es menor que cada operación de un
período que se configura en HealthCalcPeriod
- Si se ejecuta el comando después del período de detención de la operación prolongada del robot.
- Si se ejecuta el comando después de restablecer la alarma de consumo de piezas debido al reemplazo de
las piezas.
- Si se cambia la hora y fecha del controlador.
En los casos anteriores, ejecute el comando después de operar el controlador más de dos veces en el
período configurado en HealthCalcPeriod para mostrar el valor exacto.
También consulte
HealthCtrlAlarmOn, HealthRateCtrlInfo
Ejemplo de instrucción HealthCtrlInfo
El ejemplo a continuación muestra los meses restantes antes del tiempo de reemplazo recomendado para las
baterías del controlador.
> HealthCtrlInfo HEALTH_CONTROLLER_TYPE_BATTERY
BATTERY 240.000
>
Manual de referencia del lenguaje SPEL+ Rev.2
285
Manual de referencia del lenguaje SPEL+
Función HealthCtrlInfo
Arroja los meses restantes antes del tiempo de reemplazo recomendado para las piezas del controlador
especificado.
Sintaxis
HealthCtrlInfo(partType)
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas de las cuales desea
obtener los meses restantes antes del tiempo de reemplazo recomendado.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
Valores devueltos
Número real que representa los meses restantes antes del tiempo de reemplazo recomendado. (Unidad:
mes)
Descripción
Los meses restantes se calculan en función de la tasa de consumo de las piezas a partir del uso pasado y la
cantidad de cambio en la tasa de consumo que se obtiene en cada operación de un período, el que se
establece en HealthCalcPeriod del controlador.
Notas
Dado que los meses restantes se calculan en función de la cantidad de cambio en la tasa de consumo que se
obtiene en cada operación de un período, el que se establece en HealthCalcPeriod del controlador, no se
pueden calcular adecuadamente en los siguientes casos:
- Si el comando se ejecuta cuando el tiempo de funcionamiento es menor que cada operación de un
período que se configura en HealthCalcPeriod.
- Si se ejecuta el comando después del período de detención de la operación prolongada del robot.
- Si se ejecuta el comando después de restablecer la alarma de consumo de piezas debido al reemplazo de
las piezas.
- Si se cambia la hora y fecha del controlador.
En los casos anteriores, ejecute el comando después de operar el controlador más de dos veces en el
período configurado en HealthCalcPeriod para mostrar el valor exacto.
También consulte
HealthCtrlAlarmOn, HealthRateCtrlInfo
Ejemplo de función HealthCtrlInfo
El ejemplo a continuación genera la alarma cuando el tiempo de reemplazo recomendado es en menos de
un mes.
Function AlarmCheck
Real month
month = HealthCtrlInfo(HEALTH_CONTROLLER_TYPE_BATTERY)
If month < 1 Then
Print "Alarm ON"
EndIf
Fend
286
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthCtrlRateOffset
Configura la compensación de la tasa de consumo de las piezas especificadas.
Sintaxis
HealthCtrlRateOffset partType, offset
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas relacionadas con el
controlador.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
offset Expresión entera que especifica el valor de compensación agregado a la tasa de consumo.
(Unidad: %)
Descripción
Configura la compensación de la tasa de consumo de las piezas especificadas.
También consulte
HealthRBAlarmOn, HealthRateRBInfo, HealthRBInfo
Ejemplo de instrucción HealthCtrlRateOffset
El siguiente es el ejemplo para agregar 10 % a la tasa de consumo de las piezas de las baterías del
controlador.
> HealthRBRateOffset HEALTH_CONTROLLER_TYPE_BATTERY,10
>
Manual de referencia del lenguaje SPEL+ Rev.2
287
Manual de referencia del lenguaje SPEL+
Instrucción HealthCtrlReset
Borra los meses restantes antes de alcanzar el tiempo de reemplazo recomendado y la tasa de consumo de
las piezas especificadas.
Sintaxis
HealthCtrlReset partType
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas relacionadas con el
controlador.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
Descripción
Borra los meses restantes antes de alcanzar el tiempo de reemplazo recomendado y la tasa de consumo de
las piezas especificadas.
Las advertencias también se cancelan.
También consulte
HealthCtrlAlarmOn, HealthRateCtrlInfo, HealthCtrlInfo
Ejemplo de instrucción HealthCtrlReset
> HealthCtrlReset HEALTH_CONTROLLER_TYPE_BATTERY
>
288
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función HealthRateCtrlInfo
Arroja la tasa de consumo de las piezas del controlador especificado.
Sintaxis
HealthRateCtrlInfo(partType)
Parámetros
partType Expresión entera (1) o la siguiente constante que representa las piezas de las cuales desea
obtener los meses restantes antes del tiempo de reemplazo recomendado.
Constante Valo
r
Modo
HEALTH_CONTROLLER_TYPE_BATTERY 1 Especifica las baterías.
Valores devueltos
Número real que representa la tasa de consumo de las piezas actuales, cuando se considera el tiempo de
reemplazo recomendado como un 100 %. (Unidad: %)
Descripción
Este comando calcula la tasa de consumo de las piezas en función de la condición de operación actual.
Notas
El tiempo de reemplazo recomendado es el tiempo recomendado para reemplazar las piezas basado en las
estadísticas.
Puede que se necesite el reemplazo antes de que la tasa de consumo llegue al 100 %.
Asimismo, las piezas no quedarán inutilizables de inmediato cuando la tasa de consumo llegue al 100 %.
Sin embargo, se recomienda reemplazar las piezas tan pronto aumente la posibilidad de quiebre después de
que la tasa de consumo llegue al 100 %.
También consulte
HealthCtrlAlarmOn, HealthCtrlInfo
Ejemplo de función HealthRateCtrlInfo
El ejemplo a continuación genera la alarma cuando la tasa de consumo para las baterías del controlador
llega al 90 %.
Function AlarmCheck
Real HealthRate
HealthRate = HealthRateCtrlInfo (HEALTH_CONTROLLER_TYPE_BATTERY)
If HealthRate > 90 Then
Print "Alarm ON"
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
289
Manual de referencia del lenguaje SPEL+
Función HealthRateRBInfo
Arroja la tasa de consumo para las piezas especificadas de robot.
Sintaxis
HealthRateRBInfo(robotNumber, partType, jointNumber)
Parámetros
robotNumber Expresión entera (1 a 16) que representa el número de robot cuya tasa de consumo de
piezas desea obtener.
partType Expresión entera (1 a 6) o las siguientes constantes que representan las piezas cuya tasa
de consumo desea obtener.
Constante Valo
r
Modo
HEALTH_ROBOT_TYPE_BATTERY 1
Especifica las
b
aterías.
HEALTH_ROBOT_TYPE_BELT
2
Especifica las
correas de
regulación.
HEALTH_ROBOT_TYPE_GREASE 3 Especifica la grasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1 a 9) que representa la articulación cuya tasa de consumo de piezas
desea obtener.
Este comando no está disponible para los ejes adicionales.
Valores devueltos
Número real que representa la tasa de consumo de las piezas actuales, cuando se considera el tiempo de
reemplazo recomendado como un 100 %. (Unidad: %)
Arroja “-1” cuando el robot no tiene las piezas especificadas.
Descripción
Este comando calcula la tasa de consumo de las piezas en función de la condición de operación actual.
Notas
El tiempo de reemplazo recomendado es el tiempo recomendado para reemplazar las piezas basado en las
estadísticas.
Puede que se necesite el reemplazo antes de que la tasa de consumo llegue al 100 %.
Asimismo, las piezas no quedarán inutilizables de inmediato cuando la tasa de consumo llegue al 100 %.
Sin embargo, se recomienda reemplazar las piezas tan pronto aumente la posibilidad de quiebre después de
que la tasa de consumo llegue al 100 %.
También consulte
HealthRBAlarmOn, HealthRBInfo
290
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de función HealthRateRBInfo
El ejemplo a continuación genera la alarma cuando la tasa de consumo de la unidad de engranaje reductor
de la articulación n.° 3 en el robot 1 llega al 90 %.
Function AlarmCheck
Real HealthRate
HealthRate = HealthRateRBInfo(1,HEALTH_ROBOT_TYPE_BATTERY,3)
If HealthRate > 90 Then
Print "Alarm ON"
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
291
Manual de referencia del lenguaje SPEL+
Función HealthRBAlarmOn
Arroja el estado de la alarma de consumo de piezas para las piezas especificadas del robot.
Sintaxis
HealthRBAlarmOn(robotNumber, partType, jointNumber)
Parámetros
robotNumber Expresión entera (1 a 16) que representa el número de robot cuyo estado de alarma desea
obtener.
partType Expresión entera (1 a 6) o las siguientes constantes que representan las piezas cuyo
estado de alarma desea obtener.
Constante Valor Modo
HEALTH_ROBOT_TYPE_BATTERY 1 Especifica las baterías.
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH
_
ROBOT
_
TYPE
_
GREASE 3 Es
p
ecifica la
g
rasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1 a 9) que representa la articulación cuyo estado de alarma desea
obtener. Cuando se seleccionan las baterías para partType, se arrojará el mismo valor
cuando se especifique cualquier articulación porque las baterías son comunes a todas las
articulaciones. Este comando no está disponible para los ejes adicionales.
Valores devueltos
Es True si la alarma de consumo de piezas se activa para las piezas específicas, de lo contrario es False.
La alarma de consumo de piezas ocurre cuando la tasa de consumo de piezas obtenida por
HealthRateRBInfo supera el 100 %.
Arroja “-1” cuando el robot no tiene las piezas especificadas.
También consulte
HealthRBInfo, HealthRateRBInfo
Ejemplo de función HealthRBAlarmOn
El ejemplo a continuación determina si la alarma de consumo de piezas ocurre para la grasa en la
articulación n.° 3 del robot 1.
Function PrintAlarm4
If HealthRBAlarmOn(1, HEALTH_ROBOT_TYPE_GREASE, 3) = True Then
Print "Robot1 Joint3 Grease OK"
Else
Print "Robot1 Joint3 Grease NG"
EndIf
Fend
292
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBAnalysis
Simula y muestra los meses utilizables de las piezas especificadas en el ciclo de operación de un robot en
particular.
Sintaxis
HealthRBAnalysis robotNumber, partType[, jointNumber]
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot.
partType Expresión entera o las siguientes constantes que representan las piezas del robot.
Constante Valor Modo
HEALTH_ROBOT_TYPE_ALL 0
Especifica todas las
p
iezas.
HEALTH_ROBOT_TYPE_BELT
2
Especifica las
correas de
regulación.
HEALTH_ROBOT_TYPE_GREASE 3
Especifica la grasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1-6) que representa la articulación. Si el número de la articulación no
se especifica, arroja los valores de todas las articulaciones. Este comando no está
disponible para los ejes adicionales.
Descripción
Simula y muestra los meses utilizables de las piezas especificadas en el ciclo de operación de un robot en
particular. Este comando calcula y muestra por cuántos meses se pueden usar las piezas si son nuevas y se
usan durante 24 horas al día. No se considera el uso pasado.
Arroja “-1” cuando las piezas especificadas no están instaladas en la articulación especificada
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
También consulte
HealthRBStart, HealthRBStop
Ejemplo de instrucción HealthRBAnalysis
El ejemplo a continuación muestra los meses utilizables para todas las piezas de todas las articulaciones en
el robot SCARA.
> HealthRBAnalysis 1, HEALTH_ROBOT_TYPE_ALL
BELT -1.000, -1.000, 38.689, 95.226
GREASE -1.000, -1.000, 21.130, -1.000
MOTOR 240.000, 240.000, 240.000, 240.000
Manual de referencia del lenguaje SPEL+ Rev.2
293
Manual de referencia del lenguaje SPEL+
GEAR 240.000, 224.357, -1.000, -1.000
BALL SCREW SPLINE -1.000, -1.000, 240.000, -1.000
>
El ejemplo a continuación muestra los meses utilizables para las unidades de engranaje reductor de todas
las articulaciones en el robot SCARA.
> HealthRBAnalysis 1, HEALTH_ROBOT_TYPE_GEAR
GEAR 240.000, 224.357, -1.000, -1.000
>
El ejemplo a continuación muestra los meses utilizables para la articulación n.° 2 en el robot de 6 ejes.
> HealthRBAnalysis 1, HEALTH_ROBOT_TYPE_MOTOR, 2
MOTOR 224.357
>
294
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función HealthRBAnalysis
Arroja los meses utilizables para las piezas especificadas en el ciclo de operación de un robot específico.
Sintaxis
HealthRBAnalysis(robotNumber, partType, jointNumber)
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot.
partType Expresión entera (2-6) o las siguientes constantes que representan las piezas del robot.
Constante Valor Modo
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH
_
ROBOT
_
TYPE
_
GREASE 3 Es
p
ecifica la
g
rasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1-6) que representa la articulación. Este comando no está disponible
para los ejes adicionales.
Valores devueltos
Número real que representa los meses utilizables.
Arroja “-1” cuando las piezas especificadas no están instaladas en la articulación especificada
Descripción
Arroja los meses utilizables para las piezas especificadas en el ciclo de operación de un robot específico.
Este comando calcula por cuántos meses se pueden usar las piezas si son nuevas y se usan durante 24 horas
al día. No se considera el uso pasado.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run.
También consulte
HealthRBStart, HealthRBStop
Manual de referencia del lenguaje SPEL+ Rev.2
295
Manual de referencia del lenguaje SPEL+
Ejemplo de función HealthRBAnalysis
Function RobotPartAnalysis
Real month
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
month = HealthRBAnalysis(1, HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE,
3)
Print "Ball Screw Spline analysis =", Str$(month)
Fend
296
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBDistance
Muestra la cantidad de accionamiento (rotación) del motor de la articulación especificada.
Sintaxis
HealthRBDistance [robotNumber] [,jointNumber]
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Si el número de la articulación no
se especifica, arroja los valores de todas las articulaciones. Este comando no está
disponible para los ejes adicionales.
Descripción
Calcula y muestra la cantidad de accionamiento (rotación) del motor de la articulación especificada en la
operación del robot de HealthRBStart a HealthRBStop. No se considera el uso pasado.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run.
También consulte
HealthRBStart, HealthRBStop
Ejemplo de instrucción HealthRBDistance
El ejemplo a continuación muestra la cantidad de accionamiento de la articulación n.° 1 del robot SCARA.
> HealthRBDistance 1, 1
1.000
>
Manual de referencia del lenguaje SPEL+ Rev.2
297
Manual de referencia del lenguaje SPEL+
Función HealthRBDistance
Arroja la cantidad de accionamiento (rotación) del motor de la articulación especificada.
Sintaxis
HealthRBDistance([robotNumber,] jointNumber)
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Este comando no está disponible
para los ejes adicionales.
Valores devueltos
Número real que representa la cantidad de accionamiento.
Descripción
Arroja la cantidad de accionamiento (rotación) del motor de la articulación especificada en la operación del
robot de HealthRBStart a HealthRBStop. No se considera el uso pasado.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run.
También consulte
HealthRBStart, HealthRBStop
Ejemplo de función HealthRBDistance
Function RobotPartAnalysis
Real healthDistance
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
healthDistance = HealthRBDistance(1,1)
Print "Distance =", Str$(healthDistance)
Fend
298
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBInfo
Muestra los meses restantes antes del tiempo de reemplazo recomendado para las piezas especificadas del
robot.
Sintaxis
HealthRBInfo robotNumber, partType[, jointNumber]
Parámetros
robotNumber Expresión entera (1-16) que representa el número de robot del cual desea obtener los
meses restantes antes del tiempo de reemplazo recomendado.
partType Expresión entera (0-6) o las siguientes constantes que representan las piezas de las cuales
desea obtener los meses restantes antes del tiempo de reemplazo recomendado.
Constante Valor Modo
HEALTH_ROBOT_TYPE_ALL 0
Especifica todas las
piezas.
HEALTH
_
ROBOT
_
TYPE
_
BATTERY 1 Es
p
ecifica las baterías.
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH
_
ROBOT
_
TYPE
_
GREASE 3 Es
p
ecifica la
g
rasa.
HEALTH_ROBOT_TYPE_MOTOR 4 Especifica los motores.
HEALTH_ROBOT_TYPE_GEAR 5
Especifica las unidades
del engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura del
tornillo esférico.
jointNumber Expresión entera (1-9) que representa la articulación de la cual desea obtener los meses
restantes antes del tiempo de reemplazo recomendado. Cuando se seleccionan las
baterías para partType, se arrojará el mismo valor cuando se especifique cualquier
articulación porque las baterías son comunes a todas las articulaciones. Si el número de
la articulación no se especifica, arroja los valores de todas las articulaciones. Este
comando no está disponible para los ejes adicionales.
Descripción
Muestra los meses restantes antes del tiempo de reemplazo recomendado para las piezas especificadas del
robot.
Los meses restantes se calculan en función de la tasa de consumo de las piezas a partir del uso pasado y la
cantidad de cambio en la tasa de consumo que se obtiene en cada operación de un período, el que se
establece en HealthCalcPeriod del controlador.
Arroja “-1” cuando la articulación del robot no tiene las piezas especificadas.
Notas
Dado que los meses restantes se calculan en función de la cantidad de cambio en la tasa de consumo que se
obtiene en cada operación de un período, el que se establece en HealthCalcPeriod del controlador, no se
pueden calcular adecuadamente en los siguientes casos:
- Si este comando se ejecuta cuando el tiempo de funcionamiento es menor que cada operación de un
período que se configura en HealthCalcPeriod.
- Si se ejecuta este comando después del período de detención de la operación prolongada del robot.
- Si se ejecuta este comando después de restablecer la alarma de consumo de piezas después del
reemplazo de las piezas.
- Si se cambia la hora y fecha del controlador.
En los casos anteriores, ejecute el comando después de operar el controlador más de dos veces en el
período configurado
Manual de referencia del lenguaje SPEL+ Rev.2
299
Manual de referencia del lenguaje SPEL+
en HealthCalcPeriod para mostrar el valor exacto.
También consulte
HealthRBAlarmOn, HealthRateRBInfo
Ejemplo de instrucción HealthRBInfo
El siguiente ejemplo muestra los meses restantes para todas las piezas de todas las articulaciones del robot
1.
> HealthRBInfo 1, HEALTH_ROBOT_TYPE_ALL
BATTERY 240.000
BELT -1.000, -1.000, 38.689, 95.226
GREASE -1.000, -1.000, 21.130, -1.000
MOTOR 240.000, 240.000, 240.000, 240.000
GEAR 240.000, 224.357, -1.000, -1.000
BALL SCREW SPLINE -1.000, -1.000, 240.000, -1.000
>
El siguiente ejemplo muestra los meses restantes para las unidades de engranaje reductor de todas las
articulaciones del robot 1.
> HealthRBInfo 1, HEALTH_ROBOT_TYPE_GEAR
GEAR 240.000, 224.357, -1.000, -1.000
>
El siguiente ejemplo muestra los meses restantes para el motor de la articulación n.° 2 del robot 1.
> HealthRBInfo 1, HEALTH_ROBOT_TYPE_MOTOR, 2
MOTOR 224.357
>
300
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función HealthRBInfo
Arroja los meses restantes antes del tiempo de reemplazo recomendado para las piezas especificadas del
robot.
Sintaxis
HealthRBInfo(robotNumber, partType, jointNumber)
Parámetros
robotNumber Expresión entera (1-16) que representa el número de robot del cual desea obtener los
meses restantes antes del tiempo de reemplazo recomendado.
partType Expresión entera (1-6) o las siguientes constantes que representan las piezas de las cuales
desea obtener los meses restantes antes del tiempo de reemplazo recomendado.
Constante Valo
r
Modo
HEALTH_ROBOT_TYPE_BATTERY 1
Especifica las
baterías.
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH_ROBOT_TYPE_GREASE 3 Especifica la grasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1-9) que representa la articulación de la cual desea obtener los meses
restantes antes del tiempo de reemplazo recomendado. Cuando se seleccionan las
baterías para partType, se arrojará el mismo valor cuando se especifique cualquier
articulación porque las baterías son comunes a todas las articulaciones. Este comando no
está disponible para los ejes adicionales.
Valores devueltos
Número real que representa los meses restantes antes del tiempo de reemplazo recomendado. (Unidad:
mes)
Arroja “-1” cuando el robot no tiene las piezas especificadas.
Descripción
Los meses restantes se calculan en función de la tasa de consumo de las piezas a partir del uso pasado y la
cantidad de cambio en la tasa de consumo que se obtiene en cada operación de un período, el que se
establece
en HealthCalcPeriod del controlador.
Notas
Dado que los meses restantes se calculan en función de la cantidad de cambio en la tasa de consumo que se
obtiene en cada operación de un período, el que se establece en HealthCalcPeriod del controlador, no se
pueden calcular adecuadamente en los siguientes casos:
- Si el comando se ejecuta cuando el tiempo de funcionamiento es menor que cada operación de un
período, el que se establece
en HealthCalcPeriod.
- Si se ejecuta este comando después del período de detención de la operación prolongada del robot.
Manual de referencia del lenguaje SPEL+ Rev.2
301
Manual de referencia del lenguaje SPEL+
- Si se ejecuta este comando después de restablecer la alarma de consumo de piezas después del
reemplazo de las piezas.
- Si se cambia la hora y fecha del controlador.
En los casos anteriores, ejecute el comando después de operar el controlador más de dos veces en el
período configurado
en HealthCalcPeriod para mostrar el valor exacto.
También consulte
HealthRBAlarmOn, HealthRateRBInfo
Ejemplo de función HealthRBInfo
El siguiente ejemplo genera la alarma cuando el tiempo de reemplazo recomendado para la ranura de
tornillo esférico de la articulación n.° 3 en el robot 1 es menos de un mes.
Function AlarmCheck
Real month
month = HealthRBInfo(1, HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE, 3)
If month < 1 Then
Print "Alarm ON"
EndIf
Fend
302
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBRateOffset
Configura la compensación de la tasa de consumo de las piezas especificadas.
Sintaxis
HealthRBRateOffset robotNumber, partType, jointNumber, offset
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot.
partType Expresión entera (1-6) o las siguientes constantes que representan la pieza del robot.
Constante Valor Modo
HEALTH_ROBOT_TYPE_BATTERY 1 Especifica las baterías.
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH_ROBOT_TYPE_GREASE 3 Especifica la grasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1-6) que representa la articulación. Cuando se seleccionan las baterías
para partType, se establecerá la compensación cuando se especifica cualquier
articulación, dado que las baterías son comunes para todas las articulaciones. Este
comando no está disponible para los ejes adicionales.
offset Expresión entera que especifica el valor de compensación agregado a la tasa de consumo.
(Unidad: %)
Descripción
Configura la compensación de la tasa de consumo de las piezas y articulaciones especificadas.
También consulte
HealthRBAlarmOn, HealthRateRBInfo, HealthRBInfo
Ejemplo de HealthRBRateOffset
El siguiente ejemplo agrega 10 % a la tasa de consumo de la unidad de engranaje reductor de la articulación
n.° 1 en el robot 1.
> HealthRBRateOffset 1,HEALTH_ROBOT_TYPE_GEAR,1,10
>
Manual de referencia del lenguaje SPEL+ Rev.2
303
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBReset
Borra los meses restantes antes de alcanzar el tiempo de reemplazo recomendado y la tasa de consumo de
las piezas especificadas.
Sintaxis
HealthRBReset robotNumber, partType, jointNumber
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot.
partType Expresión entera (1-6) o las siguientes constantes que representan las piezas del robot.
Constante Valor Modo
HEALTH_ROBOT_TYPE_BATTERY 1 Especifica las baterías.
HEALTH_ROBOT_TYPE_BELT 2
Especifica las correas
de regulación.
HEALTH_ROBOT_TYPE_GREASE 3 Especifica la grasa.
HEALTH_ROBOT_TYPE_MOTOR 4
Especifica los
motores.
HEALTH_ROBOT_TYPE_GEAR
5
Especifica las
unidades del
engranaje reductor.
HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE 6
Especifica la ranura
del tornillo esférico.
jointNumber Expresión entera (1-6) que representa la articulación de la cual desea obtener los meses
restantes antes del tiempo de reemplazo recomendado. Cuando se seleccionan las
baterías para partType, se borrarán los meses restantes cuando se especifica cualquier
articulación, dado que las baterías son comunes para todas las articulaciones. Este
comando no está disponible para los ejes adicionales.
Descripción
Borra los meses restantes antes del tiempo de reemplazo recomendado y la tasa de consumo de las piezas y
articulaciones especificadas.
Las advertencias también se cancelan.
También consulte
HealthRBAlarmOn, HealthRateRBInfo, HealthRBInfo
Ejemplo de instrucción HealthRBReset
> HealthRBReset 1,HEALTH_ROBOT_TYPE_GEAR,1
>
304
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBSpeed
Muestra la velocidad promedio de la articulación especificada.
Sintaxis
HealthRBSpeed [robotNumber] [,jointNumber]
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Si el número de la articulación no
se especifica, arroja los valores de todas las articulaciones. Este comando no está
disponible para los ejes adicionales.
Descripción
Arroja el promedio de los valores absolutos de la velocidad de la articulación especificada en la operación
del robot, desde HealthRBStart a HealthRBStop. El resultado es un número real de 0 a 1.
La velocidad promedio máxima es "1".
El valor es “0” cuando el valor promedio es 0,001 o menos.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run.
También consulte
HealthRBStart, HealthRBStop, AveSpeed
Ejemplo de instrucción HealthRBSpeed
El siguiente ejemplo muestra la velocidad de la articulación n.° 1 del robot SCARA.
> HealthRBSpeed 1, 1
0.100
>
Manual de referencia del lenguaje SPEL+ Rev.2
305
Manual de referencia del lenguaje SPEL+
Función HealthRBSpeed
Arroja el promedio de los valores absolutos de la velocidad de la articulación especificada.
Sintaxis
HealthRBSpeed ([robotNumber,] jointNumber)
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Este comando no está disponible
para los ejes adicionales.
Valores devueltos
El resultado es un número real de 0 a 1.
Descripción
Arroja el promedio de los valores absolutos de la velocidad de la articulación especificada en la operación
del robot, desde HealthRBStart a HealthRBStop. El resultado es un número real de 0 a 1. La velocidad
promedio máxima es "1".
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
También consulte
HealthRBStart, HealthRBStop, AveSpeed
Ejemplo de función HealthRBSpeed
Function RobotPartAnalysis
Real healthSpeed
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
healthSpeed = HealthRBSpeed(1,1)
Print "AveSpeed =", Str$(healthSpeed)
Fend
306
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBStart
Inicia el cálculo de los meses utilizables y los elementos de las piezas en el ciclo de operación de un robot
en particular.
Sintaxis
HealthRBStart robotNumber
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot. Si se omite, se usará el robot
actual.
Descripción
Inicia el cálculo de los meses utilizables y los elementos (par, velocidad y cantidad de accionamiento) de
las piezas en el robot especificado en un ciclo de operación de un robot en particular.
Si se ejecuta este comando nuevamente cuando ya ha comenzado el cálculo, se inicializará el resultado del
cálculo anterior.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
También consulte
HealthRBAnalysis, HealthRBStop, HealthRBTRQ, HealthRBSpeed, HealthRBDistance
Ejemplo de instrucción HealthRBStart
Function RobotPartAnalysis
Real month
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
month = HealthRBAnalysis(1, HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE, 3)
Print "Ball Screw Spline analysis =", Str$(month)
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
307
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBStop
Detiene el cálculo de los meses utilizables y los elementos de las piezas en el ciclo de operación de un
robot en particular.
Sintaxis
HealthRBStop robotNumber
Parámetros
robotNumber Expresión entera (1-16) que representa el número del robot. Si se omite, se usará el robot
actual.
Descripción
Detiene el cálculo de los meses utilizables y los elementos (par, velocidad y cantidad de accionamiento) de
las piezas en el robot especificado en un ciclo de operación de un robot en particular.
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
- El cálculo termina automáticamente cuando pasa una hora desde que se inicia el cálculo.
- Si se ejecuta el comando después de la finalización automática, ocurrirá un error.
- Si se ejecuta el comando sin ejecutar el comando HealthRBStart, ocurrirá un error.
- Si se ejecuta el comando nuevamente sin ejecutar el comando HealthRBStart después del comando
HealthRBStop anterior, ocurrirá un error.
También consulte
HealthRBAnalysis, HealthRBStart, HealthRBTRQ, HealthRBSpeed, HealthRBDistance
Ejemplo de instrucción HealthRBStop
Function RobotPartAnalysis
Real month
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
month = HealthRBAnalysis(1, HEALTH_ROBOT_TYPE_BALL_SCREW_SPLINE,
3)
Print "Ball Screw Spline analysis =", Str$(month)
Fend
308
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción HealthRBTRQ
Muestra el valor de par que afecta la vida útil de las piezas de la articulación especificada.
Sintaxis
HealthRBTRQ [robotNumber] [,jointNumber]
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Si el número de la articulación no
se especifica, arroja los valores de todas las articulaciones. Este comando no está
disponible para los ejes adicionales.
Descripción
Muestra el valor de par que afecta la vida útil de las piezas de la articulación especificada en el
funcionamiento del robot desde HealthRBStart a HealthRBStop. El resultado es un número real de 0 a 1.
El valor de par máximo es de "1".
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
También consulte
HealthRBStart, HealthRBStop, ATRQ
Ejemplo de instrucción HealthRBTRQ
El siguiente ejemplo muestra el valor de par que afecta la vida útil de las piezas de la articulación n.° 1 del
robot SCARA.
> HealthRBTRQ 1, 1
0.020
>
Manual de referencia del lenguaje SPEL+ Rev.2
309
Manual de referencia del lenguaje SPEL+
Función HealthRBTRQ
Arroja el valor de par que afecta la vida útil de las piezas de la articulación especificada.
Sintaxis
HealthRBTRQ ([robotNumber,] jointNumber)
Parámetros
robotNumber Opcional. Expresión entera (1-16) que representa el número del robot.
Si se omite, se usará el número del robot actual.
jointNumber Expresión entera (1-6) que representa la articulación. Este comando no está disponible
para los ejes adicionales.
Valores devueltos
El resultado es un número real de 0 a 1.
Descripción
Arroja el valor de par que afecta la vida útil de las piezas de la articulación especificada en el
funcionamiento del robot desde HealthRBStart a HealthRBStop. El resultado es un valor real de 0 a 1. El
valor de par máximo es de "1".
Notas
- Este comando no funciona en el modo Auto (Automático).
- Este comando no funciona en el modo Dry Run (Simulacro) (incluido el controlador virtual).
También consulte
HealthRBStart, HealthRBStop, ATRQ
Ejemplo de función HealthRBTRQ
Function RobotPartAnalysis
Real healthTRQ
Robot 1
HealthRBStart
Motor On
Go P0
Go P1
Motor Off
HealthRBStop
healthTRQ = HealthRBTRQ(1,1)
Print "Torque =", Str$(healthTRQ)
Fend
310
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Here
Enseña un punto de robot en la posición actual.
Sintaxis
Here point
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
Notas
La instrucción Here y el procesamiento paralelo
No es posible usar la instrucción Here y el procesamiento paralelo juntos en un comando de movimiento
como este:
Go Here :Z(0) ! D10; MemOn 1 !
Asegúrese de cambiar el programa de la siguiente forma:
P999 = Here
Go P999 Here :Z(0) ! D10; MemOn 1 !
La instrucción Here y tareas múltiples
Si se ejecuta la instrucción Here en una función de tareas múltiples ejecutada por Xqt mientras el robot se
mueve con Move, Go, etc., en la tarea principal, se detendrá la tarea debido a un error.
La posición actual del robot se puede recuperar con CurPos.
Ejemplo
Function Xqt_PrintHere
Do
Fend
Print CurPOS
Wait 0.1
Loop
Function main
Xqt 10, Xqt_PrintHere
Go P0
Fend
También consulte
Función Here, CurPos
Ejemplo de instrucción Here
Here P1
Here pick
Manual de referencia del lenguaje SPEL+ Rev.2
311
Manual de referencia del lenguaje SPEL+
Función Here
Arroja la posición actual del robot como un punto.
Sintaxis
Here
Valores devueltos
Un punto representa la posición actual del robot.
Descripción
Use Here para recuperar la posición actual del manipulador actual.
También consulte
Instrucción Here
Ejemplo de función Here
P1 = Here
312
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Hex$
Arroja una cadena que representa un número especificado en formato hexadecimal.
Sintaxis
Hex$(number)
Parámetros
number Expresión entera.
Valores devueltos
Arroja una cadena que contiene la representación ASCII del número en formato hexadecimal.
Descripción
Hex$ arroja una cadena que representa el número especificado en formato hexadecimal. Cada carácter va
de 0 a 9 o de A a F. Hex$ es especialmente útil para examinar los resultados de la función Stat.
También consulte
Str$, Stat, Val
Ejemplo de función Hex$
> print hex$(stat(0))
A00000
> print hex$(255)
FF
Manual de referencia del lenguaje SPEL+ Rev.2
313
Manual de referencia del lenguaje SPEL+
Instrucción Hofs
Muestra o establece los pulsos de compensación entre el origen del codificador y el sensor de reposo.
Sintaxis
(1) Hofs j1Pulses, j2Pulses, j3Pulses, j4Pulses, [j5pulses, j6pulses], [j7pulses], [j8pulses,
j9pulses]
(2) Hofs
Parámetros
j1Pulses Expresión entera que representa los pulsos de compensación de la articulación 1.
j2Pulses Expresión entera que representa los pulsos de compensación de la articulación 2.
j3Pulses Expresión entera que representa los pulsos de compensación de la articulación 3.
j4Pulses Expresión entera que representa los pulsos de compensación de la articulación 4.
j5Pulses Para robots de 6 ejes (incluida la serie N).
Expresión entera que representa los pulsos de compensación de la articulación 5.
j6Pulses Para robots de 6 ejes (incluida la serie N).
Expresión entera que representa los pulsos de compensación de la articulación 6.
j7Pulses Para robots de 7 ejes. Expresión entera que representa los pulsos de compensación
de la articulación 7.
j8Pulses Para el eje S adicional. Expresión entera que representa los pulsos de compensación
de la articulación 8 (eje S adicional).
j9Pulses Para el eje T adicional. Expresión entera que representa los pulsos de compensación
de la articulación 9 (eje T adicional).
Valores devueltos
Muestra los valores de Hofs actuales cuando se usan sin parámetros.
Descripción
Hofs muestra o establece los pulsos de compensación de la posición de reposo. Hofs especifica la
compensación desde el punto 0 del codificador (fase Z) al punto 0 mecánico.
Aunque el control de movimiento del robot se basa en el punto cero del codificador montado en el motor de
cada articulación, es posible que el punto cero del codificador no coincida necesariamente con el punto cero
mecánico del robot. El pulso de corrección del pulso de compensación de Hofs se usa para realizar una
corrección de software al punto 0 mecánico según el punto 0 del codificador.
Notas
Los valores de Hofs NO SE DEBEN cambiar, a menos que sea absolutamente necesario
Los valores de Hofs se especifican correctamente antes del envío. Existe el peligro de que el cambio
innecesario del valor de Hofs pueda provocar errores de posición y un movimiento impredecible. Por lo
tanto, se recomienda encarecidamente que no se cambien los valores de Hofs a menos que sea
absolutamente necesario.
Cálculo automático de los valores de Hofs
Para que se calculen automáticamente los valores de Hofs, mueva el brazo a la posición de calibración
deseada y ejecute Calib. Entonces, el controlador calcula automáticamente los valores de Hofs basado en
los valores de pulso de CalPls y los valores de pulso de posición de calibración.
Guardar y restaurar Hofs
314
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Hofs se puede guardar y restaurar con los comandos Save y Load en el diálogo [System Configuration]-
[Robot]-[Calibration] (Configuración del sistema-Robot-Calibración) en el menú System Configuration.
También consulte
Calib, CalPls, Home, Hordr, MCal, SysConfig
Ejemplo de instrucción Hofs
Estos son ejemplos simples en la ventana de monitor que establece primero el valor de compensación de
reposo de la articulación 1 en -545, el valor de compensación de reposo de la articulación 2 en 514 y los
valores de compensación de reposo de las articulaciones 3 y 4 en 0. Entonces, muestra los valores de
compensación de reposo actuales.
> hofs -545, 514, 0, 0
> hofs
-545, 514, 0, 0
>
Manual de referencia del lenguaje SPEL+ Rev.2
315
Manual de referencia del lenguaje SPEL+
Función Hofs
Arroja los pulsos de compensación usados por la corrección de punto cero de software.
Sintaxis
Hofs(jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación para el que se recuperará el
valor de Hofs.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
El valor de pulso de compensación (valor entero, en pulsos).
También consulte
Calib, CalPls, Home, Hordr, MCal, SysConfig
Ejemplo de función Hofs
Este ejemplo usa la función Hofs en un programa:
Function DisplayHofs
Integer i
Print "Hofs settings:"
For i = 1 To 4
Print "Joint ", i, " = ", Hofs(i)
Next i
Fend
316
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Home
Mueve el brazo del robot a la posición de reposo definida por el usuario.
Sintaxis
Home
Descripción
Ejecuta el movimiento de punto a punto de baja velocidad hacia la posición de reposo (espera) especificada
en HomeSet, en el orden de regreso a la posición de reposo definida en Hordr.
Normalmente, para los robots SCARA (incluso la serie RS), la articulación Z (J3) primero vuelve a la
posición de HomeSet; luego, las articulaciones J1, J2 y J4 vuelven simultáneamente a las posiciones de
coordenadas de HomeSet respectivas. La instrucción Hordr puede cambiar este orden en que los ejes
vuelven a sus posiciones de reposo.
Nota
Salida de estado de reposo:
Cuando el robot está en la posición de reposo, la salida de reposo del sistema del controlador está activada.
Posible error
Intento de volver a la posición de reposo sin los valores de HomeSet definidos
Tratar de dejar en reposo el robot sin configurar los valores de HomeSet generará el Error 2228.
También consulte
HomeClr, HomeDef, HomeSet, Hordr
Ejemplo de instrucción Home
La instrucción Home se puede usar en un programa como este:
Function InitRobot
Reset
If Motor = Off Then
Motor On
EndIf
Home
Fend
O bien, se puede emitir desde la ventana Command de esta manera:
> home
>
Manual de referencia del lenguaje SPEL+ Rev.2
317
Manual de referencia del lenguaje SPEL+
Función HomeClr
Borra la definición de la posición de reposo.
Sintaxis
HomeClr
También consulte
HomeDef, HomeSet
Ejemplo de función HomeClr
Este ejemplo usa la función HomeClr en un programa:
Function ClearHome
If HomeDef = True Then
HomeClr
EndIf
Fend
318
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función HomeDef
Arroja si se ha definido o no la posición de reposo.
Sintaxis
HomeDef
Valores devueltos
Es True (Verdadero) si se ha definido o no la posición de reposo, de lo contrario es False (Falso).
También consulte
HomeClr, HomeSet
Ejemplo de función HomeDef
Este ejemplo usa la función HomeDef en un programa:
Function DisplayHomeSet
Integer i
If HomeDef = False Then
Print "Home is not defined"
Else
Print "Home values:"
For i = 1 To 4
Print "J", i, " = ", HomeSet(i)
Next i
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
319
Manual de referencia del lenguaje SPEL+
Instrucción HomeSet
Especifica y muestra la posición de reposo.
Sintaxis
(1) HomeSet j1Pulses, j2Pulses, j3Pulses, j4Pulses,
[j5Pulses, j6Pulses], [j7Pulses], [j8Pulses, j9Pulses]
(2) HomeSet
Parámetros
j1Pulses El valor de pulso del codificador de posición de reposo para la articulación 1.
j2Pulses El valor de pulso del codificador de posición de reposo para la articulación 2.
j3Pulses El valor de pulso del codificador de posición de reposo para la articulación 3.
j4Pulses El valor de pulso del codificador de posición de reposo para la articulación 4.
j5Pulses Opcional para los robots de 6 ejes (incluida la serie N).
El valor de pulso del codificador de posición de reposo para la articulación 5.
j6Pulses Opcional para los robots de 6 ejes (incluida la serie N).
El valor de pulso del codificador de posición de reposo para la articulación 6.
j7Pulses Opcional para los robots de 7 ejes de tipo articulación. El valor de pulso del codificador
de posición de reposo para la articulación 7.
j8Pulses Opcional para el eje S adicional.
El valor de pulso del codificador de posición de reposo para la articulación 8 (eje S
adicional).
j9Pulses Opcional para el eje T adicional.
El valor de pulso del codificador de posición de reposo para la articulación 9 (eje T
adicional).
Valores devueltos
Muestra los valores de pulso definidos para la posición de reposo actual cuando se omiten los parámetros.
Descripción
Permite que el usuario defina una nueva posición de reposo (espera) mediante la especificación de valores
de pulso del codificador para cada una de las articulaciones del robot.
Posibles errores
Intento de volver a la posición de reposo sin los valores de HomeSet definidos:
Tratar de dejar en reposo el robot sin configurar los valores de HomeSet generará el Error 2228.
Intento de mostrar los valores de HomeSet sin los valores de HomeSet definidos:
Tratar de mostrar los valores de pulso de la posición de reposo son los valores de HomeSet definidos
genera un Error 2228.
También consulte
Home, HomeClr, HomeDef, Hordr, Pls
320
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción HomeSet
Los siguientes ejemplos se llevan a cabo desde la ventana Monitor:
> homeset 0,0,0,0 'Establece la posición de reposo en 0,0,0,0
> homeset
0 0
0 0
> home 'El robot vuelve a la posición de reposo 0,0,0,0
Con la función Pls, especifique la posición actual del brazo como la posición de reposo.
> homeset Pls(1), Pls(2), Pls(3), Pls(4)
Manual de referencia del lenguaje SPEL+ Rev.2
321
Manual de referencia del lenguaje SPEL+
Función HomeSet
Arroja los valores de pulso de la posición de reposo para la articulación especificada.
Sintaxis
HomeSet(jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación para el que se recuperará el
valor de HomeSet.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja el valor de pulso de la posición de reposo de la articulación. Cuando jointNumber es “0”, arroja “1”
cuando HomeSet se ha establecido, o “0” si no se ha hecho.
También consulte
Instrucción HomeSet
Ejemplo de función HomeSet
Este ejemplo usa la función HomeSet en un programa:
Function DisplayHomeSet
Integer i
If HomeSet(0) = 0 Then
Print "HomeSet is not defined"
Else
Print "HomeSet values:"
For i = 1 To 4
Print "J", i, " = ", HomeSet(i)
Next i
EndIf
Fend
322
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Hordr
Especifica o muestra el orden de los ejes que vuelven a sus posiciones de reposo.
Sintaxis
(1) Hordr step1, step2, step3, step4, [step5], [step6], [step7], [step8], [step9]
(2) Hordr
Parámetros
step1 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el primer paso del proceso de regreso a la posición de reposo.
step2 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el segundo paso del proceso de regreso a la posición de reposo.
step3 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el tercer paso del proceso de regreso a la posición de reposo.
step4 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el cuarto paso del proceso de regreso a la posición de reposo.
step5 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el quinto paso del proceso de regreso a la posición de reposo.
step6 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el sexto paso del proceso de regreso a la posición de reposo.
step7 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el séptimo paso del proceso de regreso a la posición de reposo.
step8 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el octavo paso del proceso de regreso a la posición de reposo.
step9 Patrón de bits que define las articulaciones que deberían volver a la posición de reposo
durante el noveno paso del proceso de regreso a la posición de reposo.
Valores devueltos
Muestra la configuración de orden de regreso a la posición de reposo actual cuando se omiten los
parámetros.
Descripción
Hordr especifica el orden de movimiento de las articulaciones para el comando Home. (Es decir, define
qué articulación volverá a la posición de reposo primero, cuál lo hará en segundo lugar, tercer lugar, etc.)
El fin de la instrucción Hordr es permitir que el usuario cambie el orden de regreso a la posición de reposo.
El orden de regreso a la posición de reposo se divide en 4, 6 o 9 pasos separados, dependiendo del tipo de
robot. Entonces, el usuario utiliza Hordr para definir las articulaciones específicas que se moverán a la
posición de reposo durante cada paso. Es importante darse cuenta de que se puede definir más de una
articulación para moverse a la posición de reposo durante un solo paso. Esto significa que todas las
articulaciones posiblemente pueden volver a la posición de reposo al mismo tiempo. Para los robots
SCARA (incluidos los robots de 4 ejes de la serie RS), se recomienda que se defina la articulación Z
normalmente para que se mueva a la posición de reposo primero (en el Paso 1), y luego permita que las
demás articulaciones sigan en pasos posteriores.
La instrucción Hordr espera que se defina un patrón de bits para cada uno de los pasos. Cada articulación
tiene asignada un bit específico. Cuando el bit se establece en “1” para un paso específico, entonces la
articulación correspondiente volverá a la posición de reposo. Cuando el bit se borra y queda en “0”,
entonces el eje correspondiente no volverá a la posición de reposo durante ese paso. Los patrones del bit de
la articulación están asignados de la siguiente manera:
Manual de referencia del lenguaje SPEL+ Rev.2
323
Manual de referencia del lenguaje SPEL+
Articulació
n:
1
2
3
4
5
6
7
8
9
Número
de bit:
bit 0 bit 1 bit 2 bit 3 bit 4 bit 5 bit 6 bit 7 bit 8
Código
binario:
&B0001 &B0010 &B0100 &B1000
&B100
00
&B100
000
&B100
0000
&B100
00000
&B100
000000
También consulte
Home, HomeSet
Ejemplo de instrucción Hordr
A continuación, se muestran algunos ejemplos de la ventana Command para los robots SCARA (incluidos
los robots de 4 ejes de la serie RS):
Este ejemplo define el orden de regreso a la posición de reposo como J3 en el primer paso, J1 en el segundo
paso, J2 en el tercer paso y J4 en el cuarto paso. El orden se especifica con valores binarios.
>hordr &B0100, &B0001, &B0010, &B1000
Este ejemplo define el orden de regreso a la posición de reposo como J3 en el primer paso, luego las
articulaciones J1, J2 y J4 simultáneamente en el segundo paso. El orden se especifica con valores
decimales.
>hordr 4, 11, 0, 0
Este ejemplo muestra el orden de regreso a la posición de reposo actual en números decimales.
>hordr
4, 11, 0, 0
>
324
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Hordr
Arroja el valor Hordr para un paso especificado.
Sintaxis
Hordr(stepNumber)
Parámetros
stepNumber Expresión entera que representa el paso de Hordr que se recuperará.
Valores devueltos
Valor entero que contiene el valor de Hordr para el paso especificado.
También consulte
Home, HomeSet
Ejemplo de función Hordr
Integer a
a = Hordr(1)
Manual de referencia del lenguaje SPEL+ Rev.2
325
Manual de referencia del lenguaje SPEL+
Instrucción Hour
Muestra el tiempo de funcionamiento acumulado del controlador.
Sintaxis
Hour
Descripción
Muestra la cantidad de tiempo que ha estado activado el controlador y ha estado ejecutando SPEL. (Tiempo
de funcionamiento acumulado) El tiempo siempre se muestra en unidades de horas.
También consulte
Time
Ejemplo de instrucción Hour
El siguiente ejemplo se realizó en la ventana Command:
> hour
2560
>
326
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Hour
Arroja el tiempo de funcionamiento acumulado del controlador.
Sintaxis
Hour
Valores devueltos
Arroja el tiempo de funcionamiento acumulado del controlador (tiempo real, en horas).
También consulte
Time
Ejemplo de función Hour
Print "Number of controller operating hours: ", Hour
Manual de referencia del lenguaje SPEL+ Rev.2
327
Manual de referencia del lenguaje SPEL+
Instrucción If…Then…Else…EndIf
Ejecuta las instrucciones, basada en una condición especificada.
Sintaxis
(1) If condition Then
stmtT1
.
.
[ElseIf condition Then]
stmtT1
.
.
[Else]
stmtF1
.
.
EndIf
(2) If condition Then stmtT1 [; stmtT2...] [Else stmtF1 [; stmtF2...]]
Parámetros
condition Cualquier condición de prueba válida que arroje un resultado True (cualquier número que no
sea “0”) o False (devuelto como “0”). (Consulte las condiciones de muestra a continuación)
stmtT1 Se ejecuta cuando la condición es True. (Aquí se pueden ingresar varias instrucciones en un
estilo bloqueado If...Then...Else).
stmtF1 Se ejecuta cuando la condición es False. (Aquí se pueden ingresar varias instrucciones en un
estilo bloqueado If...Then...Else).
Descripción
(1) If...Then...Else ejecuta stmtT1, etc. cuando la instrucción condicional es True. Si la condición es False,
entonces se ejecuta stmtF1, etc. La parte Else de la instrucción If...Then...Else es opcional. Si omite la
instrucción Else y la instrucción condicional es False, se ejecutará la instrucción posterior a la
instrucción EndIf. En caso de instrucciones If...Then...Else bloqueadas, se necesita la instrucción EndIf
para cerrar el bloqueo, independiente de si se usa Else o no.
(2) También se puede usar If...Then...Else en un estilo no bloqueado. Esto permite que todas las
instrucciones de If...Then...Else se coloquen en la misma línea. Tenga en cuenta que, cuando use
If...Then...Else de manera no bloqueada, no se necesita la instrucción EndIf. Si se cumple (True) la
condición If especificada en esta línea, se ejecutan las instrucciones entre Then y Else. Si no se cumple
la condición (False), se ejecutan las instrucciones a continuación de Else. No se necesita la sección
Else de If...Then...Else. Si no hay una palabra clave Else, entonces el control pasa a la siguiente
instrucción en el programa si la condición If es False.
La salida lógica de la instrucción condicional es cualquier número que no sea “1” cuando es True, y “0”
cuando es False.
328
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Notas
Condiciones de muestra:
a = b :a es igual a b
a < b :b es mayor que a
a >= b :a es mayor que o igual a b
a <> b :a no es igual a b
a > b :b es menor que a
a <= b :a es menor o igual que b
También se pueden usar las operaciones lógicas And, Or y Xor.
True en las condiciones:
True constante es 1 y el tipo es booleano, por lo que debe tener cuidado cuando lo use en una condición
de comparación con otro tipo de variable.
Function main
Integer i
i = 3
If i = True Then
Print "i=TRUE"
EndIf
Fend
Cuando ejecuta el programa anterior, se muestra “i=TRUE”.
El juicio de la condición, lo que incluye el tipo booleano, se realiza con “0” o “no 0”.
Si el valor de “i” no es “0”, se considera que se estableció la condición y se muestra “i=TRUE”.
También consulte
Else, Select...Case, Do...Loop
Ejemplo de instrucción If/Then/Else
<Single Line If...Then...Else>
El siguiente ejemplo muestra una función simple que revisa una entrada para determinar si activar o
desactivar una salida específica. Esta tarea puede ser una tarea de E/S de fondo que se ejecuta
continuamente.
Function main
Do
Fend
If Sw(0) = 1 Then On 1 Else Off 1
Loop
<Blocked If...Then...Else>
El siguiente ejemplo muestra una función simple que revisa algunas entradas e imprime el estado de estas
entradas.
If Sw(0) = 1 Then Print "Input0 ON" Else Print "Input0 OFF"
'
If Sw(1) = 1 Then
If Sw(2) = 1 Then
Print "Input1 On and Input2 ON"
Else
Print "Input1 On and Input2 OFF"
EndIf
Else
Manual de referencia del lenguaje SPEL+ Rev.2
329
Manual de referencia del lenguaje SPEL+
If Sw(2) = 1 Then
Print "Input1 Off and Input2 ON"
Else
Print "Input1 Off and Input2 OFF"
EndIf
EndIf
<Otros ejemplos de sintaxis>
If x = 10 And y = 3 Then GoTo 50
If test <= 10 Then Print "Test Failed"
If Sw(0) = 1 Or Sw(1) = 1 Then Print "Everything OK"
330
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ImportPoints
Importa un archivo de punto en el proyecto actual del robot especificado.
Sintaxis
ImportPoints sourcePath, filename, [robotNumber]
Parámetros
sourcePath Expresión de cadena que contiene la ruta y archivo específicos para importar al
proyecto actual. La extensión puede ser “.pts” o “.pnt” (formato EPSON RC+ 3.x y
4.x).
Consulte ChDisk para conocer detalles.
fileName Expresión de cadena que contiene el archivo específico que se importará en el
proyecto actual del robot actual. La extensión debe ser ".pts".
No puede especificar una ruta de archivo y fileName no tiene efecto de ChDisk.
Consulte ChDisk para conocer detalles.
robotNumber Opcional. Expresión entera que especifica el robot con el que se debería asociar el
archivo de punto. Si robotNumber = 0, entonces el archivo de punto se importa
como un archivo de punto común. Si se omite robotNumber, se usa el número de
robot actual.
Descripción
ImportPoints copia un archivo de punto en el archivo del proyecto actual y lo agrega a los archivos del
proyecto del robot especificado. Entonces, se compila el archivo de punto el cual está listo para cargarlo
con el comando LoadPoint. Si ya existe el archivo para el robot actual, se sobrescribirá y volverá a
compilar.
Los datos de punto se guardan en la tarjeta Compact Flash dentro del controlador. Por lo tanto,
ImportPoints comienza a escribir en Compact Flash. La escritura frecuente en la memoria Compact Flash
reducirá la vida útil de la memoria Compact Flash. Recomendamos usar ImportPoints solo para guardar
los datos de punto.
Posibles errores
El archivo no existe
Si sourcePath no existe, ocurrirá un error.
No se puede especificar una ruta
Si fileName contiene una ruta, ocurrirá un error.
Archivo de punto para otro robot.
Si fileName es un archivo de punto de otro robot, se genera un error.
También consulte
LoadPoints, Robot, SavePoints
Ejemplo de instrucción ImportPoints
Function main
Robot 1
ImportPoints "c:\mypoints\model1.pts", "robot1.pts"
LoadPoints "robot1.pts"
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
331
Manual de referencia del lenguaje SPEL+
Función In
Arroja el estado del puerto de bytes especificado. Cada puerto contiene 8 canales de entrada.
Sintaxis
In(byteportNumber)
Parámetros
byteportNumber Número entero que representa un puerto de ocho bits (un byte).
Valores devueltos
Arroja un valor entero entre 0 y 255. El valor devuelto es 8 bits, donde cada bit corresponde a 1 canal de
entrada.
Descripción
In proporciona la capacidad de ver el valor de 8 canales de entrada al mismo tiempo. La instrucción In se
puede usar para guardar el estado de los 8 canales de E/S en una variable, o bien, se puede usar con la
instrucción Wait para esperar hasta que se cumpla una condición específica que involucre más de 1 canal
de E/S.
Ya que se revisan 8 canales al mismo tiempo, los valores devueltos varían entre 0 y 255. Revise la
siguiente tabla para ver cómo corresponden los valores enteros devueltos a los canales de entrada
individuales.
Resultado del canal de entrada (mediante el puerto de bytes n.º 0)
Valores devueltos 7 6 5 4 3 2 1 0
1 Off Off Off Off Off Off Off On
5 Off Off Off Off Off On Off On
15 Off Off Off Off On On On On
255 On On On On On On On On
Resultado del canal de entrada (mediante el puerto de bytes n.º 2)
Valores devueltos 23 22 21 20 19 18 17 16
3 Off Off Off Off Off Off On On
7 Off Off Off Off Off On On On
32 Off Off On Off Off Off Off Off
255 On On On On On On On On
También consulte
InBCD, MemIn, MemOff, MemOn, MemSw, Off, On, OpBCD, Oport, Out, Sw, Wait
332
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de función In
Para el siguiente ejemplo, asumamos que los canales de entrada 20, 21, 22 y 23 están conectados a
dispositivos de detección, de modo que no se debería iniciar la aplicación hasta que cada uno de los
dispositivos arroje una señal On que indique que todo está listo para comenzar. El ejemplo de programa
obtiene el estado de los 8 canales de entrada del puerto de bytes 2 y se asegura de que los canales 20, 21, 22
y 23 tengan el estado On antes de continuar. Si no tienen el estado On (es decir, no arrojan un valor de 1),
aparece un mensaje de error para el operador y se detiene la tarea.
En el programa, la variable “var1” se compara contra el número 239 ya que, para que las entradas 20, 21,
22 y 23 estén todas en estado On, el resultado de In(2) será 240 o mayor. (No nos importan las entradas 16,
17, 18 y 19 en este caso, por lo que cualquier valor entre 240 y 255 permitirá que el programa continúe).
Function main
Integer var1
var1 = In(2) 'Obtiene el estado de los 8 canales de entrada del puerto de bytes 2
If var1 > 239 Then
Go P1
Go P2
'Execute other motion statements here
'.
'.
Else
Print "Error in initialization!"
Print "Sensory Inputs not ready for cycle start"
Print "Please check inputs 20,21,22, and 23 for"
Print "proper state for cycle start and then"
Print "start program again"
EndIf
Fend
No podemos establecer entradas en la ventana Command, pero podemos revisarlas. Para los ejemplos que
se muestran a continuación, asumiremos que los canales de entrada 1, 5 y 15 están On. Todas las demás
entradas están Off.
> print In(0)
34
> print In(1)
128
> print In(2)
0
Manual de referencia del lenguaje SPEL+ Rev.2
333
Manual de referencia del lenguaje SPEL+
Función InBCD
Arroja el estado de entrada de las 8 entradas con el formato BCD. (Decimal codificado binariamente)
Sintaxis
InBCD(portNumber)
Parámetros
portNumber Número entero que representa un puerto de ocho bits (un byte).
Valores devueltos
Arroja el estado de entrada del puerto de entrada (0 a 9) como un decimal codificado binariamente (0 a 99).
Descripción
InBCD lee simultáneamente 8 líneas de entrada con el formato BCD. El parámetro portNumber de la
instrucción InBCD define el grupo de 8 entradas que se leerá, donde portNumber = 0 significa las entradas
0 a 7, portNumber = 1 significa las entradas 8 a 15, etc.
El valor resultante de las 8 entradas se arroja en formato BCD. El valor devuelto puede tener 1 o 2 dígitos
entre 0 y 99. El primer dígito (o dígito de las decenas) corresponde a las 4 salidas superiores del grupo de 8
salidas que selecciona portNumber. El segundo dígito (o dígito de las unidades) corresponde a las 4 salidas
inferiores del grupo de 8 salidas que selecciona portNumber.
Dado que las entradas válidas en el formato BCD varían entre 0 y 9 para cada dígito, no se puede obtener
cada combinación de E/S. La siguiente tabla muestra algunas de las combinaciones posibles de E/S y sus
valores devueltos asociados, asumiendo que portNumber es 0.
Configuración de entrada (Número de entrada)
Valores
devueltos
7 6 5 4 3 2 1 0
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 On Off Off On On Off Off On
Tenga en cuenta que el formato de decimal codificado binariamente solo permite especificar valores
decimales. Esto significa que, mediante el uso del formato de decimal codificado binariamente, es
imposible recuperar un valor válido si todas las entradas de un puerto específico se activan al mismo
tiempo cuando se usa la instrucción InBCD. El valor más grande posible que arrojará InBCD es 99. En la
tabla anterior, es fácil ver que, cuando el valor devuelto para InBCD es 99, no están todas las entradas
activadas. En el caso de un valor devuelto de 99, las entradas 0, 3, 4 y 7 están en estado On y todas las
demás están en Off.
334
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Nota
Diferencia entre InBCD e In
Las instrucciones InBCD e In son muy similares en el lenguaje SPEL
+
. Sin embargo, existe una gran
diferencia entre ambos, la cual se muestra a continuación:
- La instrucción InBCD utiliza un formato de decimal codificado binariamente para especificar el
formato del valor devuelto para las 8 entradas. Dado que el formato de decimal codificado
binariamente excluye el uso de los valores &HA, &HB, &HC, &HD, &HE o &HF, no se pueden
cumplir todas las combinaciones para las 8 entradas.
- La instrucción In funciona de manera muy similar a la instrucción InBCD, excepto que In permite
usar el valor devuelto para todas las 8 entradas. (Es decir, 0 a 255 contra 0 a 99 para InBCD). Esto
permite leer todas las combinaciones posibles para los grupos de entradas de 8 bits.
También consulte
In, MemOff, MemOn, MemOut, MemSw, Off, On, OpBCD, Oport, Out, Sw, Wait
Ejemplo de función InBCD
Algunos ejemplos simples de la ventana Command incluyen los siguientes:
Asume que las entradas 0, 4, 10, 16, 17 y 18 están en On (el resto de las entradas están en Off).
> Print InBCD(0)
11
> Print InBCD(1)
04
> Print InBCD(2)
07
>
Manual de referencia del lenguaje SPEL+ Rev.2
335
Manual de referencia del lenguaje SPEL+
Instrucción Inertia
Especifica la inercia de carga y la excentricidad del robot actual.
Sintaxis
Inertia [ loadInertia ], [ eccentricity ]
Inertia
Parámetros
loadInertia Opcional. Expresión real que especifica el momento total de inercia en
kg·m
2
alrededor del centro de la articulación del efector final, lo que incluye el efector final y
la pieza.
eccentricity Opcional. Expresión real que especifica la excentricidad en mm alrededor del centro
de la articulación del efector final, lo que incluye el efector final y la pieza.
Valores devueltos
Cuando se omiten los parámetros, se muestran los parámetros actuales de Inertia.
Descripción
Use la instrucción Inertia para especificar el momento total de inercia para la carga en la articulación del
efector final. Esto permite que el sistema compense de manera más precisa la aceleración, la
desaceleración y las ganancias del servo para la articulación del efector final. También puede especificar la
distancia desde el centro de la articulación del efector final al centro de gravedad del efector final y la pieza
con el parámetro eccentricity.
También consulte
Función Inertia
Ejemplo de instrucción Inertia
Inertia 0.02, 1
336
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Inertia
Arroja el valor del parámetro de inercia.
Sintaxis
Inertia(paramNumber)
Parámetros
paramNumber Expresión entera que puede tener los siguientes valores:
0: Genera que la función arroje “1” si el robot es compatible con los parámetros de
inercia o “0” si no lo es.
1: Genera que la función arroje la inercia de carga en kg m
2
.
2: Genera que la función arroje la excentricidad en mm.
Valores devueltos
El valor real de la configuración especificada.
También consulte
Instrucción Inertia
Ejemplo de función Inertia
Real loadInertia, eccentricity
loadInertia = Inertia(1)
eccentricity = Inertia(2)
Manual de referencia del lenguaje SPEL+ Rev.2
337
Manual de referencia del lenguaje SPEL+
Función InPos
Arroja el estado de posición del robot especificado.
Sintaxis
InPos
Valores devueltos
True si la posición se ha completado correctamente; de lo contrario, False.
También consulte
CurPos, FindPos, WaitPos
Ejemplo de función InPos
Function main
P0 = XY(0, -100, 0, 0)
P1 = XY(0, 100, 0, 0)
Xqt MonitorPosition
Do
Jump P0
Wait .5
Jump P1
Wait .5
Loop
Fend
Function MonitorPosition
Boolean oldInPos, pos
Do
Pos = InPos
If pos <> oldInPos Then
Print "InPos = ", pos
EndIf
oldInPos = pos
Loop
Fend
338
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Input
Recibe los datos de entrada del dispositivo de visualización y los almacena en variables.
Sintaxis
Input varName [ , varName, varName,... ]
Parámetros
varName Nombre de variable. Se pueden usar múltiples variables con el comando Input,
siempre que estén separados por comas.
Descripción
Input recibe datos desde el dispositivo de visualización y asigna los datos a las variables que se usan con la
instrucción Input.
Cuando se ejecuta la instrucción Input, aparece una indicación “?” en el dispositivo de visualización.
Después de ingresar los datos, presione la tecla de entrada (Enter) en el teclado.
Notas
Reglas para la entrada numérica
Cuando se ingresan valores numéricos y se encuentran datos no numéricos en la entrada que son distintos
del delimitador (coma), la instrucción Input descarta los datos no numéricos y todos los datos posteriores a
los datos no numéricos.
Reglas para la entrada de cadena
Cuando se ingresan cadenas, se permiten caracteres numéricos y alfabéticos como datos.
Otras reglas para la instrucción Input
- Cuando se especifica más de una variable en la instrucción, las entradas de datos numéricos destinada
para cada variable deben estar separadas por un carácter de coma (“,”).
- Se permiten nombres de variable numérica y nombres de variable de cadena. Sin embargo, el tipo de
datos de entrada debe coincidir con el tipo de variable.
Posible error
Diferencia entre el número de variables y los datos de entrada
Para múltiples variables, la cantidad de datos de entrada deben coincidir con la cantidad de nombres de
variable de entrada. Cuando la cantidad de variables especificada en la instrucción es distinta a la cantidad
de datos numéricos recibidos desde el teclado, ocurrirá un Error 2505.
También consulte
Input #, Line Input, Line Input #, Print, String
Manual de referencia del lenguaje SPEL+ Rev.2
339
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Input
Este es un ejemplo de programa simple que usa la instrucción Input.
Function InputNumbers
Integer A, B, C
Print "Please enter 1 number"
Input A
Print "Please enter 2 numbers separated by a comma"
Input B, C
Print "A = ", A
Print "B = ", B, "C = ", C
Fend
A continuación se muestra una sesión de muestra del programa anterior en ejecución:
(Use el menú Run [Ejecutar] o la tecla F5 para iniciar el programa)
Please enter 1 number
?-10000
Please enter 2 numbers separated by a comma
?25.1, -99
-10000
25.1 -99
B = 25.1 C = -99
>
340
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Input #
Permite que se reciban datos de cadena o numéricos desde un archivo, puerto de comunicación o base de
datos, y se almacenen en una o más variables.
Sintaxis
Input #portNumber, varName [ , varName, varName,... ]
Parámetros
#portNumber Número de ID que especifica un archivo, puerto de comunicación, base de datos o
dispositivo. El número de archivo se puede especificar en las instrucciones ROpen,
WOpen y AOpen. El número del puerto de comunicación se puede especificar en las
instrucciones OpenCom (RS-232C) y OpenNet (TCP/IP).
El número de la base de datos se puede especificar en la instrucción OpenDB.
La ID del dispositivo es:
21 RC+
24 TP (solo TP1)
20 TP3
varName Nombre de la variable que recibirá los datos.
Descripción
La instrucción Input # recibe los datos numéricos o de cadena desde el dispositivo especificado por handle,
y asigna los datos a las variables.
Notas
Reglas para la entrada numérica
Cuando se ingresan valores numéricos y se encuentran datos no numéricos en la entrada que son distintos
del delimitador (coma), la instrucción Input descarta los datos no numéricos y todos los datos posteriores a
los datos no numéricos.
Reglas para la entrada de cadena
Cuando se ingresan cadenas, se permiten caracteres numéricos y alfabéticos como datos.
Longitud máxima de datos
Este comando puede manejar hasta 256 bytes.
Sin embargo, el objetivo es la base de datos, la que puede manipular hasta 4096 bytes.
Si el objetivo es el puerto de comunicación (TCP/IP), puede manipular hasta 1024 bytes.
Otras reglas para la instrucción Input
- Cuando se especifica más de una variable en la instrucción, las entradas de datos numéricos destinada
para cada variable deben estar separadas por un carácter de coma (“,”) o en blanco (“ ”).
- Cuando hay más de una variable de cadena o si se especifica tanto la variable numérica como la variable
de cadena, los datos numéricos deben estar separados por un carácter de coma (“,”) o en blanco (“ ”).
- El tipo de datos de entrada debe coincidir con el tipo de variable.
Los siguientes programas son ejemplos para intercambiar las variables de cadena y las variables
numéricas entre los controladores con un puerto de comunicación.
Punto de envío (cualquier patrón es correcto).
Print #PortNum, "$Status,", InData, OutData
Print #PortNum, "$Status", ",",InData, OutData
Punto de destino
Input #PortNum, Response$, InData, OutData
Manual de referencia del lenguaje SPEL+ Rev.2
341
Manual de referencia del lenguaje SPEL+
Posible error
Diferencia entre el número de variables y los datos de entrada
Cuando la cantidad de variables especificada en la instrucción es distinta a la cantidad de datos numéricos
recibidos desde el dispositivo, ocurrirá un Error 2505.
También consulte
Input, Line Input, Line Input #, Print #
Ejemplo de instrucción Input #
Esta función muestra algunos ejemplos simples de instrucción Input #.
Function GetData
Integer A
String B$
OpenCom #1
Print #1, "Send"
Input #1, A 'Obtiene un valor numérico desde el Puerto n.° 1
Input #1, B$ 'Obtiene una cadena desde el Puerto n.° 1
CloseCom #1
Fend
342
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción InputBox
Muestra una indicación en un cuadro de diálogo, espera que el operador ingrese el texto o elija un botón y
arroja el contenido del cuadro.
Sintaxis
InputBox prompt, title, default, data$
Parámetros
prompt Expresión de cadena que se muestra como un mensaje en el cuadro de diálogo.
title Expresión de cadena que se muestra en la barra de título del cuadro de diálogo.
default Expresión de cadena que se muestra en el cuadro de texto como una respuesta
predeterminada. Si no se desea un valor predeterminado, use una cadena vacía ("").
data$ Una variable de cadena contendrá lo que ingresó el operador. Si el operador hace
clic en Cancel (Cancelar), esta cadena será “@”.
Descripción
InputBox muestra el diálogo y espera que el operador haga clic en OK (Aceptar) o Cancel. data es una
cadena que contiene lo que escribió el operador.
También consulte
MsgBox
Ejemplo de instrucción InputBox
Esta función muestra un ejemplo de InputBox.
Function GetPartName$ As String
String prompt$, title$, data$
prompt$ = "Enter part name:"
title$ = "Sample Application"
InputBox prompt$, title$, "", data$
If data$ <> "@" Then
GetPartName$ = data$
EndIf
Fend
La siguiente imagen muestra la salida de ejemplo desde el código de ejemplo de InputBox que se mostró
anteriormente.
Manual de referencia del lenguaje SPEL+ Rev.2
343
Manual de referencia del lenguaje SPEL+
Función InReal
Arroja los datos de entrada de 2 palabras (32 bits) como los datos de punto flotantes (en cumplimiento con
IEEE754) de 32 bits.
Sintaxis
InReal(WordPortNumber)
Parámetros
WordPortNumber Expresión entera que representa la palabra de entrada de E/S.
Valores devueltos
Arroja el estado del puerto de entrada en el número de tipo real.
Descripción
Desde el puerto de palabra de entrada especificado por el número de puerto de palabra, recupere los 2
valores de palabra de entrada como el valor de tipo real IEEE754. La etiqueta de palabra de entrada se
puede usar para el parámetro de número de puerto de palabra.
La función InReal no se puede usar para el comando Wait o la condición de Till, Find, Sense.
También consulte
In, InW, InBCD, Out, OutW, OpBCD, OutReal
Ejemplo de función InW
Real realVal
realVal = InReal(32)
344
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función InsideBox
Arroja el estado de comprobación del área de control de acercamiento.
Sintaxis
InsideBox(AreaNum [, robotNumber | All])
Parámetros
AreaNum Expresión entera de 1 a 15 que representa el área de control de acercamiento de la
cual se arrojará el estado.
robotNumber Valor entero que incluye el número de robot que desea buscar.
Si se omite, se especificará el número del robot actual.
Si especifica All (Todo), arroja True si hay un robot en el área de control.
Valores devueltos
True si el efector final del robot se acerca al área de control de acercamiento especificada; de lo contrario,
False.
También consulte
Box, BoxClr, BoxDef, GetRobotInsideBox, InsidePlane
Nota
Puede usar la instrucción Wait con InsideBox para esperar el resultado de la función InsideBox en EPSON
RC+ 5.0. No obstante, no se puede usar en EPSON RC+ 6.0 y 7.0.
En este caso, use la función GetRobotInsideBox en lugar de la función InsideBox.
Tabla de correspondencia
RC+
versión
Controlado
r de robot
Wait
Till, Find,
Sense, Trap
Otros comandos
(como Print)/
procesamiento de
decisiones de
bifurcación
Uso de la función
GetRobotInsideBox
RC+ 7.0 RC700 No disponible No disponible Disponible Todo disponible
RC+ 7.0 RC90
N
o dis
p
onible
N
o dis
p
onible Dis
p
onible Todo dis
p
onible
RC+ 6.0 RC620 No disponible No disponible Disponible Todo disponible
RC+ 5.0 RC90 Dis
p
onible
N
o dis
p
onible Dis
p
onible
N
o dis
p
onible
No disponible: Combinación no disponible
Disponible: Combinación disponible
Todo disponible: Disponible para Wait, Till, Find, Sense, Trap, Print y el procesamiento de decisiones
de bifurcación.
Ejemplo de función InsideBox
El siguiente programa revisa si el Robot 1 está en el área de control (Box 3) o no.
Function PrintInsideBox
If InsideBox(3,1) = True Then
Print “Inside Box3”
Else
Print “Outside Box3”
Endif
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
345
Manual de referencia del lenguaje SPEL+
Función InsidePlane
Arroja el estado de comprobación del plano de control de acercamiento.
Sintaxis
InsidePlane(PlaneNum [, robotNumber | All])
Parámetros
PlaneNum Expresión entera de 1 a 15 que representa el plano de control de acercamiento del
cual se arrojará el estado.
robotNumber Valor entero que incluye el número de robot que desea buscar.
Si se omite, se especificará el número del robot actual.
Si especifica All (Todo), arroja True si hay un robot en el área de control.
Valores devueltos
True si el efector final del robot se acerca al plano de control de acercamiento especificada; de lo contrario,
False.
También consulte
InsideBox, GetRobotInsidePlane, Plane, PlaneClr, PlaneDef
Nota
Puede usar la instrucción Wait con InsidePlane para esperar el resultado de la función InsidePlane en
EPSON RC+ 5.0. No obstante, no se puede usar en EPSON RC+ 6.0 y 7.0.
En este caso, use la función GetRobotInsidePlane en lugar de la función InsidePlane.
Tabla de correspondencia
RC+
versión
Controlado
r de robot
Wait
Till, Find,
Sense, Trap
Otros comandos
(como Print)/
procesamiento de
decisiones de
bifurcación
Uso de la función
GetRobotInsidePlane
RC+ 7.0 RC700 No disponible No disponible Disponible Todo disponible
RC+ 7.0 RC90
N
o dis
p
onible
N
o dis
p
onible Dis
p
onible Todo dis
p
onible
RC+ 6.0 RC620 No disponible No disponible Disponible Todo disponible
RC+ 5.0 RC90 Dis
p
onible
N
o dis
p
onible Dis
p
onible
N
o dis
p
onible
No disponible: Combinación no disponible
Disponible: Combinación disponible
Todo disponible: Disponible para Wait, Till, Find, Sense, Trap, Print y el procesamiento de decisiones
de bifurcación.
Ejemplo de función InsidePlane
Esto es un ejemplo para comprobar si el Robot 1 está en el plano de comprobación (Plano 3).
Function PrintInsidePlane
If InsidePlane(3,1) = True Then
Print Inside Plane3
Fend
Else
Endif
Print Outside Plane3
346
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función InStr
Arroja la posición de una cadena dentro de otra.
Sintaxis
InStr(string, searchString)
Parámetros
string Expresión de cadena que se debe buscar.
searchString Expresión de cadena que se debe buscar dentro de string.
Valores devueltos
Arroja al posición de la cadena de búsqueda si se encuentra la ubicación; de lo contario, es -1.
También consulte
Mid$
Ejemplo de función InStr
Integer pos
pos = InStr("abc", "b")
Manual de referencia del lenguaje SPEL+ Rev.2
347
Manual de referencia del lenguaje SPEL+
Función Int
Convierte un número real en un número entero. Arroja el número entero más grande que sea menor o igual
que el valor especificado.
Sintaxis
Int(number)
Parámetros
number Una expresión de número real.
Valores devueltos
Arroja un valor entero del número real que se usa en number.
Descripción
Int(number) toma el valor de number y arroja el número entero más grande que sea menor o igual que
number.
Nota
Para valores menores que 1 (números negativos)
Si el parámetro number tiene un valor menor que 1, entonces el valor devuelto tiene un valor absoluto
mayor que number. (Por ejemplo, si el número = -1,35, entonces se arrojará -2).
También consulte
Abs, Atan, Atan2, Cos, Mod, Not, Sgn, Sin, Sqr, Str$, Tan, Val
Ejemplo de función Int
Algunos ejemplos simples de la ventana Command incluyen los siguientes:
> Print Int(5.1)
5
> Print Int(0.2)
0
> Print Int(-5.1)
-6
>
348
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Int32
Declara variables del tipo Int32. (Variable de número entero de 4 bytes).
Sintaxis
Int32 varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Int32 se usa para declarar variables como un tipo entero. Las variables de número entero pueden incluir
valores de -2147483648 a 2147483647. Las variables locales se deben declarar al inicio de una función.
Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int64, Integer, Long, Real, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Int32
El siguiente ejemplo muestra un programa simple que declara algunas variables con Int32.
Function int32test
Int32 A(10) 'Matriz de una dimensión de Int32
Int32 B(10, 10) 'Matriz de dos dimensiones de Int32
Int32 C(5, 5, 5) 'Matriz de tres dimensiones de Int32
Int32 var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
349
Manual de referencia del lenguaje SPEL+
Instrucción Int64
Declara variables del tipo Int64. (Variable de número entero de 8 bytes).
Sintaxis
Int64 varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Int64 se usa para declarar variables como un tipo entero. Las variables de número entero pueden incluir
valores de -9223372036854775808 a 9223372036854775807. Las variables locales se deben declarar al
inicio de una función. Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Integer, Long, Real, Short, String, UByte, UInt32, UShort
UInt64
Ejemplo de instrucción Int64
El siguiente ejemplo muestra un programa simple que declara algunas variables con Int64.
Function int64test
Int64 A(10) 'Matriz de una dimensión de Int64
Int64 B(10, 10) 'Matriz de dos dimensiones de Int64
Int64 C(5, 5, 5) 'Matriz de tres dimensiones de Int64
Int64 var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
350
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Integer
Declara variables del tipo Integer. (Variable de número entero de 2 bytes).
Sintaxis
Integer varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar como tipo entero.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Integer se usa para declarar variables como un tipo entero. Las variables de tipo entero pueden incluir
números enteros con valores de -32768 a 32767. Las variables locales se deben declarar al inicio de una
función. Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Long, Real, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Integer
El siguiente ejemplo muestra un programa simple que declara algunas variables con Integer.
Function inttest
Integer A(10) 'Matriz de una dimensión de Integer
Integer B(10, 10) 'Matriz de dos dimensiones de Integer
Integer C(5, 5, 5) 'Matriz de tres dimensiones de Integer
Integer var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
351
Manual de referencia del lenguaje SPEL+
Función InW
Arroja el estado del puerto de palabra de entrada especificado. Cada puerto de palabra contiene 16 bits de
entrada.
Sintaxis
InW(WordPortNum)
Parámetros
WordPortNum Expresión entera que representa la palabra de entrada de E/S.
Valores devueltos
Arroja el estado actual de las entradas (números enteros largos de 0 a 65535).
Nota
Regla del puerto de palabra que incluye el bit de entrada de la E/S de tiempo real
Los puertos de palabra =1, 3, 17, 19 arrojan el estado del puerto de salida con un número entero de 0 a 255.
El bit de entrada de la E/S en tiempo real no se ve reflejado.
También consulte
In, Out, OutW
Ejemplo de función InW
Long word0
word0 = InW(0)
352
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función IODef
Arroja si se definió el bit, byte o palabra especificados de entrada o salida o la etiqueta de E/S.
Sintaxis
IODef (IOType, IOWidth, portNumber)
IODef (IOlabel)
Parámetros
IOType Expresión entera que representa el tipo de E/S.
0 - Entrada
1 - Salida
2 - Memoria
IOWidth Expresión entera que representa el ancho del puerto: 1 (bit), 8 (byte) o 16 (palabra).
portNumber Expresión entera que representa el número de puerto de bit, byte o palabra para el cual se
devuelve la etiqueta.
IOlabel Expresión de cadena que especifica la E/S estándar o la etiqueta de E/S de memoria.
Valores devueltos
True si se definió el bit, byte o palabra especificados de entrada o salida o la etiqueta de E/S; de lo
contrario, False.
También consulte
IOLabel$, IONumber
Ejemplo de función IODef
Integer i
For i = 0 To 15
If IODef( 0, 1, i) = TRUE Then
Print “Port “ , i, “ is defined”
Else
Print “Port “ , i, “ is undefined”
End If
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
353
Manual de referencia del lenguaje SPEL+
Función IOLabel$
Arroja la etiqueta de E/S para un bit, byte o palabra especificados de entrada o salida.
Sintaxis
IOLabel$(IOType, IOWidth, portNumber)
Parámetros
IOType Expresión entera que representa el tipo de E/S.
0 - Entrada
1 - Salida
2 - Memoria
IOWidth Expresión entera que representa el ancho del puerto: 1 (bit), 8 (byte) o 16 (palabra).
portNumber Expresión entera que representa el número de puerto de bit, byte o palabra para el cual se
devuelve la etiqueta.
Valores devueltos
Cadena que contiene la etiqueta.
También consulte
PLabel$, IONumber, IODef
Ejemplo de función IOLabel$
Integer i
For i = 0 To 15
Print "Input ", i, ": ", IOLabel$(0, 1, i)
Next i
354
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función IONumber
Arroja el número de E/S de la etiqueta de E/S especificada.
Sintaxis
IONumber(IOlabel)
Parámetros
IOlabel Expresión de cadena que especifica la E/S estándar o la etiqueta de E/S de memoria.
Valores devueltos
Arroja el número de puerto de E/S (bit, byte, palabra) de la etiqueta de E/S especificada. Si no hay una
etiqueta de E/S, se generará un error.
También consulte
IOLabel$, IODef
Ejemplo de función IONumber
Integer IObit
IObit = IONumber("myIO")
IObit = IONUmber("Station" + Str$(station) + "InCycle")
Manual de referencia del lenguaje SPEL+ Rev.2
355
Manual de referencia del lenguaje SPEL+
Instrucción J1Angle
Establece el atributo J1Angle de un punto.
Sintaxis
(1) J1Angle point, [ Step ]
(2) J1Angle
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
Step Opcional. Valor real que especifica el valor definido.
Resultado
El atributo J1Angle se puede usar para los robots serie RS y N.
Si se omite Step, se mostrará el valor de J1Angle para el punto especificado.
Si se omiten ambos parámetros, se mostrará el valor de J1Angle de la posición actual del robot.
Serie RS: Especifica el ángulo de la articulación n.° 1 cuando los valores de las coordenadas X e Y
de un punto son 0(singularidad). J1Angle no tiene significado para otros puntos de
serie del robot.
Serie N: Especifica el ángulo de la articulación n.° 1 cuando los centros de eje de Articulación n.
° 1, n.° 4 y n.° 6, Articulación n.° 1 y n.° 6o Articulación n.° 1 y n.° 4
están en línea recta. J1Angle no tiene significado para otros puntos de serie del robot
(sin singularidad).
También consulte
Hand, Función J1Angle, J1Flag, J2Flag, J4Angle, Función J4Angle
Ejemplo de instrucción J1Angle
J1Angle P0, 10.0
J1Angle P(mypoint), 0.0
356
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J1Angle
Arroja el atributo J1Angle de un punto.
Sintaxis
J1Angle [( point )]
Parámetros
point Expresión de punto
Opcional. Si se omite, arroja la configuración de J1Angle de la posición actual del robot.
Valores devueltos
El atributo J1Angle se puede usar para los robots serie RS y N.
Arroja el ángulo de la articulación 1 cuando los valores de las coordenadas X e Y de un punto son “0”
(singularidad) en un valor real. El atributo J1Angle se puede usar para la serie RS.
Serie RS: Arroja un valor entero que representa el ángulo de la articulación n.° 1 cuando los valores
de las coordenadas X e Y de un punto son 0(singularidad).
Serie N: Arroja un valor entero que representa el ángulo de la articulación n.° 1 cuando los centros
de eje de Articulación n.° 1, n.° 4 y n.° 6, Articulación n.° 1 y n.° 6o
Articulación n.° 1 y n.° 4están en línea recta.
También consulte
Hand, J1Angle, J1Flag, J2Flag, J4Angle, Función J4Angle
Ejemplo de función J1Angle
Print J1Angle(pick)
Print J1Angle(P1)
Print J1Angle
Manual de referencia del lenguaje SPEL+ Rev.2
357
Manual de referencia del lenguaje SPEL+
Instrucción J1Flag
Especifica el atributo J1Flag de un punto.
Sintaxis
(1) J1Flag point, [value ]
(2) J1Flag
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Opcional. Expresión entera.
Para la serie RS:
El rango de J1 0 (/J1F0) va de -90 a +270 grados
El rango de J1 1 (/J1F1) va de -270 a -90 o +270 a +450 grados
Para la serie C8:
El rango de J1 0 (/J1F0) va de 0 a -180 o 0 a +180 grados
El rango de J1 1 (/J1F1) va de -180 a -240 o +180 a -240 grados
Valores devueltos
El atributo J1Flag especifica el rango de valores para la articulación 1 para un punto. Si se omite value, se
muestra el valor de J1Flag para el punto especificado. Cuando se omiten ambos parámetros, se muestra el
valor de J1Flag para la posición actual del robot.
También consulte
Hand, Función J1Flag, J2Flag
Ejemplo de instrucción J1Flag
J1Flag P0, 1
J1Flag P(mypoint), 0
358
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J1Flag
Arroja el atributo J1Flag de un punto.
Sintaxis
J1Flag [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces se arroja la configuración de
J1Flag de la posición actual del robot.
Valores devueltos
0 /J1F0
1 /J1F1
También consulte
Hand, Instrucción J1Flag, J2Flag
Ejemplo de función J1Flag
Print J1Flag(pick)
Print J1Flag(P1)
Print J1Flag
Print J1Flag(Pallet(1, 1))
Manual de referencia del lenguaje SPEL+ Rev.2
359
Manual de referencia del lenguaje SPEL+
Instrucción J2Flag
Establece el atributo J2Flag de un punto.
Sintaxis
(1) J2Flag point, [value ]
(2) J2Flag
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Opcional. Expresión entera.
El rango de J2 0 (/J2F0) va de -180 a +180 grados
El rango de J2 1 (/J2F1) va de -360 a -180 o +180 a +360 grados
Valores devueltos
El atributo J2Flag especifica el rango de valores para la articulación 2 para un punto. Si se omite value, se
muestra el valor de J2Flag para el punto especificado. Cuando se omiten ambos parámetros, se muestra el
valor de J2Flag para la posición actual del robot.
También consulte
Hand, J1Flag, Función J2Flag
Ejemplo de instrucción J2Flag
J2Flag P0, 1
J2Flag P(mypoint), 0
360
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J2Flag
Arroja el atributo J2Flag de un punto.
Sintaxis
J2Flag [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces se arroja la configuración de
J2Flag de la posición actual del robot.
Valores devueltos
0 /J2F0
1 /J2F1
También consulte
Hand, J1Flag, Instrucción J2Flag
Ejemplo de función J2Flag
Print J2Flag(pick)
Print J2Flag(P1)
Print J2Flag
Print J2Flag(P1 + P2)
Manual de referencia del lenguaje SPEL+ Rev.2
361
Manual de referencia del lenguaje SPEL+
Instrucción J4Angle
Establece el atributo J4Angle de un punto.
Sintaxis
(1) J4Angle point, [value ]
(2) J4Angle
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Opcional. Expresión entera.
Resultado
El atributo J4Angle se usa solo para la serie N del robot.
Especifica el ángulo de la articulación n.° 4 cuando los centros del eje de la articulación n.° 4 y n.° 6
están en línea recta.
J4Angle no tiene significado si el punto no es una singularidad.
Si se omite value, se muestra el valor de J4Angle para el punto especificado. Cuando se omiten ambos
parámetros, se muestra el valor de J4Angle para la posición actual del robot.
También consulte
Hand, J1Angle, Función J1Angle, Función J4Angle
Ejemplo de J4Angle
J4Angle P0, 10.0
J4Angle P(mypoint), 0.0
362
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J4Angle
Arroja el atributo J4Angle de un punto.
Sintaxis
J4Angle [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces se arroja la configuración de
J4Angle de la posición actual del robot.
Valores devueltos
Arroja un valor entero que representa el ángulo de la articulación n.° 4 cuando los centros del eje de la
articulación n.° 4 y n.° 6 están en línea recta.
El atributo J4Angle se usa solo para la serie N del robot.
También consulte
Hand, J1Angle, Función J1Angle, J4Angle
Ejemplo de función J4Angle
Print J4Angle(pick)
Print J4Angle(P1)
Print J4Angle
Manual de referencia del lenguaje SPEL+ Rev.2
363
Manual de referencia del lenguaje SPEL+
Instrucción J4Flag
Establece el atributo J4Flag de un punto.
Sintaxis
(1) J4Flag point, [value ]
(2) J4Flag
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Opcional. Expresión entera.
El rango de J4 0 (/J4F0) va de -180 a +180 grados
El rango de J4 1 (/J4F1) va de -360 a -180 o +180 a +360 grados
Valores devueltos
El atributo J4Flag especifica el rango de valores para la articulación 4 para un punto. Si se omite value, se
muestra el valor de J4Flag para el punto especificado. Cuando se omiten ambos parámetros, se muestra el
valor de J4Flag para la posición actual del robot.
También consulte
Elbow, Hand, Función J4Flag, J6Flag, Wrist
Ejemplo de instrucción J4Flag
J4Flag P0, 1
J4Flag P(mypoint), 0
364
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J4Flag
Arroja el atributo J4Flag de un punto.
Sintaxis
J4Flag [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces se arroja la configuración de
J4Flag de la posición actual del robot.
Valores devueltos
0 /J4F0
1 /J4F1
También consulte
Elbow, Hand, Wrist, Instrucción J4Flag, J6Flag
Ejemplo de función J4Flag
Print J4Flag(pick)
Print J4Flag(P1)
Print J4Flag
Print J4Flag(Pallet(1, 1))
Manual de referencia del lenguaje SPEL+ Rev.2
365
Manual de referencia del lenguaje SPEL+
Instrucción J6Flag
Establece el atributo J6Flag de un punto.
Sintaxis
(1) J6Flag point, [value ]
(2) J6Flag
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
value Expresión entera. El rango va de 0 a 127 (/J6F0 a /J6F127). El rango de J6 para el punto
especificado es el siguiente:
( -180 * (value+1) < J6 <= 180 * value ) y ( 180 * value < J6 <= 180 * (value+1) )
Valores devueltos
El atributo J6Flag especifica el rango de valores para la articulación 6 para un punto. Si se omite value, se
muestra el valor de J6Flag para el punto especificado. Cuando se omiten ambos parámetros, se muestra el
valor de J6Flag para la posición actual del robot.
También consulte
Elbow, Hand, J4Flag, Función J6Flag, Wrist
Ejemplo de instrucción J6Flag
J6Flag P0, 1
J6Flag P(mypoint), 0
366
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función J6Flag
Arroja el atributo J6Flag de un punto.
Sintaxis
J6Flag [(point)]
Parámetros
point Opcional. Expresión de punto. Si se omite point, entonces se arroja la configuración de
J6Flag de la posición actual del robot.
Valores devueltos
0 a 127 /J6F0 a /J6F127
También consulte
Elbow, Hand, Wrist, J4Flag, J6Flag
Ejemplo de función J6Flag
Print J6Flag(pick)
Print J6Flag(P1)
Print J6Flag
Print J6Flag(P1 + P2)
Manual de referencia del lenguaje SPEL+ Rev.2
367
Manual de referencia del lenguaje SPEL+
Función JA
Arroja un punto de robot especificado en los ángulos de la articulación.
Sintaxis
JA ( j1, j2, j3, j4, [ j5, j6 ] , [ j7 ], [ j8, j9 ] )
Parámetros
j1 – j9 Expresiones reales que representan los ángulos de la articulación.
Para las articulaciones lineales, se especifica en unidades de mm.
j5 y j6 son para el robot de 6 ejes (incluida la serie N) y el robot de 6 ejes de tipo
articulación.
j7 es para el robot de 7 ejes de tipo articulación.
j8 y j9 son para el eje ST adicional.
Nota
Si se especifica el ángulo que excede el rango de movimiento, ocurre un error de fuera de rango.
Valores devueltos
Un punto de robot cuya ubicación se determina mediante los ángulos de articulación especificados.
Descripción
Use JA para especificar un punto de robot con los ángulos de articulación.
Cuando los puntos devueltos con la función JA especifican una singularidad del robot, los ángulos de
articulación del robot no siempre concuerdan con los ángulos de articulación que se suministran a la
función JA como argumentos durante la ejecución de un comando de movimiento para los puntos. Para
operar el robot con los ángulos de articulación especificados para la función JA, evite una singularidad del
robot.
Por ejemplo:
> go ja(0,0,0,90,0,-90)
> where
WORLD: X: 0.000 mm Y: 655.000 mm Z:
V: -90.000 deg W: -90.000 deg
675.000 mm U: 0.000 deg
JOINT: 1: 0.000 deg 2: 0.000 deg 3: 0.000 deg 4: 0.000 deg
5: 0.000 deg 6: 0.000 deg
PULSE: 1: 0 pls 2: 0 pls 3: 0 pls 4: 0 pls
5: 0 pls 6: 0 pls
> go ja(0,0,0,90,0.001,-90)
> where
WORLD: X: -0.004 mm Y: 655.000 mm Z: 675.000 mm U: 0.000 deg
V: -90.000 deg W: -89.999 deg
JOINT: 1: 0.000 deg 2: 0.000 deg 3: 0.000 deg 4: 90.000 deg
5: 0.001 deg 6: -90.000 deg
PULSE: 1: 0 pls 2: 0 pls 3: 0 pls 4: 2621440 pls
5: 29 pls 6: -1638400 pls
También consulte
AglToPls, XY
Ejemplo de función JA
P10 = JA(60, 30, -50, 45)
Go JA(135, 90, -50, 90)
P3 = JA(0, 0, 0, 0, 0, 0)
368
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Joint
Muestra la posición actual del robot en coordenadas de articulación.
Sintaxis
Joint
También consulte
Pulse, Where
Ejemplo de instrucción Joint
>joint
JOINT: 1: -6.905 deg 2: 23.437 deg 3: -1.999 mm 4: -16.529 deg
>
Manual de referencia del lenguaje SPEL+ Rev.2
369
Manual de referencia del lenguaje SPEL+
Instrucción JRange
Define el rango de trabajo permisible de la articulación especificada en pulsos.
Sintaxis
JRange jointNumber, lowerLimit, upperLmit
Parámetros
jointNumber Expresión entera de 1 a 9 que representa la articulación para la cual se especificará JRange.
El eje S adicional es 8 y el eje T es 9.
lowerLmit Expresión entera larga que representa la posición de conteo de pulsos del codificador para
el rango de límite inferior de la articulación especificada.
upperLmit Expresión entera larga que representa la posición de conteo de pulsos del codificador para
el rango de límite superior de la articulación especificada.
Descripción
Define el rango de trabajo permisible para la articulación especificada con los límites inferior y superior en
los conteos de pulso del codificador. JRange es similar al comando Range. Sin embargo, el comando
Range exige que se establezcan todos los límites de rango de la articulación mientras el comando JRange se
puede usar para establecer cada uno de los límites de trabajo de la articulación de manera individual, con lo
que se reduce la cantidad de parámetros necesarios. Para confirmar el rango de trabajo definido, use el
comando Range.
Notas
Los límites inferiores no deben exceder los límites superiores:
El límite inferior definido en el comando JRange no debe exceder el límite superior. Un límite inferior que
exceda el límite superior causará un error, lo que hará imposible la ejecución de un comando de
movimiento.
Factores que pueden cambiar JRange:
Una vez establecidos los valores de JRange, permanecen en su lugar hasta que el usuario modifica los
valores mediante los comandos Range o JRange. Apagar el controlador no cambiará los valores de límite
de articulación de JRange.
Rangos de trabajo máximo y mínimo:
Consulte las especificaciones en el manual del robot para conocer los rangos máximos de trabajo para cada
modelo del robot, ya que estos varían de un modelo a otro.
También consulte
Range, Función JRange
Ejemplo de instrucción JRange
Los siguientes ejemplos se llevan a cabo desde la ventana Command:
> JRange 2, -6000, 7000 'Define el rango de la segunda articulación
> JRange 1, 0, 7000 'Define el rango de la primera articulación
370
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función JRange
Arroja el rango de trabajo permisible de la articulación especificada en pulsos.
Sintaxis
JRange(jointNumber, paramNumber)
Parámetros
jointNumber Especifica el número de referencia de articulación (enteros de 1 a 9) mediante una
expresión o valor numérico.
El eje S adicional es 8 y el eje T es 9.
paramNumber Expresión entera que contiene uno o dos valores:
1: Especifica el valor de límite inferior.
2: Especifica el valor de límite superior.
Valores devueltos
Configuración de rango (valor entero, pulsos) de la articulación especificada.
También consulte
Range, Instrucción JRange
Ejemplo de función JRange
Long i, oldRanges(3, 1)
For i = 0 To 3
oldRanges(i, 0) = JRange(i + 1, 1)
oldRanges(i, 1) = JRange(i + 1, 2)
Next i
Manual de referencia del lenguaje SPEL+ Rev.2
371
Manual de referencia del lenguaje SPEL+
Función JS
Jump Sense detecta si el brazo se detuvo antes de completar una instrucción Jump, Jump3, JumpTLZ o
Jump3CP, la cual usó una entrada Sense o si el brazo completó el movimiento.
Sintaxis
JS
Valores devueltos
Arroja un valor True o False.
True : Cuando el brazo se detuvo antes de alcanzar el destino objetivo debido a que se cumplió
una condición de entrada de Sense, JS arroja True.
False : Cuando el brazo completa el movimiento normal y alcanza el destino objetivo, como se
define en la instrucción Jump, JS arroja False.
Descripción
JS se usa en conjunto con las instrucciones Jump y Sense. El fin de la instrucción JS es proporciona un
resultado de estado con respecto a si se cumple o no una condición de entrada (como se define en la
instrucción Sense) durante el movimiento causado por la instrucción Jump. Cuando se cumple la condición
de entrada, JS arroja True. Cuando no se cumple la condición de entrada y el brazo alcanza la posición
objetivo, JS arroja False.
JS es simplemente una instrucción de comprobación de estado y no causa movimiento ni especifica la
entrada que se debe revisar durante el movimiento. La instrucción Jump se usa para iniciar el movimiento,
mientras que la instrucción Sense se usa para especificar cuál entrada (de haber alguna) se debe revisar
durante el movimiento iniciado.
Nota
JS funciona solo con la instrucción Jump, Jump3, JumpTLZ, Jump3CP más reciente:
JS solo se puede usar para revisar la comprobación de entrada de la instrucción Jump más reciente (la que
se inició con la instrucción Sense). Una vez que se inicia una segunda instrucción Jump, la instrucción JS
solo puede arrojar el estado de la segunda instrucción Jump. El estado JS del primer Jump desaparece para
siempre. Entonces, asegúrese de realizar siempre una comprobación del estado de JS para las instrucciones
Jump inmediatamente posteriores a la instrucción Jump que se va a comprobar.
También consulte
JT, Jump, Jump3, Jump3CP, JumpTLZ, Sense
Ejemplo de función JS
Function SearchSensor As Boolean
Sense Sw(5) = On
Jump P0
Jump P1 Sense
If JS = TRUE Then
Print "Sensor was found"
SearchSensor = TRUE
EndIf
Fend
372
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función JT
Arroja el estado de la instrucción Jump, Jump3, JumpTLZ o Jump3CP más reciente para el robot actual.
Sintaxis
JT
Valores devueltos
JT arroja una cadena larga con los siguientes bits definidos o borrados:
Bit 0 Establecido en 1 cuando ha comenzado el movimiento de elevación o si la distancia de
elevación es 0.
Bit 1 Establecido en 1 cuando ha comenzado el movimiento horizontal o si la distancia horizontal es
0.
Bit 2 Establecido en 1 cuando ha comenzado el movimiento de descenso o si la distancia de descenso
es 0.
Bit 16 Establecido en 1 cuando ha finalizado el movimiento de elevación o si la distancia de elevación
es 0.
Bit 17 Establecido en 1 cuando ha finalizado el movimiento horizontal o si la distancia horizontal es 0.
Bit 18 Establecido en 1 cuando ha finalizado el movimiento de descenso o si la distancia de descenso
es 0.
Descripción
Use JT para determinar el estado del comando Jump más reciente que se detuvo antes de la finalización
mediante Sense, Till, Abort, etc.
También consulte
JS, Jump, Jump3, Jump3CP, JumpTLZ, Sense, Till
Ejemplo de función JT
Function SearchTill As Boolean
Till Sw(5) = On
Jump P0
Jump P1 Till
If JT And 4 Then
Print "Motion stopped during descent"
SearchTill = TRUE
EndIf
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
373
Manual de referencia del lenguaje SPEL+
Instrucción JTran
Realiza un movimiento relativo de una articulación.
Sintaxis
JTran jointNumber, distance
Parámetros
jointNumber Expresión entera que representa la articulación que se moverá.
El eje S adicional es 8 y el eje T es 9.
distance Expresión real que representa la distancia de movimiento en grados para las
articulaciones giratorias o en milímetros para las articulaciones lineales.
Descripción
Use JTran para mover una articulación una distancia específica desde la posición actual.
También consulte
Go, Jump, Move, Ptran
Ejemplo de instrucción JTran
JTran 1, 20
374
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Jump
Mueve el brazo desde la posición actual al punto de destino especificado con el movimiento de punto a
punto; para esto, se mueve primero en dirección vertical hacia arriba, luego horizontalmente y, finalmente,
verticalmente hacia abajo para llegar al punto de destino final.
Sintaxis
Jump destination [CarchNumber] [LimZ [zLimit] ] [CP] [PerformMode modeNumber]
[searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
archNumber Opcional. El número de arco (archNumber) especifica qué entrada de la tabla Arch se
debe usar para el movimiento de tipo arco que provoca la instrucción Jump. La letra C
siempre debe preceder a archNumber. (Las entradas válidas varían entre C0 y C7).
zLimit Opcional. Este es el valor de límite Z que representa la posición máxima que se
desplazará la articulación Z durante el movimiento Jump. Esto se puede considerar como
el techo de altura Z para la instrucción Jump. Cualquier valor de coordenada de
articulación Z válido es aceptable.
PerformMode Opcional. Especifique el modo de rendimiento del robot.
modeNumber Especifica el modo de operación asignado a PerformMode con un valor de número entero
(1 a 3) o con la siguiente constante. Si se especifica PerformMode, no se puede omitir
este parámetro.
Constante Valor Descripción
Mode_Standard 1
Define el modo estándar
Mode_High_Speed 2
Define el modo de alta velocidad
Mode_Low_Oscillation 3 Define el modo de baja oscilación
CP Opcional. Especifica un movimiento de ruta continua.
searchExpr Opcional. Una expresión Sense, Till o Find.
Sense | Till | Find
Sense Sw(expr) = {On | Off}
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Las instrucciones Parallel Processing se pueden agregar a la instrucción Jump
para permitir que la E/S y otros comandos se ejecuten durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se ejecute
SyncRobots.
Descripción
Jump mueve el brazo desde la posición actual a destination con lo que se llama Movimiento de arco. Jump
se puede considerar como 3 movimientos en 1. Por ejemplo, cuando la entrada de tabla Arch definida por
archNumber es 7, ocurrirán los siguientes 3 movimientos.
1) El movimiento comienza solo con el movimiento de la articulación Z hasta que alcanza la altura de
la articulación Z calculada por el número de arco que se usó para el comando Jump.
2) Luego, el brazo se mueve horizontalmente (mientras aún se mueve hacia arriba en Z) hacia la
posición de punto objetivo hasta que se alcance el límite superior de Z (definido por LimZ).
Entonces, el brazo comienza a moverse hacia abajo en dirección Z (mientras continúa el
movimiento de articulación X, Y y U) hasta alcanzar las posiciones de articulación X, Y y U.
3) Para completar la instrucción Jump mueva el brazo hacia abajo solo con el movimiento de la
articulación Z hasta alcanzar la posición de la articulación Z.
Manual de referencia del lenguaje SPEL+ Rev.2
375
Manual de referencia del lenguaje SPEL+
O r i g i n
D e s ti n a ti o n P
P e n
d
Se deben enseñar las coordenadas de destination (la posición objetivo del movimiento) anteriormente antes
de ejecutar la instrucción Jump. Las coordenadas no se pueden especificar en la instrucción Jump en sí. La
aceleración y desaceleración de Jump se controla mediante la instrucción Accel. La velocidad del
movimiento se controla mediante la instrucción Speed.
No se puede ejecutar la instrucción Jump para los robots de 6 ejes verticales (incluida la serie N). Use la
instrucción Jump3.
Detalles de CP
El parámetro CP causa que comience la aceleración del siguiente comando de movimiento cuando
comienza la desaceleración para el comando de movimiento actual. En este caso, el robot no se detendrá
en la coordenada de destino y continuará moviéndose al siguiente punto.
Detalles de archNumber
Se puede modificar el valor de Arch de la instrucción Jump según el valor de archNumber especificado
opcionalmente con la instrucción Jump. Esto permite que el usuario defina cuánto se debe mover X antes
de comenzar con el movimiento de articulación X, Y y U. (Esto permite que el usuario mueva el brazo
hacia arriba y lo aleje del trayecto de las piezas, alimentadores y otros objetos antes de comenzar con el
movimiento horizontal). Las entradas válidas de archNumber para la instrucción Jump son entre C0 y C7.
El usuario puede definir las entradas de tabla de arco para C0 a C6 con la instrucción Arch. Sin embargo,
C7 es una entrada de Arch especial que siempre define lo que se llama Movimiento de compuerta.
Movimiento de compuerta significa que el robot primero mueve Z completamente hasta la coordenada
definida por LimZ antes de comenzar cualquier movimiento de articulación X, Y o U. Una vez se alcance
el límite Z de LimZ, comienza el movimiento de articulación X, Y y U. Después de que las articulaciones
X, Y y U alcanzan su posición de destino final, entonces la articulación Z puede comenzar a moverse hacia
abajo, hacia la posición de coordenada de articulación Z final, según se define en destination (el punto
objetivo). El Movimiento de compuerta se ve de la siguiente manera:
L IM Z
t.
Detalles de LimZ
zLimit de LimZ especifica el valor de coordenada Z superior para el plano de movimiento horizontal en el
sistema de coordenadas local actual. La configuración especificada del arco puede causar que las
articulaciones X, Y y U comiencen a moverse antes de alcanzar LimZ, pero LimZ siempre es la altura Z
máxima para el movimiento. Cuando se omite el parámetro opcional LimZ, el valor anterior especificado
mediante la instrucción LimZ se usa para la definición del plano de movimiento horizontal.
Es importante destacar que la especificación de límite de altura zLimit de LimZ es el valor de Z para el
sistema local de coordenadas para robots. No es el valor Z para Arm o Tool. Por lo tanto, tome las
precauciones necesarias cuando use herramientas o manos con distintas alturas de funcionamiento.
Detalles de Sense
El parámetro opcional Sense permite que el usuario revise una condición de entrada o condición de E/S de
memoria antes de comenzar el movimiento Z final hacia abajo. Si se cumple, este comando finaliza con el
robot detenido sobre la posición objetivo, donde solo se necesita el movimiento Z para alcanzar la posición
objetivo. Es importante observar que el brazo del robot no se detenga inmediatamente cuando detecte el
modificador de entrada Sense.
Punto de origen
P t.
Punto de destino
p
end.
376
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Comando completado
Posición objetivo
Revisar una condición
Entonces, se pueden usar los comandos JS o Stat para verificar si se satisfizo la condición Sense y el robot
se detuvo antes de su posición objetivo o si no se satisfizo la condición Sense y el robot siguió hasta
detenerse en su posición objetivo.
Detalles de Till
El calificador opcional Till permite que el usuario especifique una condición que cause que el robot
desacelere hasta detenerse antes de completar la instrucción Jump. La condición especificada es
simplemente una comprobación contra una de entradas de E/S o una de las E/S de memoria. Esto se logra
mediante la función Sw o MemSw. El usuario puede comprobar si la entrada está activada o desactivada y
causar que el brazo desacelere y se detenga según la condición especificada.
La función Stat se puede usar para verificar si se satisfizo la condición Till y se ha completado este
comando, o si no se satisfizo la condición Till y el robot se detuvo en la posición objetivo.
Los modos de movimiento de desaceleración y movimiento de aceleración se pueden combinar cuando se
define PerformMode mientras el movimiento de ruta está activado. Algunas combinaciones no están
disponibles según los modos de operación. Para conocer detalles, consulte Instrucción PerformMode.
Notas
No se puede ejecutar Jump para los robots de 6 ejes (incluida la serie N)
Use Jump3 o Jump3CP para los robots de 6 ejes.
Omisión de los parámetros archNumber
Si se omite el parámetro opcional archNumber, la entrada de Arch predeterminada para usar con la
instrucción Jump es C7. Esto causará el Movimiento de compuerta, como se describió anteriormente.
Diferencia entre Jump y Jump3, Jump3CP
Las instrucciones Jump3 y Jump3CP se pueden usar para los robots de 6 ejes (incluida la serie N). Por el
otro lado, la instrucción Jump no se puede usar para los robots de 6 ejes. Para los robots SCARA (incluida
la serie RS), usar la instrucción Jump acorta el tiempo de movimiento de articulación para el movimiento
de alejamiento y acercamiento. Los movimientos de alejamiento y acercamiento en Jump3 se pueden
ejecutar a lo largo del eje Z y en otras direcciones.
Diferencia entre Jump y Go
La instrucción Go es similar a Jump en que ambas generan un movimiento de tipo Punto a punto; sin
embargo, tienen muchas diferencias. La diferencia más importante es que la instrucción Go simplemente
causa un movimiento de Punto a punto (PTP) donde todas las articulaciones comienzan y se detienen al
mismo tiempo (están sincronizadas). Jump es diferente, ya que genera el movimiento Z vertical al
comienzo y al final del movimiento. Jump es ideal para aplicaciones de tipo recoger y colocar.
Desaceleración hasta la detención con la instrucción Jump
La instrucción Jump siempre causa que el brazo desacelere hasta la detención antes de alcanzar un punto de
destino.
Instrucciones de velocidad y aceleración adecuadas con Jump:
Las instrucciones Speed y Accel se usan para especificar la velocidad y la aceleración del robot durante el
movimiento Jump. Preste atención al hecho de que Speed y Accel se aplican al movimiento de tipo punto a
punto (Go, Jump, Etc.), mientras que las instrucciones de movimiento interpolado lineal y circular, como
Move o Arc, utilizan las instrucciones SpeedS y AccelS. Para la instrucción Jump, es posible especificar
por separado las velocidades y las aceleraciones del movimiento hacia arriba de la articulación Z, el
desplazamiento horizontal que incluye la rotación de la articulación U y el movimiento hacia abajo de la
articulación Z.
Manual de referencia del lenguaje SPEL+ Rev.2
377
Manual de referencia del lenguaje SPEL+
Función Pass de Jump
Cuando se especifica el parámetro CP para Jump con movimiento hacia abajo 0, el desplazamiento
horizontal Jump no desacelera hasta una detención, sino que continúa suavemente hasta el siguiente
movimiento PTP.
Cuando se especifica el parámetro CP para un comando de movimiento PTP justo antes de Jump con
movimiento hacia arriba 0, el movimiento PTP no desacelera hasta una detención, sino que se conecta
suavemente con el desplazamiento horizontal Jump.
Esto es útil cuando desea reemplazar el desplazamiento horizontal de Jump (un movimiento PTP) con
varios movimientos PTP.
(Ejemplo)
Go P1
Jump P2 :Z(-50) C0 LimZ -50 CP
Go P3 :Z(0) CP
Jump P4 C0 LimZ 0
P1
La trayectoria del movimiento Jump cambia según el movimiento y la velocidad
La trayectoria del movimiento Jump consiste en el movimiento vertical y el movimiento horizontal. No es
una trayectoria de ruta continua. La trayectoria real de Jump de movimiento de arco no se determina solo
por los parámetros de Arch. También depende del movimiento y la velocidad.
Siempre tenga cuidado al optimizar la trayectoria de Jump en sus aplicaciones. Ejecute Jump con el
movimiento y la velocidad deseados para verificar la trayectoria real.
Cuando la velocidad es menor, la trayectoria será menor. Si se ejecuta Jump con una alta velocidad para
verificar una trayectoria de movimiento de arco, el efector final puede chocar con un objeto con menor
velocidad.
En una trayectoria de Jump, la distancia de alejamiento aumenta y la distancia de acercamiento disminuye
cuando la velocidad de movimiento está configurada a un valor alto. Cuando la distancia de caída de la
trayectoria es más corta que la esperada, reduzca la velocidad o la desaceleración, o aumente la distancia de
caída.
Incluso si se ejecutan los comandos Jump con la misma distancia y velocidad, la trayectoria se ve afectada
por el movimiento de los brazos del robot. Como ejemplo general, para el robot SCARA, la distancia
vertical ascendente aumenta y la distancia vertical descendente disminuye cuando el movimiento del primer
brazo es grande. Cuando la distancia de caída vertical disminuye y la trayectoria es menor que la esperada,
reduzca la velocidad o la desaceleración, o cambie la distancia de caída para que sea mayor.
Posibles errores
El valor de LimZ no es lo suficientemente alto
Cuando la posición actual del brazo de la articulación Z es mayor que el valor establecido para LimZ y se
intenta una instrucción Jump, ocurrirá un Error 4005.
También consulte
Accel, Arc, Arch, Go, JS, JT, LimZ, P#= (Asignación de punto), PerformMode, Pulse, Sense,
Speed, Stat, Till
Ejemplo de instrucción Jump
P3
P2
P4
378
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
El siguiente ejemplo muestra un movimiento simple de punto a punto entre los puntos P0 y P1, y luego se
mueve de vuelta a P0 con la instrucción Jump. Más adelante en el programa, el brazo se mueve con la
instrucción Jump. Si la entrada n.° 4 nunca sube, entonces el brazo comienza el movimiento de
acercamiento y se mueve hacia P1. Si la entrada n.° 4 sube, entonces el brazo no ejecuta el movimiento de
acercamiento.
Function jumptest
Home
Go P0
Go P1
Sense Sw(4) = On
Jump P0 LimZ -10
Jump P1 LimZ -10 Sense 'Revisa entrada n.° 4
If Js(0) = 1 Then
Print "Input #4 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P1."
Else
Print "The move to P1 completed successfully."
Print "Input #4 never came on during the move."
EndIf
Fend
> Jump P10+X50 C0 LimZ-20 Sense !D50;On 0;D80;On 1!
Manual de referencia del lenguaje SPEL+ Rev.2
379
Manual de referencia del lenguaje SPEL+
Instrucciones Jump3, Jump3CP
Movimiento de compuerta 3D.
Jump3 es una combinación de dos movimientos de CP y un movimiento PTP.
Jump3CP es una combinación de tres movimientos de CP.
Sintaxis
(1) Jump3 depart, approach, destination [CarchNumber] [CP] [LJM [orientationFlag]]
[searchExpr] [!...!] [SYNC]
(2) Jump3CP depart, approach, destination [ROT] [CarchNumber] [CP] [LJM [orientationFlag]]
[searchExpr] [!...!] [SYNC]
Parámetros
depart El punto de alejamiento sobre la posición actual usando una expresión de punto.
approach El punto de acercamiento sobre la posición de destino con una expresión de punto.
destination El destino objetivo del movimiento que usa una expresión de punto.
ROT Opcional. :Decide la velocidad/aceleración/desaceleración en favor de la rotación de la
herramienta.
archNumber Opcional. El número de arco (archNumber) especifica qué entrada de la tabla Arch se
debe usar para el movimiento de tipo arco que provoca la instrucción Jump. La letra C
siempre debe preceder a la instrucción archNumber. (Las entradas válidas son C0 a C7.)
CP Opcional. Especifica un movimiento de ruta continua.
LJM Opcional. Convierte el destino objetivo con la función LJM.
orientationFlag Opcional. Especifica un parámetro que selecciona un indicador de orientación para la
función LJM.
searchExpr Opcional. Una expresión Sense, Till o Find.
Sense | Till | Find
Sense Sw(expr) = {On | Off}
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Las instrucciones Parallel Processing se pueden agregar a la instrucción Jump
para permitir que la E/S y otros comandos se ejecuten durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se ejecute
SyncRobots.
Descripción
Mueve el brazo desde la posición actual hasta el punto de destino con el movimiento de la compuerta 3D.
El movimiento de la compuerta 3D se conforma con los movimientos de alejamiento, alcance y
acercamiento. El movimiento de alejamiento desde la posición actual hasta el punto de alejamiento es
siempre un movimiento CP. El movimiento de alcance desde el punto de alejamiento al punto de inicio de
acercamiento es movimiento PTP en Jump3, y el movimiento de CP en Jump3CP.
El movimiento de acercamiento desde la iniciar hasta el punto de acercamiento es siempre un movimiento
CP.
380
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Depart point
Depart
motion
CP
Approach point
A
pproach motion
CP
Destination point
Current position
Depart point
A
pproach distance
Depart distance
Start approach point
A
RCH Upward
A
RCH downward
Span motion
Se logra el movimiento de arco si se especifica un número de arco. En la siguiente figura se muestra el
movimiento de arco para Jump3 y Jump3CP. Para que ocurra el movimiento de arco, la distancia de
alejamiento debe ser superior a la distancia ascendente del arco y la distancia de acercamiento debe ser
superior a la distancia descendente del arco.
Jump3CP usa el valor de velocidad SpeedS y los valores de aceleración y desaceleración AccelS. Consulte
Uso de Jump3CP con CP a continuación para conocer la relación entre velocidad y aceleración, y entre
aceleración y desaceleración. Sin embargo, si se usa el parámetro modificador ROT, Jump3CP utiliza el
valor de velocidad SpeedR y los valores de aceleración y desaceleración AccelR. En este caso, el valor de
velocidad SpeedS y el valor de aceleración y desaceleración AccelS no tienen efecto.
Normalmente, cuando la distancia de movimiento es 0 y solo cambia la orientación de la herramienta,
ocurrirá un error. Sin embargo, mediante el uso del parámetro ROT y la priorización de la aceleración y la
desaceleración de la rotación de la herramienta, es posible realizar el movimiento sin un error. Cuando no
existe ningún cambio de orientación con el parámetro modificador ROT y la distancia del movimiento no
es 0, se genera un error.
También, cuando la rotación de la herramienta es grande en comparación con la distancia de movimiento, y
cuando la velocidad de rotación supera la velocidad especificada del manipulador, ocurrirá un error. En
este caso, reduzca la velocidad o agregue el parámetro modificador ROT para dar prioridad a la velocidad
rotacional/aceleración/desaceleración.
Notas
LimZ no afecta a Jump3 ni Jump3CP
LimZ no tiene efecto alguno en Jump3 ni Jump3CP, dado que el movimiento de alcance no es
necesariamente perpendicular al eje Z del sistema de coordenadas.
El movimiento de alcance de Jump3 es PTP (punto a punto)
Movimiento de alcance
PTP/CP
Punto de acercamiento
Punto de alejamiento
Movimiento de
acercamiento CP
Movimiento de
ale
j
amiento CP
Punto de destino
Posición actual
Punto de inicio de acercamiento
Punto de alejamiento
Distancia de acercamiento
Descendente del arco
Distancia de alejamiento
A
scendente del arco
Manual de referencia del lenguaje SPEL+ Rev.2
381
Manual de referencia del lenguaje SPEL+
P2
P4
P1
P5
P3
Start End
Es difícil predecir la trayectoria del movimiento de alcance de Jump3. Por lo tanto, tenga cuidado de que el
robot no choque con el equipo periférico y que los brazos del robot no choquen con el propio robot.
Uso de Jump3, Jump3CP con CP
El parámetro CP causa que el brazo se mueva al destino sin desacelerar o detenerse en el punto definido
según el destino. Esto se hace para permitir al usuario enlazar una serie de instrucciones de movimiento
que causan que el brazo se mueva a lo largo de una ruta continua mientras mantiene una velocidad
especificada durante todo el movimiento. Las instrucciones Jump3 y Jump3CP sin CP siempre causan que
el brazo desacelere hasta la detención antes de alcanzar el punto destination.
Función Pass de Jump3
Cuando se especifica el parámetro CP para Jump3 con movimiento de acercamiento 0, el movimiento de
alcance Jump3 no desacelera hasta una detención, sino que continúa suavemente hasta el siguiente
movimiento PTP.
Cuando se especifica el parámetro CP para un comando de movimiento PTP justo antes de Jump3 con
movimiento de alejamiento 0, el movimiento PTP no desacelera hasta una detención, sino que se conecta
suavemente con el movimiento de alcance de Jump3.
Esto es útil cuando desea reemplazar el movimiento de alcance de Jump3 (un movimiento PTP) con varios
movimientos PTP.
Función Pass de Jump3CP
Cuando se especifica el parámetro CP para Jump3CP con movimiento de acercamiento 0, el movimiento de
alcance Jump3CP no desacelera hasta una detención, sino que continúa suavemente hasta el siguiente
movimiento de CP.
Cuando se especifica el parámetro CP para un comando de movimiento de CP justo antes de Jump3CP con
movimiento de alejamiento 0, el movimiento de CP no desacelera hasta una detención, sino que se conecta
suavemente con el movimiento de alcance de Jump3CP.
Esto es útil cuando desea reemplazar el movimiento de alcance de Jump3CP (un movimiento de CP) con
varios movimientos de CP.
(Ejemplo 1)
Jump3 P1,P2,P2 CP
Go P3,P4 CP
Jump3 P4,P5,P5+tlz(50)
(Ejemplo 2)
Jump3CP P1,P2,P2 CP
Move P3,P4 CP
Jump3CP P4,P5,P5+tlz(50)
Uso de Jump3, Jump3CP con LJM
Con el parámetro LJM, el programa que usa la función LJM puede ser más simple.
Por ejemplo, el siguiente programa de cuatro líneas
P11 = LJM(P1, Here, 2)
P12 = LJM(P2, P11, 2)
P13 = LJM(P3, P12, 2)
Jump3 P11, P12, P13
puede ser… el programa de una línea.
Jump3 P1, P2, P3 LJM 2
El parámetro LJM está disponible para los robots de 6 ejes y de serie RS (incluida la serie N).
El movimiento de alcance de Jump3CP es un movimiento de línea recta (CP) y no puede cambiar la
orientación de la muñeca durante el trayecto. Por lo tanto, no use orientationFlag (LJM 1) de la función
LJM que es capaz de cambiar la orientación de la muñeca.
Precaución para el movimiento de arco
La trayectoria del movimiento de Jump3 cambia según el movimiento y la velocidad
La trayectoria del movimiento de Jump3 comprende los movimientos de alejamiento, alcance y
acercamiento. No es una trayectoria de ruta continua. La trayectoria real de Jump3 del movimiento de
382
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
arco no se determina solo por los parámetros Arch. También depende del movimiento y la velocidad.
Siempre tenga cuidado al optimizar la trayectoria de Jump3 en sus aplicaciones. Ejecute Jump3 con el
movimiento y la velocidad deseados para verificar la trayectoria real.
Cuando la velocidad es menor, la trayectoria será menor. Si se ejecuta Jump3 con una alta velocidad para
verificar una trayectoria de movimiento de arco, el efector final puede chocar con un objeto con menor
velocidad.
En una trayectoria de Jump3, la distancia de alejamiento aumenta y la distancia de acercamiento disminuye
cuando la velocidad de movimiento está configurada a un valor alto. Cuando la distancia de acercamiento
de la trayectoria es más corta de lo esperado, reduzca la velocidad, desacelere o cambie la distancia de
acercamiento para que sea más larga.
Incluso si se ejecutan los comandos Jump con la misma distancia y velocidad, la trayectoria se ve afectada
por el movimiento de los brazos del robot.
Posibles errores de aceleración
Cuando la mayor parte del movimiento de alejamiento (acercamiento) usa la misma
articulación que el movimiento de alcance
Puede ocurrir un error de aceleración durante la ejecución de un movimiento de arco mediante los
comandos Jump3 y Jump3CP. Este error se genera frecuentemente cuando la mayor parte del movimiento
durante el alejamiento o acercamiento utiliza la misma articulación que el movimiento de alcance. Para
evitar este error, reduzca la velocidad de aceleración y desaceleración del movimiento de alcance con el
comando Accel para Jump3, o el comando AccelS para Jump3CP. Según el movimiento y la orientación
del robot, también podría ser útil la reducción de la aceleración o la desaceleración del movimiento de
alejamiento (movimiento de acercamiento) mediante el comando AccelS.
También consulte
Accel, Arc, Arch, Go, JS, JT, Expresión de punto, Pulse, Sense, Speed, Stat, Till
Ejemplo de instrucción Jump3
' Movimiento del robot de 6 ejes (incluida la serie N) que funciona como Jump del robot SCARA
Jump3 Here :Z(100), P3 :Z(100), P3
' Alejamiento y acercamiento utilizan las coordenadas de herramienta Z
Jump3 Here -TLZ(100), P3 -TLZ(100), P3
' Alejamiento usa base Z y acercamiento usa Z de la herramienta
Jump3 Here +Z(100), P3 -TLZ(100), P3
Ejemplo de movimiento de alejamiento de P1 en Tool 1 (Herramienta 1) y de movimiento de acercamiento
a P3 en Tool 2 (Herramienta 2)
Arch 0,20,20
Tool 1
Go P1
P2 = P1 -TLZ(100)
Tool 2
Jump3 P2, P3-TLZ(100), P3 C0
Manual de referencia del lenguaje SPEL+ Rev.2
383
Manual de referencia del lenguaje SPEL+
Instrucción JumpTLZ
Movimiento de compuerta 3D.
JumpTLZ es una combinación de dos movimientos de CP y un movimiento PTP.
Sintaxis
JumpTLZ destination, TLZ movement, [CarchNumber] [CP] [LJM [orientationFlag]]
[searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
TLZ movement La cantidad de movimiento en dirección Z en el sistema de coordenadas de la
herramienta. La unidad es [mm].
Se usa el sistema de coordenadas de la herramienta para el número de herramienta que se
usa actualmente.
archNumber Opcional. El número de arco (archNumber) especifica qué entrada de la tabla Arch
Table debe usar para el movimiento tipo arco que provoca la instrucción JumpTLZ. La
letra C siempre debe preceder a la instrucción archNumber. (Las entradas válidas son C0
a C7.)
CP Opcional. Especifica un movimiento de ruta continua.
LJM Opcional. Convierte el destino objetivo con la función LJM.
orientationFlag Opcional. Especifica un parámetro que selecciona un indicador de orientación para la
función LJM.
searchExpr Opcional. Una expresión Sense, Till o Find.
Sense | Till | Find
Sense Sw(expr) = {On | Off}
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Las instrucciones Parallel Processing se pueden agregar a la instrucción
Jump3 y Jump3CP para permitir que la E/S y otros comandos se ejecuten durante el
movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se ejecute
SyncRobots.
384
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Descripción
Mueve el brazo desde la posición actual hasta el punto de destino con el movimiento de la compuerta 3D.
El movimiento de la compuerta 3D se conforma con los movimientos de alejamiento, alcance y
acercamiento. El movimiento de alejamiento desde la posición actual hasta el punto de alejamiento es
siempre un movimiento CP. El movimiento de alcance desde el punto de alejamiento al punto de inicio de
acercamiento es movimiento PTP.
El punto de alejamiento es un punto que se mueve desde la posición actual con TLZ amount en la dirección
Z.
La postura del robot en el punto de alejamiento es el mismo que la posición actual. (La postura puede
cambiar si el robot pasa la singularidad o el entorno de singularidad).
El punto de acercamiento es un punto que se mueve desde el punto de alejamiento en dirección X e Y del
sistema de coordenadas de la herramienta con una cantidad de movimiento para acercarse al punto de
destino. Las coordenadas U, V y W y la postura del robot en el punto de alejamiento son las mismas que la
posición actual. (La postura puede cambiar si el robot pasa la singularidad o el entorno de singularidad).
Movimiento de alcance
Punto de alejamiento
Movimiento de alejamiento
CP
PTP
Punto de acercamiento
Movimiento de acercamiento
CP
Punto de destino
Posición actual
Se logra el movimiento de arco si se especifica un número de arco. Para que ocurra el movimiento de arco,
la distancia de alejamiento debe ser superior a la distancia ascendente del arco y la distancia de
acercamiento debe ser superior a la distancia descendente del arco.
Punto de alejamiento
Punto de inicio de acercamiento
Notas
LimZ no afecta a JumpTLZ
LimZ no tiene efecto en JumpTLZ ya que el movimiento de alcance no es necesariamente perpendicular al
eje Z del sistema de coordenadas.
El movimiento de alcance de JumpTLZ es PTP (punto a punto)
Es difícil predecir la trayectoria del movimiento de alcance de JumpTLZ. Por lo tanto, tenga cuidado de
que el robot no choque con el equipo periférico y que los brazos del robot no choquen con el propio robot.
Diferencia entre JumpTLZ y Jump3
JumpTLZ y Jump3 son diferentes en los siguientes puntos.
JumpTLZ:
Manual de referencia del lenguaje SPEL+ Rev.2
385
Manual de referencia del lenguaje SPEL+
El punto de alejamiento debe estar en la dirección Z desde la posición actual.
El punto de acercamiento debe estar en la dirección Z desde el punto de destino. Además, no se puede
especificar la distancia de acercamiento.
No se pueden seleccionar sistemas de coordenadas de herramientas distintos para los puntos de
alejamiento, acercamiento y destino.
(No es posible ejecutar el movimiento de alejamiento en Tool1, y ejecutar el movimiento de
acercamiento en Tool2).
Jump3:
El punto de alejamiento puede estar en cualquier lugar.
El punto de acercamiento puede estar en cualquier lugar.
Se pueden seleccionar sistemas de coordenadas de herramientas distintos para los puntos de
alejamiento, acercamiento y destino.
(Es posible ejecutar el movimiento de alejamiento en Tool1, y ejecutar el movimiento de acercamiento
en Tool2).
Manipuladores aplicables
JumpTLZ solo está disponible para la serie N.
Precaución para el movimiento de arco
La trayectoria del movimiento de JumpTLZ comprende los movimientos de alejamiento, alcance y
acercamiento. No es una trayectoria de ruta continua. La trayectoria real de JumpTLZ del movimiento de
arco no se determina solo por los parámetros Arch. También depende del movimiento y la velocidad.
Siempre tenga cuidado al optimizar la trayectoria de JumpTLZ en sus aplicaciones. Ejecute JumpTLZ con
el movimiento y la velocidad deseados para verificar la trayectoria real.
Cuando la velocidad es menor, la trayectoria será menor. Si se ejecuta JumpTLZ con una alta velocidad
para verificar una trayectoria de movimiento de arco, el efector final puede chocar con un objeto con menor
velocidad.
En una trayectoria de JumpTLZ, la distancia de alejamiento aumenta y la distancia de acercamiento
disminuye cuando la velocidad de movimiento está configurada a un valor alto. Cuando la distancia de
acercamiento de la trayectoria es más corta de lo esperado, reduzca la velocidad, desacelere o cambie la
distancia de acercamiento para que sea más larga.
Incluso si se ejecutan los comandos JumpTLZ con la misma distancia y velocidad, la trayectoria se ve
afectada por el movimiento de los brazos del robot.
Posibles errores de aceleración
Cuando la mayor parte del movimiento de alejamiento (acercamiento) usa la misma
articulación que el movimiento de alcance
Puede ocurrir un error de aceleración durante la ejecución de un movimiento de arco mediante el comando
JumpTLZ. Este error se genera frecuentemente cuando la mayor parte del movimiento durante el
alejamiento o acercamiento utiliza la misma articulación que el movimiento de alcance. Para evitar este
error, reduzca la velocidad de aceleración y desaceleración del movimiento de alcance con el comando
Accel para JumpTLZ. Según el movimiento y la orientación del robot, también podría ser útil la reducción
de la aceleración o la desaceleración del movimiento de alejamiento (movimiento de acercamiento)
mediante el comando AccelS.
También consulte
Accel, Arc, Arch, Go, JS, JT, Expresión de punto, Pulse, Sense, Speed, Stat, Till
386
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de JumpTLZ
Mueva 100 mm hacia arriba desde el punto actual en la dirección Z del sistema de coordenadas de la
herramienta. Luego, mueva hasta el punto objetivo (P0):
JumpTLZ P0, -100
Manual de referencia del lenguaje SPEL+ Rev.2
387
Manual de referencia del lenguaje SPEL+
Instrucción LatchEnable
Activa/desactiva la función de enganche de la posición del robot con la entrada R-E/S.
Sintaxis
LatchEnable { On | Off }
Parámetros
On | Off On : Activa la función de enganche de la posición del robot.
Desactivado: Desactiva la función de enganche de la posición del robot.
Resultado
Cuando se omite el parámetro, muestra que la función de enganche actual está ON (Activada) u OFF
(Desactivada).
Descripción
Activa/desactiva la función de enganche de la posición del robot con las señales de entrada del disparador
conectadas a R-E/S. Engancha la posición del robot con la primera entrada del disparador después de
activar la función de enganche.
Para enganchar la posición del robot repetidamente, ejecute LatchEnable Off y luego vuelva a ejecutar
LatchEnable On. Para usar el comando repetidamente, se necesita un intervalo de al menos 60 ms para
cada tiempo de procesamiento de comando, pero no es necesario considerar el tiempo de ejecución del
comando.
Nota
Antes de habilitar la función de enganche, ajuste el puerto de entrada del disparador y la lógica de señal del
disparador con SetLatch.
También consulte
Función LatchPos, Función LatchState, SetLatch
Ejemplo de instrucción LatchEnable
Function main
SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE
LatchEnable On 'Activa la función de enganche
Go P1
Wait LatchState = True 'Espera un disparador
Print LatchPos 'Muestra la posición enganchada
LatchEnable Off 'Desactiva la función de enganche
Fend
388
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LatchState
Arroja el estado de enganche de la posición del robot con R-E/S.
Sintaxis
LatchState
Valores devueltos
Arroja True cuando se ha enganchado la posición del robot, False cuando no se ha terminado el enganche.
Cuando se confirma la finalización del enganche, adquiere la información de la posición enganchada
mediante la función LatchPos.
También consulte
LatchEnable, Función LatchPos, SetLatch, Wait
Ejemplo de función LatchState
Function main
SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE
LatchEnable On 'Activa la función de enganche
Go P1
Wait LatchState = True 'Espera un disparador
Print LatchPos 'Muestra la posición enganchada
LatchEnable Off 'Desactiva la función de enganche
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
389
Manual de referencia del lenguaje SPEL+
Función LatchPos
Arroja la posición del robot enganchada con la señal de entrada de R-E/S.
Sintaxis
LatchPos ([WithToolArm | WithoutToolArm])
Parámetros
Opcional. Si se omite, se usa WithToolArm.
Constante Valor
WithToolArm 0
WithoutToolArm 1
WithToolArm Valor constante de 0.
Arroja la posición de acuerdo a la configuración de Tool y Arm en una llamada
de función.
WithoutToolArm Valor constante de 0,1
Arroja la posición de Tool 0 y Arm 0, sin importar la configuración de Tool y
Arm.
Valores devueltos
Arroja la posición del robot enganchada con la señal de entrada de R-E/S en datos de punto.
Ejecutar esta función requiere aproximadamente 15 ms para su procesamiento.
Cuando se especifica WithToolArm, arroja la posición de acuerdo a la configuración de Tool y Arm en una
llamada de función.
Cuando se especifica WithoutToolArm, arroja la posición de Tool 0 y Arm 0, sin importar la configuración
de Tool y Arm.
También consulte
LatchEnable, Función LatchState, SetLatch
Ejemplo de función LatchPos
Function main
SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE
LatchEnable On 'Activa la función de enganche
Go P1
Wait LatchState = True 'Espera un disparador
Print LatchPos 'Muestra la posición enganchada
LatchEnable Off 'Desactiva la función de enganche
Fend
Para asignar el valor devuelto de LatchPos a los datos de punto:
P2 = LatchPos
390
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LCase$
Arroja una cadena que se ha convertido a minúsculas.
Sintaxis
LCase$(string)
Parámetros
string Una expresión de cadena válida.
Valores devueltos
La cadena convertida a minúsculas.
También consulte
LTrim$, Trim$, RTrim$, UCase$
Ejemplo de función LCase$
str$ = "Data"
str$ = LCase$(str$) ' str$ = "datos"
Manual de referencia del lenguaje SPEL+ Rev.2
391
Manual de referencia del lenguaje SPEL+
Función Left$
Arroja una subcadena desde el lado izquierdo de una expresión de cadena.
Sintaxis
Left$(string, count)
Parámetros
string Expresión de cadena desde la cual se copian los caracteres del extremo izquierdo.
count La cantidad de caracteres que se copiarán de string, comenzando por el carácter del
extremo izquierdo.
Valores devueltos
Arroja una cadena de los caracteres number del extremo izquierdo de la cadena de caracteres especificada
por el usuario.
Descripción
Left$ arroja los caracteres number del extremo izquierdo de una cadena especificada por el usuario. Left$
puede arrojar hasta la cantidad total de caracteres que haya en la cadena de caracteres.
También consulte
Asc, Chr$, InStr, Len, Mid$, Right$, Space$, Str$, Val
Ejemplo de función Left$
El ejemplo que aparece a continuación muestra un programa que toma la cadena de datos de una pieza
como su entrada y descompone el número, el nombre y el recuento de la pieza.
Function ParsePartData(DataIn$ As String, ByRef PartNum$ As String,
ByRef PartName$ As String, ByRef PartCount As Integer)
Integer pos
String temp$
pos = Instr(DataIn$, ",")
PartNum$ = Left$(DataIn$, pos - 1)
DataIn$ = Right$(datain$, Len(DataIn$) - pos)
pos = Instr(DataIn$, ",")
PartName$ = Left$(DataIn$, pos - 1)
PartCount = Val(Right$(datain$, Len(DataIn$) - pos))
Fend
Otro ejemplo surge de la instrucción Left$ desde la ventana Command.
> Print Left$("ABCDEFG", 2)
AB
> Print Left$("ABC", 3)
ABC
392
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Len
Arroja la cantidad de caracteres de una cadena de caracteres.
Sintaxis
Len(string)
Parámetros
string Expresión de cadena.
Valores devueltos
Arroja un número entero que representa la cantidad de caracteres en string que se dio como un argumento a
la instrucción Len.
Descripción
Len arroja un número entero que representa la cantidad de caracteres en una cadena especificada por el
usuario. Len arrojará valores entre 0 y 255 (ya que una cadena puede contener entre 0 y 255 caracteres).
También consulte
Asc, Chr$, InStr, Left$, Mid$, Right$, Space$, Str$, Val
Ejemplo de función Len
El ejemplo que aparece a continuación muestra un programa que toma la cadena de datos de una pieza
como su entrada y descompone el número, el nombre y el recuento de la pieza.
Function ParsePartData(DataIn$ As String, ByRef PartNum$ As String,
ByRef PartName$ As String, ByRef PartCount As Integer)
Integer pos
String temp$
pos = Instr(DataIn$, ",")
PartNum$ = Left$(DataIn$, pos - 1)
DataIn$ = Right$(datain$, Len(DataIn$) - pos)
pos = Instr(DataIn$, ",")
PartName$ = Left$(DataIn$, pos - 1)
PartCount = Val(Right$(datain$, Len(DataIn$) - pos))
Fend
Otro ejemplo surge de la instrucción Len desde la ventana Command.
> ? len("ABCDEFG")
7
> ? len("ABC")
3
> ? len("")
0
>
Manual de referencia del lenguaje SPEL+ Rev.2
393
Manual de referencia del lenguaje SPEL+
Instrucción LimitTorque
Establece y arroja el valor de par del límite superior en el modo de potencia alta.
Sintaxis
(1) LimitTorque AllMax
(2) LimitTorque j1Max, j2Max, j3Max, j4Max
(3) LimitTorque j1Max, j2Max, j3Max, j4Max, j5Max, j6Max
(4) LimitTorque
Parámetros
AllMax Especifica el valor de límite superior de par para todos los ejes en modo de potencia alta
mediante un número entero que representa el porcentaje de par momentáneo máximo de cada
eje
j #n Max Especifica el valor de límite superior de par para el n.° de eje en modo de potencia alta
mediante un número entero que representa el porcentaje de par momentáneo máximo del n.°
de eje
Resultado
Arroja el valor actual de LimitTorque cuando se omiten los parámetros.
Descripción
Establece el valor límite superior de par en modo de potencia alta. Normalmente, el par máximo viene
establecido y no hay necesidad de cambiar este valor. Esta instrucción es útil para restringir el par para que
no exceda lo necesario para el movimiento específico, con el fin de reducir los daños al manipulador y los
equipos causados por la colisión con equipos periféricos.
El valor de límite superior es el par máximo en el movimiento específico, medido por PTRQ con
tolerancias que consideran la variación agregada (aproximadamente 10 %).
No se puede establecer el par inferior al valor de límite superior en modo de potencia baja para este
comando. Los valores mínimos varían para los modelos y las articulaciones. Obtenga el valor de
configuración y confirme el valor de límite superior real después de configurar el valor.
En cualquiera de los siguientes casos, LimitTorque se convierte en el valor predeterminado.
Nota
Configuración de LimitTorque demasiado baja
LimitTorque restringe el par para el movimiento específico con el valor de restricción de par establecido
como el valor de límite superior, sin importar el tamaño del par necesario para la ejecución del movimiento
con la aceleración y desaceleración definidas. Por lo tanto, si el movimiento requiere un par más grande
que el valor de límite superior establecido, es posible que el robot no se mueva adecuadamente y provoque
movimientos vibratorios, ruido o exceso y error de desviación de posición. Asegúrese de medir PTRQ
antes de usar la función de restricción de par. Si ocurren los problemas anteriores, establezca un mayor
valor de límite superior y ajuste el valor para que el manipulador funcione correctamente.
Inicio del controlador
Motor encendido
Se ejecuta SFree, SLock o Brake
Se ejecuta Reset o Reset Error
Fin de tarea por interruptor de parada o Quit All
394
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
También consulte
Función LimitTorque, Power, PTrq, RealTorque
Ejemplo de instrucción LimitTorque
A continuación, se muestra un ejemplo en donde se opera el manipulador con el máximo par de la
articulación n.º 1 al 80 %.
Function main
Motor On
Power high
Speed 100; Accel 100,100
LimitTorque 80,100,100,100 'Restringe el par máximo de la articulación n.° 1 a
80 %
Jump P1 'Ejecuta el movimiento Jump
Fend
Manual de referencia del lenguaje SPEL+ Rev.2
395
Manual de referencia del lenguaje SPEL+
Función LimitTorque
Arroja el valor de configuración del comando LimitTorque.
Sintaxis
LimitTorque(jointNumber)
Parámetros
jointNumber Expresión entera que varía de 1 a 9.
El eje adicional S es 8 y el eje T es 9.
Valores devueltos
Arroja un número entero que representa el valor de configuración del comando LimitTorque.
También consulte
LimitTorque
Ejemplo de función LimitTorque
Print LimitTorque(1) 'Muestra el valor de LimitTorque de la articulación n.° 1.
396
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción LimitTorqueLP
Establece y arroja el valor de par del límite superior en el modo de potencia baja.
Sintaxis
(1) LimitTorqueLP AllMax
(2) LimitTorqueLP j1Max, j2Max, j3Max, j4Max
(3) LimitTorqueLP j1Max, j2Max, j3Max, j4Max, j5Max, j6Max
(4) LimitTorqueLP
Parámetros
AllMax Especifica el valor de límite superior de par para todos los ejes en modo de potencia baja
mediante un número entero que representa el porcentaje de par momentáneo máximo de cada
eje
j #n Max Especifica el valor de límite superior de par para el n.° de eje en modo de potencia baja
mediante un número entero que representa el porcentaje de par momentáneo máximo del n.°
de eje
Resultado
Arroja el valor actual de LimitTorqueLP cuando se omiten los parámetros.
Muestra el valor predeterminado cuando este comando no cambia los valores.
Descripción
Establece el valor límite superior de par en modo de potencia baja. Normalmente, el par máximo viene
establecido y no hay necesidad de cambiar este valor (los valores varían según los modelos y ejes del robot.
Aprox. 15 a 60 %). Este comando es útil para restringir el par para que no exceda lo necesario para el
movimiento normal, con el fin de reducir los daños al manipulador y los equipos causados por la colisión
con equipos periféricos.
El valor de límite superior es el par máximo en el movimiento, medido por PTRQ con tolerancias que
consideran la variación agregada (se recomienda 40 %). Para aplicar el mismo valor a un robot distinto,
agregue una tolerancia de 10 a 20 %.
El valor de PTRQ considera el par máximo predeterminado en modo de potencia baja como 1,0. Por
ejemplo, cuando el valor predeterminado antes del cambio es 27 % y el valor medido por PTRQ es 0,43, el
valor de límite superior es el siguiente: 27 % × 0,43 × 1,4 = 16,25. Entonces, redondee el valor y
establézcalo en 17.
No se puede establecer el valor inferior al 5 % o mayor que el valor predeterminado para este comando. Si
se establecen estos valores, los valores de configuración inferiores a 5 se redondearán hacia arriba hasta 5 y
los valores que superen el valor predeterminado se redondearán hacia abajo hasta el valor predeterminado.
Por ejemplo, cuando “LimitTorqueLP 100”, lo valores se devuelven al valor predeterminado para todas las
articulaciones, ya que el valor predeterminado es siempre menor que 100.
Obtenga el valor de configuración y confirme el valor de límite superior real después de configurar el valor.
El valor de configuración de LimitTorqueLP está vigente hasta que se reinicia el controlador.
Nota
Configuración de LimitTorqueLP demasiado baja
LimitTorqueLP restringe el par para el movimiento específico con el valor de restricción de par establecido
como el valor de límite superior, sin importar el tamaño del par necesario para la ejecución del movimiento
con la aceleración y desaceleración definidas. Por lo tanto, si el movimiento requiere un par más grande
que el valor de límite superior establecido, es posible que el robot no se mueva adecuadamente y provoque
error de desviación de posición. Asegúrese de medir PTRQ antes de usar la función de restricción de par.
Si ocurre el problema anterior, establezca un mayor valor de límite superior y ajuste el valor para que el
manipulador funcione correctamente.
Manual de referencia del lenguaje SPEL+ Rev.2
397
Manual de referencia del lenguaje SPEL+
También consulte
Función LimitTorqueLP, PTRQ
Ejemplo de LimitTorqueLP
A continuación, se muestra un ejemplo en donde se opera el manipulador con el máximo par de la
articulación n.º 1 al 10 %.
Function main
Motor On
Power low
LimitTorqueLP 10,27,31,42 ' Restringe el par máximo de la articulación n.° 1 a 10 %
' Define el valor predeterminado de otros ejes
Go P1 ' Ejecuta el movimiento Go
Fend
398
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LimitTorqueLP
Arroja el valor de configuración del comando LimitTorqueLP.
Sintaxis
LimitTorqueLP(jointNumber)
Parámetros
jointNumber Expresión entera que varía de 1 a 9.
El eje adicional S es 8 y el eje T es 9.
Valores devueltos
Arroja un número entero que representa el valor de configuración del comando LimitTorqueLP.
También consulte
LimitTorqueLP
Ejemplo de función Len
Print LimitTorqueLP(1) 'Muestra el valor de LimitTorqueLP de la articulación n.° 1.
Manual de referencia del lenguaje SPEL+ Rev.2
399
Manual de referencia del lenguaje SPEL+
Instrucción LimitTorqueStop
Activa o desactiva la función para detener el robot cuando se alcanza el par de límite superior en modo de
potencia alta.
Sintaxis
(1) LimitTorqueStop status
(2) LimitTorqueStop status, jointNumber
(3) LimitTorqueStop
Parámetros
status On: Habilita la función para detener el robot en el par de límite superior
Off: Deshabilita la función para detener el robot en el par de límite superior
jointNumber El número de la articulación desde 1 a 6.
(Para los robots SCARA, los números de articulación varían de 1 a 4)
Resultado
Arroja el estado de LimitTorqueStop status si se omite el parámetro.
Descripción
LimitTorqueStop activa la función para detener el robot en el valor de par de límite superior en modo de
potencia alta. El robot se detiene inmediatamente cuando alcanza el par de límite superior (el valor
predeterminado es 100 %). Usar este comando con la función de restricción de par de LimitTorque
proporciona el efecto para reducir los daños en el robot y los equipos periféricos durante una colisión en
modo de potencia alta.
Esta función se puede activar o desactivar para cada articulación o para todas. El valor predeterminado es
all joints off(Todas las articulaciones desactivadas).
La configuración vuelve al valor predeterminado durante el inicio del controlador. En otros casos, la
configuración no cambia a menos que se configure explícitamente lo contrario con este comando.
Cuando se alcanza el par de límite superior, aparecerá el Error 5040 Falla de salida de par motor en
estado de potencia altay se detendrá el robot.
También consulte
LimitTorque, Función LimitTorque
Ejemplo de LimitTorqueStop
A continuación, se ve el ejemplo que restringe el par máximo de la articulación n.º 1 al 30 % y detiene al
robot de inmediato.
Function main
Motor On
Power high
Speed 20
Accel 20,20
LimitTorque 30,100,100,100 ' Restringe el par máximo de la articulación n.° 1 a 30 %
LimitTorqueStop On, 1 ' La articulación n.° 1 se detiene inmediatamente en el par
máximo
Go P1 ' Ejecuta el movimiento Go
Fend
400
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LimitTorqueStop
Arroja el valor de configuración del comando LimitTorqueStop.
Sintaxis
LimitTorqueStop(jointNumber)
Parámetros
jointNumber Expresión entera que varía de 1 a 6.
Valores devueltos
Arroja un número entero que representa el valor de configuración del comando LimitTorqueStop.
0 = Desactivado
1 = Activado
También consulte
LimitTorqueStop
Ejemplo de función LimitTorqueStop
Print LimitTorqueStop(1) 'Muestra el valor de LimitTorqueStop de la articulación n.° 1.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
401
Instrucción LimitTorqueStopLP
Activa o desactiva la función para detener el robot cuando se alcanza el par de límite superior en modo de
potencia baja.
Sintaxis
(1) LimitTorqueStopLP status
(2) LimitTorqueStopLP status, jointNumber
(3) LimitTorqueStopLP
Parámetros
status On: Habilita la función para detener el robot en el par de límite superior
Off: Deshabilita la función para detener el robot en el par de límite superior
jointNumber El número de la articulación desde 1 a 6.
(Para los robots SCARA, los números de articulación varían de 1 a 4)
Resultado
Arroja el estado de LimitTorqueStopLP status si se omite el parámetro.
Descripción
LimitTorqueStopLP activa la función para detener el robot en el valor de par de límite superior en modo de
potencia baja. El robot se detiene inmediatamente cuando alcanza el par de límite superior. Usar este
comando con la función de restricción de par de LimitTorqueLP proporciona el efecto para reducir los
daños en el robot y los equipos periféricos durante una colisión en modo de potencia baja.
Esta función se puede activar o desactivar para cada articulación o para todas. El valor predeterminado es
all joints off(Todas las articulaciones desactivadas).
La configuración vuelve al valor predeterminado durante el inicio del controlador. En otros casos, la
configuración no cambia a menos que se configure explícitamente lo contrario con este comando.
Cuando se alcanza el par de límite superior, aparecerá el Error 5041 Falla de salida de par motor en
estado de potencia bajay se detendrá el robot.
También consulte
LimitTorqueLP, Función LimitTorqueLP
Ejemplo de LimitTorqueStopLP
A continuación, se ve el ejemplo que restringe el par máximo de la articulación n.º 3 al 15 % y detiene al
robot de inmediato.
Function main
Motor On
Power low
LimitTorqueLP 20,27,15,42 ' Restringe el par máximo de la articulación n.° 3 a 15 %
' Establezca el valor predeterminado para otros ejes
LimitTorqueStopLP On, 3 ' La articulación n.° 3 se detiene inmediatamente en el par
máximo
Go P1 ' Ejecuta el movimiento Go
Fend
402
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LimitTorqueStopLP
Arroja el valor de configuración del comando LimitTorqueStopLP.
Sintaxis
LimitTorqueStopLP(jointNumber)
Parámetros
jointNumber Expresión entera que varía de 1 a 6.
Valores devueltos
Arroja un número entero que representa el valor de configuración del comando LimitTorqueStopLP.
0 = Desactivado
1 = Activado
También consulte
LimitTorqueStopLP
Ejemplo de función LimitTorqueStopLP
Print LimitTorqueStopLP(3) 'Muestra el valor de LimitTorqueStopLP de la articulación
n.° 3.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
403
Instrucción LimZ
Determina el valor predeterminado de la altura de la articulación Z para los comandos Jump.
Sintaxis
(1) LimZ zLimit
(2) LimZ
Parámetros
zLimit Un valor de coordenada dentro del rango móvil de la articulación Z.
Valores devueltos
Muestra el valor actual de LimZ cuando se omite el parámetro.
Descripción
LimZ determina la altura de articulación Z máxima en la que se mueve el brazo cuando usa la instrucción
Jump, donde el brazo del robot sube en la articulación Z, se mueve en el plano X-Y, y luego baja en la
articulación Z. LimZ es simplemente el valor de articulación Z predeterminado que se usa para definir la
posición de techo de la articulación Z para usar durante el movimiento causado por la instrucción Jump.
Cuando no se especifica un valor de LimZ específico en la instrucción Jump, se usa la última configuración
de LimZ para la instrucción Jump.
Notas
Restablecimiento de LimZ a 0
Reiniciar el controlador o ejecutar los comandos SFree, Slock o Motor On inicializará LimZ a 0.
El valor de LimZ no es válido para las coordenadas de Arm, Tool o Local:
La especificación de límite de altura de la articulación Z LimZ es el valor de la articulación Z para el
sistema de coordenadas del robot. No es el valor de articulación Z para las coordenadas de Arm, Tool o
Local. Por lo tanto, tome las precauciones necesarias cuando use herramientas o efectores finales con
distintas alturas de funcionamiento.
LimZ no afecta a Jump3 ni Jump3CP
LimZ no tiene efecto alguno en Jump3 ni Jump3CP, dado que el movimiento de alcance no es
necesariamente perpendicular al eje Z del sistema de coordenadas.
También consulte
Jump
Ejemplo de instrucción LimZ
El ejemplo a continuación muestra el uso de LimZ en las operaciones de Jump.
Function main
LimZ -10 'Ajuste el valor predeterminado de LimZ
Jump P1 'Mueva hacia arriba hasta la posición Z=-10 para Jump
Jump P2 LimZ -20 'Mueva hacia arriba hasta la posición Z=-20 para Jump
Jump P3 'Mueva hacia la posición Z=-10 para Jump
Fend
404
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LimZ
Arroja la configuración actual de LimZ.
Sintaxis
LimZ
Valores devueltos
Número real que contiene la configuración de LimZ actual.
También consulte
Instrucción LimZ
Ejemplo de función LimZ
Real savLimz
savLimz = LimZ
LimZ -25
Go pick
LimZ savLimZ
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
405
Instrucción LimZMargin
Establece y arroja el valor de configuración para la detección de errores cuando la operación comienza en
un valor más alto que el valor LimZ.
Sintaxis
(1) LimZMargin LimZmargin
(2) LimZMargin
Parámetros
LimZmargin Un valor de margen para la detección de errores de LimZ
Valores devueltos
Si se omite el parámetro, se arrojará el valor de LimZMargin actual.
Descripción
Cuando se ejecuta el comando Jump, la articulación n.° 3 se eleva a la posición establecida por LimZ. Sin
embargo, si la posición de inicio de la articulación está sobre la posición de LimZ, ocurrirá un error.
LimZMargin establece un valor de margen para la detección de errores. El valor predeterminado es 0,02
mm.
Nota
Restablecimiento de LimZ al valor predeterminado
Reiniciar el controlador o ejecutar los comandos SFree, Slock o Motor On inicializará LimZ al valor
predeterminado.
También consulte
Función LimZMargin, LimZ
Ejemplo de instrucción LimZ
A continuación se muestra un ejemplo de LimZMargin en la operación Jump.
Function main
LimZ -10 'Ajusta el valor predeterminado de LimZ
LimZMargin 0.03 'establece 0,03 mm para un margen de detección de errores de
LimZ
Jump P1 'movimiento horizontal con -10 en la ejecución de Jump
Jump P2 LimZ -20 'movimiento horizontal con -20 en la ejecución de Jump
Jump P3 'movimiento horizontal con -10 en la ejecución de Jump
Fend
406
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LimZMargin
Arroja la configuración actual de LimZMargin.
Sintaxis
LimZMargin
Valores devueltos
Número real que contiene la configuración de LimZMargin actual.
También consulte
Instrucción LimZMargin, Instrucción LimZ
Ejemplo de función LimZ
Real savLimzMargin
savLimzZMargin = LimZMargin
LimZMargin 0.03
Jump pick
LimZ savLimZMargin
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
407
Instrucción Line Input
Lee los datos de entrada de una línea y asigna los datos a una variable de cadena.
Sintaxis
Line Input stringVar$
Parámetros
stringVar$ Un nombre de variable de cadena. (La variable de cadena debe terminar con el
carácter $).
Descripción
Line Input lee datos de entrada de una línea desde el dispositivo de visualización y asigna los datos a las
variables de cadena que se usan con la instrucción Line Input. Cuando la instrucción Line Input está lista
para recibir datos del usuario, causa que se muestre una indicación “?” en el dispositivo de visualización.
Entonces, se recibe la línea de datos de entrada después de la indicación como el valor de la variable de
cadena. Después de ingresar la línea de datos, presione la tecla [ENTER].
También consulte
Input, Input #, Line Input#, ParseStr
Ejemplo de instrucción Line Input
El ejemplo a continuación muestra el uso de Line Input.
Function Main
String A$
Line Input A$ 'Lee datos de entrada de una línea en A$
Print A$
Fend
Ejecute el programa anterior con la tecla F5 o el menú Run en la pantalla principal de EPSON RC+.
Una sesión de funcionamiento resultante puede ser la siguiente:
?A, B, C
A, B, C
408
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Line Input #
Lee datos de una línea desde un archivo, puerto de comunicación o el dispositivo.
Sintaxis
Line Input #portNumber, stringVar$
Parámetros
portNumber mero de ID que representa un archivo, un puerto de comunicación, una base de
datos o un dispositivo.
El número de archivo se puede especificar en las instrucciones ROpen, WOpen y
AOpen.
El número del puerto de comunicación se puede especificar en las instrucciones
OpenCom (RS232) y OpenNet (TCP/IP).
El número de la base de datos se puede especificar en la instrucción OpenDB.
Los números enteros de ID del dispositivo son los siguientes.
21 RC+
23 OP
24 TP (solo TP1)
20 TP3
stringVar$ Una variable de cadena. (Las variables de cadena deben terminar con el carácter $).
Descripción
Line Input # lee los datos de cadena de una línea desde el dispositivo especificado con el parámetro
portNumber y asigna los datos a la variable de cadena stringVar$.
También consulte
Input, Input #, Line Input
Ejemplo de instrucción Line Input #
Este ejemplo recibe los datos de cadena desde el puerto de comunicación número 1 y asigna los datos a la
variable de cadena A$.
Function lintest
String a$
Print #1, "Please input string to be sent to robot"
Line Input #1, a$
Print "Value entered = ", a$
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
409
Función LJM
Arroja los datos de punto con los indicadores de orientación convertidos para activar el último
movimiento de articulación cuando se mueva a un punto especificado según el punto de
referencia.
Sintaxis
LJM (Point, [ refPoint, [orientationFlag] ])
Parámetros
Point Especifica los datos de punto.
refPoint Especifica los datos de punto de referencia. Cuando esto se omite, el punto de
referencia es la posición actual.
orientationFlag
Robot de 6 ejes 1: Convierte la orientación de la muñeca (indicador Wrist [Muñeca]), J4Flag o
J6Flag. (predeterminado)
2: Convierte el indicador J4Flag o J6Flag.
Serie RS 1: Convierte la orientación de la mano (indicador Hand [Mano]), J1Flag o
J2Flag. (predeterminado)
2: Convierte la orientación de la mano (indicador Hand [Mano]), J1Flag o
J2Flag.
Evita que el eje U se mueva fuera del rango de movimiento en la conversión
del indicador.
Serie N 1: Se convierte a la postura con el mínimo movimiento de la articulación, en el
orden de articulación n.º 1, articulación n.º 5, articulación n.º 4 y articulación
n.º 6. Las posturas objetivo son la orientación de la mano (indicador Hand), la
orientación del codo (indicador Elbow), la orientación de la muñeca (indicador
Wrist), J4Flag y J6Flag. La orientación del codo (indicador Elbow) es siempre
la orientación ascendente del codo. Esta es la configuración predeterminada
cuando se omite orientationFlag.
2: Se convierte a la postura con el mínimo movimiento de la articulación, en el
orden de articulación n.º 1, articulación n.º 4 y articulación n.º 6. Las
posturas objetivo son la orientación de la mano (indicador Hand), la
orientación del codo (indicador Elbow), la orientación de la muñeca (indicador
Wrist), J4Flag y J6Flag. La orientación del codo (indicador Elbow) es siempre
la orientación ascendente del codo.
3: Se convierte a la postura con el mínimo movimiento de la articulación en el
orden de articulación n.º 4 y articulación n.º 6. Las posturas objetivo son la
orientación de la muñeca (indicador Wrist), J4Flag y J6Flag.
4: Se convierte a la postura con el mínimo movimiento de la articulación, en el
orden de articulación n.º 5, articulación n.º 4 y articulación n.º 6. Las
posturas objetivo son la orientación de la muñeca (indicador Wrist), J4Flag y
J6Flag.
5: Cuando la postura de punto de referencia y la orientación de la mano (indicador
Hand) son distintas, se convierte a la postura con el mínimo movimiento de la
articulación, en el orden de articulación n.º 5, articulación n.º 4 y articulación
n.º 6. Las posturas objetivo son la orientación de la mano (indicador Hand), la
orientación del codo (indicador Elbow), la orientación de la muñeca (indicador
Wrist), J4Flag y J6Flag. La orientación del codo (indicador Elbow) es siempre
la orientación ascendente del codo.
6: Cuando la postura de punto de referencia y la orientación de la mano
(indicador Hand) son distintas, se convierte a la postura con el mínimo
410
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
movimiento de la articulación, en el orden de articulación n.º 4 y articulación
n.º 6. Las posturas objetivo son la orientación de la mano (indicador Hand), la
orientación del codo (indicador Elbow), la orientación de la muñeca (indicador
Wrist), J4Flag y J6Flag. La orientación del codo (indicador Elbow) es siempre
la orientación ascendente del codo.
7: Con la orientación de codo hacia abajo (indicador Elbow), se convierte a la
postura con el mínimo movimiento de la articulación, en el orden de
articulación n.º 1, articulación n.º 5, articulación n.º 4 y articulación n.º 6. Las
posturas objetivo son la orientación de la mano (indicador Hand), la
orientación del codo (indicador Elbow), la orientación de la muñeca (indicador
Wrist), J4Flag y J6Flag. Se genera un error cuando la orientación descendente
del codo está fuera del rango de movimiento.
Descripción
8: Con la orientación de codo hacia abajo (indicador Elbow), se convierte a la
postura con el mínimo movimiento de la articulación, en el orden de
articulación n.º 1, articulación n.º 4 y articulación n.º 6. Las posturas objetivo
son la orientación de la mano (indicador Hand), la orientación del codo
(indicador Elbow), la orientación de la muñeca (indicador Wrist), J4Flag y
J6Flag. Se genera un error cuando la orientación descendente del codo está
fuera del rango de movimiento.
Cuando el robot de 6 ejes o de la serie N se mueve hasta un punto calculado mediante las compensaciones
de pálet o relativas, la pieza de la muñeca podría girar hasta una dirección involuntaria. El cálculo del
punto anterior no depende de los modelos de robot y genera un movimiento sin convertir el indicador de
punto necesario.
La función LJM se puede usar para convertir el indicador de punto y evitar la rotación involuntaria de la
muñeca.
Para los robots de la serie N, también es posible reducir el tiempo del ciclo y omitir la enseñanza del punto
de evasión, el cual es necesario para el robot de 6 ejes, mediante el cambio del indicador Hand y el
indicador Elbow.
Cuando el robot de la serie RS se mueve hasta un punto calculado mediante las compensaciones de pálet o
relativas, el brazo n.º 1 podría girar hasta una dirección involuntaria. La función LJM se puede usar para
convertir el indicador de punto y para evitar la rotación involuntaria del brazo n.º 1.
Además, el eje U de un robot de la serie RS puede salir del rango de movimiento cuando se convierte el
indicador de orientación, lo que causará un error.
Para evitar este error, la función LJM ajusta el ángulo objetivo del eje U de modo que esté dentro del rango
de movimiento. Esto está disponible cuando se selecciona “2” para orientationFlag.
Arroja el punto especificado para todos los robots, excepto el robot de 6 ejes, de la serie N y de la serie RS.
Nota
La omisión del punto de referencia y el procesamiento paralelo
No puede usar la omisión de punto paralelo y el procesamiento paralelo juntos en un comando de
movimiento como este:
Go LJM(P10) ! D10; MemOn 1 !
Asegúrese de cambiar el programa de la siguiente forma:
P999 = Here
Go LJM(P10,P999) ! D10; MemOn 1 !
orientationFlag para la serie N
- orientationFlag 1, 2:
Para acortar el tiempo del ciclo, seleccione orientationFlag 1 o 2.
Ya que la postura tiene un movimiento mínimo de articulación n.º 1, el tiempo del ciclo puede ser el
más corto en la mayoría del movimiento.
Para reducir el movimiento de la articulación n.º 5, seleccione orientationFlag 1.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
411
Para reducir el movimiento de la articulación n.º 4, seleccione orientationFlag 2.
- orientationFlag 3, 4:
Use estos indicadores si no desea cambiar la orientación de referencia, la orientación de la mano y la
orientación del codo.
Use estos indicadores si desea usarlos de la misma manera como indicadores para los robots de 6 ejes
verticales.
orientationFlag 3 es igual que orientationFlag 1 de los robots de 6 ejes verticales.
orientationFlag 4 es igual que orientationFlag 2 de los robots de 6 ejes verticales.
- orientationFlag 5, 6:
Si la mano colisiona con paredes periféricas durante la operación, seleccione orientationFlag 5 o 6.
Ya que la mano pasa el entorno del punto de origen del robot, este se puede mover con menos
posibilidad de colisionar con los obstáculos.
Para reducir el movimiento de la articulación n.º 5, seleccione orientationFlag 5.
Para reducir el movimiento de la articulación n.º 4, seleccione orientationFlag 6.
- orientationFlag 7, 8:
Para tener una orientación de codo hacia abajo, seleccione orientationFlag 7 o 8.
Dependiendo del movimiento, el robot pasa el entorno del origen orientationFlag 5 y orientationFlag 6.
Por lo tanto, el robot se puede mover con menos posibilidad de colisionar con los obstáculos si estos
están ubicados alrededor del robot.
Para reducir el movimiento de la articulación n.º 5, seleccione orientationFlag 7.
Para reducir el movimiento de la articulación n.º 4, seleccione orientationFlag 8.
También consulte
Pallet
Ejemplo de función LJM
Function main
Integer i, j
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(200, 280, 150, 90, 0, 180)
P2 = XY(200, 330, 150, 90, 0, 180)
P3 = XY(-200, 280, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
P11 = P0 -TLZ(50)
For i = 1 To 10
For j = 1 To 10
'Especifica los puntos
P10 = P11 'Punto de alejamiento
P12 = Pallet(1, i, j) 'Punto objetivo
P11 = P12 -TLZ(50) 'Inicia el punto de acercamiento
'Convierte cada punto a LJM
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'Ejecuta el movimiento
Jump3 P10, P11, P12 C0
412
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Next
Next
Fend
Function main2
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(400, 0, 150, 90, 0, 180)
P2 = XY(400, 500, 150, 90, 0, 180)
P3 = XY(-400, 0, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
Do
' Especifica los puntos
P10 = Here -TLZ(50) 'Punto de alejamiento
P12 = Pallet(1, Int(Rnd(9)) + 1, Int(Rnd(9)) + 1) 'Punto objetivo
P11 = P12 -TLZ(50) 'Inicia el punto de
acercamiento
If TargetOK(P11) And TargetOK(P12) Then 'Control de punto
' Conversión de cada punto a LJM
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'Ejecuta el movimiento
Jump3 P10, P11, P12 C0
EndIf
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
413
Instrucción LoadPoints
Carga un archivo de punto en un área de memoria de puntos del robot actual.
Sintaxis
LoadPoints fileName [, Merge]
Parámetros
fileName Expresión de cadena que contiene el archivo específico para cargar en el área de
memoria de puntos del robot actual. La extensión debe ser .PTS. El archivo debe
existir en el proyecto actual para el robot actual.
No puede especificar una ruta de archivo y fileName no tiene efecto de ChDisk.
Consulte ChDisk para conocer detalles.
Merge Opcional. Si se suministra, entonces no se borran los puntos actuales antes de cargar
los puntos nuevos. Los puntos del archivo se agregan a los puntos actuales. Si existe
un punto en el archivo, sobrescribirá el punto en la memoria.
Descripción
LoadPoints carga archivos de puntos desde el disco en el área de memoria principal del controlador del
robot actual.
Use Merge para combinar archivos de puntos. Por ejemplo, puede tener un archivo de puntos principal que
incluye puntos comunes para ubicaciones, estacionamiento, etc., que varía entre 0 y 100. Luego, use
Merge para cargar otros archivos de puntos para cada pieza que se hace funcionar sin borrar los puntos
comunes. El rango puede ir de 101 a 999.
Posibles errores
No se puede especificar una ruta
Si fileName contiene una ruta, ocurrirá un error. Solo se puede especificar un nombre de archivo en el
proyecto actual.
El archivo no existe
Si fileName no existe, ocurrirá un error.
El archivo de punto no es para el robot actual
Si fileName no es un archivo de punto del robot actual, se emitirá el siguiente error: No se encontró el
archivo de punto para el robot actual. Para corregir esto, agregue el archivo de punto del robot en el editor
Project (Proyecto) o ejecute SavePoints o ImportPoints.
También consulte
ImportPoints, Robot, SavePoints
Ejemplo de instrucción LoadPoints
Function main
' Cargar puntos en común para el robot actual
LoadPoints "R1Common.pts"
' Fusionar los puntos para el modelo de pieza 1
LoadPoints "R1Model1.pts", Merge
Robot 2
' Carga archivo de punto para el robot 2
LoadPoints "R2Model1.pts"
Fend
414
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Local
Define y muestra los sistemas de coordenadas locales.
Sintaxis
(1) Local localNumber, ( pLocal1 : pBase1 ), ( pLocal2 : pBase2 ), [ { L | R } ], [ BaseU ]
(2) Local localNumber, pCoordinateData
(3) Local localNumber, pOrigin, [pXaxis], [pYaxis], [ { X | Y } ]
(4) Local localNumber
Parámetros
localNumber El número del sistema de coordenadas local. Se puede definir un total de 15 sistemas
de coordenadas locales (del valor entero de 1 a 15).
pLocal1, pLocal2 Variables de puntos con datos de puntos en el sistema de coordenadas local.
pBase1, pBase2 Variables de puntos con datos de puntos en el sistema de coordenadas base.
L | R Opcional. Alinea el origen local a los puntos base izquierdos (primero) o derechos
(segundo).
BaseU Opcional. Cuando se suministran, las coordenadas del eje U están en el sistema de
coordenadas base. Cuando se omiten, las coordenadas del eje U están en el sistema
de coordenadas local.
pCoordinateData Los datos de punto que representan los datos de coordenada del origen y la dirección.
pOrigin Expresión entera que representa el punto de origen con el sistema de coordenadas del
robot.
pXaxis Opcional. Expresión entera que representa un punto a lo largo del eje X con el
sistema de coordenadas del robot, si se especifica la alineación de X.
pYaxis Opcional. Expresión entera que representa un punto a lo largo del eje Y con el
sistema de coordenadas del robot, si se especifica la alineación de Y.
X | Y Si se especifica la alineación de X, entonces pXaxis yace en el eje X del local. Se
calcula que los ejes Y y Z son ortogonales con X en el plano que se crea con los 3
puntos locales. Si se especifica la alineación de Y, entonces pYaxis yace en el eje Y
del local. Se calcula que los ejes X y Z son ortogonales con Y en el plano que se
crea con los 3 puntos locales.
Descripción
(1) Local define un sistema de coordenadas local mediante la especificación de 2 puntos, pLocal1 y
pLocal2, contenidos dentro de este que coincide con dos puntos, pBase1 y pBase2, contenidos en el
sistema de coordenadas base.
Ejemplo:
Local 1, (P1:P11), (P2:P12)
P1 y P2 son puntos de sistema de coordenadas local. P11 y P12 son puntos de sistema de coordenadas
base.
SI la distancia entre los dos puntos especificados en el sistema de coordenadas local no es igual al que
existe entre dos puntos especificados en el sistema de coordenadas base, el plano XY del sistema de
coordenadas local se define en la posición donde el punto medio entre los dos puntos especificados en
el sistema de coordenadas local coincide con el que se encuentra entre los dos puntos especificados en
el sistema de coordenadas base.
Asimismo, el eje Z del sistema de coordenadas local se define en la posición donde los puntos medios
coinciden entre sí.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
415
(2) Define un sistema de coordenadas local mediante la especificación del origen y los ángulos de rotación
del eje con respecto al sistema de coordenadas base.
Ejemplo:
Local 1, XY(x, y, z, u)
Local 1, XY(x, y, z, u, v, w)
Local 1, P1
(3) Define un sistema de coordenadas local 3D mediante la especificación del punto de origen, el punto de
eje x y el punto de eje y. Solo se usan las coordenadas X, Y y Z de cada punto. Se ignoran las
coordenadas U, V y W. Cuando se usan los parámetros de alineación X, entonces pXaxis está en el eje
X del local y solo se usa la coordenada Z de pYaxis. Cuando se usan los parámetros de alineación Y,
entonces pYaxis está en el eje Y del local y solo se usa la coordenada Z de pXaxis.
Ejemplo:
Local 1, P1, P2, P3
Local 1, P1, P2, P3, X
Local 1, P1, P2, P3, Y
(4) Muestra la configuración local especificada.
Uso de los parámetros L y R
Mientras que Local básicamente usa puntos medios para posicionar los ejes de su sistema de coordenadas
local como se describió anteriormente, puede especificar opcionalmente local izquierdo o derecho con los
parámetros L y R.
Left Local
Left local define el sistema de coordenadas local mediante la especificación del punto pLocal1 que
corresponde al punto pBase1 en el sistema de coordenadas base (se incluye la dirección del eje Z).
Right Local
Right local define el sistema de coordenadas local mediante la especificación del punto pLocal2 que
corresponde al punto pBase2 en el sistema de coordenadas base. (Se incluye la dirección del eje Z).
Uso del parámetro BaseU
Si se omite el parámetro BaseU, entonces el eje U del sistema de coordenadas local se corrige
automáticamente de acuerdo con los valores de coordenadas X e Y de los 4 puntos especificados. Por lo
tanto, los 2 puntos en el sistema de coordenadas base pueden inicialmente tener cualquier valor de
coordenada U.
Es posible que se desee corregir el eje U del sistema de coordenadas local basado en los valores de
coordenada U de los dos puntos en el sistema de coordenadas base, en lugar de corregirlo automáticamente
(por ejemplo, corregir el eje de rotación mediante la enseñanza). Para hacer esto, proporcione el parámetro
BaseU.
También consulte
ArmSet, Base, ECPSet, LocalClr, TLSet, Where
416
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplos de instrucción Local
Aquí hay algunos ejemplos de la ventana Command:
Local alineado a la izquierda:
> p1 = 0, 0, 0, 0/1
> p2 = 100, 0, 0, 0/1
> p11 = 150, 150, 0, 0
> p12 = 300, 150, 0, 0
> local 1, (P1:P11), (P2:P12), L
> p21 = 50, 0, 0, 0/1
> go p21
Local definido solo con el punto de origen:
> local 1, 100, 200, -20, 0
Local definido solo con el punto de origen, girado en 45 grados con respecto al eje X:
> local 2, 50, 200, 0, 0, 45, 0
3D Local con p2 alineado con el eje X del local:
> local 3, p1, p2, p3, x
3D Local con p3 alineado con el eje Y del local:
> local 4, p1, p2, p3, y
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
417
Función Local
Arroja los datos del sistema de coordenadas especificado como un punto.
Sintaxis
Local(localNumber)
Parámetros
localNumber Número del sistema e coordenadas local (entero de 1 a 15) con el uso de una
expresión o valor numérico.
Valores devueltos
Datos del sistema de coordenadas local especificado como datos de puntos.
También consulte
Instrucción Local
Ejemplo de función Local
P1 = Local(1)
418
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción LocalClr
Borra (anula la definición) un sistema de coordenadas.
Sintaxis
LocalClr localNumber
Parámetros
localNumber Expresión entera que representa cuáles de los 15 locales (entero de 1 a 15) se
borrarán (se anulará la definición).
También consulte
Arm, ArmSet, ECPSet, Local, Tool, TLClr, TLSet
Ejemplo de instrucción LocalClr
LocalClr 1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
419
Función LocalDef
Arroja el estado de la definición local.
Sintaxis
LocalDef (localCoordinateNumber)
Parámetros
localCoordinateNumber Expresión entera que representa para cuál coordenada local se debe arrojar el
estado.
Valores devueltos
True si se ha definido el Local especificado, o de lo contrario, False.
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLClr, TLSet
Ejemplo de función LocalDef
Function DisplayLocalDef(localNum As Integer)
If LocalDef(localNum) = False Then
Print "Local ", localNum, "is not defined"
Else
Print "Local 1: ",
Print Local(localNum)
EndIf
Fend
420
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Lof
Comprueba si el puerto RS-232 o TCP/IP especificado tiene líneas de datos en su búfer.
Sintaxis
Lof ( fileNumber como un número entero)
Parámetros
fileNumber Un número especificado en las instrucciones OpenCom (RS-232C) u OpenNet
(TCP/IP).
Valores devueltos
La cantidad de líneas de datos en el búfer. Si no hay datos en el búfer, Lof arroja “0”.
Descripción
Lof comprueba si el puerto especificado ha recibido o no las líneas de datos. Los datos recibidos se
almacenan en el búfer, sin importar la instrucción Input#.
Puede esperar el valor devuelto de la función Lof mediante la ejecución de Wait.
Nota
Cuando use el puerto PC COM (1001 a 1008), no puede usar la función Lof con el comando Wait.
También consulte
ChkCom, ChkNet, Input#, Wait
Ejemplo de función Lof
Este ejemplo de ventana Command imprime la cantidad de líneas de datos recibidas a través del puerto de
comunicación número 1.
>print lof(1)
5
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
421
Instrucción LogIn
Inicia sesión en EPSON RC+ 6.0 como un usuario distinto.
Sintaxis
LogIn logID, password
Parámetros
logID Expresión de cadena que contiene el Id. de sesión del usuario.
password Expresión de cadena que contiene la contraseña del usuario.
Descripción
Puede utilizar la seguridad de EPSON RC+ en su aplicación. Por ejemplo, puede mostrar un menú que
permita que distintos usuarios inicien sesión en el sistema. Cada tipo de usuario puede tener sus propios
derechos de seguridad. Para conocer más detalles acerca de la seguridad, consulte el Manual del usuario de
EPSON RC+.
Cuando ejecuta programas en el entorno de desarrollo, se restaurará el usuario antes de que se inicien los
programas cuando los programas dejen de ejecutarse.
Cuando ejecute la ventana Operator en modo Auto, se inicia sesión en la aplicación como un usuario
invitado, a menos que Auto LogIn esté activado, en cuyo caso se inicia sesión en la aplicación como el
usuario de Windows actual, si dicho usuario está configurado en el sistema EPSON RC+.
Nota
Este comando solo funcionará si la opción Security está activada.
También consulte
Función GetCurrentUser$
Ejemplo de instrucción LogIn
Integer errCode
errCode = LogIn("operator", "oprpass")
422
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Long
Declara las variables de tipo número entero largo. (Número entero de 4 bytes).
Sintaxis
Long varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de la variable que el usuario desea declarar como de tipo largo.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Long se usa para declarar variables como un tipo largo. Las variables de tipo Long pueden incluir números
enteros con valores de -2,147,483,648 a 2,147,483,647. Las variables locales se deben declarar al inicio de
una función. Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Real, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Long
El siguiente ejemplo muestra un programa simple que declara algunas variables como largas con el uso de
Long.
Function longtest
Long A(10) 'Matriz de una dimensión de largo
Long B(10, 10) 'Matriz de dos dimensiones de largo
Long C(5, 5, 5) 'Matriz de tres dimensiones de largo
Long var1, arrayVar(10)
Long i
Print "Please enter a Long Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter a Long Number"
Input arrayVar(i)
Print "Value Entered was ", arrayVar(i)
Next I
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
423
Función LSet$
Arroja la cadena especificada con espacios finales anexados hasta una longitud especificada.
Sintaxis
LSet$ (string, length)
Parámetros
string Expresión de cadena.
length Expresión entera para la longitud total de la cadena devuelta.
Valores devueltos
Cadena especificada con espacios finales anexados.
También consulte
RSet$, Space$
Ejemplo de función LSet$
temp$ = "123"
temp$ = LSet$(temp$, 10) ' temp$ = "123 "
424
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LShift
Desplaza los datos numéricos a la izquierda según el número de bits especificados por un usuario.
Sintaxis
LShift(number, shiftBits)
Parámetros
number Expresión entera que se desplazará.
shiftBits El número de bits (entero de 0 a 31) que se desplazará number a la izquierda.
Valores devueltos
Arroja un resultado numérico igual al valor de number después de desplazar el número de bits shiftBits a la
izquierda.
Descripción
LShift cambia los datos numéricos especificados (number) a la izquierda (hacia un dígito de orden más
alto) según la cantidad de bits especificada (shiftBits). Los bits de orden inferior desplazados se
reemplazan por un 0.
La explicación más simple de LShift es que simplemente arroja el resultado de number * 2shiftBits.
Nota
Tipo de datos numéricos:
El valor number de datos numéricos puede ser cualquier tipo de dato numérico válido. LShift admite los
tipos de datos: Byte, doble, Int32, entero, largo, real, corto, UByte, UInt32 y UShort.
También consulte
And, LShift64, Not, Or, RShift, RShift64, Xor
Ejemplo de función LShift
Function lshiftst
Integer i
Integer num, snum
num = 1
For i = 1 to 10
Print "i =", i
snum = LShift(num, i)
Print "The shifted num is ", snum
Next i
Fend
Otro ejemplo surge de la instrucción LShift desde la ventana Command.
> Print LShift(2,2)
8
> Print LShift(5,1)
10
> Print LShift(3,2)
12
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
425
Función LShift64
Desplaza los datos numéricos a la izquierda según el número de bits especificados por un usuario.
Sintaxis
LShift64(number, shiftBits)
Parámetros
number Expresión entera que se desplazará.
shiftBits El número de bits (entero de 0 a 63) que se desplazará number a la izquierda.
Valores devueltos
Arroja un resultado numérico igual al valor de number después de desplazar el número de bits shiftBits a la
izquierda.
Descripción
LShift64 cambia los datos numéricos especificados (number) a la izquierda (hacia un dígito de orden más
alto) según la cantidad de bits especificada (shiftBits). Los bits de orden inferior desplazados se
reemplazan por un 0.
La explicación más simple de LShift64 es que simplemente arroja el resultado de number * 2shiftBits.
Nota
Tipo de datos numéricos:
El valor number de datos numéricos puede ser cualquier tipo de dato numérico válido. LShift64 admite los
tipos de datos: Int64 y UInt64.
También consulte
And, LShift, Not, Or, RShift, RShift64, Xor
Ejemplo de función LShift64
Function lshiftst
Int64 i
Int64 num, snum
num = 1
For i = 1 to 10
Print "i =", i
snum = LShift64(num, i)
Print "The shifted num is ", snum
Next i
Fend
Otro ejemplo surge de la instrucción LShift64 desde la ventana Command.
> Print LShift64(2,2)
8
> Print LShift64(5,1)
10
> Print LShift64(3,2)
12
>
426
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función LTrim$
Arroja una cadena igual a la cadena especificada sin espacios delanteros.
Sintaxis
LTrim$ (string)
Parámetros
string Expresión de cadena.
Valores devueltos
Cadena especificada sin espacios delanteros.
También consulte
RTrim$, Trim$
Ejemplo de función LTrim$
str$ = " data "
str$ = LTrim$(str$) ' str$ = "data "
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
427
Operador Mask
Máscara de bitwise para la expresión de condición de la instrucción Wait.
Sintaxis
Wait expr1 Mask exrp2
Parámetros
expr1 Cualquier condición de entrada de expresión válida para Wait.
expr2 Cualquier expresión válida que arroje un resultado numérico.
Descripción
El operador Mask es un And bitwise para las expresiones de condición de la entrada de instrucción Wait.
También consulte
Wait
Ejemplo del operador Mask
' Espere que los 3 bits inferiores del puerto de entrada 0 sean iguales a 1
Wait In(0) Mask 7 = 1
428
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción MCal
Ejecuta la calibración de máquina para robots con codificadores incrementales.
Sintaxis
MCal
Descripción
Es necesario calibrar los robots que tienen codificadores incrementales. Esta calibración se debe ejecutar
después de encender la energía principal. Si intenta la ejecución del comando de movimiento, o cualquier
comando que requiera los datos de posición actual sin primero ejecutar la calibración de la máquina,
ocurrirá un error.
La calibración de la máquina se ejecuta de acuerdo al orden de articulación que se mueve, el que se
especifica con el comando MCordr. El valor predeterminado de MCordr al momento del envío varía de un
modelo a otro, por lo que debe consultar el manual del manipulador correspondiente para conocer detalles.
Posibles errores
Intento de ejecución de un comando de movimiento sin ejecutar Mcal primero
Si intenta la ejecución del comando de movimiento, o cualquier comando que requiera los datos de
posición actual (por ejemplo, la instrucción Plist*) sin primero ejecutar la calibración de la máquina,
ocurrirá un error.
Robots de codificador absoluto
Los robots de codificador absoluto no necesitan MCAL.
Nota de instalación del robot
Espacio de articulación Z necesario para regreso a la posición de reposo
Cuando la articulación Z vuelve a la posición de inicio se mueve primero hacia arriba y, luego, se mueve
hacia abajo y se queda en la posición de reposo. Esto significa que es muy importante instalar
adecuadamente el robot para que quede suficiente espacio para que el brazo lleve la articulación Z a la
posición de reposo. Se recomienda que se deje un espacio de 6 mm sobre el límite superior. (No instale
herramientas o accesorios dentro de 6 mm sobre el robot, de modo que haya suficiente espacio para que la
articulación Z vuelva correctamente a la posición de reposo).
También consulte
Hofs, Home, Hordr, Mcorg, MCordr
Ejemplo de instrucción Mcal
El siguiente ejemplo se realizó en la ventana Monitor:
> Motor On
> Mcal
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
429
Función MCalComplete
Arroja el estado de MCal.
Sintaxis
MCalComplete
Valores devueltos
True si MCal se ha completado; de lo contrario, False.
También consulte
MCal
Ejemplo de función MCalComplete
If Not MCalComplete Then
MCal
EndIf
430
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción MCordr
Especifica y muestra el orden de movimiento de las articulaciones para el valor Mcal de calibración de
máquina.
Solo se requiere para robots con codificadores incrementales.
Sintaxis
(1) MCordr Step1, Step2, Step3, Step4, [Step5], [Step6], [Step7], [Step8], [Step9]
(2) MCordr
Parámetros
Step1 Patrón de bits que indica los ejes que se deberían calibrar durante el primer paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el primero
paso. (Consulte a continuación para ver las definiciones del patrón de bits)
Step2 Patrón de bits que indica los ejes que se deberían calibrar durante el segundo paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el segundo
paso. (Consulte a continuación para ver las definiciones del patrón de bits)
Step3 Patrón de bits que indica los ejes que se deberían calibrar durante el tercer paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el tercer paso.
(Consulte a continuación para ver las definiciones del patrón de bits)
Step4 Patrón de bits que indica los ejes que se deberían calibrar durante el cuarto paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el cuarto paso.
(Consulte a continuación para ver las definiciones del patrón de bits)
Step5 Patrón de bits que indica los ejes que se deberían calibrar durante el quinto paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el quinto paso.
(Consulte a continuación para ver las definiciones del patrón de bits)
Step6 Patrón de bits que indica los ejes que se deberían calibrar durante el sexto paso del proceso de
Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el sexto paso.
(Consulte a continuación para ver las definiciones del patrón de bits)
Step7 Patrón de bits que indica los ejes que se deberían calibrar durante el séptimo paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el séptimo
paso. (Consulte a continuación para ver las definiciones del patrón de bits)
Step8 Patrón de bits que indica los ejes que se deberían calibrar durante el octavo paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el octavo paso.
(Consulte a continuación para ver las definiciones del patrón de bits)
Step9 Patrón de bits que indica los ejes que se deberían calibrar durante el noveno paso del proceso
de Mcal. Cualquier número de ejes, entre 0 a los 4, se pueden calibrar durante el noveno
paso. (Consulte a continuación para ver las definiciones del patrón de bits)
Valores devueltos
Muestra el orden de calibración de la máquina actual cuando se omiten los parámetros.
Descripción
Después de encender el sistema, se debe emitir la instrucción Mcal antes de realizar cualquier operación
con el brazo del robot. Cuando se emite la instrucción Mcal, cada uno de los 4 ejes del robot se moverá a
sus posiciones de calibración respectivas.
Especifica el orden de movimiento de las articulaciones para el comando Mcal. (Es decir, define qué
articulación volverá a la posición de reposo primero, cuál realizará Mcal en segundo lugar, en tercer lugar,
etc.)
El fin de la instrucción MCordr es permitir que el usuario cambie el orden de regreso a la posición de
reposo. El orden de regreso a la posición de reposo se divide en 9 pasos separados. Entonces, el usuario
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
431
utiliza MCordr para definir los ejes específicos que se moverán a la posición de calibración (hecho con el
comando Mcal) durante cada paso. Es importante darse cuenta de que se puede definir más de 1
articulación para moverse a la posición de calibración durante un solo paso. Esto significa que los cuatro
ejes posiblemente se pueden calibrar al mismo tiempo. Sin embargo, se recomienda que se defina la
articulación Z normalmente para que se mueva a la posición de calibración primero (en el Paso 1), y luego
permita que los demás ejes sigan en pasos posteriores. (Consulte las notas a continuación)
La instrucción MCordr espera que se defina un patrón de bits para cada uno de los 9 pasos. Ya que hay 4
ejes, cada articulación tiene asignada un bit específico. Cuando el bit es alto (1) (para un paso específico),
entonces se calibrará la articulación correspondiente. Cuando el bit es bajo (0), entonces no se calibrará la
articulación correspondiente durante ese paso. Los patrones del bit de la articulación están asignados de la
siguiente manera:
Nota
Diferencia entre MCordr y Hordr
Aunque, a primera vista, los comandos Hordr y MCordr pueden parecer muy similares, hay una diferencia
principal que es muy importante que comprendan. MCordr se usa para definir el orden de articulación de
calibración del robot (se usa con Mcal), mientras que Hordr se usa para definir el orden de regreso a la
posición de reposo de la articulación (se usa con el comando Home).
Orden predeterminado de MCal (configuración de fábrica)
El orden de calibración de articulación predeterminado de fábrica es que la articulación 3 volverá a la
posición de reposo en el Paso 1. Luego, las articulaciones 1, 2 y 4 volverán a la posición de reposo al
mismo tiempo en el paso 2. (Los Pasos 3 y 4 no se usan en la configuración predeterminada). Los valores
predeterminados de MCordr son los siguientes:
MCordr &B0100, &B1011, 0, 0
La articulación Z normalmente se debería calibrar primero
La razón para mover primero la articulación Z (y por sí sola) es permitir que se muevan las herramientas
sobre la superficie de trabajo antes de comenzar con el movimiento horizontal. Esto permitirá evitar que
las herramientas golpeen algo en el envolvente de trabajo durante el proceso de regreso a la posición de
reposo.
Los valores MCordr se mantienen
Los valores de la tabla MCordr se guardan permanentemente y no cambian hasta que el usuario los
modifica o se redefine el robot.
También consulte
Mcal
Ejemplo de instrucción MCordr
A continuación se ven algunos ejemplos de la ventana Monitor:
Este ejemplo define el orden de calibración como J3 en el primer paso, J1 en el segundo paso, J2 en el
tercer paso y J4 en el cuarto paso. El orden se especifica con valores binarios.
>mcordr &B0100, &B0001, &B0010, &B1000
Articulación: 1 2 3 4
Número de bit: bit 0 bit 1 bit 2 bit 3
Código
binario:
&B000001 &B000010 &B000100 &B001000
Articulación: 5 6 7 8 9
Número de bit: bit 4 bit 5 bit 6 bit 7 bit 8
Código
binario:
s
&B010000 &B100000 &B1000000 &B10000000 &B100000000
432
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Este ejemplo define el orden de calibración como J3 en el primer paso, luego las articulaciones J1, J2 y J4
simultáneamente en el segundo paso. El orden se especifica con valores decimales.
>mcordr 4, 11, 0, 0
Este ejemplo muestra el orden de calibración actual en números decimales.
>mcordr
4, 11, 0, 0
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
433
Función MCordr
Arroja una configuración de parámetro MCordr.
Sintaxis
MCordr (paramNumber)
Parámetros
paramNumber Especifica los números de configuración de referencia (enteros de 1 a 9) por medio
de una expresión o valor numérico.
Valores devueltos
Arroja valores binarios (enteros) que representan al articulación del número de configuración especificado
para ejecutar la calibración de la máquina.
Descripción
Arroja el orden de movimiento de articulación para que Mcal ejecute la calibración de la máquina.
También consulte
Mcal
Ejemplo de función MCordr
En este ejemplo se usa la función MCordr en un programa:
Integer a
a = MCordr(1)
434
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función MemIn
Arroja el estado del puerto de E/S de memoria especificado. Cada puerto contiene 8 bits de memoria.
Sintaxis
MemIn(portNumber)
Parámetros
portNumber Expresión entera que representa los bytes de E/S de memoria.
Valores devueltos
Arroja un valor entero entre 0 y 255. El valor devuelto es 8 bits, donde cada bit corresponde a 1 bit de E/S
de memoria.
Descripción
MemIn la capacidad para ver el valor de 8 bits de E/S de memoria al mismo tiempo. La instrucción MemIn
se puede usar para guardar el estado de los 8 bits de E/S de memoria en una variable, o bien, se puede usar
con la instrucción Wait para esperar hasta que se cumpla una condición específica que involucre más de 1
bit de E/S de memoria.
Ya que se recuperan 8 bits al mismo tiempo, los valores devueltos van de 0 a 255. Revise la siguiente tabla
para ver cómo corresponden los valores enteros devueltos a los bits de E/S de memoria individuales.
Resultado del bit de E/S de memoria (mediante el puerto n.º 0)
Valores
devueltos
7 6 5 4 3 2 1 0
1 Off Off Off Off Off Off Off On
5 Off Off Off Off Off On Off On
15 Off Off Off Off On On On On
255 On On On On On On On On
Resultado del bit de E/S de memoria (mediante el puerto n.º 31)
Valores
devueltos
255 254 253 252 251 250 249 248
3 Off Off Off Off Off Off On On
7 Off Off Off Off Off On On On
32 Off Off On Off Off Off Off Off
255 On On On On On On On On
Nota
Diferencia entre MemIn y MemSw
La instrucción MemSw permite que el usuario lea el valor de 1 bit de E/S de memoria. El valor devuelto
de MemSw es 1 o 0, lo que indica que el bit de E/S de memoria está On u Off. MemSw puede comprobar
cada uno de los bits de E/S de memoria de manera individual. La instrucción MemIn es muy similar a la
instrucción MemSw en que también se usa para revisar el estado de los bits de E/S de memoria. Sin
embargo, hay 1 diferencia distintiva. La instrucción MemIn revisa 8 bits de E/S de memoria a la vez, en
comparación con la funcionalidad de comprobación de un solo bit de la instrucción MemSw. MemIn arroja
un valor entre 0 y 255, el que indica al usuario cuáles de los 8 bits de E/S están On y cuáles están Off.
También consulte
In, InBCD, Off, MemOff, On, MemOn, OpBCD, Oport, Out, MemOut, Sw, MemSw, Wait
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
435
Ejemplo de función MemIn
El ejemplo de programa a continuación obtiene el valor actual de los primeros 8 bits de E/S de memoria, y
luego se asegura de que las 8 E/S estén actualmente establecidas en “0” antes de continuar. Si no están en
“0”, aparece un mensaje de error para el operador y se detiene la tarea.
Function main
Integer var1
var1 = MemIn(0) 'Obtiene el valor de los primeros 8 bit de E/S de memoria
If var1 = 0 Then
Go P1
Go P2
Else
Print "Error in initialization!"
Print "First 8 memory I/O bits were not all set to 0"
EndIf
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> memout 0, 1
> print MemIn(0)
1
> memon 1
> print MemIn(0)
3
> memout 31,3
> print MemIn(31)
3
> memoff 249
> print MemIn(31)
1
>
436
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función MemInW
Arroja el estado del puerto de palabra de E/S de memoria especificado. Cada puerto de palabra contiene 16
bits de memoria E/S.
Sintaxis
MemInW(WordPortNum)
Parámetros
WordPortNum Expresión entera que representa el puerto de palabra de E/S.
Valores devueltos
Arroja el estado actual de la E/S de memoria (números enteros largos de 0 a 65535).
También consulte
MemIn, MemOut, MemOutW
Ejemplo de función MemInW
Long word0
word0 = MemInW(0)
Manual de referencia del lenguaje SPEL+
Integer I
MemOff 1
Xqt 2, task2
For i = 1 to 100
Wait MemSw(1) = Off
Go P(i)
MemOn 1
Next I
Fend
Function task2
Integer I
For i = 101 to 200
Wait MemSw(1) = On
Go P(i)
MemOff 1
Manual de referencia del lenguaje SPEL+ Rev.2
437
Instrucción MemOff
Desactiva el bit especificado de E/S de memoria.
Sintaxis
MemOff { bitNumber | memIOLabel }
Parámetros
bitNumber Expresión entera que representa los bits de E/S de memoria.
memIOLabel Etiqueta de E/S de memoria.
Descripción
MemOff desactiva el bit especificado de E/S de memoria. Los 256 bits de E/S de memoria son
generalmente excelentes opciones para usar como bits de estado para usos como On/Off, True/False,
Done/Not Done, etc. La instrucción MemOn activa el bit de memoria, la instrucción MemOff lo desactiva,
y la instrucción MemSw se usa para comprobar el estado actual del bit de memoria especificado. También
se puede usar la instrucción Wait con el bit de E/S de memoria para provocar que el sistema espere hasta
que se establezca un estado de E/S de memoria especificado.
Nota
Salidas de memoria desactivadas
Todos los bits de E/S de memoria están desactivados cuando se reinicia el controlador. No se desactivan
con la parada de emergencia, la protección abierta, el fin del programa, el comando Reset (Restablecer) o el
reinicio de EPSON RC+.
También consulte
In, MemIn, InBCD, Off, On, MemOn, OpBCD, Oport, Out, MemOut, Sw, MemSw, Wait
Ejemplo de instrucción MemOff
El ejemplo que se indica a continuación muestra 2 tareas, cada una con la capacidad de iniciar las
instrucciones de movimiento. No obstante, se usa un mecanismo de bloqueo entre las 2 tareas para
garantizar que cada una de ellas obtenga el control de las instrucciones de movimiento del robot solamente
después de que la otra tarea haya terminado de usarlas. Esto permite que las 2 tareas ejecuten las
instrucciones de movimiento según sea necesario y de manera ordenada y predecible. MemSw se usa junto
con la instrucción Wait para esperar hasta que la E/S de memoria n.º 1 tenga el valor adecuado antes de que
sea seguro moverse nuevamente. MemOn y MemOff se usan para activar y desactivar la E/S de memoria
para conseguir una sincronización adecuada.
Function main
Manual de referencia del lenguaje SPEL+
438
Manual de referencia del lenguaje SPEL+ Rev.2
Next I
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> MemOn 1 'Activa el bit de E/S de memoria n.° 1
> Print MemSw(1)
1
> MemOff 1 'Desactiva el bit de E/S de memoria n.° 1
> Print MemSw(1)
0
Manual de referencia del lenguaje SPEL+
Integer I
MemOff 1
Xqt 2, task2
For i = 1 to 100
Wait MemSw(1) = Off
Go P(i)
MemOn 1
Next I
Fend
Function task2
Integer I
For i = 101 to 200
Wait MemSw(1) = On
Go P(i)
MemOff 1
Manual de referencia del lenguaje SPEL+ Rev.2
439
Instrucción MemOn
Activa el bit especificado de E/S de memoria.
Sintaxis
MemOn { bitNumber | memIOLabel }
Parámetros
bitNumber Expresión entera que representa los bits de E/S de memoria.
memIOLabel Etiqueta de E/S de memoria.
Descripción
MemOn activa el bit especificado de E/S de memoria del robot. Los 256 bits de E/S de memoria se usan
generalmente como bits de estado de comunicación de tareas. La instrucción MemOn activa el bit de
memoria, la instrucción MemOff lo desactiva y la instrucción MemSw se usa para comprobar el estado
actual del bit de memoria especificado. También se puede usar la instrucción Wait con el bit de memoria
para provocar que el sistema espere hasta que se establezca un estado especificado.
Nota
Salidas de memoria desactivadas
Todos los bits de E/S de memoria están desactivados cuando se reinicia el controlador. No se desactivan
con la parada de emergencia, la protección abierta, el fin del programa, el comando Reset (Restablecer) o el
reinicio de EPSON RC+.
También consulte
In, MemIn, InBCD, Off, MemOff, On, OpBCD, Oport, Out, MemOut, Sw, MemSw, Wait
Ejemplo de instrucción MemOn
El ejemplo que se indica a continuación muestra 2 tareas, cada una con la capacidad de iniciar las
instrucciones de movimiento. No obstante, se usa un mecanismo de bloqueo entre las 2 tareas para
garantizar que cada una de ellas obtenga el control de las instrucciones de movimiento del robot solamente
después de que la otra tarea haya terminado de usarlas. Esto permite que las 2 tareas ejecuten las
instrucciones de movimiento según sea necesario y de manera ordenada y predecible. MemSw se usa junto
con la instrucción Wait para esperar hasta que la E/S de memoria n.º 1 tenga el valor adecuado antes de que
sea seguro moverse nuevamente. MemOn y MemOff se usan para activar y desactivar la E/S de memoria
para conseguir una sincronización adecuada.
Function main
Manual de referencia del lenguaje SPEL+
440
Manual de referencia del lenguaje SPEL+ Rev.2
Next I
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> memon 1
> print memsw(1)
1
> memoff 1
> print memsw(1)
0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
441
Instrucción MemOut
Configura simultáneamente 8 bits de E/S de memoria.
Sintaxis
MemOut portNumber, outData
Parámetros
portNumber Expresión entera que representa el número de puerto del bit de E/S de memoria. La selección
portNumber corresponde a lo siguiente:
Portnum Salidas
0 0-7
1 8-15
. .
outData Expresión entera entre 0 y 255 que representa el patrón de salida para el grupo de salida
seleccionado con portNumber. Si se representa en forma hexadecimal, el rango varía de &H0
a &HFF. El dígito inferior representa los dígitos menos significativos (o las primeras 4
salidas) y el dígito superior representa los dígitos más relevantes (o las segundas 4 salidas).
Descripción
MemOut establece simultáneamente 8 bits de E/S de memoria con la combinación de los valores
portNumber y outdata especificados por el usuario para determinar qué salidas se determinarán. El
parámetro portNumber especifica el grupo de 8 entradas que se leerá, donde portNumber = 0 significa las
entradas 0 a 7, portNumber = 1 significa las entradas 8 a 15, etc.
Una vez seleccionado un portNumber, se debe definir un patrón de salida específico. Esto se lleva a cabo
mediante el parámetro outData. El parámetro outData puede tener un valor entre 0 y 255 y se puede
representar en formato hexadecimal o de número entero. (es decir, &H0 a &HFF o 0 a 255)
La siguiente tabla muestra algunas de las combinaciones posibles de E/S y sus valores outData asociados,
asumiendo que portNumber son “0” y “1” según corresponde.
Configuración de salida cuando portNumber=0 (número de salida)
Valor OutData 7 6 5 4 3 2 1 0
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 Off On On Off Off Off On On
255 On On On On On On On On
Manual de referencia del lenguaje SPEL+
442
Manual de referencia del lenguaje SPEL+ Rev.2
Configuración de salida cuando portNumber=1 (número de salida)
Valor OutData 15 14 13 12 11 10 9 8
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 Off On On Off Off Off On On
255 On On On On On On On On
También consulte
In, MemIn, InBCD, MemOff, MemOn, MemSw, Off, On, OpBCD, Oport, Out, Sw, Wait
Ejemplo de instrucción MemOut
El ejemplo a continuación muestra la tarea principal que inicia una tarea en segundo plano llamada
“iotask”. La tarea “iotask” es una tarea simple para alternar entre activar y desactivar los bits de E/S de
memoria de 0 a 3. La instrucción MemOut hace que esto sea posible usando solo 1 comando en lugar de
activar y desactivar individualmente cada bit de E/S de memoria.
Function main
Xqt 2, iotask
Go P1
.
.
Fend
Function iotask
Do
MemOut 0, &H
Wait 1
MemOut 0, &H0
Wait 1
Loop
Fend
Entre otros de los ejemplos simples de la ventana Command se incluyen los siguientes:
> MemOut 1,6 'Activa los bits de E/S de memoria 9 y 10
> MemOut 2,1 'Activa el bit de E/S de memoria 8
> MemOut 3,91 'Activa los bits de E/S de memoria 24, 25, 27, 28 y 30
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
443
Instrucción MemOutW
Configura simultáneamente 16 bits de E/S de memoria.
Sintaxis
MemOutW wordPortNum, outputData
Parámetros
wordPortNum Expresión entera que representa las palabras de E/S de memoria.
outputData Especifica los datos de salida (enteros de 0 a 65535) mediante una expresión o valor
numérico.
Descripción
Cambia el estado actual del grupo de puertos de E/S de memoria especificado según el número de puerto de
palabra para los datos de salida especificados.
También consulte
MemIn, MemInW, MemOut
Ejemplo de instrucción MemOutW
MemOutW 0, 25
Manual de referencia del lenguaje SPEL+
444
Manual de referencia del lenguaje SPEL+ Rev.2
Función MemSw
Arroja el estado del bit de E/S de memoria especificado.
Sintaxis
MemSw(bitNumber)
Parámetros
bitNumber Expresión entera que representa el número de bits de E/S de memoria.
Valores devueltos
Arroja "1" cuando el bit especificado está activado y "0" cuando el bit especificado está desactivado.
Descripción
MemSw arroja el estado de un bit de E/S de memoria. Entradas válidas para MemSw varían entre el bit 0 y
el bit 511. MemOn activa el bit especificado y MemOff desactiva el bit especificado.
También consulte
In, MemIn, InBCD, MemOff, MemOn, MemOut, Off, On, OpBCD, Oport, Out, Sw, Wait
Ejemplo de función MemSw
El ejemplo que se indica a continuación muestra 2 tareas, cada una con la capacidad de iniciar las
instrucciones de movimiento. No obstante, se usa un mecanismo de bloqueo entre las 2 tareas para
garantizar que cada una de ellas obtenga el control de las instrucciones de movimiento del robot solamente
después de que la otra tarea haya terminado de usarlas. Esto permite que las 2 tareas ejecuten las
instrucciones de movimiento según sea necesario y de manera ordenada y predecible. MemSw se usa junto
con la instrucción Wait para esperar hasta que el bit de E/S de memoria 1 tenga el valor adecuado antes de
que sea seguro moverse nuevamente.
Function main
Integer I
MemOff 1
Xqt 2, task2
For i = 1 to 100
Wait MemSw(1) = Off
Go P(i)
MemOn 1
Next I
Fend
Function task2
Integer I
For i = 101 to 200
Wait MemSw(1) = On
Go P(i)
MemOff 1
Next I
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> memon 1
> print memsw(1)
1
> memoff 1
> print memsw(1)
0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
445
Función MHour
Arroja el tiempo de funcionamiento del motor acumulado de los motores del robot.
Sintaxis
MHour ([robotNumber])
Parámetros
robotNumber Especifica el número de robot al cual se comprobará el tiempo de funcionamiento del
motor mediante un valor entero.
Si se omite, se usa el robot seleccionado actualmente.
Valores devueltos
Arroja el tiempo de funcionamiento del motor acumulado de los motores mediante un valor entero.
También consulte
Time, Hour
Ejemplo de función MHour
Robot 2
Print MHour
Print MHour(1)
Manual de referencia del lenguaje SPEL+
446
Manual de referencia del lenguaje SPEL+ Rev.2
Función Mid$
Arroja una subcadena de una cadena que comienza desde una posición especificada.
Sintaxis
Mid$(string, position, [count])
Parámetros
string Expresión de cadena fuente.
position La posición de inicio en la cadena del carácter para copiar los caracteres de count.
count Opcional. La cantidad de caracteres que se copiarán de string, comenzando por el
carácter definido por position. Si se omite, se arrojan todos los caracteres desde
position hasta el final de la cadena.
Valores devueltos
Arroja una subcadena de caracteres a partir de string.
Descripción
Mid$ arroja una subcadena de count caracteres que comiencen con el carácter position en string.
También consulte
Asc, Chr$, InStr, Left$, Len, Right$, Space$, Str$, Val
Ejemplo de función Mid$
El siguiente ejemplo muestra un programa que extrae los 2 caracteres del medio desde la cadena
"ABCDEFGHIJ" y el restante de la cadena comenzando en la posición 5.
Function midtest
String basestr$, m1$, m2$
basestr$ = "ABCDEFGHIJ"
m1$ = Mid$(basestr$, (Len(basestr$) / 2), 2)
Print "The middle 2 characters are: ", m1$
m2$ = Mid$(basestr$, 5)
Print "The string starting at 5 is: ", m2$
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
447
Instrucción MkDir
Crea una subcarpeta en una unidad de disco de controlador.
Sintaxis
MkDir dirName
Parámetros
dirName Expresión de cadena que define la ruta y el nombre de la carpeta que se creará.
Consulte ChDisk para conocer detalles.
Descripción
Crea una subcarpeta en la ruta especificada. Si se omite, se crea una subcarpeta en la carpeta actual.
Nota
- Esta instrucción es ejecutable solo con el disco de la computadora.
También consulte
ChDir, ChDrive, RenDir, RmDir
Ejemplo de instrucción MkDir
Los siguientes ejemplos se llevan a cabo desde la ventana Command:
> MkDir \Data
> MkDir \Data\PTS
> MkDir \TEST1 \TEST2
Manual de referencia del lenguaje SPEL+
448
Manual de referencia del lenguaje SPEL+ Rev.2
Operador Mod
Arroja el restante obtenido al dividir una expresión numérica por otra expresión numérica.
Sintaxis
number Mod divisor
Parámetros
number El número que se divide (el dividendo).
divisor El número por el que se divide number.
Valores devueltos
Arroja el restante después de dividir number por divisor.
Descripción
Mod se usa para obtener el restante después de dividir 2 números. El restante es un número entero. Un uso
ingenioso de la instrucción Mod es el de determinar si un número es par o impar. El método en el que
funciona la instrucción Mod es el siguiente: number se divide por divisor. El restante después de esta
división es el valor devuelto para la instrucción Mod.
También consulte
Abs, Atan, Atan2, Cos, Int, Not, Sgn, Sin, Sqr, Str$, Tan, Val
Ejemplo de operador Mod
El ejemplo que se muestra a continuación determina si un número (var1) es par o impar. Cuando el número
es par, el resultado de la instrucción Mod arrojará "0". Cuando el número es impar, el resultado de la
instrucción Mod arrojará "1".
Function modtest
....Integer var1, result
....Print "Enter an integer number:"
....Input var1
....result = var1 Mod 2
....Print "Result = ", result
....If result = 0 Then
........Print "The number is EVEN"
....Else
........Print "The number is ODD"
....EndIf
Fend
Otro ejemplo surge de la instrucción Mod desde la ventana Command.
> Print 36 Mod 6
> 0
> Print 25 Mod 10
> 5
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
449
Instrucción Motor
Arroja la alimentación del motor para todos los ejes activados o desactivados del robot actual.
Sintaxis
Motor ON | OFF
Parámetros
ON | OFF La palabra clave ON se usa para activar la alimentación del robot. La palabra clave OFF se
usa para desactivar la alimentación del robot.
Descripción
El comando Motor On se usa para activar la alimentación del robot y liberar los frenos para todos los ejes.
Motor Off se usa para desactivar la alimentación del motor y activar los frenos.
Para mover el robot, la alimentación del robot debe estar activada.
Después de una parada de emergencia, o después de que haya ocurrido un error que requiera restablecer
con el comando Reset, ejecute Reset y luego ejecute Motor On.
Motor On define el parámetro de control del robot como se indica a continuación:
Speed, SpeedR, SpeedS Valores predeterminados
Accel, AccelR, AccelS Valores predeterminados
QPDecelR, QPDecelS Valores predeterminados
LimZ 0
CP Off
SoftCP Off
Fine Valores predeterminados
Power Low Low
PTPBoost Valores predeterminados
TCLim, TCSpeed Valores predeterminados
PgLSpeed Valores predeterminados
También consulte
Brake, Power, Reset, SFree, SLock
Ejemplo de instrucción Motor
Los siguientes ejemplos se llevan a cabo desde la ventana Command:
> Motor On
> Motor Off
Manual de referencia del lenguaje SPEL+
450
Manual de referencia del lenguaje SPEL+ Rev.2
Función Motor
Arroja el estado de la alimentación del motor para el robot especificado.
Sintaxis
Motor [(robotNumber)]
Parámetros
robotNumber Especifica el número de robot al cual se va a comprobar el estado mediante un valor
entero.
Si se omite, se usa el robot seleccionado actualmente.
Valores devueltos
0 = Motores desactivados, 1 = Motores activados.
También consulte
Motor
Ejemplo de función Motor
If Motor = Off Then
Motor On
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
451
Instrucción Move
Mueve el brazo desde la posición actual al punto especificado mediante el uso de la interpolación lineal (es
decir, lo mueve en una línea recta) a una velocidad de punto central de la herramienta constante.
Sintaxis
Move destination [ROT] [ECP] [CP] [searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
ROT Opcional. Decide la velocidad/aceleración/desaceleración en favor de la
rotación de la herramienta.
ECP Opcional. Movimiento de punto de control externo. Este parámetro es válido
cuando se activa la opción ECP.
CP Opcional. Especifica un movimiento de ruta continua.
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para
ejecutar E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se
ejecute SyncRobots.
Descripción
Move mueve el brazo desde la posición actual a destination en una línea recta. Mueve las coordenadas de
todos los ejes para que comiencen y se detengan al mismo tiempo. Las coordenadas de destination se
deben enseñar antes de ejecutar la instrucción Move. La aceleración y desaceleración de Move se controla
mediante la instrucción AccelS. La velocidad del movimiento se controla mediante la instrucción SpeedS.
Si el valor SpeedS supera la velocidad permitida para cualquier articulación, la alimentación de los motores
de las cuatro articulaciones se desactivará y el robot se detendrá.
Move usa el valor de velocidad SpeedS y los valores de aceleración y desaceleración AccelS. Consulte
Uso de Move con CP a continuación para conocer la relación entre velocidad y aceleración, y entre
aceleración y desaceleración. Sin embargo, si se usa el parámetro modificador ROT, Move utiliza el valor
de velocidad SpeedR y los valores de aceleración y desaceleración AccelR. En este caso, el valor de
velocidad SpeedS y el valor de aceleración y desaceleración AccelS no tienen efecto.
Normalmente, cuando la distancia de movimiento es "0" y solo cambia la orientación de la herramienta,
ocurrirá un error. Sin embargo, mediante el uso del parámetro ROT y la priorización de la aceleración y la
desaceleración de la rotación de la herramienta, es posible realizar el movimiento sin un error. Cuando no
hay un cambio de orientación con el parámetro modificador ROT y la distancia de movimiento no es "0",
ocurrirá un error.
También, cuando la rotación de la herramienta es grande en comparación con la distancia de movimiento, y
cuando la velocidad de rotación supera la velocidad especificada del manipulador, ocurrirá un error. En este
caso, reduzca la velocidad o agregue el parámetro modificador ROT para darle prioridad a la velocidad de
rotación/aceleración/desaceleración.
Cuando se usa ECP, la trayectoria del punto de control externo correspondiente al número ECP
especificado con la instrucción ECP se mueve en línea recta con respecto al sistema de coordenadas de la
herramienta. En este caso, la trayectoria del punto central de la herramienta no sigue una línea recta.
Manual de referencia del lenguaje SPEL+
452
Manual de referencia del lenguaje SPEL+ Rev.2
El calificador opcional Till permite que el usuario especifique una condición que cause que el robot
desacelere hasta detenerse antes de completar la instrucción Move. La condición especificada es
simplemente una comprobación contra una de las entradas. Esto se logra mediante la instrucción Sw. El
usuario puede comprobar si la entrada está activada o desactivada y causar que el brazo se detenga según la
condición especificada. Esta característica funciona casi como una interrupción en la que Move se
interrumpe (detiene) una vez que se cumple la condición Input. Si la condición de entrada nunca se cumple
durante Move, el brazo llega exitosamente al punto especificado por destination. Para conocer más
información acerca del calificador Till, consulte el comando Till.
Notas
Move no puede
Move no puede ejecutar una verificación de rango de la trayectoria antes de comenzar el movimiento en sí.
Por lo tanto, incluso para las posiciones objetivo que se encuentran dentro de un rango permitido, es
posible que el sistema encuentre una posición prohibida en el camino hacia un punto objetivo. En este
caso, el brazo puede detenerse de forma abrupta, lo que puede producir un impacto y una condición sin
servo del brazo. Para evitar esto, asegúrese de realizar verificaciones de rango a baja velocidad antes de
usar Move a alta velocidad. En resumen, aunque la posición objetivo está dentro del alcance del brazo, hay
algunos movimientos que no funcionarán ya que el brazo no puede llegar físicamente a algunas de las
posiciones intermedias requeridas durante Move.
Usar Move con CP
El parámetro CP causa que el brazo se mueva al destino sin desacelerar o detenerse en el punto definido
según el destino. Esto se hace para permitir al usuario enlazar una serie de instrucciones de movimiento
que causan que el brazo se mueva a lo largo de una ruta continua mientras mantiene una velocidad
específica durante todo el movimiento. La instrucción Move sin CP siempre causa que el brazo desacelere
hasta detenerse antes de alcanzar el punto destination.
Instrucciones de velocidad y aceleración adecuadas con Move
Las instrucciones SpeedS y AccelS se usan para especificar la velocidad y la aceleración del manipulador
durante el movimiento Move. Preste atención al hecho de que SpeedS y AccelS se aplica a movimientos
interpolados lineales y circulares mientras que el movimiento punto a punto usa las instrucciones Speed y
Accel.
Posibles errores
Intento de cambiar solo la orientación de la herramienta
Cambiar solo la orientación de la herramienta durante el movimiento es imposible. Si lo intenta, ocurrirá
un error. En este caso, use el parámetro ROT.
Errores de sobrevelocidad de articulación
TCP
Work
ECP
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
453
Cuando el movimiento solicitado tiene como resultado que la velocidad de uno de los ejes supere su
velocidad máxima permitida, ocurrirá un error de sobrevelocidad. En el caso de un error de
sobrevelocidad, el brazo del robot se detiene y se desactiva la alimentación del servo.
Intento de pasar el punto original (Serie RS)
Es imposible operar el brazo de la serie RS para que pase cerca de un punto original. Si lo intenta, ocurrirá
un error de sobrevelocidad. Para operar cerca de un punto original, lleve a cabo las siguientes acciones.
- Reduzca la velocidad de SpeedS.
- Encuentre una ruta diferente para evitar un punto original.
- Use un movimiento PTP, como un comando Go en lugar de un comando Move.
También consulte
AccelS, Arc, CP, Go, Jump, Jump3, Jump3CP, SpeedS, Sw, Till
Ejemplo de instrucción Move
El siguiente ejemplo muestra un movimiento simple de punto a punto entre los puntos P0 y P1, y luego se
mueve de vuelta a P0 en una línea recta. Luego, en el programa, el brazo se mueve en línea recta hacia el
punto P2 hasta que se activa la entrada n.° 2. Si la salida n.° 2 se activa durante Move, el brazo desacelera
hasta detenerse antes de llegar al punto P2 y se ejecuta la siguiente instrucción de programa.
Function movetest
Home
Go P0
Go P1
Move P0
Move P2 Till Sw(2) = On
If Sw(2) = On Then
Print "Input #2 came on during the move and"
Print "the robot stopped prior to arriving on"
Print "point P2."
Else
Print "The move to P2 completed successfully."
Print "Input #2 never came on during the move."
EndIf
Fend
Este ejemplo usa Move con CP. El diagrama a continuación muestra el movimiento de arco que se origina
en el punto P100 y luego se mueve en una línea recta a través de P101, punto en que el brazo comienza a
formar un arco. Luego, el arco continúa a través de P102 y P103. Luego, el brazo se mueve en una línea
recta a P104, donde finalmente desacelera hasta detenerse. Tenga en cuenta que el brazo no desacelera
entre cada punto hasta su destino final de P104. La siguiente función generaría tal movimiento.
Function CornerArc
Go P100
Move P101 CP 'No se detiene en P101
Arc P102, P103 CP 'No se detiene en P103
Move P104 'Desacelera hasta detenerse en P104
Fend
P100
P103
P104
P102
P101
Manual de referencia del lenguaje SPEL+
454
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción MsgBox
Muestra un mensaje en un cuadro de diálogo y espera que el operador elija un botón.
Sintaxis
MsgBox message$, [type], [title$], [answer]
Parámetros
message$ Aparecerá el siguiente mensaje.
type Opcional. Una expresión numérica que es la suma de los valores que especifica la cantidad y
el tipo de botones que se mostrarán, el estilo de icono que se usará y la identidad del botón
predeterminado. EPSON RC+ 7.0 incluye constantes predefinidas que se pueden usar para
este parámetro. La siguiente tabla muestra los valores que se pueden usar.
Constante simbólica Valor Significado
MB_OK 0 Solo muestra el botón OK.
MB_OKCANCEL 1 Muestra los botones OK y Cancel.
MB_ABORTRETRYIGNORE
Ignore.
2 Muestra los botones Abort, Retry e
MB_YESNOCANCEL 3 Muestra los botones Yes, No y Cancel.
MB_YESNO 4 Muestra los botones Yes y No.
MB_RETRYCANCEL 5 Muestra los botones Retry y Cancel.
MB_ICONSTOP 16 Signo de parada.
MB_ICONQUESTION 32 Signo de pregunta.
MB_ICONEXCLAMATION 64 Signo de exclamación.
MB_DEFBUTTON1 0 El primer botón es predeterminado.
MB_DEFBUTTON2 256 El segundo botón es predeterminado.
title$ Opcional. Expresión de cadena que se muestra en la barra de título del cuadro de mensaje.
answer Opcional. Una variable entera que recibe un valor que indica la acción realizada por el
operador. EPSON RC+ 6.0 incluye constantes predefinidas que se pueden usar para este
parámetro. La siguiente tabla muestra los valores devueltos en answer.
Constante simbólica Valor Significado
IDOK 1 Se seleccionó el botón OK.
IDCANCEL 2 Se seleccionó el botón Cancel.
IDABORT 3 Se seleccionó el botón Abort.
IDRETRY 4 Se seleccionó el botón Retry.
IDYES 6 Se seleccionó el botón Yes.
IDNO 7 Se seleccionó el botón No.
Descripción
MsgBox da formato al mensaje automáticamente. Si quiere líneas en blanco, use CRLF en el mensaje.
Consulte el ejemplo.
También consulte
InputBox
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
455
Ejemplo de instrucción MsgBox
Este ejemplo muestra un cuadro de mensaje que pregunta al operador si desea continuar o no. El cuadro de
mensaje mostrará dos botones: Yes y No. También se mostrará un signo de pregunta. Después de que
vuelve MsgBox (después de que el operador hace clic en el botón), se examina la respuesta. Si la respuesta
es no, todas las tareas se detienen con el comando Quit.
Function msgtest
String msg$, title$
Integer mFlags, answer
msg$ = "Operation complete" + CRLF
msg$ = msg$ + "Ready to continue?"
title$ = "Sample Application"
mFlags = MB_YESNO + MB_ICONQUESTION
MsgBox msg$, mFlags, title$, answer
If answer = IDNO then
Quit All
EndIf
Fend
A continuación se muestra una imagen del cuadro de mensaje que se creará con este código.
Manual de referencia del lenguaje SPEL+
456
Manual de referencia del lenguaje SPEL+ Rev.2
Función MyTask
Arroja el número de tarea del programa actual.
Sintaxis
MyTask
Valores devueltos
Arroja el número de tarea de la tarea actual. Las entradas válidas son las siguientes:
Tareas normales 1 a 32
Tareas en segundo plano 65 a 80
Tareas de captura 257 a 267
Descripción
MyTask arroja el número de tarea del programa actual con un número. La instrucción MyTask se inserta
dentro de un programa específico y cuando el programa se ejecuta, la función MyTask arrojará el número
de la tarea en la que está ejecutando el programa.
También consulte
Xqt
Ejemplo de función MyTask
El siguiente programa activa y desactiva los puertos E/S desde 1 a 8.
Function main
Xqt 2, task 'Ejecuta la tarea 2.
Xqt 3, task 'Ejecuta la tarea 3.
Xqt 4, task 'Ejecuta la tarea 4.
Xqt 5, task 'Ejecuta la tarea 5.
Xqt 6, task 'Ejecuta la tarea 6.
Xqt 7, task 'Ejecuta la tarea 7.
Xqt 8, task 'Ejecuta la tarea 8.
Call task
Fend
Function task
Do
On MyTask 'Activa el puerto E/S que tiene los mismos números que
'Número de tarea actual
Off MyTask 'Desactiva el puerto E/S que tiene los mismos números que
'Número de tarea actual
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
457
Instrucción Next
Las instrucciones For/Next se usan juntas para crear un bucle en que las instrucciones ubicadas entre las
instrucciones For y Next se ejecutan múltiples veces según lo que especifique el usuario.
Sintaxis
For var1 = initval To finalval [Step Increment ]
statements
Next var1
Parámetros
var1 La variable de recuento usada con el bucle For/Next. Esta variable normalmente se
define como un número entero, pero también se puede definir como una variable
Real.
initval El valor inicial para var1 del contador.
finalval El valor final para la El valor final para la var1 del contador. Cuando se cumple
este valor, se completa el bucle For/Next y la ejecución continúa a partir de la
instrucción a continuación de la instrucción Next.
increment Un parámetro opcional que define el incremento de recuento para cada vez que la
instrucción Next se ejecuta dentro del bucle For/Next. Esta variable puede ser
positiva o negativa. Sin embargo, si el valor es negativo, el valor inicial de la
variable debe ser mayor que el valor final de la variable. Si se excluye el valor de
incremento, el sistema automáticamente incrementa en 1.
statements Se puede insertar cualquier instrucción SPEL
+
válida dentro del bucle For/Next.
Valores devueltos
Ninguno
Descripción
For/Next ejecuta un conjunto de instrucciones dentro de un bucle una cantidad especificada de veces. El
inicio del bucle es la instrucción For. El final del bucle es la instrucción Next. Se usa una variable para
contar el número de veces que se ejecutan las instrucciones dentro del bucle.
La primera expresión numérica (initval) es el valor inicial del contador. Este valor puede ser positivo o
negativo siempre que la variable finalval y el incremento Step correspondan correctamente.
La segunda expresión numérica (finalval) es el valor final del contador. Este es el valor que una vez
alcanzado provoca que termine el bucle For/Next y el control del programa pasa a la siguiente instrucción a
continuación de la instrucción Next.
Las instrucciones del programa después de la instrucción For se ejecutan hasta que se alcanza la instrucción
Next. Luego la variable (var1) del contador se incrementa en el valor Step definido por el parámetro
increment. Si no se usa la opción Step, el contador se incrementa en uno.
A continuación la variable (var1) del contador se compara con el valor final (finalval). Si el contador es
menor o igual que el valor final (finalval), se ejecutan nuevamente las instrucciones posteriores a la
instrucción For. Si la variable del contador es mayor que el valor final (finalval), la ejecución se bifurca
fuera del bucle For/Next y continúa con la instrucción inmediatamente posterior a la instrucción Next.
El anidado de las instrucciones For/Next se admite para hasta 10 niveles de profundidad. Esto significa que
se puede colocar un bucle For/Next dentro de otro bucle For/Next y así en adelante hasta que hayan 10
"nidos" para bucles For/Next.
Manual de referencia del lenguaje SPEL+
458
Manual de referencia del lenguaje SPEL+ Rev.2
Nota
Valores Step negativos
Si el valor del incremento Step (increment) es negativo, la variable (var1) del contador disminuye (reduce)
cada vez que pasa por el bucle y el valor inicial (initval) debe ser mayor que el valor final (finalval) para
que el bucle funcione.
También consulte
For
Ejemplo de instrucción Next
Function fornext
Integer ctr
For ctr = 1 to 10
Go Pctr
Next ctr
'
For ctr = 10 to 1 Step -1
Go Pctr
Next ctr
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
459
Operador Not
Realiza la operación bitwise sobre los valores del operando.
Sintaxis
Not operand
Parámetros
operand Expresión entera.
Valores devueltos
El complemento de 1 del valor del operando.
Descripción
La función Not realiza la operación bitwise sobre los valores del operando. Cada bit del resultado es el
complemento del bit correspondiente en el operando, lo que cambia efectivamente los bits 0 a 1, y los bits 1
a 0.
También consulte
Abs, And, Atan, Atan2, Cos, Int, LShift, Mod, Or, RShift, Sgn, Sin, Sqr, Str$, Tan, Val, Xor
Ejemplo de operador Not
Este es un ejemplo de ventana Command simple acerca del uso de la instrucción Not.
>print not(1)
-2
>
Manual de referencia del lenguaje SPEL+
460
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción Off
Desactiva la salida especificada y, después de un tiempo especificado, puede volver a activarla.
Sintaxis
Off { bitNumber | outputLabel }, [ time ], [ parallel ] [,Forced]
Parámetros
bitNumber Expresión entera que representa a cuál salida desactivar.
outputLabel Etiqueta de salida.
time Opcional. Especifica un intervalo de tiempo en segundos para la que la salida permanezca
desactivada. Una vez expira el intervalo de tiempo, la salida se vuelve a activar. El intervalo
de tiempo mínimo es de 0,01 segundos y el intervalo de tiempo máximo es de 10 segundos.
parallel Opcional. Cuando se configura un temporizador, se puede usar el parámetro paralelo para
especificar cuando se ejecuta el siguiente comando:
0 - inmediatamente después de desactivar la salida
1 - después de que transcurre el intervalo especificado. (Valor predeterminado)
Forced Opcional. Normalmente se omite.
Descripción
Off desactiva (define en 0) la salida especificada.
Si se especifica el parámetro de intervalo time, el bit de salida especificado por bitNumber se desactiva y
luego se vuelve a activar una vez que termina el intervalo time. Si antes de ejecutar Off, el bit de salida ya
estaba desactivado, se vuelve a activar después de que termina el intervalo de tiempo.
La configuración del parámetro parallel se aplica cuando el intervalo se especifica de la siguiente manera:
1: Desactiva la salida, la vuelve a activar después del intervalo especificado termina y luego
ejecuta el siguiente comando. (Este también es el valor predeterminado del parámetro
Parallel. Si este parámetro se omite, es igual que configurar el parámetro en “1”).
0: Desactiva la salida y ejecuta simultáneamente el siguiente comando.
Notas
Bits de salida configurados como salidas de control remoto
Si se especificó un bit de salida que se configuró como una salida de sistema, ocurrirá un error. Los bits de
salida de control remoto se desactivan y activan automáticamente de acuerdo con el estado del sistema.
Salidas y momentos en que ocurre una parada de emergencia:
EPSON RC+ tiene una característica que genera que todas las salidas se desactiven cuando ocurre una
parada de emergencia. La característica está definida o desactivada desde [Setup]-[Controller]-
[Preferences] (Configuración - Controlador - Preferencias).
Indicador Forced
Este indicador se usa para desactivar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause o NoEmgAbort (tarea especial mediante NoPause o
NoEmgAbort en Xqt).
Asegúrese de que las salidas de E/S cambien mediante la parada de emergencia y la apertura de la puerta de
seguridad cuando diseñe el sistema.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
461
También consulte
In, InBCD, MemOn, MemOff, MemOut, MemSw, OpBCD, Oport, Out, Wait
Ejemplo de instrucción Off
El ejemplo que se indica a continuación muestra cómo la tarea principal inicia una tarea en segundo plano
llamada “iotask”. “iotask” es una tarea simple para activar y desactivar los bits de salida 1 y 2, esperar 10
segundos y luego hacerlo nuevamente.
Function main
Xqt 2, iotask
Go P1
.
.
.
Fend
Function iotask
Do
On 1
On 2
Off 1
Off 2
Wait 10
Loop
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> on 1
> off 1, 10 'Desactiva la salida 1, espera 10 segundos y la activa nuevamente
> on 2
> off 2
Manual de referencia del lenguaje SPEL+
462
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción OLAccel
Configura el ajuste automático de la aceleración/desaceleración que se está ajustando según la calificación
de sobrecarga.
Sintaxis
OLAccel {On | Off}
Parámetros
On | Off On: Activa el ajuste automático de la aceleración/desaceleración que se es ajustando
según la calificación de sobrecarga.
Off: Desactiva el ajuste automático de la aceleración/desaceleración que se está ajustando
según la calificación de sobrecarga.
Descripción
OLAccel puede ser utilizado para activar la función de ajustamiento automático de aceleración y
desaceleración que se ajusta según la tasa de carga del robot (OLRate). Cuando OLAccel está activado, la
aceleración y desaceleración se ajustan automáticamente, en conformidad con la tasa de carga del robot en
los comandos de movimiento PTP. Esto se hace para evitar el error de sobrecarga, mediante la reducción
de la aceleración/desaceleración automáticamente cuando la tasa de carga supera un valor determinado en
el movimiento PTP. Por lo tanto, cuando los usuarios ejecutaban movimientos con cargas pesadas que
podían provocar un error de sobrecarga, los usuarios tenían que detener el robot con el programa o ajustar
la velocidad y aceleración para evitar el error. La instrucción OLAccel reduce estas medidas. Sin
embargo, esta instrucción no impide el error de sobrecarga en todos los tipos de ciclos. Cuando el ciclo
tiene una carga muy pesada, puede ocurrir el error de sobrecarga. En este caso, los usuarios deben detener
el robot o ajustar la velocidad y aceleración. En algunos entornos de operación, la temperatura del motor
puede aumentar al operar el robot sin errores de sobrecarga y provocar un error de sobrecalentamiento.
Esta instrucción no es necesaria en una operación de carga correcta.
Use OLRate en el ciclo de prueba para comprobar si puede o no ocurrir el error de sobrecarga.
El valor OLAccel se inicializa a los valores predeterminados (baja aceleración) cuando ocurre una de las
siguientes condiciones:
Nota
Si se ejecuta OLAccel On en un robot que no admite la función de ajuste automático de la aceleración y
desaceleración, ocurrirá un error.
También consulte
Función OLAccel, OLRate
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
463
Ejemplo de instrucción OLAccel
>olrate on
>olrate
OLACCEL is ON
Function main
Motor On
Power High
Speed 100
Accel 100, 100
OLAccel On
Xqt 2, MonitorOLRate
Do
Jump P0
Jump P1
Loop
Fend
Function MonitorOLRate
Do
'Muestra OLRate
OLRate
Wait 1
Loop
Fend
Manual de referencia del lenguaje SPEL+
464
Manual de referencia del lenguaje SPEL+ Rev.2
Función OLAccel
Arroja la configuración de ajuste automático.
Sintaxis
OLAccel
Valores devueltos
Off = El ajuste automático de la aceleración/desaceleración que se está ajustando según la calificación de
sobrecarga está desactivado.
On = El ajuste automático de la aceleración/desaceleración que se está ajustando según la calificación de
sobrecarga está activado.
También consulte
OLAccel, OLRate
Ejemplo de función OLAccel
If OLAccel = Off Then
Print OLAccel is off
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
465
Instrucción OLRate
Muestra la calificación de sobrecarga para una o todas las articulaciones para el robot actual.
Sintaxis
OLRate [jointNumber]
Parámetros
jointNumber Expresión entera de 1 a 9.
El eje S adicional es 8 y el eje T es 9.
Descripción
OLRate se puede usar para comprobar si un ciclo provoca un esfuerzo en el sistema servo. Los factores de
temperatura y corriente pueden causar errores del servo durante aplicaciones con ciclos de mucho trabajo.
OLRate puede ayudar a comprobar si el sistema de robot está a punto de tener un error de servo.
Durante un ciclo, ejecute otra tarea para el comando OLRate. Si OLRate supera 1.0 en cualquier
articulación, entonces se generará un error de servo.
Es más probable que se generen los errores de servo con cargas útiles pesadas. Mediante el uso de OLRate
durante un ciclo de prueba, puede ayudar a garantizar que la configuración de velocidad y aceleración no
generará un error de servo durante el ciclo de producción.
Para obtener lecturas válidas, debe ejecutar OLRate mientras el robot está en movimiento.
También consulte
Función OLRate
Ejemplo de instrucción OLRate
>olrate
0.10000 0.20000
0.30000 0.40000
0.50000 0.60000
Function main
Power High
Speed 50
Accel 50, 50
Xqt 2, MonitorOLRate
Do
Jump P0
Jump P1
Loop
Fend
Function MonitorOLRate
Do
OLRate ' Muestra OLRate
Wait 1
Loop
Fend
Manual de referencia del lenguaje SPEL+
466
Manual de referencia del lenguaje SPEL+ Rev.2
Función OLRate
Arroja la calificación de sobrecarga para una articulación para el robot actual.
Sintaxis
OLRate(jointNumber)
Parámetros
jointNumber Expresión entera de 1 a 9.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja el OLRate para la articulación especificada. Los valores van del 0,0 al 2,0.
Descripción
OLRate se puede usar para comprobar si un ciclo provoca un esfuerzo en el sistema servo. Los factores de
temperatura y corriente pueden causar errores del servo durante aplicaciones con ciclos de mucho trabajo.
OLRate puede ayudar a comprobar si el sistema de robot está a punto de tener un error de servo.
Durante un ciclo, ejecute otra tarea para el comando OLRate. Si OLRate supera 1.0 en cualquier
articulación, entonces se generará un error de servo.
Es más probable que se generen los errores de servo con cargas útiles pesadas. Mediante el uso de OLRate
durante un ciclo de prueba, puede ayudar a garantizar que la configuración de velocidad y aceleración no
generará un error de servo durante el ciclo de producción.
Para obtener lecturas válidas, debe ejecutar OLRate mientras el robot está en movimiento.
También consulte
OLRate
Ejemplo de función OLRate
Function main
Power High
Speed 50
Accel 50, 50
Xqt 2, MonitorOLRate
Do
Jump P0
Jump P1
Loop
Fend
Function MonitorOLRate
Integer i
Real olRates(4)
Do
For i = 1 to 4
olRates(i) = OLRate(i)
If olRate(i) > .5 Then
Print "Warning: OLRate(", i, ") is over .5"
EndIf
Next i
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
467
Instrucción On
Activa la salida especificada y, después de un tiempo especificado, puede volver a desactivarla.
Sintaxis
On { bitNumber | outputLabel }, [ time ], [ parallel ] [,Forced]
Parámetros
bitNumber Expresión entera que representa a cuál salida activar.
outputLabel Etiqueta de salida.
time Opcional. Especifica un intervalo de tiempo en segundos para la que la salida permanezca
activada. Una vez expira el intervalo de tiempo, la salida se vuelve a desactivar. (El intervalo
de tiempo es de 0,01 segundos)
parallel Opcional. Cuando se configura un temporizador, se puede usar el parámetro paralelo para
especificar cuando se ejecuta el siguiente comando:
0 - inmediatamente después de activar la salida
1 - después de que transcurre el intervalo especificado. (Valor predeterminado)
Forced Opcional. Normalmente se omite.
Descripción
On activa (define en 1) la salida especificada.
Si se especifica el parámetro de intervalo time, el bit de salida especificado por outnum se activa y luego se
vuelve a desactivar una vez que termina el intervalo time.
La configuración del parámetro parallel se aplica cuando el intervalo se especifica de la siguiente manera:
1: Activa la salida, la vuelve a desactivar después del intervalo especificado termina y luego ejecuta
el siguiente comando. (Este también es el valor predeterminado del parámetro Parallel. Si este
parámetro se omite, es igual que configurar el parámetro en “1”).
0: Activa la salida y ejecuta simultáneamente el siguiente comando.
Notas
Bits de salida configurados como control remoto
Si se especificó un bit de salida que se configuró como un control remoto, ocurrirá un error. Los bits de
salida remota se desactivan y activan automáticamente de acuerdo con el estado del sistema. Para conocer
detalles acerca de la función remota, consulte el Manual del usuario de EPSON RC+. Los bits individuales
para el conector remoto se pueden configurar como control remoto o E/S desde el diálogo de configuración
remota de EPSON RC+, al que puede acceder desde el menú [Setup].
Salidas y momentos en que ocurre una parada de emergencia
El controlador tiene una característica que genera que todas las salidas se desactiven cuando ocurre una
parada de emergencia. Esta característica se configura o desactiva desde uno de los interruptores de opción.
Para configurar esto, diríjase a [Setup]-[Controller]- [Preferences] (Configuración - Controlador -
Preferencias).
Indicador Forced
Este indicador se usa para activar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause, NoEmgAbort (tarea especial que usa NoPause o NoEmgAbort
en Xqt), o las tareas en segundo plano.
Asegúrese de que las salidas de E/S cambien mediante la parada de emergencia y la apertura de la puerta de
seguridad cuando diseñe el sistema.
Manual de referencia del lenguaje SPEL+
468
Manual de referencia del lenguaje SPEL+ Rev.2
También consulte
In, InBCD, MemOff, MemOn, Off, OpBCD, Oport, Out, Wait
Ejemplo de instrucción On
El ejemplo que se indica a continuación muestra cómo la tarea principal inicia una tarea en segundo plano
llamada “iotask”. “iotask” es una tarea simple para activar y desactivar los bits de salida 1 y 2, esperar 10
segundos y luego hacerlo nuevamente.
Function main
Xqt iotask
Go P1
.
.
.
Fend
Function iotask
Do
Fend
Loop
On 1
On 2
Off 1
Off 2
Wait 10
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> on 1
> off 1, 10 'Desactiva la salida 1, espera 10 segundos y la activa nuevamente
> on 2
> off 2
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
469
Instrucción OnErr
Define bifurcaciones de interrupción para que causen que el control se traslade a una subrutina de
manipulación de errores cuando ocurre un error. Permite a los usuarios llevar a cabo el control de errores.
Sintaxis
OnErr GoTo {label | 0}
Parámetros
label Etiqueta de instrucción a la que saltar cuando ocurre un error.
0 Parámetros utilizados para borrar la configuración OnErr.
Descripción
OnErr permite el control de errores por el usuario. Cuando ocurre un error sin que se use OnErr, la tarea se
termina y se muestra el error. Sin embargo, cuando se usa OnErr, este permite al usuario "atrapar" el error
e ir a un controlador de errores para recuperarse automáticamente del error. Una vez que recibe un error,
OnErr bifurca el control a la etiqueta designada especificada en la instrucción EResume. De este modo, la
tarea no se termina y el usuario recibe la capacidad de manipular el error automáticamente. Esto hace que
las celdas de trabajo funcionen con mucha más fluidez, ya que los posibles errores siempre son
manipulados y recuperados del mismo modo.
Cuando se especifica el comando OnErr con el parámetro "0", se borra la configuración actual de OnErr.
(Es decir, después de ejecutar OnErr 0, si ocurre un error, se detendrá la ejecución del programa)
También consulte
Err, EResume
Ejemplo de instrucción OnErr
El siguiente ejemplo muestra un programa de utilidad simple que comprueba si existen los puntos P0 a
P399. Si el punto no existe, se mostrará un mensaje en la pantalla para informar al usuario de que el punto
no existe. El programa usa la instrucción CX para comprobar si se definió o no cada punto. Cuando un
punto no está definido, el control se traslada al controlador de errores y se muestra un mensaje en la
pantalla para indicar al usuario el punto que no estaba definido.
Function errDemo
Integer i, errNum
OnErr GoTo errHandler
For i = 0 To 399
temp = CX(P(i))
Next i
Exit Function
'
'
'*********************************************
'* Error Handler *
'*********************************************
errHandler:
errNum = Err
' Comprueba si se está usando un punto no definido
If errNum = 7007 Then
Print "Point number P", i, " is undefined!"
Else
Print "ERROR: Error number ", errNum, " occurred while"
Print " trying to process point P", i, " !"
EndIf
EResume Next
Fend
Manual de referencia del lenguaje SPEL+
470
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción OpBCD
Define simultáneamente 8 líneas de salida con el formato BCD. (Decimal codificado binariamente)
Sintaxis
OpBCD portNumber, outData [,Forced]
Parámetros
portNumber Expresión entera que representa los bytes de salida de E/S. Cuando la selección de
portNumber corresponde a las siguientes salidas:
PortNumbe
r
Salidas
0 0-7
1 8-15
2 16-23
3 24-31
... ...
outData Expresión entera entre 0 y 99 que representa el patrón de salida para el grupo de salida
seleccionado con portNumber. El segundo dígito (llamado el dígito de las unidades)
representa las 4 salidas inferiores del grupo seleccionado y el primer dígito (llamado el
dígito de las decenas) representa las 4 salidas superiores del grupo seleccionado.
Forced Opcional. Normalmente se omite.
Descripción
OpBCD define simultáneamente 8 líneas de salida con el formato BCD. Las salidas del usuario estándar y
de expansión se dividen en grupos de 8. El parámetro portNumber de la instrucción OpBCD define el
grupo de 8 salidas que se usará, donde portNumber = 0 significa las salidas 0 a 7, portNumber = 1 significa
las salidas 8 a 15, etc.
Una vez que se selecciona un número de puerto (es decir, se seleccionó un grupo de 8 salidas), se debe
definir un patrón de salida específico. Esto se hace en el formato decimal codificado binariamente con el
parámetro outdata. El parámetro de datos de salida puede tener 1 o 2 dígitos. (Las entradas válidas varían
entre 0 y 99.) El primer dígito (o dígito de las decenas) corresponde a las 4 salidas superiores del grupo de
8 salidas que selecciona portNumber. El segundo dígito (o dígito de las unidades) corresponde a las 4
salidas inferiores del grupo de 8 salidas que selecciona portNumber.
Dado que las entradas válidas en el formato BCD varían entre 0 y 9 para cada dígito, no se puede obtener
cada combinación de E/S. La siguiente tabla muestra algunas de las combinaciones posibles de E/S y sus
valores outnum asociados, asumiendo que portNumber es 0.
Configuraciones de salida (Número de salida)
Valor Outnum 7 6 5 4 3 2 1 0
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 On Off Off On On Off Off On
Tenga en cuenta que el formato de decimal codificado binariamente solo permite especificar valores
decimales. Esto significa que, con el formato decimal codificado binariamente, es imposible activar todas
las salidas con la instrucción OpBCD. Tenga en cuenta que el valor máximo para cualquiera de los dígitos
para outnum es "9". Esto significa que el máximo valor posible para usar con OpBCD es "99". En la tabla
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
471
anterior, es fácil ver que "99" no activa todas las salidas. En su lugar, activa las entradas 0, 3, 4 y 7 y
desactiva todas las demás.
Notas
Diferencia entre OpBCD y Out
Las instrucciones OpBCD y Out son muy similares en el lenguaje SPEL
+
. Sin embargo, existe una gran
diferencia entre ambos, la cual se muestra a continuación:
- La instrucción OpBCD utiliza un formato de decimal codificado binariamente para especificar para
especificar un valor de 8 bits para usar para activar o desactivar las salidas. Dado que el formato de
decimal codificado binariamente excluye el uso de los valores &HA, &HB, &HC, &HD, &HE o &HF,
no se pueden ver todas las combinaciones para configurar el grupo de 8 salidas.
- La instrucción Out funciona de manera muy similar a la instrucción OpBCD, excepto que Out permite
usar el rango del valor de 8 bits para activar o desactivar las salidas de manera que sean entre 0 y 255 (0
a 99 para OpBCD). Esto permite todas las combinaciones posibles para los grupos de salida de 8 bits
que se iniciarán, de acuerdo con las especificaciones del usuario.
Bits de salida configurados como control remoto:
Si se especificó un bit de salida que se configuró como un control remoto para que se active con OpBCD,
ocurrirá un error. Los bits de salida remota se desactivan y activan automáticamente de acuerdo con el
estado del sistema. Para conocer detalles acerca de la función remota, consulte el Manual del usuario de
EPSON RC+. Los bits individuales para el conector remoto se pueden configurar como control remoto o
E/S desde el diálogo de configuración remota de EPSON RC+, al que puede acceder desde el menú Setup.
Salidas y momentos en que ocurre una parada de emergencia:
El controlador tiene una característica que genera que todas las salidas se desactiven cuando ocurre una
parada de emergencia. Esta característica se configura o desactiva desde uno de los interruptores de
opción. Para configurar esto, diríjase a [Setup]-[Controller]- [Preferences].
Indicador Forced
Este indicador se usa para activar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause, NoEmgAbort (tarea especial que usa NoPause o NoEmgAbort
en Xqt), o las tareas en segundo plano.
Asegúrese de que las salidas de E/S cambien mediante la parada de emergencia y la apertura de la puerta de
seguridad cuando diseñe el sistema.
También consulte
In, InBCD, MemOff, MemOn, MemSw, Off, On, Oport, Out, Sw, Wait
Ejemplo de función OpBCD
El ejemplo que se indica a continuación muestra cómo la tarea principal inicia una tarea en segundo plano
llamada “iotask”. La tarea "iotask" es una tarea simple para alternar entre las activar las salidas 1 y 2 y
luego las salidas 0 y 3. Cuando 1 y 2 están activadas, 0 y 3 también se desactivan, y viceversa.
Function main
Xqt 2, iotask
Go P1
.
.
Fend
Function iotask
Do
Fend
Loop
OpBCD 0, 6
OpBCD 0, 9
Wait 10
Otros ejemplos simples de la ventana Command incluyen los siguientes:
Manual de referencia del lenguaje SPEL+
472
Manual de referencia del lenguaje SPEL+ Rev.2
> OpBCD 1,6 'Activa las salidas 1 y 2
> OpBCD 2,1 'Activa la salida 8
> OpBCD 3, 91 'Activa las salidas 24, 28 y 31
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
473
Instrucción OpenDB
Abre una base de datos o libro de Excel.
Sintaxis
OpenDB #fileNumber, { SQL | Accel | Eccel }, [ DBserverName As String ],
{DBname As String | filename As String }
Parámetros
fileNumber mero entero de 501 a 508
SQL | Accel | Eccel Selecciona un tipo de base de datos que desee abrir desde [SQL], [Access] y
[Excel].
DBserverName Si selecciona [SQL], se especifica el nombre del servidor SQL.
Si se omite, se especifica el servidor LOCAL. El servidor SQL de la red no se
puede especificar.
Si selecciona [Access] o [Excel], no se especifica el nombre del servidor SQL.
DBname | filename Si selecciona [SQL] como base de datos, se especifica un nombre de base de
datos en el servidor SQL.
Si selecciona [Access], se especifica el nombre del archivo Access.
Si se omite la ruta del nombre del archivo Access, se busca en la carpeta actual.
Consulte ChDisk para conocer detalles.
Si selecciona [Excel], se especifica el nombre del archivo Excel.
Puede especificar un archivo de libro de Excel 2007 o de Excel 97-2003 como el
archivo de Excel.
Si se omite el nombre del archivo Excel, se busca en la carpeta actual.
Consulte ChDisk para conocer detalles.
Descripción
Abre la base de datos especificada con el nombre de archivo especificado.
La base de datos especificada debe existir en el disco de la computadora en la que está instalado RC+. De
lo contrario, causa un error. El archivo de número especificado se puede usar para identificar la base de
datos hasta que cierre la base de datos con el comando CloseDB. El número de archivo se usa con los
comandos de operación de la base de datos (SelectDB, Print#, Input#, CloseDB).
No es posible usar los archivos Access y Excel de Microsoft Office 2010 64-bit.
Nota
- Se requiere la conexión de una computadora con RC+ instalado.
También consulte
SelectDB, CloseDB, UpdateDB, DeleteDB, Input #, Print #
Ejemplo de instrucción OpenDB
Usar la base de datos SQL
El siguiente ejemplo usa la base de datos de muestra de SQL server 2000, Northwind y carga los datos
desde una tabla.
Integer count, i, eid
String Lastname$, Firstname$, Title$
OpenDB #501, SQL, "(LOCAL)", "Northwind"
count = SelectDB(#501, "Employees")
For i = 0 To count - 1
Input #501, eid, Lastname$, Firstname$, Title$
Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
Manual de referencia del lenguaje SPEL+
474
Manual de referencia del lenguaje SPEL+ Rev.2
Next
CloseDB #501
Uso de la base de datos de Access
El siguiente ejemplo usa la base de datos de muestra de Microsoft Access 2007, "Students" y carga los
datos desde una tabla.
Integer count, i, eid
String Lastname$, Firstname$, dummy$
OpenDB #502, Access, "c:\MyDataBase\Students.accdb"
count = SelectDB(#502, "Students")
For i = 0 To count - 1
Input #502, eid, dummy$, Lastname$, Firstname$
Print eid, ",", Lastname$, ",", Firstname$
Next
CloseDB #502
Uso del libro de Excel
El siguiente ejemplo usa un libro de Microsoft Excel "StudentsList" y carga los datos desde una hoja.
Integer count, i, eid
String Lastname$, Firstname$
OpenDB #503, Excel, "c:\MyDataBase\Students.xls"
count = SelectDB(#503, "[Students$]")
For i = 0 To count - 1
Input #503, eid, Lastname$, Firstname$
Print eid, ",", Lastname$, ",", Firstname$
Next
CloseDB #503
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
475
Instrucción OpenCom
Abre un puerto de comunicación RS-232.
Sintaxis
OpenCom #portNumber
Parámetros
portNumber Expresión entera para el número del puerto RS-232C que se abrirá.
El rango del número de puerto es:
Parte real 1 a 8
Parte de Windows 1001 a 1008
Descripción
Debe conectar el puerto RS-232C al controlador.
Para usar los puertos de piezas reales de SPEL
+
, se debe instalar la placa opcional en el controlador.
Para usar los puertos de piezas de Windows, se debe configurar RC+. Para conocer detalles, consulte la
descripción de RC-232C en el Manual del usuario de EPSON RC+ 5.12 Menú [Setup].
También consulte
ChkCom, CloseCom, SetCom
Ejemplo de instrucción OpenCom
Integer PortNo
PortNo = 1001
OpenCom #PortNo
Print #PortNo, "Data from COM1"
CloseCom #PortNo
Manual de referencia del lenguaje SPEL+
476
Manual de referencia del lenguaje SPEL+ Rev.2
Función OpenCom
Adquiere el número de tarea que ejecuta OpenCom.
Sintaxis
OpenCom (portNumber)
Parámetros
portNumber Expresión entera para el número del puerto RS-232C.
El rango del número de puerto es:
Parte real 1 a 8
Parte de Windows 1001 a 1008
Descripción
Adquiere el número de tarea que ejecuta OpenCom.
También consulte
ChkCom, CloseCom, OpenCom, SetCom
Ejemplo de función OpenCom
Print OpenCom(PortNo)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
477
Instrucción OpenNet
Abre un puerto de red TCP/IP.
Sintaxis
OpenNet #portNumber As { Client | Server }
Parámetros
portNumber Expresión entera para el número del puerto TCP/IP que se abrirá. El rango es de 201 a
216.
Descripción
OpenNet abre un puerto TCP/IP para comunicación con otra computadora en la red.
Un sistema debe abrirse como Servidor y otro como Cliente. No importa cuál se ejecuta primero.
También consulte
ChkNet, CloseNet, SetNet
Ejemplo de instrucción OpenNet
Para este ejemplo, se configuró la característica TCP/IP de dos controladores de la siguiente manera:
Controlador n.º 1:
Puerto: #201
Nombre del host: 192.168.0.2
Puerto TCP/IP: 1000
Function tcpip
OpenNet #201 As Server
WaitNet #201
Print #201, "Data from host 1"
Fend
Controlador n.º 2:
Puerto: #201
Nombre del host: 192.168.0.1
Puerto TCP/IP: 1000
Function tcpip
String data$
OpenNet #201 As Client
WaitNet #201
Input #201, data$
Print "received '", data$, "' from host 1"
Fend
Manual de referencia del lenguaje SPEL+
478
Manual de referencia del lenguaje SPEL+ Rev.2
Función OpenNet
Adquiere el número de tarea que ejecuta OpenNet.
Sintaxis
OpenNet (portNumber)
Parámetros
portNumber Expresión entera para el número del puerto TCP/IP. El rango es de 201 a 216.
Descripción
Adquiere el número de tarea que ejecuta OpenNet.
También consulte
ChkNet, CloseNet, OpenNet, SetNet
Ejemplo de función OpenNet
Print OpenNet(PortNo)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
479
Función Oport
Arroja el estado de la salida especificada.
Sintaxis
Oport(outnum)
Parámetros
outnum Expresión entera que representa los bits de salida de E/S.
Valores devueltos
Arroja el estado del bit de salida especificado como 0 o 1.
0: Estado desactivado
1: Estado activado
Descripción
Oport proporciona una comprobación de estado para las salidas. Funciona de forma muy similar a la
instrucción Sw con las entradas. Oport frecuentemente se usa para comprobar el estado de una de las
entradas que se puede conectar aun alimentador, transportador, solenoide de pinza o una serie de otros
dispositivos que funcionan mediante E/S discretas. Obviamente, la salida comprobada con la instrucción
Oport tiene 2 estados (1 o 0). Estos indican si la salida especificada está activada o desactivada.
Nota
Diferencia entre Oport y Sw
Es muy importante que el usuario comprenda la diferencia entre las instrucciones Oport y Sw. Ambas
instrucciones se usan para obtener el estado de E/S. Sin embargo, el tipo de E/S es distinto para cada una.
La instrucción Sw funciona con entradas. La instrucción Oport funciona con las salidas de hardware
estándar y de expansión. Estos puertos de hardware son salidas discretas que interactúan con dispositivos
externos al controlador.
También consulte
In, InBCD, MemIn, MemOn, MemOff, MemOut, MemSw, Off, On, OpBCD, Out, Sw, Wait
Manual de referencia del lenguaje SPEL+
480
Manual de referencia del lenguaje SPEL+ Rev.2
Ejemplo de función OPort
El ejemplo que se muestra a continuación activa la salida 5 y luego la revisa para asegurarse de que esté
activada antes de continuar.
Function main
TMOut 10
OnErr errchk
Integer errnum
On 5 'Activa la salida 5
Wait Oport(5)
Call mkpart1
Exit Function
errchk:
errnum = Err(0)
If errnum = 94 Then
Print "TIME Out Error Occurred during period"
Print "waiting for Oport to come on. Check"
Print "Output #5 for proper operation. Then"
Print "restart this program."
Else
Print "ERROR number ", errnum, "Occurred"
Print "Program stopped due to errors!"
EndIf
Exit Function
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> On 1
> Print Oport(1)
1
> Off 1
> Print Oport(1)
0
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
481
Operador Or
Realiza una operación OR bitwise o lógica en dos operandos.
Sintaxis
expr1 Or expr2
Parámetros
expr1, exrp2 Expresiones enteras o booleanas.
Valores devueltos
El valor OR bitwise de los operandos si las expresiones son números enteros. OR lógica si las expresiones
son booleanas.
Descripción
Para las expresiones enteras, el operador Or realiza la operación OR bitwise sobre los valores de los
operandos. Cada bit de los resultados es 1 si uno o dos de los bits correspondientes de los dos operandos es
1. Para las expresiones booleanas, el resultado es True si una de las expresiones resulta True.
También consulte
And, LShift, Mod, Not, RShift, Xor
Ejemplo de operador Or
Este es un ejemplo de un OR bitwise.
>print 1 or 2
3
Este es un ejemplo de un OR lógico.
If a = 1 Or b = 2 Then
c = 3
EndIf
Manual de referencia del lenguaje SPEL+
482
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción Out
Configura simultáneamente 8 bits de salida.
Sintaxis
Out portNumber, outData [,Forced]
Parámetros
portNumber Expresión entera que representa los bytes de salida de E/S. La selección portnum
corresponde a las siguientes salidas:
Portnum Salidas
0 0-7
1 8-15
... ...
outData Número entero entre 0 y 255 que representa el patrón de salida para el grupo de salida
seleccionado con portNumber. Si se representa en forma hexadecimal, el rango varía de &H0
a &HFF. El dígito inferior representa los dígitos menos significativos (o las primeras 4
salidas) y el dígito superior representa los dígitos más relevantes (o las segundas 4 salidas).
Forced Opcional. Normalmente se omite.
Descripción
Out define simultáneamente 8 líneas de salida con la combinación de los valores portNumber y outdata
especificados por el usuario para determinar qué salidas se determinarán. El parámetro portNumber define
el grupo de 8 entradas que se leerá, donde portNumber = 0 significa las entradas 0 a 7, portNumber = 1
significa las entradas 8 a 15, etc.
Una vez que se selecciona portnum (es decir, se seleccionó un grupo de 8 salidas), se debe definir un patrón
de salida específico. Esto se lleva a cabo mediante el parámetro outData. El parámetro outData puede
tener un valor entre 0 a 255 y se puede representar en formato hexadecimal o de número entero. (es decir,
&H0 a &HFF o 0 a 255)
La siguiente tabla muestra algunas de las combinaciones posibles de E/S y sus valores outData asociados,
asumiendo que portNumber son “0” y “1” según corresponde.
Configuración de salida cuando portNumber=0 (número de salida)
Valor OutData 7 6 5 4 3 2 1 0
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 Off On On Off Off Off On On
255 On On On On On On On On
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
483
Configuración de salida cuando portNumber=1 (número de salida)
Valor OutData 15 14 13 12 11 10 9 8
01 Off Off Off Off Off Off Off On
02 Off Off Off Off Off Off On Off
03 Off Off Off Off Off Off On On
08 Off Off Off Off On Off Off Off
09 Off Off Off Off On Off Off On
10 Off Off Off On Off Off Off Off
11 Off Off Off On Off Off Off On
99 Off On On Off Off Off On On
255 On On On On On On On On
Notas
Diferencia entre OpBCD y Out
Las instrucciones Out y OpBCD son muy similares en el lenguaje SPEL
+
. Sin embargo, existe una gran
diferencia entre ambos, la cual se muestra a continuación:
- La instrucción OpBCD utiliza un formato de decimal codificado binariamente para especificar para
especificar un valor de 8 bits para usar para activar o desactivar las salidas. Dado que el formato de
decimal codificado binariamente excluye el uso de los valores &HA, &HB, &HC, &HD, &HE o &HF, no
se pueden ver todas las combinaciones para configurar el grupo de 8 salidas.
- La instrucción Out funciona de manera muy similar a la instrucción OpBCD, excepto que Out permite
usar el rango del valor de 8 bits para activar o desactivar las salidas de manera que sean entre 0 y 255 (0 a
99 para OpBCD). Esto permite todas las combinaciones posibles para los grupos de salida de 8 bits que
se iniciarán, de acuerdo con las especificaciones del usuario.
Indicador Forced
Este indicador se usa para activar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause, NoEmgAbort (tarea especial que usa NoPause o NoEmgAbort
en Xqt), o las tareas en segundo plano.
Asegúrese de que las salidas de E/S cambien mediante la parada de emergencia y la apertura de la puerta de
seguridad cuando diseñe el sistema.
También consulte
In, InBCD, MemOff, MemOn, MemOut, MemSw, Off, On, Oport, Sw, Wait
Ejemplo de instrucción Out
El ejemplo que se indica a continuación muestra cómo la tarea principal inicia una tarea en segundo plano
llamada “iotask”. La tarea "iotask" es una tarea simple para alternar entre activar y desactivar los bits de
salida 0 a 3. La instrucción Out hace que esto sea posible usar solo 1 comando en lugar de activar y
desactivar cada salida individualmente.
Function main
Xqt iotask
Do
Go P1
Go P2
Loop
Fend
Function iotask
Do
Out 0, &H0F
Out 0, &H00
Wait 10
Loop
Fend
Manual de referencia del lenguaje SPEL+
484
Manual de referencia del lenguaje SPEL+ Rev.2
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> Out 1,6 'Activa las salidas 9 y 10
> Out 2,1 'Activa la salida 8
> Out 3,91 'Activa las salidas 24, 25, 27, 28 y 30
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
485
Función Out
Arroja el estado de un byte de salidas.
Sintaxis
Out(portNumber)
Parámetros
portNumber Expresión entera que representa los bytes de salida de E/S. Cuando la selección de
portNumber corresponde a las siguientes salidas:
Portnum Salidas
0 0-7
1 8-15
... ...
Valores devueltos
El valor de 8 bits del estado de salida para el puerto especificado.
También consulte
Instrucción Out
Ejemplo de función Out
Print Out(0)
Manual de referencia del lenguaje SPEL+
486
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción OutReal
Los datos de salida del valor real son los datos de punto flotante (en cumplimiento con IEEE754) de 32
bits.
Define el estado de la palabra de salida de puerto 2 (32 bits).
Sintaxis
OutReal WordPortNumber, OutputData [,Forced]
Parámetros
WordPortNumber Expresión entera que representa las palabras de salida de E/S.
OutputData Especifica la expresión entera que representa los datos de salida (Valor de tipo real).
Forced Opcional. Normalmente se omite.
Descripción
Genera el valor real IEEE754 especificado al puerto de palabra de salida especificado según el número de
puerto de palabra y el siguiente puerto de palabra de salida.
Se puede usar la etiqueta de palabra de salida para el parámetro de número de puerto de palabra.
Nota
Indicador Forced
Este indicador se usa para activar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause o NoEmgAbort (tarea especial iniciada mediante la
especificación de NoPause o NoEmgAbort en Xqt).
Diseñe cuidadosamente el sistema, ya que la salida de E/S cambia por la parada de emergencia y la apertura
de la puerta de seguridad.
También consulte
In, InW, InBCD, InReal, Out, OutW, OpBCD, Función OutReal
Ejemplo de instrucción OutReal
OutReal 32, 2.543
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
487
Función OutReal
Recupera el estado del puerto de salida como los datos de punto flotante de 32 bits (en cumplimiento con
IEEE754).
Sintaxis
OutReal (WordPortNumber)
Parámetros
WordPortNumber Expresión entera que representa las palabras de salida de E/S.
Valores devueltos
Arroja el estado del puerto de salida especificado como datos de punto flotante de 32 bits (en cumplimiento
con IEEE754).
También consulte
In, InW, InBCD, InReal, Out, OutW, OpBCD, OutReal
Ejemplo de función OutReal
Real rdata01
rdata01 = OutReal(0)
Manual de referencia del lenguaje SPEL+
488
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción OutW
Configura simultáneamente 16 bits de salida.
Sintaxis
OutW wordPortNum, outputData [,Forced]
Parámetros
wordPortNum Expresión entera que representa las palabras de salida de E/S.
outputData Especifica los datos de salida (enteros de 0 a 65535) mediante una expresión o valor
numérico.
Forced Opcional. Normalmente se omite.
Descripción
Cambia el estado actual del grupo de puertos de salida de E/S especificado del usuario según el número de
puerto de palabra a los datos de salida especificados.
Nota
Indicador Forced
Este indicador se usa para activar la salida de E/S durante una parada de emergencia o la apertura de la
puerta de seguridad, desde la tarea NoPause, NoEmgAbort (tarea especial que usa NoPause o NoEmgAbort
en Xqt), o las tareas en segundo plano.
Asegúrese de que las salidas de E/S cambien mediante la parada de emergencia y la apertura de la puerta de
seguridad cuando diseñe el sistema.
También consulte
In, InW, Out
Ejemplo de instrucción OutW
OutW 0, 25
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
489
Función OutW
Arroja el estado una palabra (2 bytes) de salidas.
Sintaxis
OutW(wordPortNum)
Parámetros
wordPortNum Expresión entera que representa las palabras de salida de E/S.
Valores devueltos
El valor de 16 bits del estado de salida para el puerto especificado.
También consulte
Instrucción OutW
Ejemplo de función OutW
OutW 0, &H1010
Manual de referencia del lenguaje SPEL+
490
Manual de referencia del lenguaje SPEL+ Rev.2
P# (1. Point Definition)
Define un punto de robot mediante su asignación a una expresión de punto.
Sintaxis
point = pointExpr
pointLabel = pointExpr
Parámetros
point Expresión que incluye un valor numérico o ( ) (paréntesis)
Pnumber
P(expr)
pointLabel Etiqueta de punto
pointExpr Uno de los siguientes datos de punto
Número de punto P, Etiqueta de punto, Here, Pálet, Función de datos de punto
(Función Here, función XY, función JA, función Pulse, etc.).
Para conocer detalles acerca de pointExpr, consulte P# (2. Expresión de punto)
Descripción
Define un punto de robot mediante su configuración idéntica a otro punto o expresión de punto.
También consulte
Local, Pallet, PDef, PDel, Plist
Ejemplo de definición de punto
Los siguientes ejemplos se llevan a cabo desde la ventana Command:
Asigna coordenadas a P1:
> P1 = 300,200,-50,100
Especifica la postura del brazo izquierdo:
> P2 = -400,200,-80,100/L
Agrega 20 a la coordenada X de P2 y define el punto resultante como P3:
> P3 = P2 +X(20)
> plist 3
P3=-380,200,-80,100/L
Resta 50 de la coordenada Y de P2, sustituye -30 para la coordenada Z y define el punto P4 resultante
como la postura del brazo derecho:
>P4=P2 -Y(50) :Z(-30) /R
> plist 4
P4 = XY(-450,200,-30,100)/R
Agrega 90 a la coordenadas U de Pallet(3, 5) y define el punto resultante como P6:
> P5 = Here
> P6 = pallet(3,5) +U(90)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
491
P# (2. Expresión de punto)
Especifica un punto de robot para sus comandos de asignación y movimiento.
Sintaxis
point [ { + | - } point ] [local] [hand] [elbow] [wrist] [j4flag] [j6flag] [j1flag] [j2flag] [relativeOffsets]
[absoluteCoords]
Parámetros
point La especificación del punto base. Esto puede ser una de las siguientes opciones:
Pnumber
P(expr)
pointLabel
Pallet(palletNumber, palletIndex)
Here
XY(X, Y, Z, U, [V], [W])
JA(J1, J2, J3, J4, [J5], [J6])
Pulse(J1, J2, J3, J4, [J5], [J6])
local Opcional. Los números locales desde 1 a 15 son precedidos por una barra diagonal (/0
a /15) o arroba (@0 a @15). La barra diagonal significa que las coordenadas serán
locales. El símbolo de arroba significa que las coordenadas se traducirán en
coordenadas locales.
hand Opcional para robots SCARA (incluida la serie RS) y robots de 6 ejes (incluida la serie
N). Especifica /L o /R para las orientaciones lefty y righty.
elbow Opcional para los robots de 6 ejes (incluida la serie N).
Especifica /A o /B para las orientaciones hacia arriba o hacia abajo.
wrist Opcional para los robots de 6 ejes (incluida la serie N).
Especifica /F o /NF para la orientación con giro o sin giro.
j4flag Opcional para los robots de 6 ejes (incluida la serie N).
Especifica /J4F0 o /J4F1.
j6flag Opcional para los robots de 6 ejes (incluida la serie N).
Especifica /J6F0 - /J6F127.
j1flag Opcional para la serie RS y robots de 6 ejes (excluida la serie N). Especifica /J1F0 o
/J1F1.
j2flag Opcional para la serie RS. Especifica /J2F0 - /J2F127.
j1angle Opcional para las series RS y N. Especifica /J1A (valor real).
j4angle Opcional para la serie N. Especifica /J4A (valor real).
relativeOffsets Opcional. Uno o más ajustes de coordenadas relativas.
{+ | -} {X | Y | Z | U | V | W | RZ | RY | RX | R | S | T | ST } (expr)
Las compensaciones de TL son compensaciones relativas en el sistema de coordenadas
de la herramienta actual.
{+ | -} {TLX | TLY | TLZ | TLU | TLV | TLW} (expr)
absoluteCoords Opcional. Una o más coordenadas absolutas.
: {X | Y | Z | U | V | W | R | S | T | ST } (expr)
Descripción
Las expresiones de punto se usan en instrucciones de asignación de punto y comandos de movimiento.
Go P1 + P2
P1 = P2 + XY(100, 100, 0, 0)
Usar compensaciones relativas
Manual de referencia del lenguaje SPEL+
492
Manual de referencia del lenguaje SPEL+ Rev.2
Puede compensar una o más coordenadas relativas para el punto base. Por ejemplo, la siguiente instrucción
mueve el robot 20 mm en el eje X positivo desde la posición actual:
Go Here +X(20)
Si vuelve a ejecutar la misma instrucción, el robot se moverá 20 mm adicionales a lo largo del eje X, ya que
este es un movimiento relativo.
Para realizar una rotación relativa alrededor del eje de coordenadas de los robots de 6 ejes (incluida la serie
N), ejecute la instrucción según se indica a continuación. La siguiente instrucción gira la herramienta 20
grados en la dirección positiva del eje X según la orientación actual de la herramienta.
Go Here +RX(20)
También puede usar compensaciones relativas de herramientas:
Go Here +TLX(20) -TLY(5.5)
Cuando el robot de 6 ejes (incluida la serie N) se mueve hasta un punto calculado mediante las
compensaciones de pálet o relativas, la pieza de la muñeca podría girar hasta una dirección involuntaria. El
cálculo del punto anterior no depende de los modelos de robot y genera un movimiento sin convertir el
indicador de punto necesario.
La función LJM evita la rotación involuntaria de la muñeca.
Go LJM(Here +X(20))
Usar coordenadas absolutas
Puede cambiar una o más coordenadas del punto base por coordenadas absolutas. Por ejemplo, la siguiente
instrucción mueve el robot a la posición de 20 mm en el eje X:
Go Here :X(20)
Si vuelve a ejecutar la misma instrucción, el robot no se moverá, ya que ya se encuentra en la posición
absoluta para X por el movimiento anterior.
Las compensaciones relativas y las coordenadas absolutas hacen que sea fácil modificar un punto
temporalmente. Por ejemplo, este código realiza un movimiento rápidamente sobre el punto de recogida en
10 mm con una compensación relativa para Z o 10 mm, y luego se mueve lentamente al punto de recogida.
Speed fast
Jump pick +Z(10)
Speed slow
Go pick
Este código realiza un movimiento en línea recta hacia arriba desde la posición actual mediante la
especificación de un valor absoluto de 0 para la articulación Z:
LimZ 0
Jump Here :Z(0)
Uso de Locals
Puede especificar un número local con una barra diagonal o una arroba. Cada una tiene una función
distinta.
Use la barra diagonal para marcar las coordenadas en un local. Por ejemplo, si agrega /1 en la siguiente
instrucción, esto indicará que P1 estará en la ubicación 0,0,0,0 en local 1.
P1 = XY(0, 0, 0, 0) /1
Use arroba para traducir las coordenadas a coordenadas locales.
Por ejemplo, aquí se muestra cómo definir la siguiente posición en P1:
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
493
P1 = Here @1
También consulte
Go, LJM, Local, Pallet, Pdel, Plist, Hand, Elbow, Wrist, J4Flag, J6Flag, J1Flag, J2Flag
Ejemplo de expresión de punto
Estos son algunos ejemplos del uso de expresiones de punto en instrucciones de asignación y comandos de
movimiento:
P1 = XY(300,200,-50,100)
P2 = P1 /R
P3 = pick /1
P4 = P5 + P6
P(i) = XY(100, 200, CZ(P100), 0)
Go P1 -X(20) :Z(-20) /R
Go Pallet(1, 1) -Y(25.5)
Move pick /R
Jump Here :Z(0)
Go Here :Z(-25.5)
Go JA(25, 0, -20, 180)
pick = XY(100, 100, -50, 0)
P1 = XY(300,200,-50,100, -90, 0)
P2 = P1 /F /B
P2 = P1 +TLV(25)
Manual de referencia del lenguaje SPEL+
494
Manual de referencia del lenguaje SPEL+ Rev.2
Función PAgl
Arroja un valor de articulación desde un punto especificado.
Sintaxis
PAgl (point, jointNumber)
Parámetros
point Expresión de punto.
jointNumber Especifica el número de articulación (enteros de 1 a 9) mediante una expresión o
valor numérico.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja la posición de articulación calculada (valor real, grado para la articulación giratoria, mm para la
articulación prismática).
También consulte
Agl, CX, CY, CZ, CU, CV, CW, CR, CS, CT, PPls
Ejemplo de función PAgl
Real joint1
joint1 = PAgl(P10, 1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
495
Instrucción Pallet
Define y muestra los pálets.
Sintaxis
(1) Pallet [Outside,] [ palletNumber, P1, P2, P3 [,P4 ], columns, rows ]
(2) Pallet [Outside,] palletNumber, coordinateData 1, coordinateData 2, coordinateData 3
[,coordinateData 4 ], columns1, rows2
(3) Pallet
Parámetros
Outside Opcional. Permite índices de fila y columna fuera del rango de las filas y
columnas especificado.
palletNumber Número de pálet representado por un número entero entre 0 y 15.
P1, P2, P3 Variables de punto que definen la posición estándar del pálet de 3 puntos.
P4 Opcional. Variable de puntos que se usa con P1, P2 y P3 para definir pálets de 4
puntos.
columns Expresión entera que representa el mero de puntos en el lado de
P1(coordinateData 1) a P2(coordinateData 2) del pálet. El rango es de 1 a
32767.
rows Expresión entera que representa el número de puntos en el lado de
P1(coordinateData 1) a P3(coordinateData 3) del pálet. El rango es de 1 a
32767.
coordinateData1, 2, 3 Datos de punto que se usan para definir pálets (definición estándar de 3 puntos)
coordinateData 4 Opcional. Datos de punto que se usan coordinateData 1 a 3 para definir pálets
de 4 puntos.
Valores devueltos
(3) Muestra todos los pálets definidos cuando se omiten los parámetros.
Descripción
Define un pálet mediante la enseñanza del robot de, como mínimo, los puntos P1 (coordinateData 1), P2
(coordinateData 2) y P3 (coordinateData 3) y la especificación del número de puntos desde P1
(coordinateData 1) a P2 (coordinateData 2) y desde P1 (coordinateData 1) a P3 (coordinateData 3).
Si el pálet tiene una buena forma rectangular ordenada, solo se deben especificar los puntos para 3 de las 4
esquinas. Sin embargo, en la mayoría de las situaciones, es mejor usar los puntos de las 4 esquinas para
definir un pálet.
Para definir un pálet, primero enseñe al robot 3 o 4 puntos de esquina, y luego defina el pálet de la
siguiente forma:
Un pálet definido con 4 puntos: A continuación se muestran P1, P2, P3 y P4. Hay 3 posiciones desde P1-P2
y 4 posiciones desde P1-P3. Esto produce un pálet que tiene 12 posiciones
en total. Para definir este pálet, la sintaxis es la siguiente:
Manual de referencia del lenguaje SPEL+
496
Manual de referencia del lenguaje SPEL+ Rev.2
Sample
Los puntos que representan divisiones de un pálet reciben números de división automáticamente, los que,
en este ejemplo, comienzan en P1. Estos números de división también son necesarios para la función Pallet.
Cuando se especifica Outside, es posible especificar los índices de filas y columnas fuera del rango de filas
y columnas.
Por ejemplo:
Pallet Outside 1, P1, P2, P3, 4, 5
Jump Pallet(1, -2, 10)
Notas
El tamaño máximo de pálet
El número de puntos total definido por un pálet específico debe ser menor que 32,767.
Definiciones de forma de pálets incorrectas
Tenga en cuenta que un orden incorrecto de los puntos o un número de divisiones incorrecto tendrá como
resultado una definición de forma de pálets incorrecta.
Definición de plano de pálet
El plano de pálet se define con los valores de coordenada del eje Z de los 3 puntos de esquina del pálet. Por
lo tanto, también se puede definir un pálet vertical.
Definición de pálet para un pálet de fila única
Es posible definir un pálet de fila única con una instrucción o comando de pálet de 3 puntos. Simplemente
enseñe un punto en cada extremo y defínalos del siguiente modo: Especifique 1 como el número de
divisiones entre el mismo punto.
> Pallet 2, P20, P21, P20, 5, 1 'Define un pálet 51
Valores de coordenadas UVW
Cuando los valores de coordenadas UVW de los 3 (o 4) puntos especificados con la instrucción Pallet
varían, se usan los valores de coordenadas UVW del punto 1 y los datos 1 del sistema de coordenadas.
Los valores de coordenadas UVW de los números de puntos de 2 a 4 y los números del sistema de
1,6
4,6
-1,4
1,4 2,4 3,4 4,4
6,4
1,3 2,3 3,3 4,3
1,2 2,2 3,2 4,2
-1,1
1,1 2,1 3,1 4,1
6,1
1,-1
4,-1
-2,10
1,5 2,5 3,5 4,5
1,4 2,4 3,4 4,4
1,3 2,3 3,3 4,3
1,2 2,2 3,2 4,2
1,1 2,1 3,1 4,1
P2
P1
10 11 12
7
8
9
4
5
6
1
2
3
Pallet 1, P1, P2, P3, P4, 3, 4
P4
P3
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
497
coordenadas de 2 a 4 se ignoran.
Valores de coordenadas de los ejes adicionales
Cuando los valores de coordenadas de los 3 (o 4) puntos especificados con la instrucción Pallet incluyen
los valores de coordenadas del eje adicional ST, Pallet incluye estas coordenadas adicionales en los
cálculos de posición. En el caso donde el eje adicional se usa como el eje de funcionamiento, el
movimiento de este eje se considera y calcula con la definición de Pallet. Es necesario definir un pálet más
grande que el rango de movimiento del robot, considerando la posición del eje de funcionamiento. Incluso
si define los ejes adicionales que no se ven afectados por la definición del pálet, tenga cuidado con las
posiciones de los ejes adicionales cuando define el pálet.
También consulte
Función Pallet
Ejemplo de instrucción Pallet
La siguiente instrucción de la ventana Command configura la pálet definida por los puntos P1, P2 y P3, y
divide el plano del pálet en 15 posiciones de punto de pallet distribuidos equitativamente, con el número de
punto de pálet 1, el número de punto de pálet 2 y el número de punto de pálet 3 colocados a lo largo del
lado de P1 a P2.
> pallet 1, P1, P2, P3, 3, 5
> jump pallet(1, 2) 'Salta a la posición del pálet
El pálet resultante se muestra a continuación:
P3
13 14 15
10 11 12
7 8 9
4 5 6
1 2 3
P1 P2
Manual de referencia del lenguaje SPEL+
498
Manual de referencia del lenguaje SPEL+ Rev.2
Función Pallet
Especifica una posición en un pálet definido anteriormente.
Sintaxis
(1) Pallet ( palletNumber, palletPosition )
(2) Pallet ( palletNumber, column, row )
Parámetros
palletNumber Número de pálet representado por una expresión entera entre 0 y 15.
PalletPosition La posición del pálet representada por una expresión entera entre 1 y 32767.
column La columna de pálets representada por una expresión entera entre 32768 y 32767.
row La fila de pálets representada por una expresión entera entre 32768 y 32767.
Descripción
El pálet arroja una posición en un pálet que se definió anteriormente con la instrucción Pallet. Use esta
función con comandos de movimiento como Go y Jump para provocar que el brazo se mueva a la posición
de pálet especificada.
El número de posición del pálet se puede definir de forma aritmética o simplemente mediante un número
entero.
Notas
Movimiento de pálet para robots de 6 ejes (incluida la serie N).
Cuando el robot de 6 ejes (incluida la serie N) se mueve hasta un punto calculado mediante las
compensaciones de pálet o relativas, la pieza de la muñeca podría girar hasta una dirección involuntaria. El
cálculo del punto anterior no depende de los modelos de robot y genera un movimiento sin convertir el
indicador de punto necesario.
La función LJM evita la rotación involuntaria de la muñeca.
Movimiento de pálet de la serie RS
Al igual que los robots de 6 ejes, cuando el robot de la serie RS se mueve hasta un punto calculado
mediante las compensaciones de pálet o relativas, el brazo n.º 1 podría girar hasta una dirección
involuntaria. La función LJM se puede usar para convertir el indicador de punto y evitar la rotación
involuntaria del brazo n.º 1.
Además, el eje U de un robot de la serie RS puede salir del rango de movimiento cuando se convierte el
indicador de orientación y provocar un error.
Para evitar este error, la función LJM ajusta el ángulo objetivo del eje U para que esté dentro del rango de
movimiento. Está disponible cuando se selecciona el indicador de orientación "2".
Valores de coordenadas UVW
Cuando los valores de coordenadas UVW de los 3 (o 4) puntos especificados con la instrucción Pallet
varían, se usan los valores de coordenadas UVW del punto 1 y los datos 1 del sistema de coordenadas.
Los valores de coordenadas UVW de los números de puntos de 2 a 4 y los números del sistema de
coordenadas de 2 a 4 se ignoran.
Valores de coordenadas de los ejes adicionales
Cuando los valores de coordenadas de los 3 (o 4) puntos especificados con la instrucción Pallet incluyen
los valores de coordenadas del eje adicional ST, Pallet incluye estas coordenadas adicionales en los
cálculos de posición. En el caso donde el eje adicional se usa como el eje de funcionamiento, el
movimiento de este eje se considera y calcula con la definición de Pallet. Es necesario definir un pálet más
grande que el rango de movimiento del robot, considerando la posición del eje de funcionamiento. Incluso
si define los ejes adicionales que no se ven afectados por la definición del pálet, tenga cuidado con las
posiciones de los ejes adicionales cuando define el pálet.
También consulte
LJM, Pallet
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
499
Ejemplo de función Pallet
El siguiente programa traslada piezas desde el pálet 1 al pálet 2.
Function main
Integer index
Pallet 1, P1, P2, P3, 3, 5 'Define el pálet 1
Pallet 2, P12, P13, P11, 5, 3 'Define el pálet 2
For index = 1 To 15
Jump Pallet(1, index) 'Se mueve al índice de punto en pálet 1
On 1 'Sostiene la pieza de trabajo
Wait 0.5
Jump Pallet(2, index) 'Se mueve al índice de punto en pálet 2
Off 1 'Libera la pieza de trabajo
Wait 0.5
Next I
Fend
Function main
Integer i, j
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(200, 280, 150, 90, 0, 180)
P2 = XY(200, 330, 150, 90, 0, 180)
P3 = XY(-200, 280, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
P11 = P0 -TLZ(50)
For i = 1 To 10
For j = 1 To 10
'Especifica los puntos
P10 = P11 'Punto de alejamiento
P12 = Pallet(1, i, j) 'Punto objetivo
P11 = P12 -TLZ(50) 'Inicia el punto de acercamiento
'Convierte cada punto a LJM
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'Ejecuta el movimiento
Jump3 P10, P11, P12 C0
Next
Next
Fend
500
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Function main2
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(400, 0, 150, 90, 0, 180)
P2 = XY(400, 500, 150, 90, 0, 180)
P3 = XY(-400, 0, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
Motor On
Power High
Speed 50; Accel 50, 50
SpeedS 1000; AccelS 5000
Go P0
Do
' Especifica los puntos
P10 = Here -TLZ(50) 'Punto de
alejamiento
P12 = Pallet(1, Int(Rnd(9)) + 1, Int(Rnd(9)) + 1)'Punto objetivo
P11 = P12 -TLZ(50) 'Inicia el punto de
acercamiento
If TargetOK(P11) And TargetOK(P12) Then 'Control de punto
' Conversión de cada punto a LJM
P10 = LJM(P10)
P11 = LJM(P11, P10)
P12 = LJM(P12, P11)
'Ejecuta el movimiento
Jump3 P10, P11, P12 C0
EndIf
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
501
Instrucción PalletClr
Borra un pálet definido.
Sintaxis
PalletClr palletNumber
Parámetros
palletNumber Número de pálet representado por una expresión entera entre 0 y 15.
También consulte
Pallet
Ejemplo de PalletClr
PalletClr 1
Manual de referencia del lenguaje SPEL+
502
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción/Función ParseStr
Descompone una cadena y arroja una matriz de tokens.
Sintaxis
ParseStr inputString$, tokens$(), delimiters$
numTokens = ParseStr(inputString$, tokens$(), delimiters$)
Parámetros
inputString$ Expresión de cadena que se debe descomponer.
tokens$() Matriz de salida de cadenas que contienen los tokens.
La matriz declarada por ByRef no puede ser especificada.
delimiters$ Expresión de cadena que contiene uno o más delimitadores de token.
Valores devueltos
Cuando se usa como una función, se arroja la cantidad de tokens descompuestos.
También consulte
Redim, String
Ejemplo de instrucción ParseStr
String toks$(0)
Integer i
ParseStr "1 2 3 4", toks$(), " "
For i = 0 To UBound(toks)
Print "token ", i, " = ", toks$(i)
Next i
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
503
Instrucción Pass
Ejecuta un movimiento de punto a punto simultáneamente en cuatro articulaciones, que pasa cerca pero no
a través de los puntos especificados.
Sintaxis
Pass point [, {On | Off | MemOn | MemOff} bitNumber [, point ... ]] [LJM [orientationFlag]]
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
Cuando los datos de punto continúan y en el orden ascendente o descendente,
especifique dos enlaces de números de punto que se unen con dos puntos como
P(1:5).
bitNumber El bit de salida de E/S o el bit de E/S de memoria que se activará o desactivará.
Número entero entre 0 y 511 o etiqueta de salida.
LJM Opcional. Convierte el punto de alejamiento, el punto de acercamiento y el destino
objetivo con la función LJM.
orientationFlag Opcional. Especifica un parámetro que selecciona un indicador de orientación para
la función LJM.
Descripción
Pass mueve el brazo del robot cerca pero no a través de la serie de puntos especificada.
Para especificar una serie de puntos, use los puntos (P0,P1,...) con comas entre los puntos.
Para activar o desactivar bits de salida mientras ejecuta un movimiento, inserte un comando On u Off
delimitado por comas entre puntos. On u Off se ejecutan antes de que el robot alcance el punto
inmediatamente anterior a On u Off.
Si Pass es seguido inmediatamente por otro Pass, controla las pasadas al siguiente Pass sin que el robot se
detenga en el punto especificado final Pass anterior.
Si Pass es seguido inmediatamente por un comando de movimiento que no sea otro Pass, el robot se detiene
en el punto especificado final de Pass, pero no se ejecutará el posicionamiento Fine.
Si Pass es seguido inmediatamente por un comando, instrucción o función que no sea otro comando de
movimiento, el comando, instrucción o función inmediatamente posterior se ejecutará antes de que el robot
llegue al punto final del Pass anterior.
Si se desea posicionamiento Fine en la posición objetivo, siga Pass con un Go, especificando la posición
objetivo como se muestra en el siguiente ejemplo:
Pass P5; Go P5; On 1; Move P10
Entre más grandes sean los valores de aceleración/desaceleración, el brazo se moverá más cerca del punto
especificado. La instrucción Pass se puede usar de modo que el brazo del robot evite los obstáculos.
Manual de referencia del lenguaje SPEL+
504
Manual de referencia del lenguaje SPEL+ Rev.2
Con el parámetro LJM, el programa que usa la función LJM puede ser más simple.
Por ejemplo, el siguiente programa de cuatro líneas
P11 = LJM(P1, Here, 1)
P12 = LJM(P2, P11, 1)
P13 = LJM(P3, P12, 1)
Pass P11, P12, P13
puede ser… un programa de una línea.
Pass P1, P2, P3 LJM 1
El parámetro LJM está disponible para los robots de 6 ejes y de serie RS (incluida la serie N).
Cuando use orientationFlag con el valor predeterminado, se puede omitir.
Pass P1, P2, P3 LJM
También consulte
Accel, Go, Jump, Speed
Ejemplo de instrucción Pass
El ejemplo muestra la manipulación del brazo del robot con la instrucción Pass:
Function main
Jump P1
Pass P2 'Mueve el brazo hacia P2 y lleva a cabo la siguiente instrucción antes de llegar a
P2.
On 2
Pass P3
Pass P4
Off 0
Pass P5
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
505
Instrucción Pause
Detiene temporalmente la ejecución del programa de todas las tareas para las que se activa la pausa.
Sintaxis
Pausa
Descripción
Cuando se ejecuta Pause, se suspende la ejecución del programa para todas las tareas con la pausa activada
(tareas que no usan NoPause o NoEmgAbort en el comando Xqt). Además, si cualquier tarea está
ejecutando una instrucción de movimiento, se pausará incluso si la pausa no está activada para esa tarea.
Sin embargo, Pause no puede detener las tareas en segundo plano.
Nota
QP y su efecto en Pause
La instrucción QP se usa para provocar que el brazo se detenga de inmediato al ejecutar Pause o completar
el movimiento actual y luego pausar el programa. Consulte la ayuda de la instrucción QP para obtener más
información.
Ejemplo de instrucción Pause
El ejemplo a continuación muestra el uso de la instrucción Pause para detener la ejecución temporalmente.
La tarea ejecuta instrucciones de programa hasta llegar a la línea que contiene el comando Pause. En este
punto, la tarea se pausa. El usuario puede hacer clic en el botón Continue de la ventana Run para reanudar
la ejecución.
Function main
Xqt monitor
Go P1
On 1
Jump P2
Off 1
Pause 'Suspende la ejecución del programa
Go P40
Jump P50
Fend
Manual de referencia del lenguaje SPEL+
506
Manual de referencia del lenguaje SPEL+ Rev.2
Función PauseOn
Arroja el estado de pausa.
Sintaxis
PauseOn
Valores devueltos
True si el estado es Pause, False de lo contrario.
Descripción
La función PauseOn se usa solo para la tarea NoPause, NoEmgAbort (tarea especial que usa NoPause o
NoEmgAbort en Xqt) y las tareas en segundo plano.
También consulte
ErrorOn, EstopOn, SafetyOn, Wait, Xqt
Ejemplo de función PauseOn
El siguiente ejemplo muestra un programa que monitorea la pausa del controlador y activa o desactiva la
E/S cuando ocurre la pausa. Sin embargo, cuando el estado cambia de pausa por apertura de puerta de
seguridad, la E/S no se activa o desactiva.
Function main
Xqt PauseMonitor, NoPause
:
:
Fend
Function PauseMonitor
Boolean IsPause
IsPause = False
Do
Wait 0.1
If SafetyOn = On Then
If IsPause = False Then
Print "Saftey On"
IsPause = True
EndIf
ElseIf PauseOn = On Then
If IsPause = False Then
Print "InPause"
If SafetyOn = Off Then
Off 10
On 12
Else
EndIf
IsPause = True
EndIf
If IsPause = True Then
Print "OutPause"
On 10
Off 12
IsPause = False
Loop
Fend
EndIf
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
507
Función PDef
Arroja el estado de definición de un punto especificado.
Sintaxis
PDef (point)
Parámetros
point Un valor entero o Pnumber, o P(expr), o etiqueta de punto.
Precauciones de compatibilidad
No se puede especificar ninguna variable para el parámetro point
Para usar las variables, escriba PDef(P(varName)).
Valores devueltos
True si el estado el punto está definido, False de lo contrario.
También consulte
Instrucción Here, Pdel
Ejemplo de función PDef
If Not PDef(1) Then
Here P1
Endif
Integer i
For i = 0 to 10
If PDef (P(i)) Then
Print P(;i;) is defined
End If
Next
Manual de referencia del lenguaje SPEL+
508
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PDel
Elimina los datos de posición especificados.
Sintaxis
PDel firstPointNum , [ lastPointNum ]
Parámetros
firstPointNum El primer número de punto en una secuencia de puntos a eliminar. firstPointNum
debe ser un número entero.
lastPointNum El último número de punto en una secuencia de puntos a eliminar. lastPointNum
debe ser un número entero.
Descripción
Elimina datos de posición especificados desde la memoria de punto del controlador para el robot actual.
Elimina todos los datos de posición desde firstPointNum hasta e incluido lastPointNum. Para evitar que
ocurra el Error 2, firstPointNum debe ser menor que lastPointNum.
Ejemplo de instrucción PDel
> p1=10,300,-10,0/L
> p2=0,300,-40,0
> p10=-50,350,0,0
> pdel 1,2 'Elimina los puntos 1 y 2
> plist
P10 = -50.000, 350.000, 0.000, 0.000 /R /0
> pdel 50 'Elimina el punto 50
> pdel 100,200 'Elimina los puntos desde 100 a 200
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
509
Instrucción PeakSpeedClear
Borra e inicializa la velocidad máxima para una o más articulaciones.
Sintaxis
PeakSpeedClear [j1 [,j2 [, j3 [, j4 [, j5 [, j6 [, j7 [, j8 [, j9]]]]]]]]]
Parámetros
j1 – j9 Expresión entera que representa el número de articulación. Si no se suministran
parámetros, se borran los valores de velocidad máxima de todas las articulaciones.
El eje S adicional es 8 y el eje T es 9. Si se proporciona un número de articulación no
existente, ocurre un error.
Descripción
PeakSpeedClear muestra los valores de velocidad máxima para las articulaciones especificadas.
Debe ejecutar PeakSpeedClear antes de ejecutar PeakSpeed.
Este comando no admite los ejes adicionales PG.
También consulte
AvgSpeed, PeakSpeed
Ejemplo de instrucción PeakSpeedClear
<Ejemplo 1>
A continuación se encuentra el ejemplo para mostrar los valores de velocidad para articulaciones
especificadas después de borrar los valores de velocidad máxima de todas las articulaciones.
> PeakSpeedClear
> Go P1
> PeakSpeed 1
-0.273
> PeakSpeed
-0.273 -0.164
-0.080 0.258
-0.005 0.401
0.000 0.000
0.000
>
<Ejemplo 2>
A continuación se encuentra el ejemplo para mostrar los valores de velocidad máxima para articulaciones
especificadas después de borrar los valores de velocidad máxima de J1, J4 y J5 para los robots de ejes
múltiples verticales.
> PeakSpeedClear 4, 1, 5
> Go P1
> PeakSpeed 1
-0.273
> PeakSpeed 4
0.258
Manual de referencia del lenguaje SPEL+
510
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PeakSpeed
Muestra los valores de velocidad máxima para la articulación especificada.
Sintaxis
PeakSpeed [jointNumber]
Parámetros
jointNumber Opcional. Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Muestra los valores de velocidad máxima actuales para todas las articulaciones.
Descripción
La instrucción PeakSpeed muestra el valor de la velocidad absoluta máxima para la articulación con señal.
La velocidad máxima es un número real de -1 a 1, siendo 1 la máxima velocidad.
Primero ejecute PeakSpeedClear y luego ejecute PeakSpeed para mostrar el valor de velocidad máximo de
para la articulación.
Cuando use este controlador virtual o realice un simulacro, el promedio de los valores de velocidad
absoluta se calcula a partir de la velocidad ordenada en lugar de la velocidad real.
Este comando no admite los ejes adicionales PG.
También consulte
Función AvgSpeed, PeakSpeedClear, PeakSpeed
Ejemplo de instrucción PeakSpeed
> PeakSpeedClear
> Go P1
> PeakSpeed 1
-0.273
> PeakSpeed
-0.273 0.163
-0.080 0.258
-0.005 -0.401
0.000 0.000
0.000
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
511
Función PeakSpeed
Arroja la velocidad máxima para la articulación especificada.
Sintaxis
PeakSpeed (jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor real de -1 a 1.
Descripción
La función PeakSpeed arroja el valor de la velocidad absoluta máxima para la articulación con señal. La
velocidad máxima es un número real de -1 a 1, siendo 1 la máxima velocidad.
Primero ejecute la instrucción PeakSpeedClear y luego ejecute la instrucción PeakSpeed para mostrar el
valor de velocidad máximo de para la articulación.
Cuando use este controlador virtual o realice un simulacro, el promedio de los valores de velocidad
absoluta se calcula a partir de la velocidad ordenada en lugar de la velocidad real.
Este comando no admite los ejes adicionales PG.
También consulte
AvgSpeed, PeakSpeedClear, PeakSpeed
Ejemplo de función PeakSpeed
Este ejemplo usa la función PeakSpeed en un programa:
Function DisplayPeakSpeed
Integer i
PeakSpeedClear
Go P1
Print "Peak Speeds:"
For i = 1 To 6
Print "Joint ", i, " = ", PeakSpeed (i)
Next i
Fend
Manual de referencia del lenguaje SPEL+
512
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PerformMode
Define el modo del robot.
Sintaxis
(1) PerformMode [modeNumber] [, robotNumber]
(2) PerformMode
Parámetros
modeNumber Especifica el modo de operación con un valor de número entero (1 a 3) o con la
siguiente constante. Este parámetro es opcional solo cuando la instrucción se ejecuta
desde la ventana Command.
Constante Valor Descripción
MODE_STANDARD 1
Define el modo estándar
MODE_HIGH_SPEED 2
Define el modo de alta velocidad
MODE_LOW_OSCILLATION 3 Define el modo de ba
j
a oscilación
robotNumber Especifica el número de robot con un valor entero.
Si se omite, se usa el robot seleccionado actualmente.
Resultado
Cuando lo especifica la sintaxis (1), el número de modo que se especificó definirá el modo.
Cuando lo especifica la sintaxis (2), se mostrará el número de modo del robot actualmente seleccionado.
Descripción
PerformMode es una función para cambiar la preferencia de rendimiento del manipulador (modo) según
el uso deseado. Esta función admite los siguientes tres modos.
Estándar
El tiempo del ciclo, el trabajo y la oscilación en la parada de movimiento están balanceados.
Este modo está disponible para cualquier tipo de aplicación.
Alta velocidad
Este es un modo especializado para reducir el tiempo de operación de una tarea.
Aunque este modo empeora el trabajo y la oscilación en la parada de movimiento en comparación con el
modo estándar, puede reducir el tiempo de operación.
Aplicación recomendada: Transporte
Baja oscilación
Este es un modo especializado para reducir la oscilación en la parada de movimiento.
Aunque este modo aumenta el tiempo de funcionamiento si se compara con el modo estándar, puede
reducir la oscilación en la detención del movimiento.
Aplicación recomendada: Transporte y montaje de los componentes de precisión
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
513
Comparación de rendimiento
Modo
Elemento de comparación
Tiempo de
funcionamiento (*1)
Oscilación Trabajo
Estándar Normal Normal Normal
Alta velocidad
Mejorado Reducido Reducido
Baja oscilación
Reducido Mejorado Mejorado
(*1) El tiempo de desplazamiento del manipulador que se mueve desde la posición actual al punto
objetivo.
Nota
- Comandos de movimiento objetivo: Comandos de movimientos PTP (Go, BGo, TGo, Jump, JTran)
* El siguiente rendimiento del movimiento CP no se ven afectados por la instrucción Precede.
Precisión de la trayectoria
Los valores de los límites superiores de AccelS, AccelR, SpeedS, SpeedR
Frecuencia del error de configuración de aceleración y error de configuración de velocidad
Condiciones que inicializan automáticamente el modo (al modo Standard)
En la siguiente tabla aparecen las condiciones que inicializan automáticamente el modo.
Cambio del modo
Encendido del controlador Cambios al modo estándar
Reinicio del controlador
Cambios al modo estándar
Motor encendido
Cambios al modo estándar
Cambiar la potencia (Baja Alta) El modo no cambia
Compilación / Recompilación El modo no cambia
Restablecer Cambios al modo estánda
r
También consulte
Bo, Go, Jump, JTran, función PerformMode, TGo
Ejemplo de instrucción PerformMode
PerformMode MODE_STANDARD
Go P1
PerformMode 2
Go P2
Manual de referencia del lenguaje SPEL+
514
Manual de referencia del lenguaje SPEL+ Rev.2
Función PerformMode
Arroja el estado del modo de operación del robot.
Sintaxis
PerformMode ([robotNumber])
Parámetros
robotNumber Especifica el número de robot al cual se va a comprobar el estado mediante un valor
entero.
Si se omite, se usa el robot seleccionado actualmente.
Valores devueltos
Arroja el valor entero que representa el modo de operación configurado actualmente.
1 = Modo estándar
2 = Modo de velocidad alta
3 = Modo de oscilación baja
También consulte
PerformMode
Ejemplo de función PerformMode
Print PerformMode(1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
515
Instrucción PG_FastStop
Detiene los ejes PG de inmediato.
Sintaxis
PG_FastStop
Descripción
PG_FastStop detiene de inmediato el robot PG actual sin desaceleración.
Para detenerlo con normalidad, utilice la instrucción PG_SlowStop.
También consulte
PG_Scan, PG_SlowStop
Ejemplo de instrucción PG_FastStop
El siguiente programa mueve el eje PG durante 10 segundos y lo detiene.
Function main
Motor On
PG_Scan 0
Wait 10
PG_FastStop ' Detiene de inmediato el movimiento continuo
Fend
Manual de referencia del lenguaje SPEL+
516
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PG_LSpeed
Define la velocidad de pulso del tiempo cuando el eje PG comienza a acelerar y termina de desacelerar.
Sintaxis
PG_LSpeed accelSpeed As Integer, [ decelSpeed As Integer ],
Parámetros
speed Expresión entera que contiene la velocidad de pulso (1 a 32767 pulsos/segundo)
decalSpeed Expresión entera que contiene la velocidad de pulso (1 a 32767 pulsos/segundo)
Descripción
PG_LSpeed especifica la velocidad de pulso cuando el eje PG comienza a acelerar y termina de
desacelerar. Es útil al configurar la velocidad inicial/final de un motor paso a paso a la más alta dentro del
rango de la frecuencia máxima de arranque para ofrecer el mejor rendimiento del motor, o configurar la
velocidad en la más baja para evitar que el motor paso a paso se acelere. El valor predeterminado es 300
pulsos/segundos y no se debe cambiar para usarlo.
Velocidad
Inicio de la aceleración
Término de la desaceleración
Tiempo
Si se omite la velocidad final de desaceleración, se utiliza el valor definido de velocidad.
El valor PG_LSpeed se inicializa en los valores predeterminados cuando ocurre una de las siguientes
condiciones:
También consulte
Función PG_LSpeed
Ejemplo de instrucción PG_LSpeed
Se puede utilizar PG_LSpeed en la ventana Command o en el programa. En los siguientes ejemplos se
presentan ambos casos.
Function pglspeedtst
Motor On
Power High
Speed 30; Accel 30,30
PG_LSpeed 1000
Go P0
Fend
Para definir el valor PG_LSpeed en la ventana Command.
> PG_LSpeed 1000,1100
>
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
517
Función PG_LSpeed
Arroja la velocidad de pulso en el momento cuando el eje PG comienza a acelerar y termina de desacelerar.
Sintaxis
PG_LSpeed [ (paramNumber) ]
Parámetros
paramNumber Uno de los números siguientes que especifica el número del valor definido.
Si se omite, se usa 1.
1: Velocidad de pulso cuando empieza la aceleración
2: Velocidad de pulso cuando termina la desaceleración
Valores devueltos
Valor entero entre 1 y 32767 en unidades de pulsos/segundo.
También consulte
PG_LSpeed
Ejemplo de función PG_LSpeed
Integer savPGLSpeed
savPGLSpeed = PG_LSpeed(1)
Instrucción PG_Scan
Inicia el movimiento giratorio continuo de los ejes del robot PG.
Sintaxis
PG_Scan direction As Integer
Parámetros
direction Dirección de giro
0: Dirección + (CW)
1: Dirección + (CCW)
Descripción
PG_Scan inicia el movimiento giratorio continuo del robot PG actual.
Para ejecutar el movimiento giratorio continuo, se debe activar el giro continuo del parámetro PG mediante
la configuración del robot.
Cuando se completa la tarea de ejecución del programa, se detiene el giro continuo.
También consulte
PG_FastStop
Ejemplo de instrucción PG_Scan
En el siguiente ejemplo se hace girar el eje PG durante 10 segundos y se detiene repentinamente.
Manual de referencia del lenguaje SPEL+
518
Manual de referencia del lenguaje SPEL+ Rev.2
Function main
Motor On
Power High
Speed 10; Accel 10,10
PG_Scan 0
Wait 10
PG_SlowStop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
519
Instrucción PG_SlowStop
Detiene lentamente el giro continuo del eje PG.
Sintaxis
PG_SlowStop
Descripción
PG_SlowStop desacelera el movimiento giratorio continuo del robot PG actual y lo detiene.
También consulte
PG_Scan, PG_FastStop
Ejemplo de instrucción PG_SlowStop
En el siguiente ejemplo se hace girar el eje PG durante 10 segundos y se detiene repentinamente.
Function main
Motor On
PG_Scan 0
Wait 10
PG_SlowStop ' Detiene repentinamente el movimiento giratorio continuo
Fend
Manual de referencia del lenguaje SPEL+
520
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PLabel
Define una etiqueta para un punto especificado.
Sintaxis
PLabel pointNumber, newLabel
Parámetros
pointNumber Expresión entera que representa un número de punto.
newLabel Expresión de cadena que representa la etiqueta que se debe usar para el punto especificado.
También consulte
Función PDef , Función PLabel$, Función PNumber
Ejemplo de instrucción PLabel
PLabel 1, "pick"
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
521
Función PLabel$
Arroja la etiqueta de punto asociada con un número de punto.
Sintaxis
PLabel$(point)
Parámetros
point Un valor entero o Pnumber, o P(expr), o etiqueta de punto.
Precauciones de compatibilidad
No se puede especificar ninguna variable para el parámetro point
Para usar las variables, escriba PLabel$(P(varName)).
También consulte
Función PDef, Función PLabel$, Función PNumber
Ejemplo de función PLabel$
Print PLabel$(1)
Print PLabel$(P(i))
Manual de referencia del lenguaje SPEL+
522
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción Plane
Especifica y muestra el plano de control de acercamiento.
Sintaxis
(1) Plane PlaneNum, [robotNumber], pCoordinateData
(2) Plane PlaneNum, [robotNumber], pOrigin, pXaxis, pYaxis
(3) Plane PlaneNum, [robotNumber]
(4) Plane
Parámetros
PlaneNum Valor entero que representa el número de plano de 1 a 15.
robotNumber Valores enteros que representan el número de robot
Si se omiten, se usa el robot actual.
pCoordinateData Los datos de punto que representan los datos de coordenada del plano de control de
acercamiento.
pOrigin Expresión entera que representa el punto de origen con el sistema de coordenadas del
robot.
pXaxis Expresión entera que representa un punto a lo largo del eje X mediante el sistema de
coordenadas del robot, en caso de especificarse la alineación X.
pYaxis Expresión entera que representan un punto a lo largo del eje Y mediante el sistema
de coordenadas del robot, en caso de especificarse la alineación Y.
Valores devueltos
Cuando se usa la sintaxis (3), aparece la configuración del plano especificada.
Cuando se usa la sintaxis (4), aparece la configuración de todos los números del plano del robot actual.
Descripción
Se usa Plane para configurar el plano de control de acercamiento. El plano de control de acercamiento se
usa para revisar si el efector final del robot está en una de las dos áreas divididas por el plano de control de
acercamiento especificado. La posición del efector final se calcula según la herramienta actual. El plano
de control de acercamiento se define con el plano XY del sistema de coordenadas base. El plano de control
de acercamiento detecta el efector final cuando se acerca al área en el lado + Z del plano del control de
acercamiento.
Cuando se usa el plano de control de acercamiento, el sistema detecta acercamientos en cualquier estado de
potencia del motor mientras esté activado el controlador.
Los detalles de cada sintaxis son los siguientes:
(1) Especifica un sistema de coordenadas para crear el plano de control de acercamiento con los datos del
punto que representan la traslación y la rotación basados en el sistema de coordenadas base, y define el
plano de control de acercamiento.
Ejemplo:
Plane 1, XY(x, y, z, u, v, w)
Plane 1, P1
(2) Define el plano de control de acercamiento (coordenada XP) con la especificación del punto de origen,
el punto a lo largo del eje X y el punto a lo largo del eje Y. Utiliza las coordenadas X, Y, Z e ignora
las coordenadas U, V, W. Calcula el eje Z a la derecha y define la dirección del control de
acercamiento.
Ejemplo:
Plane 1, P1, P2, P3
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
523
(3) Muestra la configuración del plano de control de acercamiento.
(4) Muestra todo el plano de control de acercamiento.
Se puede usar la función GetRobotInsidePlane o la función InsidePlane para obtener el resultado del plano
de control de acercamiento. La función GetRobotInsidePlane se puede usar como la condición para un
comando Wait. Se puede ofrecer el resultado de detección para la E/S mediante la configuración de la
salida remota.
Para usar un plano con más de un robot, se deben definir los planos del sistema de coordenadas de cada
robot.
Notas
Selección de herramienta
Se ejecuta la comprobación de acercamiento para la herramienta actual. Al cambiar la herramienta, el
control de acercamiento podría mostrar el acercamiento de la herramienta desde adentro hacia afuera del
plano, o al revés, aunque el robot no esté funcionando.
Eje adicional
Para el robot que tiene los ejes ST adicionales (incluido el eje de funcionamiento), el plano de control de
acercamiento que se configurará no depende de la posición de un eje adicional, sino que se basa en el
sistema de coordenadas base del robot.
También consulte
Box, GetRobotInsidePlane, InsidePlane, PlaneClr, PlaneDef
Consejo
Configuración de la instrucción Plane desde Robot Manager
EPSON RC+ cuenta con un cuadro de diálogo para señalar y activar que permite definir el plano de control
de acercamiento. El método más simple de configurar los valores Plane es a través de la página Plane de
Robot Manager.
Ejemplo de instrucción Plane
Estos son ejemplos que sirven para configurar el plano de control de acercamiento mediante la instrucción
Plane.
Revise que la dirección sea el lado inferior del plano horizontal que está 20 mm en dirección del eje Z en el
sistema de coordenadas del robot:
> plane 1, xy(100, 200, -20, 90, 0, 180)
El plano de control de acercamiento es la coordenada XY creada al mover 50 mm en el eje X y 200 mm en
el eje Y, y girar 45 º alrededor del eje Y:
Sistema de coordenadas
del plano de control de
acercamiento
Plano de control de acercamiento
Robot 1
Robot 2
Manual de referencia del lenguaje SPEL+
524
Manual de referencia del lenguaje SPEL+ Rev.2
> plane 2, xy(50, 200, 0, 0, 45, 0)
Defina el plano de control de acercamiento con el sistema de coordenadas para herramientas del robot.
(robot de 6 ejes)
> plane 3, here
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
525
Función Plane
Arroja el plano de control de acercamiento especificado.
Sintaxis
Plane(PlaneNum, [robotNumber])
Parámetros
PlaneNum Expresión entera que representa el número de plano de 1 a 15.
robotNumber Valores enteros que representan el número de robot
Si se omiten, se usa el robot actual.
Valores devueltos
Arroja los datos de coordenadas para el plano de control de acercamiento especificado.
También consulte
GetRobotInsidePlane, InsidePlane, Plane, PlaneClr, PlaneDef
Ejemplo de función Plane
P1 = Plane(1)
Manual de referencia del lenguaje SPEL+
526
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PlaneClr
Borra (anula la definición) de una definición de Plane.
Sintaxis
PlaneClr PlaneNum, [ robotNumber ]
Parámetros
PlaneNum Expresión entera que representa el número de plano de 1 a 15.
robotNumber Valores enteros que representan el número de robot
Si se omiten, se usa el robot actual.
También consulte
GetRobotInsidePlane, InsidePlane, Plane, PlaneDef
Ejemplo de instrucción PlaneClr
PlaneClr 1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
527
Función PlaneDef
Arroja la configuración del plano de control de acercamiento.
Sintaxis
PlaneDef (PlaneNum, [robotNumber])
Parámetros
PlaneNum Expresión entera que representa el número de plano de 1 a 15.
robotNumber Valores enteros que representan el número de robot
Si se omiten, se usa el robot actual.
Valores devueltos
Es True si el plano de detección de acercamiento se define para el número de plano especificado, de lo
contrario es False.
También consulte
GetRobotInsidePlane, Box, InsidePlane, Plane, PlaneClr
Ejemplo de función PlaneDef
Function DisplayPlaneDef(planeNum As Integer)
If PlaneDef(planeNum) = False Then
Print "Plane ", planeNum, "is not defined"
Else
Print "Plane 1: ",
Print Plane(PlaneNum)
EndIf
Fend
Manual de referencia del lenguaje SPEL+
528
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PList
Muestra los datos de punto en la memoria para el robot actual.
Sintaxis
(1) PList
(2) PList pointNumber
(3) PList startPoint,
(4) PList startPoint, endpoint
Parámetros
pointNumber El rango del número está entre 0 y 999.
startPoint El número del punto de inicio. El rango del número es de 0 a 999.
endPoint El índice del punto final. El rango del número es de 0 a 999.
Valores devueltos
Datos del punto.
Descripción
PList muestra los datos del punto en la memoria para el robot actual.
Cuando no existen datos del punto dentro del rango especificado de puntos, no aparecerá ningún dato.
Cuando se especifica un número del punto de inicio mayor al número del punto final, entonces se produce
un error.
(1) PList
Muestra los datos de coordenadas para todos los puntos.
(2) PList pointNumber
Muestra los datos de coordenadas para el punto especificado.
(3) PList startPoint,
Muestra los datos de coordenadas para todos los puntos a partir de startPoint.
(4) PList startPoint, endPoint
Muestra los datos de coordenadas para todos los puntos a partir de startPoint y finaliza con endPoint.
Ejemplo de instrucción PList
El tipo de visualización depende del tipo de robot y de la existencia de ejes adicionales.
Los siguientes ejemplos son para un robot Scara sin ejes adicionales.
Muestra los datos del punto especificado:
> plist 1
P1 = XY( 200.000, 0.000, -20.000, 0.000 ) /R /0
>
Muestra los datos del punto dentro del rango 10 y 20. En este ejemplo, solo se encuentran tres puntos
dentro de este rango.
> plist 10, 20
P10 = XY( 290.000, 0.000, -20.000, 0.000 ) /R /0
P12 = XY( 300.000, 0.000, 0.000, 0.000 ) /R /0
P20 = XY( 285.000, 10.000, -30.000, 45.000 ) /R /0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
529
>
Muestra los datos del punto que inician con el número de punto 10.
> plist 10,
P10 = XY( 290.000, 0.000, -20.000, 0.000 ) /R /0
P12 = XY( 300.000, 0.000, 0.000, 0.000 ) /R /0
P20 = XY( 285.000, 10.000, -30.000, 45.000 ) /R /0
P30 = XY( 310.000, 20.000, -50.000, 90.000 ) /R /0
Manual de referencia del lenguaje SPEL+
530
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PLocal
Define el atributo local para un punto.
Sintaxis
PLocal(point) = localNumber
Parámetros
point Un valor entero o Pnumber, o P(expr), o etiqueta de punto.
Precauciones de compatibilidad
No se puede especificar ninguna variable para el parámetro point
Para usar las variables, escriba PLocal(P(varName)).
localNumber Expresión entera que representa el nuevo número local. El rango es de 0 a 15.
También consulte
Función PLocal
Ejemplo de instrucción PLocal
PLocal(pick) = 1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
531
Función PLocal
Arroja el número local para un eje especificado.
Sintaxis
PLocal(point)
Parámetros
point Un valor entero o Pnumber, o P(expr), o etiqueta de punto.
Precauciones de compatibilidad
No se puede especificar ninguna variable para el parámetro point
Para usar las variables, escriba PLocal(P(varName)).
Valores devueltos
Número local para el punto especificado.
También consulte
PLocal
Ejemplo de función PLocal
Integer localNum
localNum = PLocal(pick)
Manual de referencia del lenguaje SPEL+
532
Manual de referencia del lenguaje SPEL+ Rev.2
Función Pls
Arroja el número de pulsos del codificador actual para cada articulación en la posición actual.
Sintaxis
Pls(jointNumber)
Parámetros
jointNumber La articulación específica para la cual se debe obtener el número de pulsos del codificador
actual.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja un valor del número que representa el número de pulsos del codificador actual para la articulación
especificada por jointNumber.
Descripción
Se utiliza Pls para leer la posición del codificador actual (o el número de pulsos) de cada articulación.
Estos valores se pueden guardar y usar posteriormente con el comando Pulse.
También consulte
CX, CY, CZ, CU, CV, CW, Pulse
Ejemplo de función Pls
A continuación se muestra un ejemplo simple para obtener los valores de pulso para articulación e
imprimirlos.
Function plstest
Real t1, t2, z, u
t1 = pls(1)
t2 = pls(2)
z = pls(3)
u = pls(4)
Print "T1 joint current Pulse Value: ", t1
Print "T2 joint current Pulse Value: ", t2
Print "Z joint current Pulse Value: ", z
Print "U joint current Pulse Value: ", u
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
533
Función PNumber
Arroja el número de punto asociado con una etiqueta de punto.
Sintaxis
PNumber(pointLabel)
Parámetros
pointLabel Una etiqueta de punto en el archivo de punto o en la expresión de cadena que contiene un
punto de etiqueta.
También consulte
Función PDef, Función PLabel$
Ejemplo de función PNumber
Integer pNum
String pointName$
pNum = PNumber(pick)
pNum = PNumber("pick")
pointName$ = "place"
pNum = PNumber(pointName$)
Manual de referencia del lenguaje SPEL+
534
Manual de referencia del lenguaje SPEL+ Rev.2
Función PosFound
Arroja el estado de la operación Find.
Sintaxis
PosFound
Valores devueltos
True si se encontró la posición durante el movimiento, False si no se encontró.
También consulte
Find
Ejemplo de función PosFound
Find Sw(5) = ON
Go P10 Find
If PosFound Then
Go FindPos
Else
Print "Error: Cannot find the sensor signal."
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
535
Instrucción Power
Conmuta el modo Power (Potencia) a alta o baja y muestra el estado actual.
Sintaxis
(1) Power { High | Low } [,Forced]
(2) Power
Parámetros
High | Low La configuración puede ser High (Alta) o Low (Baja). El valor predeterminado es Low.
Forced Opcional. Normalmente se omite este parámetro.
Valores devueltos
Muestra el estado actual de Power cuando se omite el parámetro.
Descripción
Conmuta el modo Power a High o Low. También muestra el estado actual del modo.
Low - Cuando se configura la potencia en Low, se activa el modo Low Power. Esto significa que el robot
funcionará lento (debajo de 250 mm/s) y la rigidez del servo está configurada en leve, de manera
que se pueda eliminar la potencia del servo en caso de que el robot choque con algún objeto.
High - Cuando se configura la potencia en High, se desactiva el modo Low Power. Esto significa que el
robot puede funcionar a toda velocidad con toda la rigidez del servo.
Las siguientes operaciones conmutarán al modo Low Power. En este caso, las configuraciones de
velocidad y aceleración estarán limitadas al valor predeterminado. El valor predeterminado está descrito en
la tabla de especificaciones de cada manipulador. Consulte el Manual del usuario EPSON RC+: 2.
Seguridad.
Condiciones que provocan el modo Power Low:
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Configuración limitada al valor predeterminado
Speed
Accel
SpeedS
AccelS
Manual de referencia del lenguaje SPEL+
536
Manual de referencia del lenguaje SPEL+ Rev.2
Notas
Modo Low Power (potencia baja) y su efecto en la velocidad máxima:
En el modo Low Power, está limitada la potencia del motor y la configuración de la velocidad del
movimiento efectiva es menor que el valor predeterminado. Si, mientras se está en el modo Low Power, se
especifica una velocidad mayor desde la ventana Command (directamente) o en un programa, la velocidad
cambia al valor predeterminado. Si se necesita un movimiento a una velocidad mayor, configure Power
High.
Modo High Power (potencia alta) y su efecto en la velocidad máxima:
En el modo High Power, se puede configurar una velocidad mayor que el valor predeterminado.
Indicador Forced
El modo Power se puede cambiar durante la operación del robot (incluido el estado en pausa).
Si se cambia el modo al modo High Power mientras el robot se mueve en el modo Low Power, el
movimiento siguiente no se cambiará a la velocidad alta con la velocidad especificada.
Si se cambia el modo a Low Power mientras se está moviendo el robot en el modo High Power, se puede
producir un error de exceso de velocidad o un error de par de potencia baja.
Detenga el robot y especifique el indicador Forced para cambiar al modo Low Power.
También consulte
Accel, AccelS, Speed, SpeedS
Ejemplo de instrucción Power
Los siguientes ejemplos se realizaron en la ventana Command:
> Speed 50 'Especifica la velocidad alta en el modo Low Power
> Accel 100, 100 'Especifica la aceleración alta
> Jump P1 'Se mueve a velocidad baja y con aceleración baja
> Speed 'Muestra los valores de la velocidad actual
Modo Low Power
50
50 50
> Accel 'Muestra los valores de la aceleración actual
Modo Low Power
100 100
100 100
100 100
> Power High 'Configura el modo High Power
> Jump P2 'Mueve el robot a velocidad alta
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
537
Función Power
Arroja el estado de la potencia.
Sintaxis
Power [(robotNumber)]
Parámetros
robotNumber Especifica el número de robot al cual se va a comprobar el estado mediante un valor
entero.
Si se omite, se usa el robot seleccionado actualmente.
Valores devueltos
0 = Potencia baja, 1 = Potencia alta.
También consulte
Instrucción Power
Ejemplo de función Power
If Power = 0 Then
Print "Low Power Mode"
EndIf
Manual de referencia del lenguaje SPEL+
538
Manual de referencia del lenguaje SPEL+ Rev.2
Función PPls
Arroja la posición del pulso de un valor de articulación especificado desde un punto especificado.
Sintaxis
PPls (point, jointNumber)
Parámetros
point Expresión de punto.
jointNumber Expresión o valor numérico que especifica el número de la articulación (entero entre
1 y 9)
El eje S adicional está en 8 y el eje T está en 9.
Valores devueltos
Arroja la posición de la articulación calculada (valor largo, en pulsos).
También consulte
Agl, CX, CY, CZ, CU, CV, CW, Pagl
Ejemplo de función PPls
Long pulses1
pulses1 = PPls(P10, 1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
539
Instrucción Print
Genera los datos para la ventana de visualización actual, incluida la ventana Run, la ventana Operator, la
ventana Command y la ventana Macro.
Sintaxis
Print expression [ , expression... ] [ , ]
Print
Parámetros
expression Opcional. Un número o una expresión de cadena.
, (coma) Opcional. Si se proporciona una coma al final de la instrucción, entonces no se
agrega un CRLF.
Valores devueltos
Datos de la variable o la cadena de caracteres especificada.
Descripción
Print muestra los datos de la variable o la cadena de caracteres en el dispositivo de visualización.
Un CRLF (retorno de carro y avance de línea) de final de línea se añade automáticamente a cada salida a
menos que se utilice una coma al final de la instrucción.
Nota
Asegúrese de que se utilice Print con Wait o un movimiento dentro de un bucle
Los bucles ajustados (bucles que no están en Wait ni en movimiento) generalmente no son buenos, en
especial con Print.
El controlador puede quedar inmovilizado en el peor de los casos.
Asegúrese de que se utilice Print con el comando Wait o con un comando de movimiento dentro de un
bucle.
Mal ejemplo
Do
Print "1234"
Loop
Buen ejemplo
Do
Loop
Print "1234"
Wait 0.1
También consulte
Print #
Ejemplo de instrucción Print
En el siguiente ejemplo se extrae el valor de la coordenada del eje U del punto P100 y se pone el valor de
coordenada en la variable uvar. Luego se imprime el valor en la ventana de visualización actual.
Function test
Real uvar
uvar = CU(P100)
Print "The U Axis Coordinate of P100 is ", uvar
Fend
Manual de referencia del lenguaje SPEL+
540
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción Print#
Genera datos en el archivo, en el puerto de comunicación, en la base de datos o en el dispositivo
especificado.
Sintaxis
Print #portNumber, expression [ , expression... ] [ , ]
Parámetros
portNumber Número de ID que representa un archivo, un puerto de comunicación, una base de
datos o un dispositivo.
El número de archivo se puede especificar en las instrucciones ROpen, WOpen y
AOpen.
El número del puerto de comunicación se puede especificar en las instrucciones
OpenCom (RS232) y OpenNet (TCP/IP).
El número de la base de datos se puede especificar en la instrucción OpenDB.
Los números enteros de ID del dispositivo son los siguientes.
21 RC+
24 TP (solo TP1)
20 TP3
expression Una expresión numérica o de cadena.
, (coma) Opcional. Si se proporciona una coma al final de la instrucción, entonces no se
agrega un CRLF.
Descripción
Print # genera datos de la variable, valores numéricos o cadenas de caracteres en el puerto de comunicación
o en el dispositivo especificado por portNumber.
Notas
Longitud máxima de datos
Este comando puede manejar hasta 256 bytes.
Sin embargo, si el objetivo es una base de datos, puede manejar hasta 4096 bytes.
Si el objetivo es el puerto de comunicación (TCP/IP), puede manejar hasta 1024 bytes.
Intercambio de datos de las variables con otro controlador
- Cuando hay más de una variable de cadena o si se especifica tanto la variable numérica como la variable
de cadena, se debe agregar expresamente un carácter de coma (“,”) a los datos de la cadena.
Punto de envío (cualquier patrón es correcto).
Print #PortNum, "$Status,", InData, OutData
Print #PortNum, "$Status", ",",InData, OutData
Punto de destino
Input #PortNum, Response$, InData, OutData
Búfer de escritura en archivo
La escritura en archivo se almacena en el búfer. Los datos almacenados en el búfer se pueden escribir con
la instrucción Flush. También, al cerrar un archivo con la instrucción Close, los datos almacenados en el
búfer se pueden escribir.
También consulte
Input#, Print
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
541
Ejemplo de instrucción Print#
A continuación se muestran algunos ejemplos simples de Print#:
Function printex
String temp$
Print #1, "5" 'Envía el carácter "5" al puerto en serie 1 temp$ = "hello"
Print #1, temp$
Print #2, temp$
Print #1 " Next message for port 1"
Print #2 " Next message for port 2"
Fend
Manual de referencia del lenguaje SPEL+
542
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PTCLR
Borra e inicializa el par máximo para una o más articulaciones.
Sintaxis
PTCLR [j1 [,j2 [, j3 [, j4 [, j5 [, j6 [, j7 [, j8 [, j9]]]]]]]]]
Parámetros
j1 – j9 Expresión entera que representa el número de articulación. Si no se suministra ningún
parámetro, entonces se borran los valores del par máximo de todas las articulaciones.
El eje S adicional es 8 y el eje T es 9. Si se proporciona un número de articulación no
existente, ocurre un error.
Descripción
PTCLR borra los valores del par máximo de todas las articulaciones especificadas.
Debe ejecutar PTCLR antes de ejecutar PTRQ.
También consulte
ATRQ, PTRQ
Ejemplo de instrucción PTCLR
<Ejemplo 1>
El siguiente es un ejemplo que sirve para mostrar los valores de par de las articulaciones especificadas
después de borrar los valores de par máximo de todas las articulaciones.
> ptclr
> go p1
> ptrq 1
0.227
> ptrq
0.227 0.118
0.249 0.083
0.000 0.000
>
<Ejemplo 2>
El siguiente es un ejemplo que sirve para mostrar los valores de par de las articulaciones especificadas
después de borrar los valores de par máximo de J1, J4 y J5 para los robots de varios ejes verticales.
> ptclr 4, 1, 5
> go p1
> ptrq 1
0.227
> ptrq 4
0.083
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
543
Instrucción PTPBoost
Especifica o muestra el parámetro de impulso algorítmico de aceleración, desaceleración y velocidad para
el movimiento PTP (punto a punto) de poca distancia.
Sintaxis
(1) PTPBoost boost, [departBoost], [approBoost]
(2) PTPBoost
Parámetros
boost La expresión entera está entre 0 y 100.
departBoost Opcional. Valor de impulso de alejamiento de salto. La expresión entera es de 0 a 100.
approBoost Opcional. Valor de impulso de acercamiento de salto. La expresión entera es de 0 a 100.
Valores devueltos
Cuando se omiten los parámetros, se muestra la configuración PTPBoost actual.
Descripción
PTPBoost define la aceleración, la desaceleración y la velocidad para un movimiento PTP de poca
distancia. Solo es efectivo cuando la distancia de movimiento es pequeña. La función PTPBoostOK se
puede utilizar para confirmar si la distancia de movimiento específica al destino es lo suficientemente corta
para verse afectada por PTPBoost o no.
PTPBoost no necesita ninguna modificación en circunstancias normales. Utilice PTPBoost solo cuando
desee reducir el tiempo de ciclo, incluso si la vibración aumenta, o por el contrario, cuando sea necesario
reducir la vibración incluso si el tiempo de ciclo se extiende.
Cuando el valor PTPBoost es alto, el tiempo del ciclo se reduce, pero aumenta la vibración de posición.
Cuando PTPBoost es bajo, se reduce la vibración de posición, pero se extiende el tiempo del ciclo. Si se
especifica un PTPBoost incorrecto provoca errores o puede dañar el manipulador. Esto puede degradar el
robot, o bien, en algunos casos reducir la vida útil del manipulador.
El valor PTPBoost se inicializa en el valor predeterminado cuando ocurre alguna de las siguientes
situaciones:
También consulte
Función PTPBoost, PTPBoostOK
Ejemplo de instrucción PTPBoost
PTPBoost 50, 30, 30
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
544
Manual de referencia del lenguaje SPEL+ Rev.2
Función PTPBoost
Arroja el valor de PTPBoost especificado.
Sintaxis
PTPBoost(paramNumber)
Parámetros
paramNumber Expresión entera que puede tener los siguientes valores:
1: Valor de impulso
2: Valor de impulso de alejamiento de salto
3: Valor de impulso de acercamiento de salto
Valores devueltos
El valor entero es de 0 a 100.
También consulte
Instrucción PTPBoost, PTPBoostOK
Ejemplo de función PTPBoost
Print PTPBoost(1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
545
Función PTPBoostOK
Arroja si el movimiento PTP (Punto a punto) desde una posición actual a la posición objetivo es o no una
distancia de desplazamiento corta.
Sintaxis
PTPBoostOK(targetPos)
Parámetros
targetPos Expresión de punto para la posición objetivo.
Valores devueltos
True si es posible mover a la posición objetivo desde la posición actual con el movimiento PTP, de lo
contrario, es False.
Descripción
Utilice PTPBoostOK cuando la distancia desde la posición actual a la posición objetivo sea lo
suficientemente corta para que PTPBoost sea efectivo.
También consulte
PTPBoost
Ejemplo de función PTPBoostOK
If PTPBoostOK(P1) Then
PTPBoost 50
EndIf
Go P1
Manual de referencia del lenguaje SPEL+
548
Manual de referencia del lenguaje SPEL+ Rev.2
Función PTPTime
Arroja el tiempo estimado para un comando de movimiento de punto a punto sin ejecutarlo.
Sintaxis
(1) PTPTime(destination, destArm, destTool)
(2) PTPTime(start, startArm, startTool, destination, destArm, destTool)
Parámetros
start Expresión de punto para la posición inicial.
destination Expresión de punto para la posición de destino.
destArm Expresión entera para el número de brazo de destino.
destTool Expresión entera para el número de herramienta de destino.
startArm Expresión entera para el número de brazo del punto de inicio.
startTool Expresión entera para el número de herramienta del punto de inicio.
Valores devueltos
Valor real en segundos.
Descripción
Utilice PTPTime para calcular el tiempo que tardaría un comando (Go) de punto a punto. Utilice la
sintaxis 1 para calcular el tiempo desde la posición actual al destino. Utilice la sintaxis 2 para calcular el
tiempo desde un punto de inicio a un punto de destino.
No se realiza la operación de movimiento actual cuando se ejecuta esta función. No cambia la
configuración de la posición actual, el brazo y la herramienta.
Si la posición es una a la que no se puede llegar o si la configuración del brazo o de la herramienta no es
correcta, se arroja 0.
Si un robot incluye un eje adicional y este corresponde al eje servo, la función considerará el tiempo de
movimiento del eje adicional.
Si el eje adicional es un eje PG, se arrojará el tiempo de movimiento del robot.
También consulte
ATRQ, Go, PTRQ
Ejemplo de función PTPTime
Real secs
secs = PTPTime(P1, 0, 0, P2, 0, 1)
Print "Time to go from P1 to P2 is:", secs
Go P1
secs = PTPTime(P2, 0, 1)
Print "Time to go from P1 to P2 is:", secs
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
547
Instrucción PTran
Realiza el movimiento relativo de una articulación en pulsos.
Sintaxis
PTran joint, pulses
Parámetros
joint Expresión entera que representa la articulación que se moverá.
El eje S adicional es 8 y el eje T es 9.
pulses Expresión entera que representa el número de pulsos que se moverá.
Descripción
Utilice PTran para mover una articulación un número específico de pulsos desde la posición actual.
También consulte
Go, JTran, Jump, Move
Ejemplo de instrucción PTran
PTran 1, 2000
Manual de referencia del lenguaje SPEL+
548
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción PTRQ
Muestra el par máximo de la articulación especificada.
Sintaxis
PTRQ [jointNumber]
Parámetros
jointNumber Opcional. Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Muestra los valores de par máximo actual de todas las articulaciones.
Descripción
Utilice PTRQ para mostrar el valor de par máximo para una o todas las articulación desde que se ejecutó la
instrucción PTCLR.
El par máximo es un número real entre 0 y 1.
También consulte
ATRQ, PTCLR, Función PTRQ
Ejemplo de instrucción PTRQ
> ptclr
> go p1
> ptrq 1
0.227
> ptr
q
0.227 0.118
0.249 0.083
0.000 0.000
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
549
Función PTRQ
Arroja el par máximo de la articulación especificada.
Sintaxis
PTRQ(jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Valor real de 0 a 1.
También consulte
ATRQ, PTCLR, instrucción PTRQ
Ejemplo de función PTRQ
Este ejemplo utiliza la función PTRQ en un programa:
Function DisplayPeakTorque
Integer i
Print "Peak torques:"
For i = 1 To 4
Print "Joint ", i, " = ", PTRQ(i)
Next i
Fend
550
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Pulse
Mueve el brazo del robot con el movimiento de punto a punto especificado por los valores de pulsos para
cada articulación.
Sintaxis
(1) Pulse J1, J2, J3, J4 , [J5, J6] , [J7] , [J8, J9]
(2) Pulse
Parámetros
J1 ~ J4 El valor de pulso para cada una de las primeras cuatro articulaciones. El valor de
pulso debe ser definido por la instrucción Range y debe ser una expresión entera o
larga.
J5, J6 Opcional. Para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
J7 Opcional. Para los robots de 7 ejes de tipo articulado.
J8, J9 Opcional. Para los ejes adicionales.
Valores devueltos
Cuando se omiten los parámetros, aparecerá el valor de pulso de la posición actual del robot.
Descripción
Pulse utiliza el valor de pulso de la articulación de la posición de pulso cero para representar la posición del
brazo del robot, en lugar del sistema de coordenadas ortogonal. La instrucción Pulse mueve el brazo del
robot mediante el movimiento punto a punto.
La instrucción Range define los límites superior e inferior utilizados en la instrucción Pulse.
Nota
Asegúrese de que no haya obstáculos en la ruta antes de usar Pulse
A diferencia de Jump, Pulse mueve todos los ejes simultáneamente, lo que incluye levantar y bajar la
articulación Z en el desplazamiento a la posición objetivo. Por lo tanto, cuando utilice Pulse, tenga mucho
cuidado, de manera que la mano se pueda mover a través de una ruta sin obstáculos.
Posible error
El valor de pulso excede el límite:
Si el valor de pulso especificado en la instrucción Pulse excede el límite definido por la instrucción Range,
se producirá un error.
También consulte
Go, Accel, Range, Speed, Pls, función Pulse
Ejemplo de instrucción Pulse
A continuación se muestran algunos ejemplos de la ventana Command:
En este ejemplo se mueve el brazo del robot a la posición que fue definida por el pulso de cada articulación.
> pulse 16000, 10000, -100, 10
En este ejemplo se muestran los números de pulso de los ejes 1 a 4 de la posición actual del brazo del
robot.
> pulse
PULSE: 1: 27306 pls 2: 11378 pls 3: -3072 pls 4: 1297 pls
Manual de referencia del lenguaje SPEL+
>
Manual de referencia del lenguaje SPEL+ Rev.2
551
Función Pulse
Arroja el punto de robot cuyas coordenadas están especificadas en los pulsos para cada articulación.
Sintaxis
Pulse ( J1, J2, J3, J4 , [J5 , J6] , [J7] , [J8 , J9] )
Parámetros
J1 ~ J4 El valor de pulso para las articulaciones 1 a 4. El valor de pulso debe estar dentro de
rango definido por la instrucción Range y debe ser una expresión entera o larga.
J5, J6 Opcional. Para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
J7 Opcional. Para los robots de 7 ejes de tipo articulado.
J8, J9 Opcional. Para los ejes adicionales.
Valores devueltos
Un punto de robot que utiliza los valores de pulso especificados.
También consulte
Go, JA, Jump, Move, instrucción Pulse, XY
Ejemplo de función Pulse
Jump Pulse(1000, 2000, 0, 0)
552
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción QP
Activa o desactiva el modo Quick Pause (Pausa rápida) y muestra el estado del modo actual.
Sintaxis
(1) QP { On | Off }
(2) QP
Parámetros
On | Off Se puede activar o desactivar el modo Quick Pause.
Valores devueltos
Muestra el estado actual del modo QP cuando se omite el parámetro.
Descripción
Si durante la ejecución del comando de movimiento, se presiona el interruptor Pause o se ingresa la señal
de pausa al controlador, el modo Quick Pause determina si el robot se detendrá inmediatamente o hará una
pausa después de ejecutar el comando de movimiento.
Desacelerar y detenerse inmediatamente se denomina "Quick Pause" (Pausa rápida).
Con el parámetro especificado activado, QP activa el modo Quick Pause.
Con el parámetro especificado desactivado, QP desactiva el modo Quick Pause.
QP muestra la configuración actual ya sea que el brazo del robot deba responder a la entrada de la pausa
para detenerse inmediatamente o después de que haya finalizado la operación actual del brazo. QP
simplemente es una instrucción de estado que se usa para mostrar si el modo Quick Pause está activado o
desactivado.
Notas
El modo Quick Pause está predeterminado para activarse cuando se enciende el equipo:
El modo Quick Pause definido por la instrucción QP permanece activo después de la instrucción Reset. Sin
embargo, cuando se apaga la computadora o la unidad de disco y luego se vuelve a encender, de manera
predeterminada se activa el modo Quick Pause.
QP y la entrada de protección:
Incluso si el modo QP se encuentra desactivado, si se abre la entrada de protección, el robot se pausará
inmediatamente.
También consulte
Pausa
Ejemplo de instrucción QP
En el ejemplo de esta ventana de Command se muestra la configuración actual de si el brazo del robot se
detendrá inmediatamente con la entrada de Pause (Pausa). (es decir, el modo QP está activado o
desactivado)
> qp
QP ON
> qp on 'Define QP en el modo Quick Pause
Manual de referencia del lenguaje SPEL+
>
Manual de referencia del lenguaje SPEL+ Rev.2
553
Instrucción QPDecelR
Define la velocidad de desaceleración de la pausa rápida para el cambio de la orientación de la herramienta
durante el movimiento CP.
Sintaxis
(1) QPDecelR QPDecelR
(2) QPDecelR
Parámetros
QPDecelR El valor real que representa la velocidad de desaceleración de la pausa rápida
durante el movimiento CP (grado/s
2
).
Resultado
Si se omite el parámetro, aparece el valor actual definido de QPDecelR.
Descripción
La instrucción QPDecelR está activada cuando se utiliza el parámetro ROT en las instrucciones Move, Arc,
Arc3, BMove, TMove y Jump3CP.
Mientras se ejecuta la pausa rápida en estas instrucciones, puede producirse un error de aceleración de la
articulación. Esto se debe a que la velocidad de desaceleración de la pausa rápida, que se configuró
automáticamente en una pausa rápida normal, está sobre la velocidad de desaceleración permitida de la
articulación. Específicamente, es probable que se produzca el error cuando el valor AccelR en el
movimiento CP es demasiado alto o el desplazamiento del robot se acerca a una singularidad. En estos
casos, se utiliza QPDecelR y se define una menor velocidad de desaceleración de pausa rápida. Pero si la
configuración es demasiado baja, aumenta la distancia para la pausa rápida. Por lo tanto, configure el valor
posible. Normalmente no es necesario configurar QPDecelR.
No se pueden utilizar valores inferiores a los de la velocidad de desaceleración del cambio de orientación
en el movimiento CP definido con QPDecelR y AccelR. Si lo hace, se genera un error de parámetro fuera
de rango. Además, después de definir QPDecelR, si se define un valor superior a la velocidad de
desaceleración de QP definida con AccelR, QPDecelR definirá automáticamente la velocidad de
desaceleración QP a la misma velocidad de desaceleración definida con AccelR.
El valor de la instrucción QPDecelR se inicializa con la velocidad de desaceleración máxima
predeterminada cuando ocurre alguna de las siguientes condiciones:
También consulte
Función QPDecelR, QPDecelS, AccelR
Ejemplo de instrucción QPDecelR
El siguiente programa define QPDecelR de la instrucción Move.
Function QPDecelTest
AccelR 3000
QPDecelR 4000
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
554
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
SpeedR 100
Move P1 ROT
.
.
.
Fend
Manual de referencia del lenguaje SPEL+
>
Manual de referencia del lenguaje SPEL+ Rev.2
555
Función QPDecelR
Arroja la velocidad de desaceleración definida de la pausa rápida para el cambio de la orientación de la
herramienta durante el movimiento CP.
Sintaxis
QPDecelR
Valores devueltos
El valor real que contiene la velocidad de desaceleración de pausa rápida para el cambio de orientación de
la herramienta en el movimiento CP (grado/s
2
).
También consulte
QPDecelR, función QPDecelS
Ejemplo de función QPDecelR
Real savQPDecelR
savQPDecelR = QPDecelR
Manual de referencia del lenguaje SPEL+
556
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción QPDecelS
Define la velocidad de desaceleración de la pausa rápida en el movimiento CP.
Sintaxis
(1) QPDecelS QPDecelS [, departDecel, approDecel ]
(2) QPDecelS
Parámetros
QPDecelS Valor real que especifica la velocidad de desaceleración de la pausa rápida en el
movimiento CP. (mm/s
2
)
departDecel Valor real que especifica la velocidad de desaceleración de la pausa rápida en el
movimiento de alejamiento Jump3 (mm/s
2
)
approDecel
Valor real que especifica la velocidad de desaceleración de la pausa rápida en el movimiento de
acercamiento Jump3 (mm/s2
)
Valores devueltos
Si se omite el parámetro, aparece el valor actual definido de QPDecelS.
Descripción
Mientras se ejecuta la pausa rápida en el movimiento CP, puede producirse un error de aceleración de la
articulación. Esto se debe a que la velocidad de desaceleración de la pausa rápida, que se configuró
automáticamente en una pausa rápida normal, está sobre la velocidad de desaceleración permitida de la
articulación. Específicamente, es probable que se produzca el error cuando el valor AccelS en el
movimiento CP es demasiado alto o el desplazamiento del robot se acerca a una singularidad. En estos
casos, se utiliza QPDecelS y se define una menor velocidad de desaceleración de pausa rápida. Pero si la
configuración es demasiado baja, aumenta la distancia para la pausa rápida. Por lo tanto, configure el valor
posible. Normalmente no es necesario configurar QPDecelS.
No se pueden utilizar valores inferiores a los de la velocidad de desaceleración del movimiento CP definido
con AccelR. Si lo hace, se genera un error de parámetro fuera de rango.
Además, después de definir QPDecelS, si se define un valor superior a la velocidad de desaceleración de
QP definida con AccelS, QPDecelS definirá automáticamente la velocidad de desaceleración QP a la
misma velocidad de desaceleración definida con AccelS.
El valor de la instrucción QPDecelS se inicializa con la velocidad de desaceleración máxima
predeterminada cuando ocurre alguna de las siguientes condiciones:
También consulte
Función QPDecelS, QPDecelR, AccelS
Ejemplo de instrucción QPDecelS
El siguiente programa define QPDecelS de la instrucción Move.
Function QPDecelTest
AccelS 3000
QPDecelS 4000
SpeedS 100
Move P1
.
.
.
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
>
Manual de referencia del lenguaje SPEL+ Rev.2
557
Función QPDecelS
Arroja la velocidad de desaceleración de la pausa rápida definida en el movimiento CP.
Sintaxis
QPDecelS ( paramNumber )
Parámetros
paramNumber Expresión entera que especifica uno de los siguientes valores:
1: Velocidad de desaceleración de pausa rápida durante el movimiento CP
2: Velocidad de desaceleración de pausa rápida en el movimiento de alejamiento
durante Jump3 y Jump3CP
3: Velocidad de desaceleración de pausa rápida en el movimiento de acercamiento
durante Jump3 y Jump3CP
Valores devueltos
Valor real que representa la velocidad de desaceleración de pausa rápida (mm/s
2
).
También consulte
QPDecelS, función QPDecelR
Ejemplo de función QPDecelS
Real savQPDecelS
savQPDecelS = QPDecelS(1)
Manual de referencia del lenguaje SPEL+
558
Manual de referencia del lenguaje SPEL+ Rev.2
Instrucción Quit
Finaliza la ejecución de una tarea específica o todas las tareas.
Sintaxis
Quit { taskIdentifier | All }
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
Un nombre de la tarea corresponde a un nombre de la función usada en una
instrucción Xqt o una función iniciada desde la ventana Run o la ventana Operator.
El rango del número de la tarea es:
Tareas normales: 1 a 32
Tarea en segundo plano: 65 a 80
Tareas de captura: 257 a 267
All Especifica este parámetro si se deben terminar todas las tareas excepto la tarea en
segundo plano.
Descripción
Quit detiene las tareas que se están ejecutando actualmente, o que se han suspendido temporalmente con
Halt.
Quit también detiene la tarea cuando la tarea específica está en la tarea NoPause, la tarea NoEmgAbort
(tarea especial que usa NoPause o NoEmgAbort en Xqt) o las tareas en segundo plano.
Quit All detiene todas las tareas, incluidas las tareas sobre otras que están en segundo plano.
Quit All define el parámetro de control del robot de la manera siguiente:
Parámetro de control del robot
Speed, SpeedR, SpeedS actuales del robot (iniciados en valores predeterminados)
QPDecelR , QPDecelS actuales del robot (iniciados en valores predeterminados)
Parámetro LimZ actual del robot (iniciado en 0)
Parámetro CP actual del robot (iniciado en Off)
Parámetro SoftCP actual del robot (iniciado en Off)
Fine actual del robot (iniciado en valores predeterminados)
Power Low actual del robot (modo de baja potencia configurado en On)
PTPBoost actual del robot (iniciado en valores predeterminados)
TCLim, TCSpeed actuales del robot (iniciados en valores predeterminados)
PgLSpeed actual del robot (iniciado en valores predeterminados)
También consulte
Exit, Halt, Resume, Xqt
Ejemplo de instrucción Quit
En este ejemplo se muestran dos tareas que son finalizadas después de 10 segundos.
Function main
Xqt winc1 'Inicia la función winc1
Xqt winc2 'Inicia la función winc2
Wait 10
Quit winc1 'Finaliza la tarea winc1
Quit winc2 'Finaliza la tarea winc2
Manual de referencia del lenguaje SPEL+
>
Manual de referencia del lenguaje SPEL+ Rev.2
559
Function winc1
Do
On 1; Wait 0.2
Off 1; Wait 0.2
Loop
Fend
Function winc2
Do
On 2; Wait 0.5
Off 2; Wait 0.5
Loop
Fend
560
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RadToDeg
Convierte los radianes a grados.
Sintaxis
RadToDeg(radians)
Parámetros
radians Expresión real que representa los radianes que se convertirán a grados.
Valores devueltos
Un valor doble que contiene la cantidad de grados.
También consulte
ATan, ATan2, función DegToRad
Ejemplo de función RadToDeg
s = Cos(RadToDeg(x))
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
561
Instrucción Randomize
Inicializa el generador de números aleatorios.
Sintaxis
(1) Randomize seedValue
(2) Randomize
Parámetros
seedValue Especifica un valor real (0 o más) para que sea la bases para recupera un número aleatorio.
También consulte
Función Rnd
Ejemplo de instrucción Randomize
Function main
Real r
Randomize
Integer randNum
randNum = Int(Rnd(10)) + 1
Print "Random number is:", randNum
Fend
562
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción de rango
Especifica y muestra los límites de movimiento para cada una de las articulaciones del servo.
Sintaxis
(1) Range j1Min, j1Max, j2Min, j2Max, j3Min, j3Max, j4Min, j4Max,
j5Min, j5Max, j6Min, j6Max,
j7Min, j7Max,
j8Min, j8Max, j9Min, j9Max
(2) Range
Parámetros
j1Min El límite inferior para la articulación 1 especificada en pulsos.
j1Max El límite superior para la articulación 1 especificada en pulsos.
j2Min El límite inferior para la articulación 2 especificada en pulsos.
j2Max El límite superior para la articulación 2 especificada en pulsos.
j3Min El límite inferior para la articulación 3 especificada en pulsos.
j3Max El límite superior para la articulación 3 especificada en pulsos.
j4Min El límite inferior para la articulación 4 especificada en pulsos.
j4Max El límite superior para la articulación 4 especificada en pulsos.
j5Min Opcional para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
El límite inferior para la articulación 5 especificado en pulsos.
j5Max Opcional para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
El límite superior para la articulación 5 especificado en pulsos.
j6Min Opcional para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
El límite inferior para la articulación 6 especificado en pulsos.
j6Max Opcional para los robots de 6 ejes (incluida la serie N) y los robots de 6 ejes de tipo
articulado.
El límite superior para la articulación 6 especificado en pulsos.
j7Min Opcional para los robots de 7 ejes de tipo articulado. El límite inferior para la
articulación 7 especificado en pulsos.
j7Max Opcional para los robots de 7 ejes de tipo articulado. El límite superior para la
articulación 7 especificado en pulsos.
j8Min Opcional para el eje S adicional. El límite inferior para la articulación 8 especificado
en pulsos.
j8Max Opcional para el eje S adicional. El límite superior para la articulación 8
especificado en pulsos.
j9Min Opcional para el eje T adicional. El límite inferior para la articulación 9 especificado
en pulsos.
j9Max Opcional para el eje T adicional. El límite superior para la articulación 9
especificado en pulsos.
Valores devueltos
Muestra los valores de Range actuales cuando se escribe el rango sin parámetros
Descripción
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
563
Range especifica los límites inferior y superior de cada articulación del motor en cantidad de pulsos. Estos
límites de articulación están especificados en unidades de pulso. Esto permite que el usuario defina un
rango de movimiento máximo y mínimo de la articulación para cada una de las articulaciones individuales.
Los límites de las coordenadas XY también se pueden definir con la instrucción XYLim.
Los valores iniciales de Range son distintos para cada robot. Los valores especificados por la instrucción
siguen vigentes incluso después de que se apaga el equipo.
Cuando se omiten los parámetros, aparecen los parámetros actuales de Range.
564
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Posibles errores
Intento de salir de un rango aceptable
Si el brazo del robot intenta moverse a través de uno de los límites de la articulación, se producirá un error.
El eje no se mueve
Si el pulso del límite inferior es igual o mayor que el pulso del límite superior, la articulación no se mueve.
También consulte
JRange, SysConfig, XYLim
Ejemplo de instrucción Range
En este ejemplo simple de la ventana Command se muestran las configuraciones de rango actuales y luego
se cambian.
> range
-18205, 182045, -82489, 82489, -36864, 0, -46695, 46695
>
> range 0, 32000, 0, 32224, -10000, 0, -40000, 40000
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
565
Instrucción Read
Lee los caracteres desde un archivo o un puerto de comunicación.
Sintaxis
Read #portNumber, stringVar$, count
Parámetros
portNumber mero de ID que representa un archivo o puerto de comunicación desde donde
realizar la lectura.
El número de archivo se puede especificar en las instrucciones ROpen, WOpen y
AOpen.
El número de puerto de comunicación se puede especificar en las instrucciones
OpenCom (RS-232C) u OpenNet (TCP/IP).
stringVar$ Nombre de una variable de cadena que recibirá la cadena de caracteres.
count Número máximo de bytes para lectura.
También consulte
ChkCom, ChkNet, OpenCom, OpenNet, Write
Ejemplo de instrucción Read
Integer numOfChars
String data$
numOfChars = ChkCom(1)
If numOfChars > 0 Then
Read #1, data$, numOfChars
EndIf
566
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ReadBin
Lee datos binarios desde un archivo o un puerto de comunicación.
Sintaxis
ReadBin #portNumber, var
ReadBin #portNumber, array(), count
Parámetros
portNumber Número de ID que representa un archivo o puerto de comunicación desde donde
realizar la lectura.
El número del archivo se puede especificar en la instrucción BOpen.
El número de puerto de comunicación se puede especificar en las instrucciones
OpenCom (RS-232C) u OpenNet (TCP/IP).
var Nombre de un byte, entero o variable larga que recibirá los datos.
array() Nombre de un byte, entero o variable de matriz larga que recibirá los datos.
Especifica la variable de matriz de una dimensión.
count Especifica el número de bytes para lectura.
El recuento especificado tiene que ser menor o igual que el número de elemento de la
matriz, y también menor que 256 bytes.
Si el puerto de comunicación (TCP/IP) es el asunto, el recuento tiene que ser menor
o igual que el número de matriz, y también menor que 1024 bytes.
También consulte
Write, WriteBin
Ejemplo de instrucción ReadBin
Integer data
Integer dataArray(10)
numOfChars = ChkCom(1)
If numOfChars > 0 Then
ReadBin #1, data
EndIf
NumOfChars = ChkCom(1)
If numOfChars > 10 Then
ReadBin #1, dataArray(), 10
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
567
Instrucción Real
Declara variables del tipo Real (número real de 4 bytes).
Sintaxis
Real varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar como tipo real.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Real se usa para declarar variables como de tipo real. Las variables locales se deben declarar al inicio de
una función. Las variables globales y de módulo se deben declarar fuera de las funciones.
El número de dígitos válidos es seis para el tipo real.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Short, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Real
En el siguiente ejemplo se muestra un programa simple que declara algunas variables que utilizan Real.
Function realtest
Real var1
Real A(10) 'Matriz de una dimensión de Real
Real B(10, 10) 'Matriz de dos dimensiones de Real
Real C(5, 5, 5) 'Matriz de tres dimensiones de Real
Real arrayVar(10)
Integer i
Print "Please enter a Real Number:"
Input var1
Print "The Real variable var1 = ", var1
For i = 1 To 5
Print "Please enter a Real Number:"
Input arrayVar(i)
Print "Value Entered was ", arrayVar(i)
Next i
Fend
568
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RealAccel
Arroja el valor Accel (Aceleración) ajustado por OLAccel.
Sintaxis
RealAccel(paramNumber)
Parámetros
paramNumber Expresión entera que puede tener los siguientes valores:
1: valor de especificación de aceleración
2: valor de especificación de desaceleración
3: valor de especificación de aceleración de alejamiento para Jump
4: valor de especificación de desaceleración de alejamiento para Jump
5: valor de especificación de aceleración de acercamiento para Jump
6: valor de especificación de desaceleración de acercamiento para Jump
Valores devueltos
Número entero 1 % o mayor
Uso
Con RealAccel, se puede alcanzar la velocidad máxima de aceleración con la que el robot puede operar de
manera continua.
Los pasos son los siguientes:
(1) Operar el robot con el comando OLAccel activado.
(2) Ejecutar el comando OLRate y revisar si aumenta la relación de sobrecarga.
(3) Si aumenta la relación de sobrecarga, empieza el ajuste automático cuando la relación de sobrecarga
excede 0,5.
(4) Después de que haya transcurrido cierto período de tiempo, ejecute el comando OLRate y revise que
no aumente la relación de sobrecarga.
(5) Después de revisar que no haya aumentado la relación de sobrecarga, ejecute la función RealAccel.
(6) El valor devuelto por la función RealAccel es la velocidad de aceleración máxima a la que el robot
puede operar de manera continua en el paso (1).
*Si se ejecuta la función RealAccel mientras la relación de sobrecarga está aumentado, no se puede
alcanzar la velocidad de aceleración máxima del movimiento continuo.
*Si se produce un error de sobrecalentamiento, no se puede alcanzar la velocidad de aceleración máxima
del movimiento continuo mediante el procedimiento anterior.
También consulte
Accel, OLAccel, OLRate
Ejemplo de función RealAccel
A continuación se encuentra el ejemplo de la función RealAccel utilizada en el programa.
Integer RealAccel1, RealDecel1
Accel 100, 100
OLAccel on
'Alcanza la velocidad de aceleración actual.
RealAccel1 = RealAccel (1)
RealDecel1 = RealAccel (2)
Muestra la velocidad de aceleración actual.
Print RealAccel1
Muestra la velocidad de desaceleración actual.
Print RealDecel1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
569
Función RealPls
Arroja el valor de pulso de la articulación especificada.
Sintaxis
RealPls(jointNumber)
Parámetros
jointNumber La articulación específica para la cual se debe obtener el número de pulsos actual.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja un valor entero que representa el número de pulsos del codificador actual para la articulación
especificada por jointNumber.
Descripción
Se utiliza RealPls para leer la posición del codificador actual (o el número de pulsos) de cada articulación.
Estos valores se pueden guardar y usar posteriormente con el comando Pulse.
También consulte
CX, CY, CZ, CU, CV, CW, Pulse
Ejemplo de función RealPls
Function DisplayPulses
Long joint1Pulses
joint1Pulses = RealPls(1)
Print "Joint 1 Current Pulse Value: ", joint1Pulses
Fend
570
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RealPos
Arroja la posición actual del robot especificado.
Sintaxis
RealPos
Valores devueltos
Un punto de robot que representa la posición actual del robot especificado.
Descripción
Se utiliza RealPos para leer la posición actual del robot.
También consulte
CurPos, CX, CY, CZ, CU, CV, CW, RealPls
Ejemplo de función RealPos
Function ShowRealPos
Print RealPos
Fend
P1 = RealPos
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
571
Función RealTorque
Arroja el valor de la instrucción de par actual de la articulación especificada.
Sintaxis
RealTorque(jointNumber)
Parámetros
jointNumber Especifica el número de articulación que debe alcanzar el valor de la instrucción de par
mediante una expresión o valor numérico.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja el valor real (-1 a 1) que representa la proporción en el par máximo en el modo Power actual.
El valor positivo implica la dirección positiva del ángulo de la articulación y el valor negativo implica la
dirección negativa.
También consulte
TC, TCSpeed, TCLim
Ejemplo de función RealTorque
Print "Current Z axis torque instruction value (SCARA):",
RealTorque(3)
572
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Recover
Ejecuta la recuperación de la posición de protección y regresa el estado.
Esto es para el usuario experimentado y es necesario comprender la especificación del comando antes de
usarlo.
Sintaxis
(1) Recover robotNumber | All
(2) Recover robotNumber | All , WithMove | WithoutMove
Parámetros
robotNumber Número de robot para el cual desea ejecutar la recuperación.
Si se omite, se ejecuta la recuperación de todos los robots.
All Todos los robots ejecutan la recuperación
Si se omite, es igual que All.
WithMove Constante cuyo valor es 0.
Activa el motor y ejecuta la recuperación de posición de la protección.
Si se omite, es igual que WithMove.
WithoutMove Constante cuyo valor es 1.
Activa el motor del robot. No se usa normalmente.
Lleva a cabo la recuperación especial con AbortMotion.
Valores devueltos
Valor booleano. Es True si se completa la recuperación, False si no se completa.
Descripción
Para ejecutar la instrucción Recover desde un programa, se debe configurar la casilla de verificación
[Enable advanced task commands] (Activar comandos de tareas avanzadas) en la página [Setup] menu-
[System Configuration]-[Controller]-[Preferences] (Configuración - menú - Configuración del sistema -
Controlador - Preferencias ) de EPSON RC+.
Se puede usar la recuperación después de cerrar la protección para activar los motores del robot y mover el
robot de vuelta a la posición en la que estaba cuando se abrió la protección con el movimiento PTP de baja
potencia. Después de completar correctamente la recuperación, puede ejecutar el método Cont para seguir
el ciclo.
Cuando se usa más de un robot en el controlador y se especifica All, se recuperan todos los robots.
También consulte
AbortMotion, Cont, Función Recover, RecoverPos
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
573
Ejemplo de instrucción Recover
PRECAUCI
ÓN
Cuando se ejecuta el comando Recover desde un programa, debe comprender la
especificación del comando y confirmar que el sistema tiene las condiciones
adecuadas para este comando. El uso incorrecto, como la ejecución continua de
un comando dentro de un bucle, puede deteriorar la seguridad del sistema.
Function main
Xqt 2, monitor, NoPause
Do
Fend
Loop
Jump P1
Jump P2
Function monitor
Do
Fend
Loop
If Sw(SGOpenSwitch) = On then
Wait Sw(SGOpenSwitch) = Off and Sw(RecoverSwitch) = On
Recover All
EndIf
574
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Recover
Ejecuta la recuperación de la posición de protección y regresa el estado.
Esto es para el usuario experimentado y es necesario comprender la especificación del comando antes de
usarlo.
Sintaxis
(1) Recover
(2) Recover ( robotNumber | All )
(3) Recover ( robotNumber | All , WithMove | WithoutMove )
Parámetros
robotNumber Número de robot para el cual desea ejecutar la recuperación.
Si se omite, se ejecuta la recuperación de todos los robots.
All Todos los robots ejecutan la recuperación
Si se omite, es igual que All.
WithMove Constante cuyo valor es 0.
Activa el motor y ejecuta la recuperación de posición de la protección.
Si se omite, es igual que WithMove.
WithoutMove Constante cuyo valor es 1.
Activa el motor del robot. No se usa normalmente.
Lleva a cabo la recuperación especial con AbortMotion.
Valores devueltos
Valor booleano. Es True si se completa la recuperación, False si no se completa.
Descripción
Para ejecutar la instrucción Recover desde un programa, se debe configurar la casilla de verificación
[Enable advanced task commands] (Habilitar comandos de tareas avanzadas) en la página [Setup menu] -
[System Configuration]-[Controller]-[Preferences] (Menú de configuración - Configuración del sistema -
Controlador - Preferencias) de EPSON RC+.
Se puede usar la recuperación después de cerrar la protección para activar los motores del robot y mover el
robot de vuelta a la posición en la que estaba cuando se abrió la protección con el movimiento PTP de baja
potencia. Después de completar correctamente la recuperación, puede ejecutar el método Cont para seguir
el ciclo.
Cuando se usa más de un robot en el controlador y se especifica All, se recuperan todos los robots.
PRECAUCI
ÓN
Cuando se ejecuta el comando Recover desde un programa, debe comprender la
especificación del comando y confirmar que el sistema tiene las condiciones
adecuadas para este comando. El uso incorrecto, como la ejecución continua de
un comando dentro de un bucle, puede deteriorar la seguridad del sistema.
También consulte
AbortMotion, Cont, Instrucción Recover, RecoverPos
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
575
Ejemplo de función Recover
Boolean sts
Integer answer
sts = Recover
If sts = True Then
MsgBox "Ready to continue", MB_ICONQUESTION + MB_YESNO,
"MyProject", answer
If answer = IDYES Then
Cont
EndIf
EndIf
576
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RecoverPos
Arroja la posición en la que estaba el robot cuando se abrió la protección.
Esto es para el usuario experimentado y se debe entender la especificación del comando antes de usarlo.
Sintaxis
RecoverPos ( [ robotNumber ] )
Parámetros
robotNumber Valor entero que especifica el número de un robot
Si se omite, se utiliza el robot actual.
Valores devueltos
Arroja la posición en la que estaba el robot especificado cuando se abrió la protección.
En el caso en que no se haya abierto la protección o que el robot haya finalizado la recuperación, las
coordenadas de los datos de punto devueltos son 0.
Descripción
Esta función arroja la posición de recuperación del robot cuando se utilizan los comandos Cont o Recover.
También consulte
AbortMotion, Cont, Recover, Función Recover, RealPos
Ejemplo de función RecoverPos
Si la distancia en línea recta de recuperación es menor que 10 mm, ejecuta la recuperación. Si es más de
10 mm, finaliza el programa.
If Dist(RecoverPos, RealPos) < 10 Then
Recover All
Else
Quit All
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
577
Instrucción Redim
Cambia las dimensiones de una matriz en el tiempo de ejecución.
Sintaxis
Redim [Preserve] arrayName (subscripts)
Parámetros
Preserve Opcional. Especifica que se debe conservar los contenidos anteriores de la matriz.
Si se omite, se borrará la matriz.
arrayName Nombre de la variable de matriz; sigue las convenciones de nomenclatura de
variables estándar. Ya se debe haber declarado la matriz.
subscripts Opcional. Se pueden declarar dimensiones nuevas de una variable de matriz. Se
debe entregar el mismo número de dimensiones que el de la variable al momento de
declararla. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Otras que no
son de cadena
Cadena
Variable local 2.000 200
Variable global conservada 4.000 400
Variable global y variable de módulo 100.000 10.000
Descripción
Utilice Redim para cambiar las dimensiones de una matriz al momento de la ejecución. Utilice Preserve
para conservar los valores anteriores.
La variable de matriz declarada por Byref no puede utilizar Redim.
Frequent Redim disminuirá la velocidad de ejecución del programa. En especial, recomendamos usar el
mínimo de Redim para las variables globales conservadas.
También consulte
UBound
578
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Redim
Integer i, numParts, a(0)
Print "Enter number of parts "
Input numParts
Redim a(numParts)
For i=0 to UBound(a)
a(i) = i
Next
Cambia la dimensión de la matriz con 20 elementos más
Redim Preserve a(numParts + 20)
' Se conservan los valores del primer elemento
For i = 0 to UBound(a)
Print a(i)
Next
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
579
Instrucción Rename
Cambia el nombre de un archivo.
Sintaxis
Rename oldFileName, newFileName
Parámetros
oldFileName Expresión de cadena que contiene la ruta y el nombre del archivo al que se le
cambiará el nombre.
Consulte ChDisk para conocer detalles.
newFileName El nuevo nombre que se le pondrá al archivo especificado con oldFileName.
Consulte ChDisk para conocer detalles.
Descripción
Cambia el nombre del archivo especificado oldFileName a newFileName.
Si se omite la ruta, Rename busca el oldFileName en el directorio actual.
Rename solo se activa cuando se especifican el oldFileName y el newFileName en la misma unidad de
disco.
No se puede cambiar el nombre de un archivo a un nombre de archivo que ya existe en la misma ruta.
No están permitidos los caracteres comodines en el oldFileName ni en el newFileName.
También consulte
Copiar
Ejemplo de instrucción Rename
Ejemplo desde la ventana Command:
> Rename A.PRG B.PRG
580
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción RenDir
Cambia el nombre de un directorio.
Sintaxis
Rendir oldDirName As String, newDirName As String
Parámetros
oldDirName Expresión de cadena que contiene la ruta y el nombre del directorio al que se le
cambiará el nombre.
newDirName Expresión de cadena que especifica la ruta y el nombre nuevo que se le pondrá al
directorio especificado por oldDir.
Consulte ChDisk para conocer los detalles de la ruta.
Descripción
La misma ruta utilizada para oldDirName se debe incluir para el newDirName.
Si se omiten ambas rutas de los parámetros anteriores y solo se especifica el nombre del directorio, se
especifica el directorio actual.
No están permitidos los caracteres comodines en el oldDirName ni en el newDirName.
Nota
Esta instrucción solo se puede ejecutar con el disco de la computadora.
También consulte
MkDir
Ejemplo de instrucción RenDir
RenDir "c:\mydata", "c:\mydata1"
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
581
Instrucción Reset
Restablece el controlador a un estado inicializado.
Sintaxis
(1) Reset
(2) Reset Error
Descripción
Reset restablece los elementos que se muestran a continuación.
Reset Error termina todas las tareas que no están en segundo plano y restablece el estado del error y los
parámetros de control del robot.
Para ejecutar la instrucción Reset Error desde los programas, se debe configurar la preferencia [Enable
advanced task commands] (Habilitar comandos de tareas avanzadas) en la página [Setup] -[System
Configuration]-[Controller]-[Preferences] (Configuración - Configuración del sistema - Controlador -
Preferencias) de EPSON RC+.
Estado de parada de emergencia (restablecer solo con Reset)
Estado de error
Bits de salida (restablecer solo con Reset)
Todos los bits de salida generan que se configure en desactivado excepto la E/S para remota.
El usuario puede configurar Option Switch para desactivar la característica.
Parámetro de control del robot
Speed, SpeedR, SpeedS actuales del robot (iniciados en valores predeterminados)
QPDecelR , QPDecelS actuales del robot (iniciados en valores predeterminados)
Parámetro LimZ actual del robot (iniciado en 0)
Parámetro CP actual del robot (iniciado en Off)
Parámetro SoftCP actual del robot (iniciado en Off)
Fine actual del robot (iniciado en valores predeterminados)
Power Low actual del robot (modo de baja potencia configurado en On)
PTPBoost actual del robot (iniciado en valores predeterminados)
TCLim, TCSpeed actuales del robot (iniciados en valores predeterminados)
PgLSpeed actual del robot (iniciado en valores predeterminados)
Para los errores relacionados con el servo, el estado Emergency Stop (Parada de emergencia), y cualquier
otra condición que requiera ser restablecida, no se aceptará ningún otro comando que no sea Reset. En este
caso, primero ejecute Reset, luego ejecute los demás procesamientos según sea necesario.
Por ejemplo, después de una parada de emergencia, primero verifique las condiciones de operación segura,
ejecute Reset y luego ejecute Motor On.
El estado Critical error (Error crítico) no será cancelado por Reset.
Cuando se produzca un error crítico, apague el controlador y solucione la causa del error.
La instrucción Reset no se puede ejecutar desde una tarea en segundo plano o las tareas que se hayan
iniciado con Trap Emergency o Trap Error. El estado de la parada de emergencia no se puede restablecer
desde los programas.
Nota
Preferencia de salidas de Reset
(página [Setup]-[System Configuration]-[Preferences]) Si está activada la preferencia del controlador
"Reset turns off outputs" (Reset desactiva las salidas), entonces cuando se emita la instrucción Reset, se
desactivarán todas las salidas. Es importante recordar esto cuando se conecta el sistema, de manera que la
desactivación de las salidas no provoque que las herramientas se caigan o situaciones similares.
También consulte
Accel, AccelS, Fine, LimZ, Motor, Off, On, PTPBoost, SFree, SLock, Speed, SpeedS
582
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Reset
Ejemplo desde la ventana Command.
>reset
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
583
Instrucción ResetElapsedTime
Restablece el temporizador de medición de tiempo takt utilizado en la función ElapsedTime.
Sintaxis
ResetElapsedTime
Descripción
Restablece e inicia un temporizador de medición de tiempo takt.
También consulte
Función ElapsedTime
Ejemplo de instrucción ResetElapsedTime
ResetElapsedTime 'Restablece el temporizador de medición de tiempo takt
For i = 1 To 10 'Se ejecuta 10 veces
GoSub Cycle
Next
Print ElapsedTime / 10 'Mide un tiempo takt y lo muestra
584
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Restart
Reinicia el grupo de programa principal actual.
Este comando es para usuarios experimentados y se debe comprender la especificación del comando antes
de usarla.
Sintaxis
Restart
Descripción
Restart detiene todas las tareas y vuelve a ejecutar el último grupo de programas principales que se estaba
ejecutando. Las tareas en segundo plano seguirán funcionando.
Toda la configuración de Trap (Captura) se restablece y aunque Restart detenga las tareas, no ejecuta Trap
Abort (Cancelar captura).
Restart restablece el estado Pause.
Si se ejecuta Restart durante un estado de error, se debe restablecer el error antes con un método como la
instrucción Reset Error (Establecer el error).
No se puede usar Restart durante el estado Emergency Stop, puesto que provoca un error. El estado de la
parada de emergencia no se puede restablecer desde los programas.
PRECAUCI
ÓN
Cuando ejecuta el comando Restart desde un programa, se debe entender la
especificación del comando y confirmar que el sistema tiene las condiciones
adecuadas para este comando. El uso incorrecto, como la ejecución continua de
un comando dentro de un bucle, puede deteriorar la seguridad del sistema.
También consulte
Quit, Reset, Trap, Xqt
Ejemplo de instrucción Restart
Function main
Trap Error Xqt eTrap
Motor On
Call PickPlac
Fend
Function eTrap
Wait Sw(ERresetSwitch)
Reset Error
Wait Sw(RestartSwitch)
Restart
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
585
Instrucción Resume
Continúa una tarea que fue suspendida por la instrucción Halt.
Sintaxis
Resume { taskIdentifier | All }
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
Un nombre de la tarea corresponde a un nombre de la función usada en una
instrucción Xqt o una función iniciada desde la ventana Run o la ventana Operator.
El rango del número de la tarea es:
Tareas normales: 1 a 32
Tarea en segundo plano: 65 a 80
Tareas de captura: 257 a 267
All Especifica todas las tareas que se reanudarán.
Descripción
Resume continúa la ejecución de las tareas suspendidas por la instrucción Halt.
También consulte
Halt, Quit, Xqt
Ejemplo de instrucción Resume
Aquí se muestra el uso de la instrucción Resume después de la instrucción Halt.
Function main
Xqt 2, flicker 'Ejecuta Flicker como tarea 2
Do
Wait 3 'Permite que Flicker se ejecute durante 3 segundos
Halt flicker 'Detiene la tarea Flicker
Wait 3
Resume flicker 'Reanuda la tarea Flicker
Loop
Fend
Function flicker
Do
On 1
Wait 0.2
Off 1
Wait 0.2
Loop
Fend
586
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Return
La instrucción Return se usa con la instrucción GoSub. GoSub transfiere el control del programa a una
subrutina. Una vez que se completa la subrutina, Return provoca que continúe la ejecución del programa en
línea con la siguiente instrucción GoSub, que inició la subrutina.
Sintaxis
Return
Descripción
La instrucción Return se usa con la instrucción GoSub. El propósito primario de la instrucción Return es
devolver el control del programa a la instrucción posterior a la instrucción GoSub que inició la subrutina en
primer lugar.
La instrucción GoSub provoca que el control del programa se bifurque al número de línea de instrucción o
etiqueta especificados por el usuario. El programa luego ejecuta la instrucción en esa línea y continúa la
ejecución por los números subsiguientes de la línea hasta que se encuentre la instrucción Return. Luego, la
instrucción Return causa que el control del programa se transfiera de vuelta a la línea inmediatamente
posterior a la línea con la que se inició GoSub en primer lugar. (es decir, la instrucción GoSub provoca la
ejecución de una subrutina y luego la ejecución se devuelve a la instrucción que sigue a la instrucción
GoSub).
Posible error
Se encontró Return sin GoSub
Se usa una instrucción Return para "volver" desde una subrutina al programa original que emitió la
instrucción GoSub. Si se encuentra la instrucción Return sin que se haya emitido una GoSub antes,
entonces se producirá un error. Una instrucción Return por sí sola no significa nada, ya que el sistema no
sabe adonde volver.
También consulte
OnErr, GoSub, GoTo
Ejemplo de instrucción Return
En el siguiente ejemplo se muestra una función simple que utiliza una instrucción GoSub para bifurcar a
una etiqueta llamada checkio y revisar las primeras 16 entradas del usuario. Entonces la subrutina se
devuelve al programa principal.
Function main
Integer var1, var2
GoSub checkio
On 1
On 2
Exit Function
checkio: 'La subrutina comienza aquí
var1 = In(0)
var2 = In(1)
If var1 <> 0 Or var2 <> 0 Then
Print "Message to Operator here"
EndIf
finished:
Return 'La subrutina termina aquí y vuelve a la línea 40
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
587
Función Right$
Arroja una subcadena de los caracteres de la derecha de una cadena.
Sintaxis
Right$(string, count)
Parámetros
string Variable de cadena o cadena de caracteres de hasta 255 caracteres desde donde se
copian los caracteres de la derecha.
count La cantidad de caracteres que se copiarán de string, comenzando por el carácter del
extremo izquierdo.
Valores devueltos
Arroja una cadena de los caracteres count del extremo derecho de la cadena de caracteres especificada por
el usuario.
Descripción
Right$ arroja los caracteres count del extremo derecho de una cadena especificada por el usuario. Right$
puede arrojar hasta la cantidad total de caracteres que haya en la cadena de caracteres.
También consulte
Asc, Chr$, InStr, Left$, Len, Mid$, Space$, Str$, Val
Ejemplo de función Right$
El ejemplo que aparece a continuación muestra un programa que toma la cadena de datos de una pieza
como su entrada y divide el número, el nombre y el recuento de la pieza.
Function SplitPartData(DataIn$ As String, ByRef PartNum$ As String,
ByRef PartName$ As String, ByRef PartCount As Integer)
PartNum$ = Left$(DataIn$, 10)
DataIn$ = Right$(datain$, Len(DataIn$) - pos)
pos = Instr(DataIn$, ",")
PartName$ = Mid$(DataIn$, 11, 10)
PartCount = Val(Right$(dataIn$, 5))
Fend
Otro ejemplo surge de la instrucción Right$ desde la ventana Command.
> Print Right$("ABCDEFG", 2)
FG
> Print Right$("ABC", 3)
ABC
588
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción RmDir
Elimina un subdirectorio vacío de la unidad de disco de un controlador.
Sintaxis
Rmdir dirName
Parámetros
dirName Expresión de cadena para la ruta y el nombre del directorio que se eliminará.
Si el nombre de directorio se especifica sin una ruta, entonces se especifica el subdirectorio
en el directorio actual.
Consulte ChDisk para conocer los detalles de la ruta.
Descripción
Elimina el subdirectorio especificado. Antes de ejecutar Rmdir, se deben borrar todos los archivos del
subdirectorio.
El directorio actual o el directorio principal no se pueden eliminar.
Cuando se utiliza en la ventana Command, se pueden omitir las comillas.
Nota
- Esta instrucción solo se puede ejecutar con el disco de la computadora.
Ejemplo de instrucción Rmdir
Ejemplo desde la ventana Command:
> RmDir \mydata
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
589
Función Rnd
Arroja un número aleatorio.
Sintaxis
Rnd(maxValue)
Parámetros
maxValue Expresión real que representa el valor máximo devuelto.
Valores devueltos
Número real aleatorio de 0 a range.
Descripción
Utilice Rnd para generar valores de números aleatorios.
También consulte
Int, Randomize
Ejemplo de función Rnd
En este ejemplo de Rnd se genera un número aleatorio entre 1 y 10.
Function main
Real r
Integer randNum
Randomize
randNum = Int(Rnd(9)) + 1
Print "Random number is:", randNum
Fend
590
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Robot
Selecciona el robot actual.
Sintaxis
Robot number
Parámetros
number mero del robot deseado. Los rangos de valor desde 1 al número de robots instalados.
Descripción
Robot permite que el usuario seleccione el robot predeterminado para las instrucciones de movimiento.
En un sistema con un robot, no es necesario utilizar la instrucción Robot.
También consulte
Accel, AccelS, Arm, ArmSet, Go, Hofs, Home, HOrdr, Local, Move, Pulse, Función Robot,
Speed, SpeedS
Ejemplo de instrucción Robot
Function main
Integer I
For I = 1 to 100
Robot 1
Go P(i)
Robot 2
Go P(i)
Next I
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
591
Función Robot
Arroja el número de robot actual.
Sintaxis
Robot
Valores devueltos
Entero que contiene el número de robot actual.
También consulte
Instrucción Robot
Ejemplo de función Robot
Print "The current robot is: ", Robot
592
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RobotInfo
Arroja la información de estado para el robot.
Sintaxis
RobotInfo(index)
Parámetros
index Expresión entera que representa el índice de la información que desea recuperar.
Valores devueltos
La información especificada es arrojada como un entero.
Descripción
La información para cada bit del valor devuelto aparece en la siguiente tabla:
Índice
analítico
Bit Valor Descripción
0
0 &H1 Sin definir
1 &H2 Se ha producido un error restaurable.
2 &H4 Se ha producido un error no restaurable.
3 &H8 Los motores están encendidos
4 &H10 La potencia actual es alta
5 &H20 Sin definir
6 &H40 Sin definir
7 &H80 Sin definir
8 &H100 El robot está detenido
9 &H200
El robot no está detenido (está ejecutando un movimiento o en pausa
rápida)
10 &H400 El robot está parado por una pausa o protección
11
Sin definir
12
Sin definir
13
Sin definir
14 &H4000
Se cumplió la condición TILL con el comando de movimiento que le
p
recede
15 &H8000 Se cumplió la condición SENSE con el comando de movimiento
anterior
16-31
Sin definir
1
0 &H1 El robot está siguiendo (seguimiento de transportador)
1 &H2
El robot está esperando el movimiento de recuperación (estado
WaitRecover)
2 &H4 El robot está siendo recuperado
3-31
Sin defini
r
2
0 &H1 El robot está en la posición de reposo
1-31
Sin definir
3
0 &H1 El servo de la articulación 1 está activado
1 &H2 El servo de la articulación 2 está activado
2 &H4 El servo de la articulación 3 está activado
3 &H8 El servo de la articulación 4 está activado
4 &H10 El servo de la articulación 5 está activado
5 &H20 El servo de la articulación 6 está activado
6 &H40 El servo de la articulación 7 está activado
7 &H80 El servoeje S está activado
8 &H100 El servoeje T está activado
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
593
Índice
analítico
Bit Valor Descripción
9-31
Sin definir
4
No
dispon
ible
0 - 32
1
Número de tareas ejecutando los comandos del robot
0 = comando que se ejecuta desde la ventana Command o macro
1 = ninguna tarea está usando el manipulador
5
0 &H1 El freno de la articulación 1 está activado
1 &H2 El freno de la articulación 2 está activado
2 &H4 El freno de la articulación 3 está activado
3 &H8 El freno de la articulación 4 está activado
4 &H10 El freno de la articulación 5 está activado
5 &H20 El freno de la articulación 6 está activado
6 &H40 El freno de la articulación 7 está activado
7 &H80 El freno del e
j
e S está activado
8 &H100 El freno del eje T está activado
9-31
Sin definir
También consulte
CtrlInfo, RobotInfo$, TaskInfo
Ejemplo de función RobotInfo
If (RobotInfo(3) And &H1) = &H1 Then
Print "Joint 1 is locked"
Else
Print "Joint 1 is free"
EndIf
594
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RobotInfo$
Arroja la información de texto para el robot.
Sintaxis
RobotInfo$(index)
Parámetros
index Expresión entera que representa el índice de la información que desea recuperar.
Valores devueltos
Cadena que incluye la información especificada.
Descripción
Índice
analítico
Descripción
0 Nombre del robot
1 Nombre del modelo
2 Nombre del archivo de
punto predeterminado
3 Sin defini
r
4 Número de serie del
robot
También consulte
CtrlInfo, RobotInfo, TaskInfo
Ejemplo de función RobotInfo$
Print "Robot Name: ", RobotInfo$(0)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
595
Función RobotModel$
Arroja el nombre del modelo del robot.
Sintaxis
RobotModel$
Valores devueltos
Una cadena que contiene el nombre del modelo. Este es el nombre que aparece en el panel trasero del
robot.
También consulte
RobotType
Ejemplo de función RobotModel$
Print "The robot model is ", RobotModel$
596
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RobotName$
Arroja el nombre del robot.
Sintaxis
RobotName$
Valores devueltos
Una cadena que contiene el nombre del robot.
También consulte
RobotInfo, RobotModel$
Ejemplo de función RobotName$
Print "The robot name is ", RobotName$
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
597
Función RobotSerial$
Arroja el número de serie del robot.
Sintaxis
RobotSerial$
Valores devueltos
Una cadena que contiene el número de serie del robot.
También consulte
RobotInfo, RobotName$, RobotModel$
Ejemplo de función RobotSerial$
Print "The robot serial number is ", RobotSerial$
598
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RobotType
Arroja el tipo de robot.
Sintaxis
RobotType
Valores devueltos
1: Articulado
2: Cartesiano
3: SCARA
5: 6 ejes
6: Serie RS
7: Serie N
También consulte
RobotModel$
Ejemplo de función RobotType
If RobotType = 3 Then
Print "Robot type is SCARA"
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
599
Instrucción ROpen
Abre un archivo para lectura.
Sintaxis
ROpen fileName As #fileNumber
.
.
Close #fileNumber
Parámetros
fileName Una expresión de cadena que contiene el nombre de archivo que se leerá desde la
ruta incluida.
Si solo se especifica el nombre del archivo, se especifica el archivo en el directorio
actual.
Consulte ChDisk para conocer detalles.
fileNumber Expresión entera de 30 a 63
Descripción
Abre el fileName especificado para lectura y lo identifica por el fileNumber especificado. Esta instrucción
se utiliza para abrir y leer los datos del archivo especificado.
Notas
Solo el disco de la computadora
Hay una ruta de red disponible.
El fileNumber identifica el archivo siempre y cuando esté abierto y no se puede usar para los otros archivos
hasta que se cierre el mismo número de archivo.
El fileNumber se utiliza para los comandos de operación del archivo (Input#, Read, Seek, Eof, Close)
La instrucción Close cierra el archivo y libera el número de archivo.
Recomendamos que use la función FreeFile para obtener el número de archivo para que el mismo número
no sea utilizado por más de una tarea.
También consulte
Close, Input #, AOpen, BOpen, UOpen, WOpen, FreeFile
Ejemplo de instrucción ROpen
Integer fileNum, i, j
fileNum = FreeFile
WOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Close #fileNum
fileNum = FreeFile
ROpen "TEST.DAT" As #fileNum
For i = 0 to 100
Input #fileNum, j
Print "data = ", j
Next i
Close #fileNum
600
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RSet$
Arroja la cadena especificada con los espacios al principio agregados hasta la longitud especificada.
Sintaxis
RSet$ (string, length)
Parámetros
string Expresión de cadena.
length Expresión entera para la longitud total de la cadena devuelta.
Valores devueltos
Cadena especificada con espacios agregados al principio.
También consulte
LSet$, Space$
Ejemplo de función RSet$
temp$ = "123"
temp$ = RSet$(temp$, 10) ' temp$ = " 123"
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
601
Función RShift
Desplaza los datos numéricos a la derecha mediante un número de bits especificados por el usuario.
Sintaxis
RShift(number, shiftBits)
Parámetros
number Expresión numérica que se desplazará.
shiftBits El número de bits (entero de 0 a 31) que se desplazará number a la derecha.
Valores devueltos
Arroja un resultado numérico igual al valor de number después de desplazar el número de bits shiftbits a la
derecha.
Descripción
RShift desplaza los datos numéricos especificados (number) a la derecha (hacia un dígito de orden inferior)
según el número especificado de bits (shiftBits). Los bits de orden superior desplazados se reemplazan por
un 0.
La explicación más simple para RShift es que simplemente arroja el resultado de number / 2shiftBits.
(Number se divide por 2 veces shiftBit).
Nota
Tipo de datos numéricos:
Los datos numéricos (number) pueden ser cualquier tipo de dato numérico válido. RShift admite los tipos
de datos: Byte, doble, Int32, entero, largo, real, corto, UByte, UInt32 y UShort.
También consulte
And, LShift, LShift64, Not, Or, RShift64, Xor
Ejemplo de función RShift
En el ejemplo siguiente se muestra un programa que presenta todos los valores posibles de RShift para un
tipo de datos enteros que empiezan con el entero definido en “0”.
Function rshiftst
Integer num, snum, i
num = 32767
For i = 1 to 16
Print "i =", i
snum = RShift(num, 1)
Print "RShift(32767, ", i, ") = ", snum
Next i
Fend
Otro ejemplo surge de la instrucción RShift desde la ventana Command.
> Print RShift(10,1)
5
> Print RShift(8,3)
1
> Print RShift(16,2)
4
602
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función RShift64
Desplaza los datos numéricos a la derecha mediante un número de bits especificados por el usuario.
Sintaxis
RShift64(number, shiftBits)
Parámetros
number Expresión numérica que se desplazará.
shiftBits El número de bits (entero de 0 a 63) que se desplazará number a la derecha.
Valores devueltos
Arroja un resultado numérico igual al valor de number después de desplazar el número de bits shiftbits a la
derecha.
Descripción
RShift64 cambia los datos numéricos especificados (number) a la derecha (hacia un dígito de orden
inferior) según el número especificado de bits (shiftBits). Los bits de orden superior desplazados se
reemplazan por un 0.
La explicación más simple para RShift64 es que simplemente arroja el resultado de number / 2shiftBits.
(Number se divide por 2 veces shiftBit).
Nota
Tipo de datos numéricos:
Los datos numéricos (number) pueden ser cualquier tipo de dato numérico válido. RShift64 admite los
tipos de datos Int64 y UInt64.
También consulte
And, LShift, LShift64, Not, Or, RShift, Xor
Ejemplo de función RShift64
En el ejemplo siguiente se muestra un programa que presenta todos los valores posibles de RShift64 para
un tipo de datos enteros que empiezan con el entero definido en “0”.
Function rshif64tst
UInt64 num, snum, i
num = 18446744073709551615
For i = 1 to 63
Print "i =", i
snum = RShift64(num, i)
Print "RShift64(18446744073709551615, ", i, ") = ", snum
Next i
Fend
Otro ejemplo surge de la instrucción RShift64 desde la ventana Command.
> Print RShift64(10,1)
5
> Print RShift64(8,3)
1
> Print RShift64(16,2)
4
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
603
Función RTrim$
Arroja una cadena igual a la cadena especificada sin espacios finales.
Sintaxis
RTrim$(string)
Parámetros
string Expresión de cadena.
Valores devueltos
Cadena especificada sin espacios finales.
También consulte
LTrim$, Trim$
Ejemplo de función RTrim$
str$ = " data "
str$ = RTrim$(str$) ' str$ = "..data"
604
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción RunDialog
Ejecuta un diálogo EPSON RC+ desde un programa SPEL
+
.
Sintaxis
(1) RunDialog dialogID
(2) RunDialog DLG_ROBOTMNG, [robotAllowed]
Parámetros
dialogID Expresión entera que contiene una ID de diálogo válido. Estos valores son
constantes predefinidas como se muestra a continuación.
DLG_ROBOTMNG 100 Ejecuta el Robot Manager
DLG_IOMON 102 Ejecuta el monitor de E/S
DLG_VGUIDE 110 Ejecuta el diálogo de Vision Guide
robotAllowed Este parámetro solo está disponible cuando se especifica DLG_ROBOTMNG como
dialog ID.
Especifica un robot que está disponible en el Robot Manager en valor de bit.
Ejemplo
Valor
definido
bit15 bit14 ... bit2 bit1 bit0
Robot 1 &H0001 Off Off
Off Off On
Robot 2 &H0002 Off Off
Off On Off
Robot 1 y 2 &H0003 Off Off
Off On On
:
Robot 16 &H1000 On Off
Off Off Off
Descripción
Utiliza RunDialog para ejecutar diálogos EPSON RC+ desde una tarea SPEL
+
. Se suspenderá la tarea
hasta que el operador cierre el diálogo.
Mientras se ejecutan los diálogos para los comandos del robot, se debe asegurar de que no haya otras tareas
controlando el robot al mismo tiempo que aparece el diálogo, de lo contrario, se producirá un error.
También consulte
InputBox, MsgBox
Ejemplo de instrucción RunDialog
If Motor = Off Then
RunDialog DLG_ROBOTMNG
If Motor = Off Then
Print "Motors are off, aborting program"
Quit All
EndIf
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
605
Función SafetyOn
Arroja el estado de apertura de la puerta de seguridad.
Sintaxis
SafetyOn
Valores devueltos
True si la puerta de seguridad está abierta, de lo contrario, False.
Descripción
La función SafetyOn solo se utiliza para la tarea NoPause, la tarea NoEmgAbort (tarea especial que utiliza
NoPause o NoEmgAbort en Xqt) y las tareas en segundo plano.
También consulte
ErrorOn, EstopOn, PauseOn, Wait, Xqt
Ejemplo de función SafetyOn
En el siguiente ejemplo se muestra un programa que monitorea la apertura de la puerta de seguridad y
activa o desactiva la E/S cuando se produce la apertura de la puerta de seguridad.
Nota
Indicador Forced
Este ejemplo de programa usa el indicador Forced para el comando On/Off.
Al diseñar el sistema, asegúrese de que las salidas E/S cambien durante el error o una parada de emergencia
o apertura de la puerta de seguridad.
Function main
Xqt SafetyOnOffMonitor, NoPause
:
:
Fend
Function SafetyOnOffMonitor
Do
Loop
Fend
Wait SafetyOn = On
Print "Saftey Open"
Off 10, Forced
On 12, Forced
Wait SafetyOn = Off
Print "Saftey Close"
On 10, Forced
Off 12, Forced
606
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SavePoints
Guarda los datos de punto de la memoria principal en un archivo de disco para el robot actual.
Sintaxis
SavePoints filename
Parámetros
fileName Expresión de cadena que contiene el archivo en los que se guardan los puntos. La
extensión debe ser ".pts".
No puede especificar una ruta de archivo y fileName no tiene efecto de ChDisk.
Consulte ChDisk para conocer detalles.
Descripción
SavePoints guarda los puntos para el robot actual en el archivo especificado del directorio del proyecto
actual. Siempre se debe especificar la extensión “.pts”.
El comando SavePoints siempre agregará el archivo de punto al proyecto para el robot actual, si aún no
existe.
Los datos de punto se guardan en la tarjeta Compact Flash dentro del controlador. Por lo tanto, SavePoints
empieza a escribir en Compact Flash. La escritura frecuente en la memoria Compact Flash reducirá la vida
útil de la memoria Compact Flash. Recomendamos usar SavePoints solo para guardar los datos de punto.
Posibles errores
Sin espacio de disco
Si no hay espacio restante, se producirá un error.
Archivo de punto para otro robot.
Si fileName es un archivo de punto de otro robot, se genera un error.
No se puede especificar una ruta
Si fileName contiene una ruta, ocurrirá un error. Solo se puede especificar un nombre de archivo en el
proyecto actual.
Nombre de archivo incorrecto
Si se escribe un nombre de archivo que tiene espacios en el nombre u otras características de nombre de
archivo incorrectas, se producirá un error.
También consulte
ImportPoints, LoadPoints
Ejemplo de instrucción SavePoints
ClearPoints
For i = 1 To 10
P(i) = XY(i, 100, 0, 0)
Next i
SavePoints "TEST.PTS"
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
607
Instrucción Seek
Cambia la posición del puntero del archivo para un archivo especificado.
Sintaxis
Seek #fileNumber, pointer
Parámetros
fileNumber Expresión entera de 30 a 63
pointer Expresión entera para la posición que se desea buscar, empezando desde 0 hasta la
longitud del archivo.
También consulte
BOpen, Read, ROpen, UOpen, Write, WOpen
Ejemplo de instrucción Seek
Integer fileNum
String data$
fileNumber = FreeFile
UOpen "TEST.DAT" As #fileNum
Seek #fileNum, 20
Read #fileNum, data$, 2
Close #fileNum
608
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Select...Send
Ejecuta uno de varios grupos de instrucciones, según el valor de una expresión.
Sintaxis
Select selectExpr
Case caseExpr
statements
[Case caseExpr
statements ]
[Default
statements ]
Send
Parámetros
selectExpr Cualquier expresión numérica o de cadena.
caseExpr Cualquier expresión numérica o de cadena que da el mismo tipo de resultado que
selectExpr.
statements Una o más instrucciones SPEL
+
válidas o varias instrucciones.
Descripción
Si alguna de las caseExpr es equivalente a selectExpr, entonces se ejecutan las instrucciones posteriores a
la instrucción Case. Después de la ejecución, el control del programa se traspasa a la instrucción que sigue
a la instrucción Send.
Si ninguna caseExpr es equivalente a selectExpr, se ejecutan las instrucciones predeterminadas y el control
del programa se traspasa a la instrucción que sigue a la instrucción Send.
Si caseExpr es equivalente a selectExpr y se omite Default, nada se ejecuta y el control del programa se
transfiere a la instrucción inmediatamente posterior a la instrucción Send.
selectExpr y caseExpr pueden incluir constantes, variables y operadores lógicos que usan And, Or y Xor.
También consulte
If...Then...Else
Ejemplo de instrucción Select…Send
A continuación se muestra un ejemplo simple para Select...Send:
Function Main
Integer I
For i = 0 To 10
Select I
Case 0
Off 1;On 2;Jump P1
Case 3
On 1;Off 2
Jump P2;Move P3;On 3
Case 7
On 4
Default
On 7
Send
Next
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
609
Instrucción SelectDB
Busca los datos en la tabla en una base de datos abierta.
Sintaxis
SelectDB (#fileNumber, TableName, SelectCondition, SortMethod)
Parámetros
#fileNumber Valor entero de 501 a 508 que representa el número de la base de datos especificado
con la instrucción OpenDB
TableName El nombre de la tabla en la que desea buscar
Si el tipo especificado de base de datos con #fileNumber es un libro de Excel,
especifique una hoja de cálculo de Excel o nombre de tabla
Cuando especifique una hoja de Excel, agregue $ al final del nombre de la hoja y
encierre el nombre con [ ].
Cuando especifique un área con un nombre en una hoja de cálculo de Excel, encierre
el nombre con [ ].
SelectCondition Condiciones de la búsqueda.
AND, OR están disponibles para especificar las múltiples condiciones.
Si se omiten, se realiza la búsqueda en todos los datos de la tabla.
SortMethod Orden para mostrar los datos buscados
Especifique el orden y el criterio de ordenación (orden ascendente [ASC] / orden
descendente [DESC]).
Si se omite el criterio de ordenación, se especifica el orden ascendente.
Si se omite SortMethod, el orden se decide según la base de datos abierta.
Valores devueltos
Arroja los números totales de líneas.
Descripción
Ordena los datos que cumplen con SelectCondition en la tabla especificada de la base de datos abierta
según las condiciones de ordenación.
Debe ejecutar SelectDB antes de leer/escribir datos con las instrucciones Input# y Print#.
Si la base de datos abierta es un libro de Excel, escriba un nombre de fila para realizar la búsqueda en la
primera línea de la hoja de cálculo y el área definida con el nombre.
Para un libro de Excel 2007, se debe especificar el nombre de la hoja de cálculo. No puede acceder al área
definida con el nombre.
Nota
- Se requiere la conexión de una computadora con RC+ instalado.
También consulte
OpenDB,CloseDB, UpdateDB,DeleteDB, Input #, Print #
610
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de SelectDB
El siguiente ejemplo usa la base de datos de muestra de SQL server 2000, Northwind.
Se hace una búsqueda en la tabla Employees (Empleados) con la condición TitleOfCourtesy = Ms. Y con
EmployeeID en orden descendente.
Integer count, i, eid
String Lastname$, Firstname$, Title$
OpenDB #501, SQL, "(LOCAL)", "Northwind"
count = SelectDB(#501, "Employees", "TitleOfCourtesy = 'Ms.'",
"EmployeeID DESC")
For i = 0 To count - 1
Input #501, eid, Lastname$, Firstname$, Title$
Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
Next
CloseDB #501
Uso de la base de datos de Access
El siguiente ejemplo usa la base de datos de muestra de Microsoft Access 2007, “Students” (Estudiantes) y
carga los datos cuya ID es más que 10 de la tabla “Students” en el orden descendente de ID.
Integer count, i, eid
String Lastname$, Firstname$, dummy$
OpenDB #502, Access, "c:\MyDataBase\Students.accdb"
count = SelectDB(#502, "Students", "ID > 10'", "ID")
For i = 0 To count - 1
Input #502, eid, dummy$, Lastname$, Firstname$
Print eid, ",", Lastname$, ",", Firstname$
Next
CloseDB #502
Uso del libro de Excel
El siguiente ejemplo usa el libro de Microsoft Excel “Students“ y carga los datos en la hoja de cálculo
“Student” de aquellos estudiantes cuya edad es menor que 25 con la ID en orden ascendente.
Integer count, i, eid
String Lastname$, Firstname$
OpenDB #503, Excel, "c:\MyDataBase\Students.xls"
count = SelectDB(#503, "[Students$]", "Age < 25", "ID ASC")
For i = 0 To count - 1
Input #503, eid, Lastname$, Firstname$
Print eid, ",", Lastname$, ",", Firstname$
Next
CloseDB #503
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
611
Instrucción Sense
Especifica y muestra la condición de entrada que, si se cumple, completa la instrucción Jump en progreso
deteniendo el robot sobre la posición objetivo.
Sintaxis
Sense [ condition ]
Parámetros
condition Estado de entrada especificado como disparador
[Event] operador comparativo ( =, <>, >=, >, <, <=) [Expresión entera]
Se pueden usar las siguientes funciones y variables en Event:
Funciones: Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW, Ctr
GetRobotInsideBox, GetRobotInsidePlane, AIO_In, AIO_InW,
AIO_Out, AIO_OutW
Variables : Byte, Int32, Integer, Long, Short, UByte, UInt32, UShort global
preserve variable, Global variable, module variable
También, puede especificar múltiples condiciones de suceso si usa los siguientes
operadores.
Operador: And, Or, Xor
Ejemplo : Sense Sw(5) = On
Sense Sw(5) = On And Sw(6) = Off
Descripción
Sense se usa para detener el movimiento de acercamiento durante las instrucciones Jump, Jump3 y
Jump3CP. La condición Sense debe incluir como mínimo una de las funciones anteriores.
Cuando las variables están incluidas en la condición Sense, sus valores se calculan cuando se configura la
condición Sense. Se recomienda no usar variables. De lo contrario, la condición puede ser una condición
no intencional. Se permiten múltiples instrucciones Sense. La condición Sense más reciente se mantiene
vigente hasta que es substituida con otra instrucción Sense.
Jump, Jump3, Jump3CP con modificador Sense
Comprueba si se cumple la condición Sense actual. Si se cumple, se completa la instrucción Jump con el
robot detenido sobre la posición objetivo. (Es decir, cuando la condición Sense es True, el brazo del robot
se mantiene justo sobre la posición objetivo sin ejecutar el movimiento de acercamiento). Cuando la
condición Sense es False, el brazo del robot completa todo el movimiento de la instrucción Jump hasta la
posición objetivo.
Cuando los parámetros se omiten, se muestra la definición actual de Sense.
612
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Notas
Configuración de Sense al encenderse la alimentación principal
En el momento del encendido, la condición inicial de Sense es:
Sense Sw(0) = On 'El robot no ejecuta el movimiento descendente cuando el bit 0 de entrada está
activado.
Uso de JS y Stat para verificar Sense
Use JS o Stat para verificar si se cumplió la condición Sense después de ejecutar un comando de
movimiento mediante un modificador Sense.
Para usar las variables en la expresión de condición de suceso
- Las variables disponibles son del tipo de número entero (Byte, Int32, Integer, Long, Short, UByte, UInt32,
UShort)
- Las variables de matriz no están disponibles
- Las variables locales no están disponibles
- Si el valor de una variable no puede cumplir la condición del suceso por más de 0,01 segundos, el sistema
no puede recuperar el cambio en las variables.
- Hasta 64 pueden esperar a las variables en un sistema (incluidas las que se usan en las expresiones de la
condición del suceso, como Wait). Si es superior a 64, ocurre un error durante la compilación del
proyecto.
- Si trata de trasladar una variable que espera variables como referencia con Byref, ocurrirá un error.
- Cuando se incluye una variable en el miembro del lado derecho de la expresión de la condición del
suceso, el valor se calcula cuando se inicia el comando de movimiento. Recomendamos no usar
variables en una expresión entera para evitar crear condiciones no intencionales.
También consulte
In, JS, Jump, Jump3, Jump3CP, MemIn, MemSw, Stat, Sw
Ejemplo de Sense
Este es un ejemplo simple sobre el uso de la instrucción Sense.
Function test
.
.
TrySense:
Sense Sw(1) = Off 'Especifica que el brazo se detiene sobre el objetivo cuando
'el bit 1 de entrada está desactivado.
Jump P1 C2 Sense
If JS = True Then
GoSub ERRPRC 'Si el brazo se mantiene estático
GoTo TrySense 'sobre el punto especificado,
'luego ejecute ERRPRC y vaya a TrySense.
.
.
Fend
EndIf
On 1; Wait 0.2; Off 1
<Otros ejemplos de sintaxis>
> Sense Sw(1)=1 And MemSw(1)=1
> Sense Sw(0) Or (Sw(1) And MemSw(1))
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
613
Instrucción SetCom
Define o muestra los parámetros para el puerto RS-232C.
Sintaxis
SetCom #portNumber, [baud ], [ dataBits ], [ stopBits ] , [ parity ] , [ terminator] , [ HWFlow ], [
SWFlow ] , [ timeOut ]
Parámetros
portNumber Valor entero que representa un número de puerto RS-232C
Parte real 1 a 8
Parte de Windows 1001 a 1008
baud Opcional. Especifica la velocidad en baudios. Los valores válidos son:
110 2400 19200
300 4800 38400
600 9600 56000
1200 14400 115200
(Valor predeterminado: 9600)
Cuando use el puerto de la parte de Windows, algunos datos se pueden perder a
velocidades en baudios de 19200 o más.
dataBits Opcional. Especifica el número de bits de datos por carácter. Los valores válidos son 7
y 8.
stopBits Opcional. Especifica el número de bits de detención por carácter. Los valores lidos
son 1 y 2.
parity Opcional. Especifica la paridad. Los valores válidos son O (impar), E (par) y N
(ninguno).
terminator Opcional. Especifica los caracteres de terminación de línea. Los valores válidos son
CR, LF, CRLF.
HWFlow Opcional. Especifica el control de hardware. Los valores válidos son RTS y NONE.
SWFlow Opcional. Especifica el control de software. Los valores válidos son XON y NONE.
timeOut Opcional. Especifica el tiempo máximo en segundos para transmitir o recibir. Si el
valor es 0, no hay tiempo de espera.
Descripción
Cuando se omiten todos los parámetros, muestra la configuración del puerto de comunicación.
Si se usan varios puertos en la comunicación en un determinado momento a una velocidad en baudios
superior a 19200, se puede generar el error 2929 o 2922. En este caso, seleccione la velocidad en baudios
inferior o evite usar varios puertos en un determinado momento.
Cuando use el puerto de la parte de Windows, algunos datos se pueden perder a la velocidad en baudios de
19200 o más.
Si se pierden datos, seleccione la velocidad en baudios más baja o use el puerto de la parte real.
Los parámetros se guardan en la tarjeta Compact Flash dentro del controlador. Cuando ejecuta SetCom, los
datos se escriben en la memoria Compact Flash. Si los datos se escriben en la tarjeta Compact Flash
frecuentemente, puede acortar la vida útil de dicha tarjeta. Se recomienda usar SetCom solamente cuando
se cambien los parámetros.
También consulte
OpenCom, CloseCom, SetNet
614
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción SetCom
SetCom #1, 9600, 8, 1, N, CRLF, NONE, NONE, 0
SetCom #2, 4800
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
615
Instrucción SetLatch
Define la función de enganche de la posición de robot con la entrada R-E/S.
Sintaxis
SetLatch { #portNumber, triggerMode}
Parámetros
#portNumber mero de puerto del puerto de entrada R-E/S para conectar la señal de entrada del
disparador.
La tabla a continuación muestra los números de puerto que puede especificar.
Especifique el número de puerto de la unidad a la que está conectado el robot objeto.
Característica
Número de
puerto
Unidad de
control
ENTRADA 2 puntos 24, 25
SALIDA - -
Unidad motriz
1
ENTRADA 2 puntos 56, 57
SALIDA - -
Unidad motriz
2
ENTRADA 2 puntos 280, 281
SALIDA - -
Las siguientes constantes se definen como el puerto de entrada.
Constante
puerto
Número de
SETLATCH_PORT_CU_0 24
SETLATCH_PORT_CU_1 25
SETLATCH_PORT_DU1_0 56
SETLATCH_PORT_DU1_1 57
SETLATCH_PORT_DU2_0 280
SETLATCH_PORT_DU2_1 281
triggerMode La lógica de señal de entrada del disparador para conectar con R-E/S. La lógica se
puede especificar con las siguientes constantes.
Constante Valor Explicación
SETLATCH_TRIGGERMODE_TRAILINGEDGE 0 Lógica negativa
SETLATCH_TRIGGERMODE_LEADINGEDGE 1 Lógica positiva
Con la lógica negativa, engancha la posición del robot en el borde del interruptor
desde la señal de entrada de alta a baja.
Con la lógica positiva, engancha la posición del robot en el borde del interruptor
desde la señal de entrada de alta a baja.
Descripción
Define la condición del enganche de la posición de robot con las señales de entrada R-E/S. Un robot no
puede esperar señales del disparador de varios puertos simultáneamente.
Ejecutar SetLatch requiere aproximadamente 40 ms para su procesamiento.
616
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Nota
Si especifica un número de puerto de la unidad no relacionado con el robot seleccionado, ocurrirá el error “I/O
input/output bit number is out of available range” (El número de bit de entrada/salida E/S está fuera del rango
disponible).
También consulte
LatchEnable, Función LatchState, Función LatchPos
Ejemplo de instrucción SetLatch
Function main
SetLatch 24, SETLATCH_TRIGGERMODE_LEADINGEDGE 'Lógica positiva
LatchEnable On 'Activa la función de enganche
Go P1
Wait LatchState = True 'Espera un disparador
Print LatchPos 'Muestra la posición enganchada
LatchEnable Off 'Desactiva la función de enganche
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
617
Instrucción SetIn
Para la E/S virtual, define un puerto de entrada especificado (8 bits) en el valor especificado.
Sintaxis
SetIn portNumber, value
Parámetros
portNumber Expresión entera que representa elmero del puerto de entrada.
value Expresión entera entre 0 y 255 en la que se configura el puerto especificado.
Descripción
SetIn proporciona la capacidad de configurar hasta 8 bits de entradas virtuales de una sola vez.
También consulte
SetSW, SetInW
Ejemplo de instrucción SetIn
> setin 0, 1 ' Define el primer bit del puerto 0 en On.
618
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SetInW
Para la E/S virtual, define una palabra de entrada especificada (16 bits) en el valor especificado.
Sintaxis
SetInW portNumber, value
Parámetros
portNumber Expresión entera que representa el número del puerto de entrada.
value Número entre 0 y 65535 en el que se define la palabra especificada.
Nota
Regla del puerto de palabra que incluye el bit de entrada de la E/S de tiempo real
No se puede reflejar el bit de entrada de la E/S de tiempo real.
Especifique el valor de configuración de los puertos de palabras que contienen el bit de entrada de la E/S de
tiempo real =1, 3, 17, 19 por un número entero entre 0 y 255.
El valor mayor que 255 generará un error.
Descripción
SetInW proporciona la capacidad de configurar hasta 16 bits de entradas virtuales de una sola vez.
También consulte
SetSw, SetIn
Ejemplo de instrucción SetInW
> setinw 0, 1 ' Configura el primer bit de la palabra 0 en On.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
619
Instrucción SetNet
Define los parámetros para un puerto TCP/IP.
Sintaxis
SetNet #portNumber, hostAddress, TCP_IP_PortNum, terminator, SWFlow, timeout, protocol
Parámetros
portNumber Especifica para cuál puerto TCP/IP se va a definir parámetros. Los valores válidos
son de 201 a 216.
hostAddress Especifica la dirección IP del host.
TCP_IP_PortNum Especifica el número de puerto TCP/IP para este nodo.
terminator Especifica los caracteres de terminación de línea. Los valores válidos son CR, LF,
CRLF.
SWFlow Especifica el control de software. El valor válido es NONE.
timeOut Especifica el tiempo máximo en segundos para transmitir o recibir. Si el valor es
“0”, no hay tiempo de espera.
protocol Especifica el protocolo (TCP/UDP) de comunicación.
Descripción
Los parámetros se guardan en la tarjeta Compact Flash dentro del controlador. Cuando ejecuta SetNet, los
datos se escriben en la memoria Compact Flash. Si los datos se escriben en la tarjeta Compact Flash
frecuentemente, puede acortar la vida útil de dicha tarjeta. Se recomienda usar SetNet solamente cuando se
cambien los parámetros.
También consulte
OpenNet, CloseNet, SetCom
Ejemplo de instrucción SetNet
SetNet #201, "192.168.0.1", 2001, CRLF, NONE, 0
620
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SetSw
Para la E/S virtual, define un bit de entrada especificado en el valor especificado.
Sintaxis
SetSw bitNumber, value
Parámetros
bitNumber Expresión entera que representa el número de bit de entrada.
value Expresión entera con un valor de 0 (Off) o 1 (On).
Descripción
SetSw proporciona la capacidad de activar o desactivar un bit de entrada.
También consulte
SetIn, SetInW
Ejemplo de instrucción SetSw
> setsw 2, on ' Configura el segundo bit de entrada en On.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
621
Instrucción SFree
Retira la alimentación del servo del eje servo especificado.
Sintaxis
SFree jointNumber [ , jointNumber,... ]
Parámetros
jointNumber Expresión entera que representa un número de articulación del servo (1 a 9).
El eje S adicional es 8 y el eje T es 9.
Descripción
Retira la alimentación del servo de las articulaciones del servo especificadas. Esta instrucción se usa para
la enseñanza directa o la instalación de piezas mediante la desactivación parcial de una articulación
específica. Para volver a activar una articulación, ejecute la instrucción SLock o Motor On.
SFree inicializa el parámetro de control del robot.
Consulte Motor On para conocer detalles.
Nota
SFree devuelve algunos elementos del sistema a su estado inicial:
SFree, para fines de seguridad, inicializa los parámetros relacionados con la velocidad del brazo del robot
(Speed y SpeedS ), aceleración (Accel y AccelS ) y el parámetro LimZ.
Notas
SFree y su uso con la articulación Z y la articulación U para robots SCARA (incluida la serie
RS)
La articulación Z tiene frenos electromagnéticos por lo que configurar SFree para la articulación Z no
permite que la articulación Z se mueva de inmediato. Para mover la articulación Z a mano se requiere que
se libere el freno presionando continuamente el desbloqueo del freno en la parte superior del brazo del
robot.
Algunos modelos tienen un freno electrónico en la articulación U. Cuando el robot tiene un freno
electrónico en la articulación U, configurar SFree para la articulación U no permite que la articulación U se
mueva de inmediato. Para mover la articulación U a mano se requiere que se libere el freno presionando
continuamente el desbloqueo del freno en la parte superior del brazo del robot.
SFree no es válido con los robots de 6 ejes (incluida la serie N)
Todas las articulaciones de los robots de 6 ejes (incluida la serie N) tienen un freno electromagnético. Se
puede liberar el freno mediante el comando Brake con el motor apagado. Con el motor en estado apagado,
SFree no es válido. Si ejecuta SFree con el motor encendido, se activará un freno electromagnético. No
puede mover ninguna articulación a mano usando SFree.
Ejecución de comandos de movimiento mientras las articulaciones están en estado SFree
Intentar ejecutar un comando de movimiento mientras está en la condición SFree provocará un error en el
estado predeterminado del controlador. Sin embargo, para permitir el movimiento mientras 1 o más de los
ejes están en el estado SFree, active la preferencia del controlador "Allow Motion with one or more axes
free" (Permitir movimiento con uno o más ejes libres). (Esta preferencia se puede configurar en la página
[Setup]-[System Configuration]-[Controller]-[Preferences] (Configuración - Configuración del sistema-
Controlador - Preferencias).
También consulte
Brake, LimZ, Motor, Función SFree, SLock
622
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción SFree
Este es un ejemplo simple del uso de la instrucción SFree. Se debe activar el movimiento con la
preferencia del controlador SFree para que este ejemplo funcione.
Function GoPick
Speed pickSpeed
SFree 1, 2 'Libera la excitación de J1 y J2,
'y controla las articulaciones Z y U para la instalación de piezas.
Go pick
SLock 1, 2 'Restablece la excitación de J1 y J2.
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
623
Función SFree
Arroja el estado de SFree de una articulación especificada.
Sintaxis
SFree(jointNumber)
Parámetros
jointNumber Expresión entera que representa el número de articulación que se debe revisar.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
True si la articulación está libre, False si no es así.
También consulte
Instrucción SFree
Ejemplo de instrucción SetFree
If SFree(1) Then
Print "Joint 1 is free"
EndIf
624
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Sgn
Determina el signo del operando.
Sintaxis
Sgn(Operand)
Parámetros
Operand Una expresión numérica.
Valores devueltos
1: Si el operando es un valor positivo.
0: Si el operando es un 0
-1: Si el operando es un valor negativo.
Descripción
La función Sgn determina el signo del valor numérico del operando.
También consulte
Abs, And, Atan, Atan2, Cos, Int, Mod, Or, Not, Sin, Sqr, Str$, Tan, Val, Xor
Ejemplo de función Sgn
Este es un ejemplo simple de ventana de comando del uso de la función Sgn.
>print sgn(123)
1
>print sgn(-123)
-1
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
625
Instrucción Short
Declara variables del tipo Short. (Variable de número entero de 2 bytes).
Sintaxis
Short varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
Short se usa para declarar variables como un tipo entero. Las variables de número entero pueden incluir
valores de -32768 a 32767. Las variables locales se deben declarar al inicio de una función. Las variables
globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, String, UByte, UInt32, UInt64,
UShort
Ejemplo de instrucción Short
El siguiente ejemplo muestra un programa simple que declara algunas variables mediante Short.
Function shorttest
Short A(10) 'Matriz de una dimensión de Short
Short B(10, 10) 'Matriz de dos dimensiones de Short
Short C(5, 5, 5) 'Matriz de tres dimensiones de Short
Short var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
626
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción ShutDown
Apaga EPSON RC+ y apaga o reinicia opcionalmente Windows.
Sintaxis
ShutDown [mode] [, Forced]
Parámetros
mode Opcional. Expresión entera que representa la configuración de modo descrita a
continuación.
Constante simbólica Valor Significado
Modo omitido 1 Aparece un cuadro de diálogo que le permite al usuario elegir la
opción de apagado.
SHUTDOWN_ALL 0 Apaga EPSON RC+ y Windows.
SHUTDOWN_RESTART 1 Apaga EPSON RC+ y reinicia Windows.
SHUTDOWN_EPSONRC 2 Apaga EPSON RC+.
Forced Opcional. Use para forzar un apagado.
Descripción
Use ShutDown para apagar RC+ y, de manera opcional, apagar o reiniciar Windows desde el programa.
Puede forzar un apagado mediante el parámetro Forced.
Nota
Si apaga con el parámetro Forced mientras están ejecutándose las tareas, puede perder datos.
Asegúrese de guardar los datos antes de apagar el equipo.
También consulte
Restart
Ejemplo de instrucción ShutDown
ShutDown 0 ' Apagar EPSON RC+ y Windows
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
627
Función ShutDown
Apaga EPSON RC+ y apaga o reinicia opcionalmente Windows.
Sintaxis
ShutDown ( [mode], [Forced] )
Parámetros
mode Opcional. Expresión entera que representa la configuración de modo descrita a
continuación.
Constante simbólica Valor Significado
Modo omitido 1 Aparece un cuadro de diálogo que le permite al usuario elegir la
opción de apagado.
SHUTDOWN_ALL 0 Apaga EPSON RC+ y Windows.
SHUTDOWN_RESTART 1 Apaga EPSON RC+ y reinicia Windows.
SHUTDOWN_EPSONRC 2 Apaga EPSON RC+.
Forced Opcional. Use para forzar un apagado.
Descripción
Use ShutDown para apagar RC+ y, de manera opcional, apagar o reiniciar Windows desde el programa.
Puede forzar un apagado mediante el parámetro Forced.
Nota
Si apaga con el parámetro Forced mientras están ejecutándose las tareas, puede perder datos.
Asegúrese de guardar los datos antes de apagar el equipo.
Valores devueltos
Arroja los siguientes valores enteros.
-1 Cuando aparece un cuadro de diálogo y el usuario selecciona Cancel.
0 Si falla el apagado
1 Si es exitoso el apagado
Ejemplo de función ShutDown
If Shutdown(SHUTDOWN_EPSONRC) = 1 Then
Print "Shutdown: OK"
Else
Print "Shutdown: NG"
EndIf
628
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción de Signal
Envía una señal a las tareas que ejecutan WaitSig.
Sintaxis
Signal signalNumber
Parámetros
signalNumber Número de la señal que se transmitirá. El rango es de 0 a 63.
Descripción
La señal se puede usar para sincronizar la ejecución de tareas múltiples.
Se omiten las señales previas emitidas antes de la ejecución de WaitSig.
También consulte
WaitSig
Ejemplo de instrucción de Signal
Function Main
Xqt 2, SubTask
Call InitSys
Signal 1
Fend
Function SubTask
WaitSig 1
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
629
Función Sin
Arroja el seno de una expresión numérica.
Sintaxis
Sin(radians)
Parámetros
radians Expresión real en radianes.
Valores devueltos
Valor numérico que representa el seno de los radianes de la expresión numérica.
Descripción
Sin arroja el seno de una expresión numérica. La expresión numérica (radianes) debe estar en unidades de
radianes. El valor arrojado por la función Sin varía entre -1 y 1.
Para convertir de radianes a grados, use la función RadToDeg.
También consulte
Abs, Atan, Atan2, Cos, Int, Mod, Not, Sgn, Sqr, Str$, Tan, Val
Ejemplo de función Sin
El siguiente ejemplo muestra un programa simple que utiliza Sin.
Function sintest
Real x
Print "Please enter a value in radians:"
Input x
Print "Sin of ", x, " is ", Sin(x)
Fend
630
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SingularityAngle
Define el ángulo del entorno de singularidad para la función de evasión de singularidad.
Sintaxis
SingularityAngle {angle}
Parámetros
angle Especifica el ángulo de la articulación n.º 5 (números iguales o mayores que 0,1.
Unidad: deg) mediante una fórmula o un valor para determinar el entorno de
singularidad de muñeca del robot de 6 ejes verticales (incluida la serie N).
Resultado
Se muestra el valor de SingularityAngle actual si se omite el parámetro.
Descripción
Este comando se activa solamente cuando se usa la función de evasión de singularidad.
El valor predeterminado es 10 deg. Este comando se puede usar para ajustar la posición de inicio de la
evasión de singularidad. Si se especifica el valor menor que el valor predeterminado, el movimiento de
evasión se inicia en el punto más cercano a la singularidad. Normalmente, no es necesario cambiar el
parámetro. Puede que resulte útil para reducir errores que suceden cuando se pasa por la singularidad.
Si se cambia el parámetro de SingularityAngle, esta configuración permanece vigente hasta el siguiente
inicio del controlador.
También consulte
AvoidSingularity, Función SingularityAngle, SingularitySpeed
Ejemplo de instrucción SingularityAngle
SingularityAngle 7.0 'Configura el ángulo del entorno de singularidad a 7 grados
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
631
Función SingularityAngle
Arroja el valor de configuración de SingularityAngle.
Sintaxis
SingularityAngle
Valores devueltos
Arroja el ángulo del entorno de singularidad (Unidad: deg).
También consulte
AvoidSingularity, SingularityAngle, SingularitySpeed, Función SingularitySpeed
Ejemplo de función SingularityAngle
Real currSingularityAngle
currSingularityAngle = SingularityAngle
632
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SingularityDist
Define la distancia del entorno de singularidad necesaria para la función de evasión de singularidad.
Sintaxis
SingularityDist {distance}
Parámetros
distance Especifica la distancia entre el punto P y el eje de rotación de la articulación n.º 1 (el
número real es igual o mayor que 0. Unidad: mm) mediante una fórmula o valor para
determinar el entorno de singularidad de hombro del robot de 6 ejes verticales
(incluida la serie N) y la serie RS.
Resultado
Se muestra el valor actual de SingularityAngle si se omite el parámetro.
Descripción
Este comando se activa solamente cuando se usa la función de evasión de singularidad.
El valor predeterminado es 30 mm. Este comando se puede usar para ajustar la posición de inicio de la
evasión de singularidad. Si se especifica el valor menor que el valor predeterminado, el movimiento de
evasión se inicia en el punto más cercano a la singularidad. Normalmente, no es necesario cambiar el
parámetro. Puede que resulte útil para reducir errores que suceden cuando se pasa por la singularidad.
Si se cambia el parámetro de SingularityDist, la configuración actual permanece vigente hasta el siguiente
inicio del controlador.
También consulte
AvoidSingularity, SingularityAngle, Función SingularityAngle, Función SingularityDist,
SingularitySpeed, Función SingularitySpeed
Ejemplo de instrucción SingularityDist
SingularityDist 10.0 'Configura la distancia del entorno de singularidad a 10 mm
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
633
Función SingularityDist
Arroja el valor de configuración de SingularityDist.
Sintaxis
SingularityDist
Valores devueltos
Arroja la distancia del entorno de singularidad (Unidad: mm).
También consulte
SingularityDist, AvoidSingularity, SingularityAngle, Función SingularityAngle, SingularitySpeed,
Función SingularitySpeed
Ejemplo de función SingularityDist
Real currSingularityDist
currSingularityDist = SingularityDist
634
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SingularitySpeed
Define la velocidad angular del entorno de singularidad para la función de evasión de singularidad.
Sintaxis
SingularitySpeed {Angular velocity}
Parámetros
Angular velocity Especifique el porcentaje de la velocidad angular de la articulación n.º 4 con respecto
a la velocidad angular máxima (el número real es igual o mayor que 0,1. Unidad: %)
mediante una fórmula o un valor para determinar el entorno de singularidad de la
muñeca del robot de 6 ejes verticales (incluida la serie N).
Resultado
Se muestra el valor de SingularitySpeed actual si se omite el parámetro.
Descripción
Este comando se activa solamente cuando se usa la función de evasión de singularidad.
El valor predeterminado es 10 %. Este comando se puede usar para ajustar la posición de inicio de la
evasión de singularidad. Si se especifica el valor menor que el valor predeterminado, el movimiento de
evasión se inicia en el punto más cercano a la singularidad. Normalmente, no es necesario cambiar el
parámetro. Puede que resulte útil para reducir errores que suceden cuando se pasa por la singularidad.
Si se cambia el parámetro de SingularitySpeed, la configuración actual permanece vigente hasta el
siguiente inicio del controlador.
También consulte
Función AvoidSingularity, SingularityAngle, SingularitySpeed
Ejemplo de SingularitySpeed
SingularitySpeed 30.0 'Configura la velocidad angular del entorno de singularidad al 30 %
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
635
Función SingularitySpeed
Arroja el valor de configuración de SingularitySpeed.
Sintaxis
SingularitySpeed
Valores devueltos
Arroja la velocidad angular del entorno de singularidad (Unidad: %).
También consulte
SingularitySpeed, SingularityAngle, AvoidSingularity
Ejemplo de función SingularitySpeed
Real currSingularitySpeed
currSingularitySpeed = SingularitySpeed
636
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SLock
Restaura la alimentación servo de la condicn sin servo para el eje servo especificado.
Sintaxis
SLock jointNumber [ , jointNumber,... ]
Parámetros
jointNumber El número de la articulación del servo (1 a 9).
El eje S adicional es 8 y el eje T es 9.
Descripción
SLock restaura la alimentación del servo a la articulación del servo especificada, que fue desactivada por la
instrucción SFree para la enseñanza directa o la instalación de piezas.
Si se omite el número de la articulación, se activan todas las articulaciones.
Activar la articulación n.º 3 (Z) causa la liberación del freno.
Para activar todos los ejes, se puede usar Motor On en lugar de SLock.
Ejecutar SLock mientras se está en el estado Motor Off causará un error.
SLock inicializa el parámetro de control del robot.
Consulte Motor On para conocer detalles.
También consulte
Brake, LimZ, Reset, SFree
Ejemplo SLock
Este es un ejemplo simple del uso de la instrucción SLock. Se debe activar el movimiento con la
preferencia del controlador SFree para que este ejemplo funcione.
Function test
.
.
.
SFree 1, 2 'Libera la excitación de J1 y J2,
'y controla las articulaciones Z y U para la instalación de piezas.
Go P1
SLock 1, 2 'Restablece la excitación de J1 y J2.
.
.
.
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
637
Instrucción SoftCP
Especifica el modo de movimiento SoftCP.
Sintaxis
SoftCP { On | Off }
Parámetros
On | Off On se usa para activar el modo de movimiento SoftCP.
Off se usa para desactivar el modo de movimiento SoftCP.
Descripción
El modo de movimiento SoftCP controla la vibración provocada por el movimiento CP con alta
aceleración/desaceleración.
El movimiento CP normal se centra en el seguimiento de ruta y el movimiento uniforme que aumenta la
vibración cuando la aceleración/desaceleración es alta. Para reducir la vibración, se debe reducir la
aceleración/desaceleración con los comandos SpeedS y AccelS.
Sin embargo, algunas aplicaciones no necesariamente requieren el alto rendimiento de seguimiento de ruta
y movimiento uniforme pero sí requieren el movimiento CP con menos vibración cuando la
aceleración/desaceleración es alta.
El modo de movimiento SoftCP disminuye el rendimiento de seguimiento de ruta y movimiento uniforme
más que en el modo de movimiento CP normal y reduce la vibración en el movimiento CP con
aceleración/desaceleración alta.
El modo de movimiento SoftCP se aplica a los siguientes comandos de movimiento CP:
Move, BMove, TMove, Arc, Arc3, CVMove, Jump3CP
Si la vibración no importa en el movimiento CP normal o se requieren los rendimientos de seguimiento de
ruta y movimiento uniforme, no aplique el modo de movimiento SoftCP.
SoftCP se definirá como desactivado en los siguientes casos:
Inicio del controlador
Restablecer
Todas las tareas se detienen.
Cambio del modo de operación automático/programación
Motor On
SFree, SLock
También consulte
Función SoftCP
Ejemplo de instrucción SoftCP
SoftCP On
Move P1
Move P2
SoftCP Off
638
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función SoftCP
Arroja el estado del modo de movimiento SoftCP.
Sintaxis
SoftCP
Valores devueltos
0 = modo de movimiento SoftCP desactivado, 1 = modo de movimiento SoftCP activado.
También consulte
Instrucción SoftCP
Ejemplo de función SoftCP
If SoftCP = Off Then
Print "SoftCP is off"
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
639
Función Space$
Arroja una cadena de caracteres de espacio.
Sintaxis
Space$(count)
Parámetros
count El número de espacios que se debe incluir en la cadena devuelta.
Valores devueltos
Arroja una cadena de caracteres de espacio count.
Descripción
Space$ arroja una cadena de caracteres de espacio count según lo especifique el usuario. Space$ puede
arrojar hasta 255 caracteres (el número máximo de caracteres permitidos en una variable de cadena).
La instrucción Space$ normalmente se usa para insertar espacios antes, después o entre otras cadenas de
caracteres.
También consulte
Asc, Chr$, InStr, Left$, Len, LSet$, Mid$, Right$, RSet$, Str$, Val
Ejemplo de función Space$
> Print "XYZ" + Space$(1) + "ABC"
XYZ ABC
> Print Space$(3) + "ABC"
ABC
>
640
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Speed
Especifica o muestra la velocidad del brazo para las instrucciones de movimiento de punto a punto Go,
Jump y Pulse.
Sintaxis
(1) Speed percent [, departSpeed, approSpeed ]
(2) Speed
Parámetros
percent Expresión entera entre 1 y 100 que representa la velocidad del brazo como porcentaje
de la velocidad máxima.
departSpeed Expresión entera entre 1 y 100 que representa la velocidad del movimiento de
alejamiento de la instrucción Jump. Solo está disponible con el comando Jump.
approSpeed Expresión entera entre 1 y 100 que representa la velocidad del movimiento de
acercamiento de la instrucción Jump. Solo está disponible con el comando Jump.
Valores devueltos
Muestra el valor actual de Speed cuando se usa sin parámetros.
Descripción
Speed especifica la velocidad del brazo para todas las instrucciones de movimiento de punto a punto. Esto
incluye el movimiento causado por las instrucciones de movimiento del robot Go, Jump y Pulse. La
velocidad se especifica como un porcentaje de velocidad máxima con un rango de valores aceptables entre
1 y 100. (1 representa el 1 % de la velocidad máxima y 100 representa el 100 % de la velocidad máxima).
Speed 100 representa la velocidad máxima posible.
Los valores de alejamiento y acercamiento se aplican solamente a la instrucción Jump. Si se omiten, su
valor predeterminado será el valor porcentual.
El valor de velocidad se inicializa en los valores predeterminados cuando se realiza una de las siguientes
acciones:
En el modo de potencia baja, la configuración de la velocidad efectiva es menor que el valor
predeterminado. Si se especifica una velocidad mayor directamente (desde la ventana Command) o en un
programa, la velocidad cambia al valor predeterminado. En el modo de potencia alta, la configuración de
la velocidad de movimiento es el valor especificado con Speed.
Si se necesita un movimiento a mayor velocidad, configure el modo de potencia alta mediante Power High
y cierre la puerta de seguridad. Si la puerta de seguridad está abierta, las configuraciones de Speed
cambiarán a su valor predeterminado.
Si Speed se ejecuta cuando el robot está en el modo de potencia baja, aparece el siguiente mensaje. El
siguiente ejemplo muestra que el robot se moverá a la velocidad predeterminada (5) porque está en el modo
de potencia baja, aunque el valor de configuración de velocidad de Speed es 80.
> speed 80
> speed
Low Power Mode
80
80 80
>
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
641
También consulte
Accel, Go, Jump, Power, Pass, Pulse, SpeedS
Ejemplo de instrucción Speed
Speed se puede usar desde la ventana Command o en un programa. A continuación, se muestran ejemplos
simples de ambos métodos.
Function speedtst
Integer slow, fast, i
slow = 10
fast = 100
For i = 1 To 10
Speed slow
Go P0
Go P1
Speed fast
Go P0
Go P1
Next i
Fend
Desde la ventana Command, el usuario también puede configurar los valores de Speed.
> Speed 100,100,50 'Velocidad descendente de la articulación Z establecida en 50 %
> Speed 50
> Speed
Low Power State: Speed is limited to 5
50
50 50
>
642
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Speed
Arroja una de las tres configuraciones de velocidad.
Sintaxis
Speed[(paramNumber)]
Parámetros
paramNumber Expresión entera que da como resultado uno de los valores que se muestran a
continuación.
Cuando se omite, se tomará 1 como el número especificado.
1: Velocidad de movimiento de PTP
2: Velocidad de alejamiento de Jump
3: Velocidad de acercamiento de Jump
Valores devueltos
El valor entero es de 1 a 100.
También consulte
Velocidad
Ejemplo de función Speed
Fend
Integer savSpeed
savSpeed = Speed(1)
Speed 50
Go pick
Speed savSpeed
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
643
Instrucción SpeedFactor
Define y arroja el valor de configuración del factor de velocidad para movimientos del manipulador.
Sintaxis
(1) SpeedFactor speedRatio
(2) SpeedFactor
Parámetros
speedRatio Expresión entera o valor entero entre 1 y 100 que representa la relación de velocidad
del movimiento del manipulador. (Unidad: %)
Valores devueltos
Muestra el valor actual de SpeedFactor cuando se usa sin parámetros.
Descripción
SpeedFactor especifica el factor de velocidad para todos los manipuladores y los movimientos definidos
para el controlador. Normalmente, SpeedFactor se configura en 100 % y la velocidad para cada
manipulador/comando de movimiento está definida por Speed o SpeedR. SpeedFactor es útil para definir
una velocidad específica para todos los movimientos de todos los manipuladores a la vez. Por ejemplo, el
movimiento con Speed = 80 % opera al 40 % de la velocidad, cuando la relación de velocidad es de 50 %.
SpeedFactor también cambia la aceleración en la misma proporción teniendo en cuenta un equilibrio de
aceleración y desaceleración del movimiento del manipulador.
SpeedFactor es equivalente a la configuración de relación de velocidad en la ventana Operator y cambia
junto con el valor.
SpeedFactor se inicializará en 100 % en el inicio del controlador.
También consulte
Función SpeedFactor
Ejemplo de instrucción SpeedFactor
Function main
Motor On
Power High
SpeedFactor 80
Speed 100; Accel 100,100
Go P1 'Opera con Speed 80; Accel 80,80
Fend
Speed 50; Accel 50,50
Go P2 'Opera con Speed 40; Accel 40,40
644
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función SpeedFactor
Arroja el valor de configuración de SpeedFactor.
Sintaxis
SpeedFactor
Valores devueltos
Valor entero que representa la configuración de SpeedFactor.
También consulte
Instrucción SpeedFactor
Ejemplo de función Speed
Real savSpeedFactor
savSpeedFactor = SpeedFactor
SpeedFactor 80
Go P1
Go P2
SpeedFactor savSpeedFactor
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
645
Instrucción SpeedR
Define o muestra la velocidad de rotación de herramientas para el movimiento CP cuando se usa ROT.
Sintaxis
(1) SpeedR rotSpeed
(2) SpeedR
Parámetros
rotSpeed Expresión real en grados/segundos.
Rango válido de entradas de los parámetros: 0,1 a 1000
Valores devueltos
Cuando los parámetros se omiten, se muestra la configuración actual de SpeedR.
Descripción
SpeedR es efectivo cuando se usa el modificador ROT en los comandos de movimiento Move, Arc, Arc3,
BMove, TMove y Jump3CP.
El valor SpeedR se inicializa en el valor predeterminado (baja velocidad) cuando ocurre una de las
siguientes condiciones:
También consulte
AccelR, Arc, Arc3, BMove, Jump3CP, Power, Función SpeedR, TMove
Ejemplo de instrucción SpeedR
SpeedR 200
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
646
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función SpeedR
Arroja un valor de velocidad de rotación de herramienta.
Sintaxis
SpeedR
Valores devueltos
Valor real en grados/segundos.
También consulte
AccelR, SpeedR
Ejemplo de función SpeedR
Real currSpeedR
currSpeedR = SpeedR
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
647
Instrucción SpeedS
Especifica o muestra la velocidad del brazo para su uso con las instrucciones de movimiento de ruta
continua, como Move, Arc, Arc3, Jump3 y Jump3CP.
Sintaxis
(1) SpeedS speed, [, departSpeed, approSpeed ]
(2) SpeedS
Parámetros
speed Expresión real que representa la velocidad de movimiento CP en unidades de mm/s.
departSpeed Opcional. Expresión real que representa la velocidad de alejamiento de Jump3 en
unidades de mm/s.
approSpeed Opcional. Expresión real que representa la velocidad de acercamiento de Jump3 en
unidades de mm/s.
Rango válido de entradas de los parámetros:
Series distintas de la serie N: 0,1 a 2000
Serie N, serie X5: 0,1 a 1120
Valores devueltos
Muestra el valor actual de SpeedS cuando se usa sin parámetros.
Descripción
SpeedS especifica la velocidad del punto central de la herramienta para su uso con todas las instrucciones
de movimiento de ruta continua. Esto incluye el movimiento causado por las instrucciones Move y Arc.
SpeedS se especifica en mm/s que representa una velocidad de punto central de herramienta para el brazo
del robot. El valor predeterminado varía de robot a robot. Consulte el manual del robot para conocer los
valores predeterminados de SpeedS para su modelo de robot. Este es el valor inicial de SpeedS configurado
automáticamente por el controlador cada vez que se enciende la alimentación principal.
El valor de SpeedS se inicializa en su valor predeterminado cuando se realiza una de las siguientes
acciones:
En el modo de potencia baja, la configuración de SpeedS efectiva es menor que el valor predeterminado. Si
se especifica una velocidad mayor directamente (desde la ventana Command) o en un programa, la
velocidad cambia al valor predeterminado. En el modo de potencia alta, la configuración de movimiento de
SpeedS es el valor de SpeedS.
Si se necesita un movimiento a mayor velocidad, configure el modo de potencia alta mediante Power High
y cierre la puerta de seguridad. Si la puerta de seguridad está abierta, las configuraciones de SpeedS
cambiarán a su valor predeterminado.
También consulte
AccelS, Arc, Jump3, Move, Speed
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
648
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción SpeedS
SpeedS se puede usar desde la ventana Command o en un programa. A continuación, se muestran
ejemplos simples de ambos métodos.
Function speedtst
Integer slow, fast, i
slow = 50
fast = 500
For i = 1 To 10
SpeedS slow
Go P0
Move P1
SpeedS fast
Go P0
Move P1
Next i
Fend
Desde la ventana Command, el usuario también puede configurar los valores de SpeedS.
> speeds 1000
> speeds 500
> speed 30 'define la velocidad de punto a punto
> go p0 'movimiento de punto a punto
> speeds 100 'define la velocidad en línea recta en mm/s
> move P1 'se mueve en línea recta
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
649
Función SpeedS
Arroja la configuración actual de SpeedS.
Sintaxis
SpeedS [(paramNumber)]
Parámetros
paramNumber Opcional. Expresión entera que especifica cuál valor de SpeedS se arrojará.
1: Velocidad CP
2: Velocidad de alejamiento de Jump3
3: Velocidad de acercamiento de Jump3
Valores devueltos
Número real, en mm/s
También consulte
Instrucción SpeedS
Ejemplo de función SpeedS
Real savSpeeds
savSpeeds = SpeedS
Print "Jump3 depart speed = ", SpeedS(2)
650
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Sqr
Calcula el valor de raíz cuadrada no negativo del operando.
Sintaxis
Sqr(Operand)
Parámetros
Operand Una expresión real.
Valores devueltos
Valor de la raíz cuadrada.
Descripción
La función Sqr arroja el valor de raíz cuadrada no negativo del operando.
Posible error
Operando negativo
Si el operando es o tiene un valor numérico negativo, ocurrirá un error.
También consulte
Abs, And, Atan, Atan2, Cos, Int, Mod, Not, Or, Sgn, Sin, Str$, Tan, Val, Xor
Ejemplo de función Sqr
Este es un ejemplo simple de ventana de comando sobre el uso de la función Sqr.
>print sqr(2)
1.414214
>
El siguiente ejemplo muestra un programa simple que utiliza Sqr.
Function sqrtest
Real x
Print "Please enter a numeric value:"
Input x
Print "The Square Root of ", x, " is ", Sqr(x)
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
651
Función ST
Arroja el valor de coordenada del eje adicional especificado en los datos de punto.
Sintaxis
ST ( sValue As Real, tValue As Real )
Parámetros
sValue Valor real que especifica el valor de coordenada del eje S
tValue Valor real que especifica el valor de coordenada del eje T
Valores devueltos
Valores de coordenada del eje adicional especificado en los datos de punto.
Descripción
Esta función se usa cuando se usan los ejes ST adicionales.
Cuando use esta función como Go ST(10,20), el eje adicional se moverá a la coordenada especificada pero
el manipulador no se moverá. Si también desea mover el manipulador, use Go XY(60,30,-50,45) :
ST( 10,20).
Para conocer detalles acerca del eje adicional, consulte el Manual del usuario de EPSON RC+: 20. Eje
adicional.
También consulte
Función XY
Ejemplo de función ST
P10 = ST(10, 20)
652
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción StartMain
Ejecuta la función principal desde una tarea en segundo plano.
Este comando es para usuarios experimentados y se debe comprender la especificación del comando antes
de usarla.
Sintaxis
StartMain mainFuncname
Parámetros
mainFuncname Nombre de la función principal que desea ejecutar (main ~ main63)
Descripción
Para ejecutar StartMain, debe definir la preferencia [Enable advanced task commands](Habilitar comandos
de tareas avanzadas) en la página [Setup]-[System Configuration]-[Controller]-[Preferences]
(Configuración - Configuración del sistema - Controlador - Preferencias).
Si la tarea se ejecuta usando una instrucción Xqt desde una tarea en segundo plano, la tarea ejecutada pasa
a ser una tarea en segundo plano. Con StartMain, puede ejecutar la función principal como una tarea que
no está en segundo plano desde una tarea en segundo plano.
Si ya ha ejecutado la función principal o ejecuta StartMain desde una tarea que no está en segundo plano,
ocurre un error.
PRECAUCI
ÓN
Cuando ejecuta el comando StartMain desde un programa, debe comprender la
especificación del comando y confirmar que el sistema tiene las condiciones
adecuadas para este comando. El uso incorrecto, como la ejecución continua de
un comando dentro de un bucle, puede deteriorar la seguridad del sistema.
También consulte
Xqt
Ejemplo de instrucción StartMain
Function bgmain
:
If Sw(StartMainSwitch) = On And Sw(ErrSwitch) = Off Then
StartMain main
EndIf
:
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
653
Función Stat
Arroja la información del estado de ejecución del controlador.
Sintaxis
Stat(address)
Parámetros
address Define cuáles bits de estado se deben revisar. (0 a 2)
Valores devueltos
Arroja un valor de 4 bytes que presenta el estado del controlador. Consulte la siguiente tabla.
Descripción
La instrucción Stat arroja información tal como se muestra en la siguiente tabla:
Direcció
n
Bit Estado del controlador indicado cuando bit está activado
0 0-15 &H1 to&H8000
La tarea (1~16) se está ejecutando (Xqt) o se encuentra en el
estado de suspensión
16 &H10000 Las tareas se están ejecutando
17 &H20000 Condición de
p
ausa
18 &H40000 Condición de error
19 &H80000 Modo Teach
20 &H100000 Condición de
p
arada de emer
g
encia
21 &H200000 Modo de potencia baja (Power Low)
22 &H400000 La entrada de la protección está cerrada
23 &H800000 El interru
p
tor de activación está abierto
24 &H1000000 Sin definir
25 &H2000000 Sin definir
26 &H4000000 Modo de prueba
27 &H8000000 Modo T2
28-31
Sin definir
1
0
&H1
Registro de detención sobre la posición objetivo cuando se
cumple la condición en la instrucción Jump...Sense. (Este
registro se borra cuando se ejecuta otra instrucción Jump).
1
&H2
Registro de detención en una posición de desplazamiento
intermedia cuando se cumple la condición en la instrucción
Go/Jump/Move/...Till. (Este registro se borra cuando se ejecuta
otra instrucción Go/Jump/Move/...Till).
2 &H4 Sin definir
3
&H8
Registro de detención en una posición de desplazamiento
intermedia cuando se cumple la condición en la instrucción
Trap.
4 &H10 Modo Motor On
5 &H20 La
p
osición actual es la
p
osición de re
p
oso
6 &H40 Estado de potencia baja
7 &H80 Sin definir
8 &H100 El motor de la articulación n.º 4 está encendido
9 &H200 El motor de la articulación n.º 3 está encendido
10 &H400 El motor de la articulación n.º 2 está encendido
11 &H800 El motor de la articulación n.º 1 está encendido
12 &H1000 El motor de la articulación n.º 6 está encendido
13 &H2000 El motor de la articulación n.º 5 está encendido
14 &H4000 El motor del eje T está encendido
654
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Direcció
n
Bit Estado del controlador indicado cuando bit está activado
15 &H8000 El motor del eje S está encendido
16 &H10000 El motor de la articulación n.º 7 está encendido
17-31
Sin definir
2 0-15 &H1 a &H8000
La tarea (17~32) se está ejecutando (Xqt) o se encuentra en el
estado de suspensión
También consulte
Función EStopOn, Función TillOn, Función PauseOn, Función SafetyOn
Ejemplo de función Stat
Function StatDemo
rbt1_sts = RShift((Stat(0) And &H070000), 16)
Select TRUE
Case (rbt1_sts And &H01) = 1
Print "Tasks are running"
Case (rbt1_sts And &H02) = 2
Print "Pause Output is ON"
Case (rbt1_sts And &H04) = 4
Print "Error Output is ON"
Send
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
655
Función Str$
Convierte un valor numérico en una cadena y la devuelve.
Sintaxis
Str$(number)
Parámetros
number Expresión entera o real.
Valores devueltos
Arroja una representación de cadena del valor numérico.
Descripción
Str$ convierte un número en una cadena. Cualquier número positivo o negativo es válido.
También consulte
Abs, Asc, Chr$, InStr, Int, Left$, Len, Mid$, Mod, Right$, Sgn, Space$, Val
Ejemplo de función Str$
El ejemplo que aparece a continuación muestra un programa que convierte varios números diferentes en
cadenas y luego las imprime en la pantalla.
Function strtest
Integer intvar
Real realvar
'
intvar = -32767
Print "intvar = ", Str$(intvar)
'
realvar = 567.9987
Print "realvar = ", Str$(realvar)
'
Fend
Otro ejemplo surge de la instrucción Str$ desde la ventana Command.
> Print Str$(99999999999999)
1.000000E+014
> Print Str$(25.999)
25.999
656
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción String
Declara las variables de tipo cadena. (Variables de cadena de caracteres)
Sintaxis
String varName$ [(subscripts)] [, varName$ [(subscripts)]...]
Parámetros
varName$ Nombre de la variable que el usuario desea declarar como de tipo cadena.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
La instrucción String se usa para declarar las variables de tipo cadena. Las variables de cadena pueden
contener hasta 255 caracteres. Las variables locales se deben declarar al inicio de una función. Las
variables globales y de módulo se deben declarar fuera de las funciones.
Operadores de cadena
Los siguientes operadores se pueden usar para manipular variables de cadena:
+ Fusiona cadenas de caracteres. Se puede usar en las instrucciones de asignación para
variables de cadena o en la instrucción Print.
Ejemplo: name$ = fname$ + " " + lname$
= Compara cadenas de caracteres. Arroja True solo cuando las dos cadenas son exactamente
iguales, incluida las mayúsculas/minúsculas.
Ejemplo: If temp1$ = "A" Then GoSub test
< > Compara cadenas de caracteres. Arroja True cuando uno o más caracteres en las dos
cadenas son diferentes.
Ejemplo: If temp1$ <> "A" Then GoSub test
Nota
Los nombres de variables deben incluir el carácter "$":
Las variables del tipo cadena deben tener el carácter "$" como el último carácter en el nombre de variable.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, UByte, UInt32, UInt64,
UShort
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
657
Ejemplo de instrucción String
String password$
String A$(10) 'Matriz de cadena de una dimensión
String B$(10, 10) 'Matriz de cadena de dos dimensiones
String C$(5, 5, 5) 'Matriz de cadena de tres dimensiones
Print "Enter password:"
Input password$
If UCase$(password$) = "EPSON" Then
Call RunMaintenance
Else
Print "Password invalid!"
EndIf
658
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Sw
Arroja o muestra el estado del puerto de entrada seleccionado. (Es decir, E/S de usuario discreto)
Sintaxis
Sw(bitNumber)
Parámetros
bitNumber Expresión entera que representa los bits de entrada E/S.
Valores devueltos
Arroja un 1 cuando la entrada especificada está activada y un 0 cuando la entrada especificada está
desactivada.
Descripción
Sw proporciona una comprobación de estado de las entradas de hardware. Sw se usa más comúnmente
para comprobar el estado de una de las entradas que podría estar conectada a un alimentador, transportador,
solenoide de pinzas o una gran cantidad de otros dispositivos que funcionan mediante E/S discretas.
Naturalmente, la entrada comprobada con la instrucción Sw tiene 2 estados (1 o 0). Estos indican si el
dispositivo está activado o no.
También consulte
In, InBCD, MemOn, MemOff, MemSw, Off, On, OpBCD, Oport, Out, Wait
Ejemplo de función Sw
El ejemplo a continuación comprueba de forma simple la entrada n.º 5 y se bifurca de acuerdo con ello. Se
usa On en lugar de 1 para mayor claridad.
Function main
Integer i, feed5Ready
feed5Ready = Sw(5)
'Comprueba si el alimentador está listo
If feed5Ready = On Then
Call mkpart1
Else
Print "Feeder #5 is not ready. Please reset and"
Print "then restart program"
EndIf
Fend
Otros ejemplos simples de la ventana Command incluyen los siguientes:
> print sw(5)
1
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
659
Instrucción SyncLock
Sincroniza tareas usando un bloqueo de exclusión mutuo.
Sintaxis
SyncLock syncID [, timeOut]
Parámetros
syncID Expresión entera que representa el número de señal que se recibe. El rango es de 0 a
63.
timeOut Opcional. Expresión real que representa el tiempo máximo de espera para bloqueo.
Descripción
Use SyncLock para bloquear el uso de un recurso común para que solo pueda usarlo una tarea a la vez.
Cuando la tarea se termina con el recurso, debe llamar a SyncUnlock para liberar el bloqueo de modo que
otras tareas puedan usarlo.
Una tarea solamente puede desbloquear un syncID que bloqueó previamente.
Una tarea debe ejecutar SyncUnlock para liberar el bloqueo.
Si la tarea está terminada, se libera el bloqueo que mantenía anteriormente.
Cuando SynLock es el segundo consecutivo en usarse después de un número de señal, ocurre un error.
Si se usa el parámetro timeOut, entonces debe usarse la función Twcmd_tw para comprobar si el bloqueo
fue exitoso.
Nota
En EPSON RC+ 6.0 y 7.0, el bloqueo se libera automáticamente cuando la tarea termina, lo que no sucede
en EPSON RC+5.0.
También consulte
Signal, SyncLock, Tw, Wait, WaitPos
660
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción SyncLock
El siguiente ejemplo usa SyncLock y SyncUnlock para permitir que solo una tarea a la vez escriba un
mensaje a un puerto de comunicación.
Function Main
Xqt Func1
Xqt Func2
Fend
Function Func1
Long count
Do
Wait .5
count = count + 1
LogMsg "Msg from Func1, " + Str$(count)
Loop
Fend
Function Func2
Long count
Do
Wait .5
count = count + 1
LogMsg "Msg from Func2, " + Str$(count)
Loop
Fend
Function LogMsg(msg$ As String)
SyncLock 1
OpenCom #1
Print #1, msg$
CloseCom #1
SyncUnlock 1
Fend
El siguiente ejemplo usa SyncLock con tiempo de espera opcional. Tw se usa para comprobar si el
bloqueo fue exitoso. Mediante el uso de un tiempo de espera, puede ejecutar otro código periódicamente
mientras espera para bloquear un recurso.
Function MySyncLock(syncID As Integer)
Do
SyncLock syncID, .5
If Tw = 0 Then
Exit Function
EndIf
If Sw(1) = On Then
Off 1
EndIf
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
661
Instrucción SyncUnlock
Desbloquea una ID de sincronización que se bloqueó anteriormente con SyncLock.
Sintaxis
SyncUnlock syncID
Parámetros
syncID Expresión entera que representa el número de señal que se recibe. El rango es de 0 a
63.
Descripción
Use SyncUnlock para desbloquear una ID de sincronización que se bloqueó anteriormente con SyncLock.
Una tarea solamente puede desbloquear un syncID que bloqueó previamente.
También consulte
Signal, SyncLock, Wait, WaitPos
Ejemplo de instrucción SyncUnlock
Function Main
Xqt task
Xqt task
Xqt task
Xqt task
Fend
Function task
Do
SyncLock 1
Print "resource 1 is locked by task", MyTask
Wait .5
SyncUnlock 1
Loop
Fend
662
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SyncRobots
Inicia el movimiento del robot reservado.
Sintaxis
SyncRobots robotNumber [, robotNumber] [, ...]
SyncRobots All
Parámetros
robotNumber Expresión entera que especifica el número de robot cuyo movimiento desea iniciar.
All Todos los robots cuyo movimiento está reservado.
Descripción
SyncRobots se usa para iniciar el movimiento del robot reservado con el parámetro SYNC de cada comando
de movimiento. Los robots especificados por SyncRobots inician el movimiento al mismo tiempo. Esto es
más útil que sincronizar los programas normales de tareas múltiples esperando al suceso de señal de E/S,
porque no hay un efecto de alternar tareas. Puede sincronizar el inicio del movimiento del robot de forma
más precisa.
Si se especifica un número de robot cuyo movimiento no está reservado, ocurre un error.
También consulte
Función SyncRobots
Ejemplo de instrucción SyncRobots
El siguiente ejemplo utiliza el parámetro SYNC de un comando de movimiento y SyncRobots para iniciar
los movimientos de dos robots simultáneamente.
Function Main
Xqt Func1
Xqt Func2
Do
Fend
Wait 0.1
If (SyncRobots And &H03) = &H03 Then
Exit Do
EndIf
Loop
SyncRobots 1,2
Function Func1
Robot 1
Motor On
Go P1 SYNC
Fend
Function Func2
Robot 2
Motor On
Go P1 SYNC
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
663
Función SyncRobots
Arroja el estado de un robot cuyo movimiento está reservado.
Sintaxis
SyncRobots
Valores devueltos
Arroja el movimiento del robot en un bit, y si no está reservado, arroja “0”.
bit 0: robotNumber 1
bit 1: robotNumber 2
:
bit 15: robotNumber 16
Descripción
La función SyncRobots comprueba el estado de reserva de movimiento del parámetro SYNC de los
comandos de movimiento del robot. El estado que comprueba SyncRobots se muestra en el estado de bit
correspondiente al número del robot. Cada bit muestra si el movimiento del robot está reservado (1) o no
(2). Puede comenzar el movimiento del robot reservado mediante la instrucción SyncRobots.
También consulte
SyncRobots
Ejemplo de función SyncRobots
El siguiente ejemplo utiliza el parámetro SYNC de un comando de movimiento y SyncRobots para iniciar
los movimientos de dos robots simultáneamente.
Function Main
Xqt Func1
Xqt Func2
Do
Fend
Wait 0.1
If (SyncRobots And &H03) = &H03 Then
Exit Do
EndIf
Loop
SyncRobots 1,2
Function Func1
Robot 1
Motor On
Go P1 SYNC
Fend
Function Func2
Robot 2
Motor On
Go P1 SYNC
Fend
664
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción SysConfig
Muestra el parámetro de configuración del sistema.
Sintaxis
SysConfig
Valores devueltos
Arroja el parámetro de configuración del sistema.
Descripción
Muestra el valor configurado actual para los datos de control del sistema. Cuando e robot y el controlador
se reciben de la fábrica o después de cambiar la configuración, es recomendable guardar estos datos. Esto
se puede realizar con Backup Controller desde [Tools]-[Controller dialog] (Herramientas - Controlador).
Aparecen los siguientes datos. (Los siguientes datos son solo para referencia debido a que los datos
variarán de un controlador a otro).
' Version:
' Firmware 1, 0, 0, 0
' Options:
' External Control Point
' RC+ API
' HOUR: 414.634
' Controller:
' Serial #: 0001
' ROBOT 1:
' Name: Mnp01
' Model: PS3-AS10
' Serial #: 0001
' Motor On Time: 32.738
' Motor 1: Enabled, Power = 400
' Motor 2: Enabled, Power = 400
' Motor 3: Enabled, Power = 200
' Motor 4: Enabled, Power = 50
' Motor 5: Enabled, Power = 50
' Motor 6: Enabled, Power = 50
ARCH 0, 30, 30
ARCH 1, 40, 40
ARCH 2, 50, 50
ARCH 3, 60, 60
ARCH 4, 70, 70
ARCH 5, 80, 80
ARCH 6, 90, 90
ARMSET 0, 0, 0, 0, 0, 0
HOFS 0, 0, 0, 0, 0, 0
HORDR 63, 0, 0, 0, 0, 0
RANGE -7427414, 7427414, -8738134, 2621440, -3145728, 8301227,
-5534152, 5534152, -3640889, 3640889, -6553600, 6553600
BASE 0, 0, 0, 0, 0, 0
WEIGHT 2, 0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
665
INERTIA 0.1, 0
XYLIM 0, 0, 0, 0, 0, 0
' Extended I/O Boards:
' 1: Installed
' 2: Installed
' 3: None installed
' 4: None installed
' Fieldbus I/O Slave Board:
' Installed
' Type: PROFIBUS
‘ Fieldbus I/O Master Board:
' None installed
' RS232C Boards:
' 1: Installed
' 2: None installed
' PG Boards:
' 1: None installed
' 2: None installed
' 3: None installed
' 4: None installed
Ejemplo de instrucción SysConfig
> SysConfig
666
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función de SysErr
Arroja el último estado de error o estado de advertencia.
Sintaxis
SysErr [(infoNo)]
Parámetros
infoNo Opcional. Número entero que representa el código de error o el código de advertencia que se
obtendrá.
0 : Código de error (cuando el parámetro se omite, se selecciona 0 automáticamente)
1 : Código de advertencia
Valores devueltos
Número entero que representa el código de error o el código de advertencia del controlador.
Descripción
SysErr solo se utiliza para la tarea NoEmgAbort (tarea especial que utiliza NoEmgAbort en Xqt) y tareas
en segundo plano.
Los códigos de error o los códigos de advertencia del controlador son los códigos de error o los códigos de
advertencia que aparecen en la pantalla LCD.
Cuando no hay errores o advertencias, el valor devuelto será 0.
También consulte
ErrMsg$, ErrorOn, Trap, Xqt
Ejemplo de función SysErr
El siguiente ejemplo muestra un programa que monitorea el error del controlador y activa o desactiva la
E/S según el número del error cuando este ocurre.
Notas
Indicador Forced
Este ejemplo de programa usa el indicador Forced para el comando On/Off.
Al diseñar el sistema, asegúrese de que las salidas E/S cambien durante el error o una parada de emergencia
o apertura de la puerta de seguridad.
Después del error
Como este programa, termine la tarea rápidamente después de completar el control de errores.
Function main
Xqt ErrorMonitor, NoEmgAbort
:
:
Fend
Function ErrorMonitor
Wait ErrorOn
If 4000 < SysErr Then
Print "Motion Error = ", SysErr
Off 10, Forced
On 12, Forced
Else
EndIf
Fend
Print "Other Error = ", SysErr
Off 11, Forced
On 13, Forced
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
667
Función Tab$
Arroja una cadena que contiene un número especificado de caracteres de pestaña.
Sintaxis
Tab$(number)
Parámetros
number Expresión entera que representa el número de pestañas.
Valores devueltos
Cadena que contiene caracteres de pestaña.
Descripción
Arroja una cadena que contiene el número especificado de pestañas.
También consulte
Left$, Mid$, Right$, Space$
Ejemplo de función Tab$
Print "X", Tab$(1), "Y"
Print
For i = 1 To 10
Print x(i), Tab$(1), y(i)
Next i
668
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Tan
Arroja la tangente de una expresión numérica.
Sintaxis
Tan(radians)
Parámetros
radians Expresión real proporcionada en radianes.
Valores devueltos
Número real que contiene la tangente del parámetro radianes.
Descripción
Tan arroja la tangente de una expresión numérica. La expresión numérica (radianes) puede ser cualquier
valor numérico siempre que se exprese en unidades de radianes.
Para convertir de radianes a grados, use la función RadToDeg.
También consulte
Abs, Atan, Atan2, Cos, Int, Mod, Not, Sgn, Sin, Sqr, Str$, Val
Ejemplo de función Tan
Function tantest
Real num
Print "Enter number in radians to calculate tangent for:"
Input num
Print "The tangent of ", num, "is ", Tan(num)
Fend
Los siguientes ejemplos muestran algunos resultados típicos obtenidos con el uso de la instrucción Tan
desde la ventana Command.
> print tan(0)
0.00
> print tan(45)
1.6197751905439
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
669
Función TargetOK
Arroja un estado que indica si es posible o no el movimiento PTP (Punto a punto) desde la posición actual a
la posición objetivo.
Sintaxis
TargetOK(targetPos)
Parámetros
targetPos Expresión de punto para la posición objetivo.
Valores devueltos
True si es posible mover hacia la posición objetivo desde la posición actual, de lo contrario False.
Descripción
Use TargetOK para verificar que se pueda llegar a una posición objetivo y orientación antes de realizar el
movimiento. La trayectoria de movimiento hacia el punto objetivo no se considera.
También consulte
CurPos, FindPos, InPos, WaitPos
Ejemplo de función TargetOK
If TargetOK(P1) Then
Go P1
EndIf
If TargetOK(P10 /L /F) Then
Go P10 /L /F
EndIf
670
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TaskDone
Arroja el estado de finalización de la tarea.
Sintaxis
TaskDone (taskIdentifier )
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
Un nombre de la tarea corresponde a un nombre de la función usada en una
instrucción Xqt o una función iniciada desde la ventana Run o la ventana Operator.
El rango del número de la tarea es:
Tareas normales: 1 a 32
Tarea en segundo plano: 65 a 80
Tareas de captura: 257 a 267
Valores devueltos
True si se finalizó la tarea, False si no es así.
Descripción
Use TaskDone para determinar si se finalizó la tarea.
También consulte
TaskState, TaskWait
Ejemplo de función TaskDone
Xqt 2, conveyor
Do
.
.
Loop Until TaskDone(conveyor)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
671
Función TaskInfo
Arroja la información de estado para una tarea.
Sintaxis
TaskInfo( taskIdentifier, index)
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
El nombre de la tarea corresponde al nombre de la función usada en una instrucción Xqt o
una función iniciada desde la ventana Run o la ventana Operator.
Especificación de un número de tarea:
Tareas normales: 1 a 32
Tareas en segundo plano: 65 a 80
Tareas de captura: 257 a 267
index Expresión entera que representa el índice de la información que desea recuperar.
Valores devueltos
Un número entero que incluye la información especificada.
Descripción
Índice
analítico
Descripción
0 Número de tarea
1
0: tarea normal, tarea NoPause o tarea NoEmgAbort
1: tarea en segundo plano
2
Tipo de tarea
0: tarea normal
Nada especificado en Xqt o se inicia la tarea en Normal
1: tarea NoPause
Se especifica NoPause en Xqt y se inicia la tarea
2: tarea NoEmgAbort
Se especifica NoEmgAbort en Xqt y se inicia la tarea
3: tarea de captura
4: tarea en segundo plano
3
1: la tarea especificada no se ejecuta.
1: la tarea especificada se ejecuta.
2: la tarea especificada está esperando un suceso.
3: la tarea especificada está en pausa o suspendida.
4: la tarea especificada está en estado de pausa rápida.
5: la tarea especificada está en estado de error.
4
Se produjo un tiempo de espera durante la espera de un suceso (igual
que en TW)
5 Tiempo de espera de suceso (milisegundos).
6 El número del robot actual seleccionado
p
or la tarea
7 El número del robot actual en uso por la tarea
También consulte
CtrlInfo, RobotInfo, TaskInfo$
672
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de función TaskInfo
If (TaskInfo(1, 3) <> 0 Then
Print "Task 1 is running"
Else
Print "Task 1 is not running"
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
673
Función TaskInfo$
Arroja información de texto para una tarea.
Sintaxis
TaskInfo$( taskIdentifier, index)
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
El nombre de la tarea corresponde al nombre de la función usada en una instrucción Xqt o
una función iniciada desde la ventana Run o la ventana Operator.
Especificación de un número de tarea:
Tareas normales: 1 a 32
Tareas en segundo plano: 65 a 80
Tareas de captura: 257 a 267
index Expresión entera que representa el índice de la información que desea recuperar.
Valores devueltos
Cadena que incluye la información especificada.
Descripción
En la tabla siguiente se muestra la información que se puede obtener mediante TaskInfo$:
Índice
analítico
Descripción
0 Nombre de la tarea
1 Fecha/hora de inicio
2 Nomb
r
e de la función que se ejecuta actualmente
3 Número de línea en el archivo de programa que contiene la función
También consulte
CtrlInfo, RobotInfo, TaskInfo
Ejemplo de función TaskInfo$
Print "Task 1 started: "TaskInfo$(1, 1)
674
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TaskState
Arroja el estado actual de una tarea.
Sintaxis
TaskState( taskIdentifier )
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
El nombre de la tarea corresponde al nombre de la función usada en una instrucción Xqt o
una función iniciada desde la ventana Run o la ventana Operator.
Especificación de un número de tarea:
Tareas normales: 1 a 32
Tareas en segundo plano: 65 a 80
Tareas de captura: 257 a 267
Valores devueltos
0: La tarea no se está ejecutando
1: La tarea se está ejecutando
2: La tarea está esperando un suceso
3: La tarea está suspendida
4: La tarea está en pausa en QuickPause
5: La tarea está en condición de error
Descripción
Use TaskState para obtener el estado de una tarea determinada. Puede especificar el número de tarea o el
nombre de la tarea.
También consulte
TaskDone, TaskWait
Ejemplo de función TaskState
If TaskState(conveyor) = 0 Then
Xqt 2, conveyor
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
675
Instrucción TaskWait
Espera que una tarea termine.
Sintaxis
TaskWait (taskIdentifier)
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
Un nombre de la tarea corresponde a un nombre de la función usada en una
instrucción Xqt o una función iniciada desde la ventana Run o la ventana Operator.
El rango del número de la tarea es:
Tareas normales: 1 a 32
Tarea en segundo plano: 65 a 80
Tareas de captura: 257 a 267
También consulte
TaskDone, TaskState
Ejemplo de instrucción TaskWait
Xqt 2, conveyor
TaskWait conveyor
676
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TC
Arroja la configuración del modo de control de par y el modo actual.
Sintaxis
(1) TC { On | Off }
(2) TC
Parámetros
On | Off On: Modo de control de par ACTIVADO
Desactivado: Modo de control de par DESACTIVADO
Valores devueltos
Cuando se omite el parámetro, arroja el modo de control de par actual.
Descripción
TC On/Off configura el modo de control de par en disponible/no disponible.
El modo de control de par configura el límite de salida del motor para generar la fuerza constante. Esto se
usa presionando una mano contra un objeto a una fuerza constante o haciendo contacto cercano y
coordinando el movimiento de la mano con un objeto.
Antes de configurar el control de par disponible, configure los límites del control de par y de control de
velocidad en TCLim y TCSpeed.
Bajo el control de par, el robot se mueve como para posicionarse en el objetivo mientras se ejecuta el
comando de operación. Cuando el robot hace contacto con un objeto y la salida del motor está en el límite
del control de par, el robot detiene su operación y mantiene el par constante.
En cualquiera de los siguientes casos, el modo de par deja de estar disponible.
También consulte
TCLim, TCSpeed
Ejemplo de instrucción TC
Speed 5
Go ApproachPoint
'Configura el límite de par del eje Z en 20 
TCLim -1, -1, 20, -1
'Configura la velocidad del control de par en 5 
TcSpeed 5
TC On
Go ContactPoint
Wait 3
Go ApproachPoint
TC Off
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
677
Instrucción TCLim
Especifica el límite de par de cada articulación para el modo de control de par.
Sintaxis
TCLim [j1Torque limit, j2Torque limit, j3Torque limit, j4Torque limit, [j5Torque limit], [j6Torque
limit],
[j7Torque limit], [j8Torque limit], [j9Torque limit] ]
Parámetros
j1Torque limit Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j2Torque limit Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j3Torque limit Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j4Torque limit Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j5Torque limit Opción. Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j6Torque limit Opción. Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j7Torque limit Opción. Especifica la proporción al par momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j8Torque limit Opción. Especifica la proporción al eje S momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
j9Torque limit Opción. Especifica la proporción al eje T momentáneo máximo
(1 a 100 / unidad: %) mediante una expresión o valor numérico.
-1: Desactiva el límite de par y cambia el modo al control de posición normal.
Valores devueltos
Cuando se omite el parámetro, arroja el límite de par actual.
Descripción
La configuración en el límite del par está disponible con TC On.
Cuando el valor del límite es demasiado bajo, el robot no funciona y el comando de operación se detiene
antes de que el robot llegue a la posición objetivo.
678
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
En cualquiera de los siguientes casos, se inicializa el valor definido de TCLim.
También consulte
TC, Función TCLim, TCSpeed
Ejemplo de instrucción TCLim
Speed 5
Go ApproachPoint
'Configura el límite de par del eje Z en 20 
TCLim -1, -1, 20, -1
'Configura la velocidad del control de par en 5 
TcSpeed 5
TC On
Go ContactPoint
Wait 3
Go ApproachPoint
TC Off
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
679
Función TCLim
Arroja el límite del par de la articulación especificada.
Sintaxis
TCLim (jointNumber)
Parámetros
jointNumber Especifica el número de la articulación desde el cual obtener el límite del par
mediante una expresión o valor numérico.
El eje S adicional es 8 y el eje T es 9.
Valores devueltos
Arroja el número entero que representa el límite del par actual (1 a 100). -1 significa que el límite del par
no es válido.
También consulte
TC, TCLim, TCSpeed
Ejemplo de función TCLim
Print "Current Z axis torque limit:", TCLim(3)
680
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TCPSpeed
Arroja la velocidad actual calculada del punto central de la herramienta (TCP).
Sintaxis
TCPSpeed
Valores devueltos
El valor real contiene la velocidad actual calculada del punto central de la herramienta en mm/s.
Descripción
Use TCPSpeed para obtener la velocidad actual calculada del punto central de la herramienta (TCP) en
mm/s cuando ejecute un comando de movimiento CP (ruta continua). Los comandos de movimiento CP
incluyen Move, TMove, Arc, Arc3, CVMove y Jump3CP. Esta no es la velocidad actual del punto central
de la herramienta. Es la velocidad que el sistema ha calculado para el punto central de la herramienta en el
momento que se llamó a la función.
El retraso de seguimiento real del motor se excluyó de este valor.
Si el robot está ejecutando un comando de movimiento PTP (Punto a punto), esta función arroja “0”.
Incluso si está usando el eje adicional, solo se arroja la distancia de desplazamiento del robot.
Por ejemplo, no incluye la velocidad de desplazamiento del eje adicional mientras se usa el eje adicional
como eje de ejecución.
También consulte
AccelS, CurPos, InPos, SpeedS
Ejemplo de función TCPSpeed
Function MoveTest
AccelS 4000, 4000
SpeedS 200
Xqt ShowTCPSpeed
Do
Move P1
Move P2
Loop
Fend
Function ShowTCPSpeed
Do
Print "Current TCP speed is: ", TCPSpeed
Wait .1
Loop
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
681
Instrucción TCSpeed
Especifica el límite de velocidad en el control de par.
Sintaxis
TCSpeed [speed]
Parámetros
speed Especifica la proporción a la velocidad máxima (1 a 100 / unidad: %) mediante una expresión o
valor numérico.
Descripción
Bajo el control de par, la velocidad se limita a la configuración de TCSpeed a pesar de las configuraciones
de velocidad de comandos como Speed.
Ocurre un error si la velocidad supera el límite en el control de par.
En cualquiera de los siguientes casos, el valor definido de TCSpeed se inicializa en 100 %.
También consulte
TC, TCLim, Función TCSpeed
Ejemplo de instrucción TCSpeed
Speed 5
Go ApproachPoint
'Configura el límite de par del eje Z en 20 %
TCLim -1, -1, 20, -1
Configura la velocidad bajo el control de par en 5 %
TcSpeed 5
TC On
Go ContactPoint
Wait 3
Go ApproachPoint
TC Off
Inicio del controlador
Motor encendido
SFree, SLock, Brake
Reset, Reset Error
El botón Stop o QuitAll detiene las
tareas
682
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TCSpeed
Arroja el límite de velocidad en el control de par.
Sintaxis
TCSpeed
Valores devueltos
Arroja el número entero (1 a 100) que representa el límite de velocidad actual.
También consulte
TC, TCSpeed, TCLim
Ejemplo de función TCSpeed
Integer var
var = TCSpeed
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
683
Función TeachOn
Arroja el estado del modo Teach (Enseñanza).
Sintaxis
TeachOn
Valores devueltos
True si está en el modo Teach, False si no es así.
Descripción
La función TeachOn solo se usa en la tarea en segundo plano.
También consulte
ErrorOn, EstopOn, SafetyOn, Xqt
Ejemplo de función TeachOn
El siguiente ejemplo supervisa al controlador cuando se inicia en el modo Teach, y activa o desactiva la
E/S.
Function BGMain
Do
Wait 0.1
If TeachOn = True Then
On teachBit
Else
EndIf
Off teachBit
If SafetyOn = True Then
On safetyBit
Else
EndIf
Off safetyBit
If PauseOn = True Then
On PauseBit
Loop
Fend
Else
EndIf
Off PauseBit
684
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TGo
Ejecuta un movimiento relativo de punto a punto, en el sistema de coordenadas de la herramienta actual.
Sintaxis
TGo destination [CP] [PerformMode modeNumber] [searchExpr] [!...!] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
CP Opcional. Especifica un movimiento de ruta continua.
PerformMode Opcional. Especifique el modo de rendimiento del robot.
modeNumber Especifica el modo de operación asignado a PerformMode con un valor de
número entero (1 a 3) o con la siguiente constante. Si se especifica
PerformMode, no se puede omitir este parámetro.
Constante Valor Descripción
Mode_Standard 1
Define el modo estándar
Mode_High_Speed 2
Define el modo de alta velocidad
Mode_Low_Oscillation 3 Define el modo de baja oscilación
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para
ejecutar E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se
ejecute SyncRobots.
Descripción
Ejecuta un movimiento relativo de punto a punto en el sistema de coordenadas de la herramienta actual.
Los atributos de la orientación del brazo especificados en la expresión de punto de destino se ignoran. El
manipulador mantiene los atributos de orientación del brazo actual. Sin embargo, para manipuladores de 6
ejes (incluida la serie N), los atributos de orientación del brazo se cambian automáticamente de modo que
la distancia de desplazamiento de la articulación sea la menor posible.
El modificador Till también se usa para completar TGo mediante la desaceleración y detención del robot en
una posición de desplazamiento intermedia, si se cumple la condición actual Till.
El modificador Find se usa para almacenar un punto en FindPos cuando la condición Find se vuelve
verdadera durante el movimiento.
Cuando se usa el procesamiento paralelo, es posible ejecutar otros procesamientos en paralelo con el
comando de movimiento.
El parámetro CP causa que comience la aceleracn del siguiente comando de movimiento cuando
comienza la desaceleración para el comando de movimiento actual. En este caso, el robot no se detendrá
en la coordenada de destino y continuará moviéndose al siguiente punto.
Los modos de movimiento de desaceleración y movimiento de aceleración se pueden combinar cuando se
define PerformMode mientras el movimiento de ruta está activado. Algunas combinaciones no están
disponibles según los modos de operación. Para conocer detalles, consulte Instrucción PerformMode.
También consulte
Accel, CP, Find, !....! Parallel Processing, P#= (Point Assignment), PerformMode, Speed, Till,
TMove, Tool
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
685
Ejemplo de instrucción TGo
> TGo XY(100, 0, 0, 0) 'Mueve 100 mm en la dirección X (en el sistema de coordenadas
de la herramienta)
Function TGoTest
Speed 50
Accel 50, 50
Power High
Tool 0
P1 = XY(300, 300, -20, 0)
P2 = XY(300, 300, -20, 0) /L
Go P1
Print Here
TGo XY(0, 0, -30, 0)
Print Here
Go P2
Print Here
TGo XY(0, 0, -30, 0)
Print Here
Fend
[Output]
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0.000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -50.000 U: 0.000 V: 0.000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0.000 W: 0.000 /L /0
X: 300.000 Y: 300.000 Z: -50.000 U: 0.000 V: 0.000 W: 0.000 /L /0
686
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Till
Especifica y muestra la condición de suceso que, si se cumple, completa el comando de movimiento (Jump,
Go, Move, etc.) en progreso desacelerando y deteniendo el robot en una posición intermedia.
Sintaxis
Till [ eventcondition ]
Parámetros
eventcondition Estado de entrada especificado como disparador
[Event] operador comparativo ( =, <>, >=, >, <, <=) [Expresión entera]
Se pueden usar las siguientes funciones y variables en Event:
Funciones : Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW, Ctr
GetRobotInsideBox, GetRobotInsidePlane, Force, AIO_In, AIO_InW,
AIO_Out, AIO_OutW
Variables : Byte, Int32, Integer, Long , Short, UByte, UInt32, UShort global
preserve variable, Global variable, module variable
También, puede especificar múltiples condiciones de suceso si usa los siguientes
operadores.
Operador : And, Or, Xor
Ejemplo : Till Sw(5) = On
Till Sw(5) = On And Till(6) = Off
Descripción
La instrucción Till puede usarse por sí sola o como expresión de búsqueda en una instrucción de comando
de movimiento.
La condición Till debe incluir como mínimo una de las funciones anteriores.
Cuando las variables están incluidas, sus valores se calculan cuando se configura la condición Till. Se
recomienda no usar variables. De lo contrario, la condición puede ser una condición no intencional. Se
permiten múltiples instrucciones Till. La condición Till más reciente será la actual hasta que sea sustituida.
Cuando los parámetros se omiten, se muestra la definición actual de Till.
Notas
Configuración de Till al encenderse la alimentación principal
En el momento del encendido, la condición Till se inicializa en Till Sw(0) = On.
Uso de Stat o TillOn para verificar Till
Después de ejecutar un comando de movimiento que usa el calificador Till pueden haber casos en los que
desee verificar si se cumplió o no la condición Till. Esto se puede hacer mediante la función Stat o la
función TillOn.
Para usar las variables en la expresión de condición de suceso
- Las variables disponibles son del tipo de número entero (Byte, Int32, Integer, Long, Short, UByte, UInt32,
UShort)
- Las variables de matriz no están disponibles
- Las variables locales no están disponibles
- Si el valor de una variable no puede cumplir la condición del suceso por más de 0,01 segundos, el sistema
no puede recuperar el cambio en las variables.
- Hasta 64 pueden esperar a las variables en un sistema (incluidas las que se usan en las expresiones de la
condición del suceso, como Wait). Si es superior a 64, ocurre un error durante la compilación del
proyecto.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
687
- Si especifica Byref en una variable en espera de cualquier llamada de función, se genera un error.
- Cuando se incluye una variable en el miembro del lado derecho de la expresión de la condición del suceso,
el valor se calcula al iniciar el comando de movimiento. Recomendamos no usar variables en una
expresión entera para evitar crear condiciones no intencionales.
También consulte
Find, Go, In, InW, Jump, MemIn, MemSw, Move, Stat, Sw, TillOn
Ejemplo de instrucción Till
A continuación se muestran algunas líneas de ejemplo de programas que usan la instrucción Till.
Till Sw(1) = Off 'Especifica la condición Till (bit 1 de entrada
desactivado)
Go P1 Till 'Detener si se cumple la condición de la línea
anterior
Till Sw(1) = On And Sw($1) = On 'Especifica la nueva condición de Till
Move P2 Till 'Detener si se cumple la condición de la línea
anterior
Move P5 Till Sw(10) = On 'Detener si se cumple la condición de esta línea
688
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TillOn
Arroja el estado Till actual.
Sintaxis
TillOn
Valores devueltos
True si la condición Till ocurrió en el comando de movimiento anterior mediante el uso de Till.
Descripción
TillOn arroja True si ocurrió la condición Till.
TillOn es equivalente a ((Stat(1) And 2) <> 0).
También consulte
EStopOn, SafetyOn, Sense, Stat, Till
Ejemplo de función TillOn
Go P0 Till Sw(1) = On
If TillOn Then
Print "Till condition occurred during move to P0"
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
689
Instrucción Time
Muestra la hora actual.
Sintaxis
Time
Descripción
Muestra la hora actual en un formato de 24 horas.
También consulte
Date, Time$
Ejemplo de instrucción Time
Ejemplo desde la ventana Command:
> Time
10:15:32 a.m.
690
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Time
Arroja el tiempo de operación acumulado del controlador.
Sintaxis
Time(unitSelect)
Parámetros
unitSelect Número entero que varía de 0 a 2. Este número entero especifica cuál unidad de
tiempo arroja el controlador:
0: horas
1: minutos
2: segundos
Descripción
Arroja el tiempo de operación acumulado del controlador como un número entero.
También consulte
Hour
Ejemplo de función Time
A continuación se muestran algunos ejemplos de la ventana Command:
Function main
Integer h, m, s
h = Time(0) 'Almacena el tiempo en horas
m = Time(1) ‘Almacena el tiempo en minutos
s = Time(2) 'Almacena el tiempo en segundos
Print "This controller has been used:"
Print h, "hours, ",
Print m, "minutes, ",
Print s, "seconds"
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
691
Función Time$
Arroja la hora actual del sistema.
Sintaxis
Time$
Valores devueltos
Muestra la hora actual en un formato de 24 horas hh:mm:ss.
También consulte
Date, Date$, Time
Ejemplo de función Time$
Print "The current time is: ", Time$
692
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TLClr
Borra (elimina la definición) un sistema de coordenadas de la herramienta.
Sintaxis
TLClr toolNumber
Parámetros
toolNumber Expresión entera que representa cuál de las 3 herramientas se debe borrar (anular la
definición).
(Herramienta 0 es la herramienta predeterminada y no se puede borrar).
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLSet
Ejemplo de instrucción TLClr
TLClr 1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
693
Función TLDef
Arroja el estado de la definición de la herramienta.
Sintaxis
TLDef (toolNumber)
Parámetros
toolNumber Expresión entera que representa para cuál herramienta se debe arrojar el estado.
Valores devueltos
True si se ha definido la herramienta especificada, o de lo contrario, False.
También consulte
Arm, ArmClr, ArmSet, ECPSet, Local, LocalClr, Tool, TLClr, TLSet
Ejemplo de función TLDef
Function DisplayToolDef(toolNum As Integer)
If TlDef(toolNum) = False Then
Print "Tool ", toolNum, "is not defined"
Else
Print "Tool ", toolNum, ": ",
Print TlSet(toolNum)
EndIf
Fend
694
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TLSet
Define o muestra un sistema de coordenadas de herramienta.
Sintaxis
(1) TLSet toolNum, toolDefPoint
(2) TLSet toolNum
(3) TLSet
Parámetros
toolNum Número entero del 1 al 15 que representa cuál de las 15 herramientas se define.
(Herramienta 0 es la herramienta predeterminada y no se puede modificar).
toolDefPoint Pnumber o P(expr) o etiqueta de punto o expresión de punto.
Valores devueltos
Cuando se omiten los parámetros, se muestra toda la definición de TLSet.
Cuando solo se especifica el número de herramienta, se muestra la definición de TLSet especificada.
Descripción
Define los sistemas de coordenadas de herramientas de la Herramienta 1, Herramienta 2 o Herramienta 3
mediante la especificación del origen del sistema de coordenadas de la herramienta y el ángulo de rotación
en relación con el sistema de coordenadas de la Herramienta 0 (sistema de coordenadas de la mano).
TLSet 1, XY(50,100,-20,30)
TLSet 2, P10 +X(20)
En este caso, se hace referencia a los valores de coordenada de P10 y se suma 20 al valor X. Se ignoran los
números de atributo de brazo y del sistema de coordenadas local.
TLSET 1, XY(100, 60, -20, 30)
Ángulo de rotación (c como se muestra en la
siguiente figura)
Posición para el eje Z
Posición para el eje Y (b como se muestra en la
siguiente figura)
Posición para el eje (a como se muestra en la
siguiente figura)
Número de sistema de coordenadas de herramie
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
695
Sistema de coordenadas de herramienta para Tool 1
Sistema de coordenadas de herramienta para Tool 0
Sistema de coordenadas del robot
TLSet para robots de 6 ejes
El origen de la Herramienta 0 es el lado de la brida de la sexta articulación. Cuando todas las articulaciones
están en la posición de grado 0, el eje X del sistema de coordenadas de la Herramienta 0 está alineado con
el eje Z del sistema de coordenadas para robots, el eje Y está alineado con el eje X del sistema de
coordenadas para robots, y el eje Z está perpendicular a la cara de la brida, y está alineado con el eje Y del
sistema de coordenadas para robots, tal como se muestra en la figura a continuación:
v
Sistema de
coordenadas de
herramienta
para Tool 0
Sistema de coordenadas del
robot
696
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Los sistemas de coordenadas de la herramienta 0 se definen para los robots montados en techo y pared,
como se muestra en las siguientes figuras.
TLSet para robots de la serie N
Cuando todas las articulaciones están en la posición de grado 0, el eje X del sistema de coordenadas de la
Herramienta 0 está alineado con el eje -X del sistema de coordenadas para robots, el eje Y está alineado
con el eje Y del sistema de coordenadas para robots, y el eje Z está alineado con el eje -Z del sistema de
coordenadas para robots, tal como se muestra en la figura a continuación:
Montaje en techo
Montaje lateral (pared)
Sistema de coordenadas del robot
Sistema de coordenadas del robot
Sistema de coordenadas de
herramienta para Tool 0
Sistema de coordenadas de herramienta para
Tool 0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
697
Los sistemas de coordenadas de la herramienta 0 se definen para los robots montados en techo y pared,
como se muestra en las siguientes figuras.
Nota
Los valores TLSet se mantienen
Los valores TLSet se conservan. Use TLClr para borrar una definición de herramienta.
También consulte
Tool, Arm, ArmSet, TLClr
Ejemplo de instrucción TLSet
El ejemplo que se indica a continuación muestra una prueba adecuada que se puede realizar desde la
ventana Command para ayudar a comprender la diferencia entre el movimiento cuando hay definida una
herramienta y cuando no la hay.
> TLSet 1, XY(100, 0, 0, 0) 'Define el sistema de coordenadas de herramienta para la
Herramienta 1 (más 100 mm
' en dirección x desde el sistema de coordenadas de la
mano)
> Tool 1 'Selecciona la Herramienta 1 según la definición de TLSet
> TGo P1 'Posiciona la punta de la Herramienta 1 en P1
> Tool 0 'Le dice al robot que no use ninguna herramienta para el
movimiento futuro
> Go P1 'Posiciona l centro de la articulación U en P1
Montaje en techo
Montaje lateral (pared)
Sistema de coordenadas del robot
Sistema de coordenadas del robot
Sistema de coordenadas de
herramienta para Tool 0
Sistema de coordenadas de herramienta para
Tool 0
698
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TLSet
Arroja un punto que contiene la definición de herramienta para la herramienta especificada.
Sintaxis
TLSet(toolNumber)
Parámetros
toolNumber Expresión entera que representa el número de la herramienta que desea obtener.
Valores devueltos
Un punto que contiene la definición de herramienta.
También consulte
Instrucción TLSet
Ejemplo de función TLSet
P1 = TLSet(1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
699
Instrucción TMOut
Especifica el número de segundos para esperar que se realice la condición especificada con la instrucción
Wait antes de emitir un error de tiempo de espera (error 2280).
Sintaxis
TMOut seconds
Parámetros
seconds Expresión real que representa el número de segundos hasta que ocurre el tiempo de espera.
El rango válido es de 0 a 2147483 segundos en intervalos de 1 segundo.
Descripción
TMOut establece la cantidad de tiempo de espera (cuando se usa la instrucción Wait) hasta que se emite un
error de tiempo de espera. Si se especifica un tiempo de espera de 0 segundos, el tiempo de espera está de
hecho desactivado. En este caso, la instrucción Wait espera indefinidamente a que se cumpla la condición
especificada.
El valor inicial predeterminado de TMOut es 0.
También consulte
In, MemSw, OnErr, Sw, TW, Wait
Ejemplo de instrucción TMOut
TMOut 5
Wait MemSw(0) = On
700
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TMove
Ejecuta un movimiento relativo de interpolación lineal en el sistema de coordenadas de la herramienta
actual
Sintaxis
TMove destination [ROT] [CP] [ searchExpr ] [ !...! ] [SYNC]
Parámetros
destination El destino objetivo del movimiento que usa una expresión de punto.
ROT Opcional. :Decide la velocidad/aceleración/desaceleración en favor de la
rotación de la herramienta.
CP Opcional. Especifica un movimiento de ruta continua.
searchExpr Opcional. Una expresión Till o Find.
Till | Find
Till Sw(expr) = {On | Off}
Find Sw(expr) = {On | Off}
!...! Opcional. Es posible agregar las instrucciones de procesamiento paralelo para
ejecutar E/S y otros comandos durante el movimiento.
SYNC Reserva un comando de movimiento. El robot no se moverá hasta que se
ejecute SyncRobots.
Descripción
Ejecuta un movimiento relativo interpolado lineal en el sistema de coordenadas de la herramienta actual.
Los atributos de la orientación del brazo especificados en la expresión de punto de destino se ignoran. El
manipulador mantiene los atributos de orientación del brazo actual. Sin embargo, para manipuladores de 6
ejes (incluida la serie N), los atributos de orientación del brazo se cambian automáticamente de modo que
la distancia de desplazamiento de la articulación sea la menor posible. Esto es equivalente a especificar el
parámetro modificador LJM para la instrucción Move. Por lo tanto, si desea cambiar la orientación del
brazo más de 180 grados, se debe ejecutar varias veces.
TMove usa el valor de velocidad SpeedS y los valores de aceleración y desaceleración AccelS. Consulte
Uso de TMove con CP a continuación para conocer la relación entre velocidad y aceleración, y entre
aceleración y desaceleración. Sin embargo, si se usa el parámetro modificador ROT, TMove utiliza el
valor de velocidad SpeedR y los valores de aceleración y desaceleración AccelR. En este caso, el valor de
velocidad SpeedS y el valor de aceleración y desaceleración AccelS no tienen efecto.
Normalmente, cuando la distancia de movimiento es 0 y solo cambia la orientación de la herramienta,
ocurrirá un error. Sin embargo, mediante el uso del parámetro ROT y la priorización de la aceleración y la
desaceleración de la rotación de la herramienta, es posible realizar el movimiento sin un error. Cuando no
existe ningún cambio de orientación con el parámetro modificador ROT y la distancia del movimiento no
es 0, se genera un error.
También, cuando la rotación de la herramienta es grande en comparación con la distancia de movimiento, y
cuando la velocidad de rotación supera la velocidad especificada del manipulador, ocurrirá un error. En este
caso, reduzca la velocidad o agregue el parámetro modificador ROT para darle prioridad a la velocidad de
rotación/aceleración/desaceleración.
El modificador Till se usa para completar TMove mediante la desaceleración y detención del robot en una
posición de desplazamiento intermedio, si se cumple la condición actual Till.
El modificador Find se usa para almacenar un punto en FindPos cuando la condición Find se vuelve
verdadera durante el movimiento.
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
701
Cuando se usa el procesamiento paralelo, es posible ejecutar otros procesamientos en paralelo con el
comando de movimiento.
702
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Nota
Uso de TMove con CP
El parámetro CP causa que el brazo se mueva al destino sin desacelerar o detenerse en el punto definido
según el destino. Esto se hace para permitir al usuario enlazar una serie de instrucciones de movimiento
que causan que el brazo se mueva a lo largo de una ruta continua mientras mantiene una velocidad
especificada durante todo el movimiento. La instrucción TMove sin CP siempre provoca que el brazo
desacelere hasta detenerse antes de llegar al punto destination.
También consulte
AccelS, CP, Find, !....! Parallel Processing, Point Assignment, SpeedS, TGo, Till, Tool
Ejemplo de instrucción TMove
> TMove XY(100, 0, 0, 0) 'Se mueve 100 mm en la dirección X (en el sistema de
coordenadas de herramienta)
Function TMoveTest
Speed 50
Accel 50, 50
SpeedS 100
AccelS 1000, 1000
Power High
Tool 0
P1 = XY(300, 300, -20, 0)
P2 = XY(300, 300, -20, 0) /L
Go P1
Print Here
TMove XY(0, 0, -30, 0)
Print Here
Go P2
Print Here
TMove XY(0, 0, -30, 0)
Print Here
Fend
[Output]
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0.000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -50.000 U: 0.000 V: 0.000 W: 0.000 /R /0
X: 300.000 Y: 300.000 Z: -20.000 U: 0.000 V: 0.000 W: 0.000 /L /0
X: 300.000 Y: 300.000 Z: -50.000 U: 0.000 V: 0.000 W: 0.000 /L /0
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
703
Función Tmr
La función Tmr arroja la cantidad de tiempo en segundos que ha pasado desde que se inició el
temporizador.
Sintaxis
Tmr(timerNumber)
Parámetros
timerNumber Expresión entera que representa a cuál de los 64 temporizadores revisar. (0 a 63)
Valores devueltos
Tiempo transcurrido para el temporizador especificado como un número real en segundos. El rango válido
es desde 0 a aproximadamente 1.7E+31. La resolución del temporizador es de 0,001 segundos.
Descripción
Arroja el tiempo transcurrido en segundos desde que se inició el temporizador especificado. A diferencia
de la función ElapsedTime, la función Tmr cuenta el tiempo mientras el programa está detenido.
Los temporizadores se restablecen con TmReset.
Real overhead
TmReset 0
overHead = Tmr(0)
También consulte
Función ElapsedTime, TmReset
Ejemplo de función Tmr
TmReset 0 'Restablece el temporizador 0
For i = 1 To 10 'Realiza una operación 10 veces
GoSub Cycle
Next
Print Tmr(0) / 10 'Calcula y muestra el tiempo del ciclo
704
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción TmReset
Restablece los temporizadores utilizados por la función Tmr.
Sintaxis
TmReset timerNumber
Parámetros
timerNumber Expresión entera que representa a cuál de los 64 temporizadores restablecer. (0 a 63)
Descripción
Restablece e inicia el temporizador especificado por timerNumber.
Use la función Tmr para recuperar el tiempo transcurrido para un temporizador específico.
También consulte
Tmr
Ejemplo de instrucción TmReset
TmReset 0 'Restablece el temporizador 0
For i = 1 To 10 'Realiza una operación 10 veces
GoSub CYL
Next
Print Tmr(0)/10 'Calcula y muestra el tiempo del ciclo
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
705
Instrucción Toff
Desactiva la pantalla de la línea de ejecución en la pantalla LCD.
Sintaxis
Toff
Descripción
No se mostrará la línea de ejecución en la pantalla LCD.
También consulte
Ton
Ejemplo de instrucción Toff
Function main
Ton MyTask
...
Toff
Fend
706
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Ton
Especifica una tarea que muestra una línea de ejecución en la pantalla LCD.
Sintaxis
Ton taskIdentifier
Ton
Parámetros
taskIdentifier El nombre de la tarea o la expresión entera que representa el número de tarea.
Un nombre de la tarea corresponde a un nombre de la función usada en una
instrucción Xqt o una función iniciada desde la ventana Run o la ventana Operator.
El rango del número de la tarea es:
Tareas normales: 1 a 32
Descripción
La línea de ejecución de la tarea 1 se muestra en el estado inicial.
La instrucción Ton muestra la línea de ejecución de la tarea especificada en la pantalla LCD.
Cuando se omite taskIdentifier, la línea de ejecución de tarea con la ejecución de la instrucción Ton se
muestra en la pantalla LCD.
También consulte
Toff
Ejemplo de instrucción Ton
Function main
Ton MyTask
...
Toff
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
707
Instrucción Tool
Selecciona o muestra la tarea actual.
Sintaxis
(1) Tool toolNumber
(2) Tool
Parámetros
toolNumber Opcional. Expresión entera de 0 a 15 que representa a cuál de las 16 definiciones de
herramientas utilizar con las siguientes instrucciones movimiento.
Valores devueltos
Muestra la Tool actual cuando se utiliza sin parámetros.
Descripción
Tool selecciona la herramienta especificada por el número de herramienta (toolNum). Cuando el número
de herramienta es "0", no se selecciona ninguna herramienta y todos los movimientos se realizan con
respecto al centro de la articulación del efector final. Sin embargo, cuando se selecciona la entrada Tool 1,
2 o 3, el movimiento se realiza con respeto al extremo de la herramienta según se define con la definición
de herramienta.
Nota
Desconexión y su efecto en la selección de herramienta
Desactivar la alimentación principal no cambia la selección del sistema de coordenadas de la herramienta.
También consulte
TGo, TLSet, Tmove
Ejemplo de instrucción Tool
El ejemplo que se indica a continuación muestra una prueba adecuada que se puede realizar desde la
ventana Command para ayudar a comprender la diferencia entre el movimiento cuando hay definida una
herramienta y cuando no la hay.
>tlset 1, 100, 0, 0, 0 'Define el sistema de coordenadas de herramienta para Tool 1
(más 100 mm en
'la dirección x desde el sistema de coordenadas de la mano)
>tool 1 'Selecciona Tool 1 según lo definido por TLSet
>tgo p1 'Coloca la posición de la punta de Tool 1 en P1
>tool 0 'Indica al robot que no use la herramienta para movimientos
futuros
>go p1 'Coloca el centro de la articulación U en P1
708
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función Tool
Arroja el número de herramienta actual.
Sintaxis
Tool
Valores devueltos
Número entero que contiene el número de herramienta actual.
También consulte
Instrucción Tool
Ejemplo de función Tool
Integer savTool
savTool = Tool
Tool 2
Go P1
Tool savTool
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
709
Define las interrupciones y lo que debería suceder cuando ocurren.
Con la instrucción Trap, puede saltar a etiquetas o llamar funciones cuando ocurre el suceso.
La instrucción Trap tiene 2 tipos, igual que a continuación:
- 4 capturas que se interrumpen con el estado de entrada definido por el usuario
- 7 capturas que se interrumpen con el estado del sistema
Aquí se explica Trap con un disparador definido por el usuario.
Sintaxis
Trap trapNumber, eventCondition GoTo label
Trap trapNumber, eventCondition Call funcname
Trap trapNumber, eventCondition Xqt funcname
Trap trapNumber
Parámetros
trapNumber mero entero del 1 al 4 que representa a cuál de los 4 números de Trap usar.
(SPEL
+
admite hasta 4 interrupciones Trap activas al mismo tiempo.)
eventCondition Estado de entrada especificado como disparador
[Event] operador comparativo ( =, <>, >=, >, <, <=) [Expresión entera]
Se pueden usar las siguientes funciones y variables en Event:
Funciones : Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW, Ctr,
GetRobotInsideBox, GetRobotInsidePlane, AIO_In, AIO_InW,
AIO_Out, AIO_OutW
Variables : Byte, Int32, Integer, Long, Short, UByte, UInt32, variable global
conservada UShort, variable Global, variable de módulo
Adicionalmente, puede usar las siguientes operaciones para especificar
condiciones múltiples de sucesos.
Operador : And, Or, Xor
Ejemplo: Trap 1, Sw(5) = On Call, TrapFunc
Trap 1, Sw(5) = On And Till(6) = Off, Call TrapFunc
label La etiqueta a la que se trasladará la ejecución del programa una vez se cumpla la
condición Trap.
funcName La función que se ejecuta cuando Call o Xqt una vez se cumpla la condición Trap.
La función con argumento no se puede especificar.
Descripción
Trap ejecuta el procesamiento de interrupción que se especifica con GoTo, Call o Xqt una vez se cumpla la
condición especificada.
La condición Trap debe incluir como mínimo una de las funciones anteriores.
Cuando las variables están incluidas en la condición Trap, sus valores se calculan cuando se configura la
condición Trap. Se recomienda no usar variables. De lo contrario, la condición puede ser una condición no
intencional.
Una vez se ejecuta el proceso de interrupción, se borra su configuración Trap. Si se necesita el mismo
proceso de interrupción, se debe volver a ejecutar la instrucción Trap.
Para cancelar una configuración Trap, simplemente ejecute la instrucción Trap solo con el parámetro
trapNumber. Es decir, "Trap 3" cancela Trap n.° 3.
Cuando la función que ejecutó Trap GoTo termina (o se cierra), Trap GoTo se cancelará de forma
automática.
Instrucción Trap (Disparador definido por el
usuario)
710
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Cuando la tarea declarada termine, se cancelará Trap Call.
Trap Xqt se cancelará cuando todas las tareas se hayan detenido.
Si se especificó GoTo
El comando que se está ejecutando se procesará según se describe a continuación, el control se bifurca a la
etiqueta especificada.
- Cualquier movimiento del brazo se pausará de forma inmediata
- El estado de espera por los comandos Wait o Input se descontinuará
- Todos los otros comandos completarán la ejecución antes de que el control se bifurque
Si se especificó Call
Después de ejecutar el mismo proceso según lo descrito por GoTo anteriormente, el control se bifurca al
número de línea o a la etiqueta especificada.
Una vez que la función termina, la ejecución del programa vuelve a la siguiente instrucción después de la
instrucción en la que ocurrió la interrupción del programa. Las instrucciones Call no se pueden usar en la
función de procesamiento de Trap.
Cuando ocurre un error en la función de procesamiento, el control de errores con OnErr no será válido y
ocurrirá un error.
Si se especificó Xqt
El control del programa ejecuta la función especificada como una tarea de procesamiento de interrupción.
En este caso, la tarea que ejecuta el comando Trap no esperará que la función Trap termine y continua
ejecutándose.
No puede ejecutar una tarea con una instrucción Xqt desde una tarea de procesamiento de interrupción.
Notas
Para usuarios de EPSON RC+4.x
La función Trap Call de EPSON RC+ 4.x o anterior es reemplazada con Trap Xqt en EPSON RC+ 7.0.
La función Trap GoSub de EPSON RC+ 4.x o anterior se eliminó en EPSON RC+ 7.0. En su lugar, use
Trap Call.
Para usar las variables en la expresión de condición de suceso
- Las variables disponibles son del tipo de número entero (Byte, Int32, Integer, Long, Short, UByte, UInt32,
UShort)
- Las variables de matriz no están disponibles
- Las variables locales no están disponibles
- Si el valor de una variable no puede cumplir la condición del suceso por más de 0,01 segundos, el sistema
no puede recuperar el cambio en las variables.
- Hasta 64 pueden esperar a las variables en un sistema (incluidas las que se usan en las expresiones de la
condición del suceso, como Wait). Si es superior a 64, ocurre un error durante la compilación del
proyecto.
- Si especifica Byref en una variable en espera de cualquier llamada de función, se genera un error.
- Cuando se incluye una variable en el miembro derecho de la expresión de condición del suceso, el valor se
calcula cuando se configura la condición Trap. Recomendamos no usar variables en una expresión entera
para evitar crear condiciones no intencionales.
También consulte
Call, GoTo, Xqt
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
711
Ejemplo de instrucción Trap
<Ejemplo 1> Proceso de error definido por el usuario
La entrada Sw(0) se considera una entrada de error definida por el usuario.
Function Main
Trap 1, Sw(0)= On GoTo EHandle ' Define Trap
.
.
.
EHandle:
On 31 'Señaliza las luces de torre
OpenCom #1
Print #1, "Error is issued"
CloseCom #1
Fend
<Ejemplo 2> Uso como multitarea
Function Main
Trap 2, MemSw(0) = On Or MemSw(1) = On Call Feeder
.
.
.
Fend
.
Function Feeder
Select TRUE
Case MemSw(0) = On
MemOff 0
On 2
Case MemSw(1) = On
MemOff 1
On 3
Send
' Vuelve a armar la captura para el próximo ciclo
Trap 2, MemSw(0) = On Or MemSw(1) = On Call Feeder
Fend
<Ejemplo 3> Usar la variable global como una condición de suceso
Global Integer gi
Function main
Trap 1, gi = 5 GoTo THandle
Xqt sub
Wait 100
Exit Function
THandle:
Print "IN Trap ", gi
Fend
Function sub
For gi = 0 To 10
Print gi
Wait 0.5
Next
Fend
712
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Define las interrupciones y lo que debería suceder cuando ocurren.
Con la instrucción Trap, puede saltar a etiquetas o llamar funciones cuando ocurre el suceso.
La instrucción Trap tiene 2 tipos, igual que a continuación:
- 4 capturas que se interrumpen con el estado de entrada definido por el usuario
- 7 capturas que se interrumpen con el estado del sistema
Aquí se explica Trap con disparadores de estado del sistema.
Sintaxis
Trap {Emergency | Error | Pause | SGOpen | SGClose | Abort | Finish } Xqt funcname
Trap {Emergency | Error | Pause | SGOpen | SGClose | Abort | Finish }
Parámetros
Emergency En el estado de parada de emergencia, ejecuta la función especificada.
Error En el estado de error, ejecute la función especificada.
Pause En el estado de pausa, ejecute la función especificada.
SGOpen Cuando la protección está abierta, ejecuta la función especificada.
SGClose Cuando la protección está cerrada, ejecuta la función especificada.
Abort Cuando todas las tareas, excepto las tareas en segundo plano (como cuando se
ejecuta una instrucción correspondiente a Abort All o se presione el botón Pause),
son detenidas por el usuario o el sistema, ejecuta la función especificada.
Finish Cuando se completan todas las tareas, excepto las tareas en segundo plano, ejecuta la
función especificada. No se puede ejecutar en la condición que ejecuta Trap Abort.
funcname Función de tarea de procesamiento de interrupción para la cual se ejecuta Xqt cuando
se completa el estado del sistema.
Las funciones con argumento no se pueden especificar.
Sin embargo, es posible especificar tres parámetros si "Error" está especificado para
el parámetro.
Nota
La función Trap *** Call de EPSON RC+ 4.x o anterior es reemplazada con Trap *** Xqt en EPSON RC+
7.0.
Descripción
Cuando el estado del sistema se completa, se ejecuta la tarea de procesamiento de interrupción
especificada.
Incluso si ejecuta una tarea de procesamiento de interrupción, no se puede borrar la configuración de Trap.
Para borrar la configuración Trap, omita funcname y ejecute la instrucción Trap.
Ejemplo : Trap Emergency borra Trap Emergency
Una vez se completen todas las tareas normales y el controlador esté en el estado Ready, se borran todas las
configuraciones de Trap.
No puede ejecutar más tareas con la instrucción Xqt desde un procesamiento de interrupción.
PRECAUCI
ÓN
Indicador Forced
Puede activar o desactivar las salidas E/S incluso en el estado Emergency Stop,
el estado Safeguard Open (Protección abierta), el modo Teach o el estado de
error mediante la especificación del indicador Forced para las instrucciones de
salida de E/S como las instrucciones On y Off.
NO conecte equipos externos que pueda mover máquinas como actuadores con
Instrucción Trap (Disparador de estado del
sistema)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
713
Si se especificó Emergency
Cuando se activa la parada de emergencia, se ejecuta la función especificada en el atributo de la tarea
NoEmgAbort.
Los comandos ejecutables desde las tareas de procesamiento de la interrupción pueden ejecutar la tarea
NoEmgAbort.
Cuando se completa el procesamiento de la interrupción de la parada de emergencia, termine la tarea
oportunamente. De lo contrario, el controlador no podrá estar en el estado Ready. No puede
restablecer la parada de emergencia automáticamente mediante la ejecución del comando Reset desde
la tarea de procesamiento de interrupción.
Cuando la tarea ejecuta la activación/desactivación de E/S desde la tarea de procesamiento de
interrupción, desmarque de la casilla de verificación [Outputs off during emergency stop] (Salidas
desactivadas durante parada de emergencia) en la página [Controller]-[Preferences] (Controlador -
Preferencias). Si esta casilla permanece marcada, no se garantiza el orden de ejecución de la
desactivación con el controlador o de la activación con la tarea.
Si se especificó Error
Cuando se activa Error, se ejecuta la función especificada en el atributo de la tarea NoEmgAbort.
Los comandos ejecutables desde las tareas de procesamiento de la interrupción pueden ejecutar la tarea
NoEmgAbort.
Cuando se completa el procesamiento de la interrupcn de la parada de emergencia, termine la tarea
oportunamente. De lo contrario, el controlador no podrá estar en el estado Ready.
Los tres parámetros omisibles (errNumber, robotNumber, jointNumber) se pueden especificar en la
función del usuario. Si quiere usar estos parámetros, agregue tres parámetros de números enteros byval
a la función Trap.
Si ocurre un error de movimiento, se definen errNumber, robotNumber y jointNumber.
Si ocurre un error que no sea el error de movimiento, se definirá robotNumber y jointNumber en "0".
Si se especificó Pause
Cuando se activa Pause, se ejecuta la función especificada en el atributo de la tarea NoEmgAbort.
Si se especificó SGOpen
Cuando la protección está abierta, se ejecuta la función especificada en el atributo de la tarea
NoEmgAbort.
Si se especificó SGClose
Cuando la protección está cerrada y enganchada, se ejecuta la función especificada en el atributo de la
tarea NoEmgAbort.
Si ejecuta la instrucción Cont desde las tareas de procesamiento de interrupción, ocurre un error.
Si se especificó Abort
Cuando todas las tareas, excepto las tareas en segundo plano (como cuando se ejecuta una instrucción
correspondiente a Abort All o se presione el botón Pause), son detenidas por el usuario o el sistema,
ejecuta la función especificada y luego el atributo NoPause.
Cuando se completa el procesamiento de la interrupción de Pause, termine la tarea oportunamente. De
lo contrario, el controlador no podrá estar en el estado Ready. Aunque una tarea que se ejecute con
Trap Abort presente un error, no se ejecutará la tarea de procesamiento de Trap Error.
Si se cancelan las instrucciones Shutdown o Restart, no se ejecutan las tareas de procesamiento de Trap
Abort ni de Trap Finish.
Si se especificó Finish
Cuando todas las tareas, excepto las tareas en segundo plano (como cuando se ejecuta una instrucción
correspondiente a Abort All o se presione el botón Pause), son detenidas por el usuario o el sistema,
las salidas de E/S que especifiquen el indicador Forced. Es extremadamente
peligroso y puede causar que los dispositivos externos se muevan en el estado
Emergency Stop, el estado Safeguard Open, el modo Teach o el estado de error.
Las salidas de E/S que especifican el indicador Forced se deben conectar con el
dispositivo externo, como un LED como el indicador de estado que no puede
mover máquinas.
714
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
ejecuta la función especificada y luego el atributo NoPause. No se puede ejecutar en la condición que
ejecuta la tarea de procesamiento Trap Abort.
Cuando se completan el apagado y el procesamiento de interrupción, termina las tareas oportunamente.
De lo contrario, el controlador no podrá estar en el estado Ready.
También consulte
Era, Erl, Err, Ert, ErrMsg$, OnErr, Reset, Restart, SysErr, Xqt
Ejemplo de instrucción Trap
Function main
:
Trap Error Xqt suberr
:
Fend
Function suberr
Print "Error =", Err
On ErrorSwitch
Fend
Function main
Trap Error Xqt trapError
FEnd
Function trapError(errNum As Integer, robotNum As Integer, jointNum
As Integer)
Print “error number = “, errNum
Print “robot number = “, robotNum
Print “joint number = “, jointNum
If Ert = 0 Then
Print “system error”
Else
Print “task error”
Print “function = “, Erf$(Ert)
Print “line number = “, Erl(Ert)
EndIf
FEnd
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
715
Función Trim$
Arroja una cadena igual a la cadena especificada sin espacios delanteros o finales.
Sintaxis
Trim$(string)
Parámetros
string Expresión de cadena.
Valores devueltos
Cadena especificada sin espacios delanteros o finales.
También consulte
LTrim$, RTrim$
Ejemplo de función Trim$
str$ = " data "
str$ = Trim$(str$) ' str$ = "data"
716
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función TW
Arroja el estado de los comandos Wait, WaitNet y WaitSig.
Sintaxis
TW
Valores devueltos
Arroja False si la condición Wait se cumple dentro del intervalo de tiempo.
Arroja True si el intervalo de tiempo ya transcurrió.
Descripción
La función Timer Wait TW arroja el estado de la condición Wait anterior con un intervalo de tiempo con
False (se cumplió la condición Wait) o True (el intervalo ya transcurrió).
También consulte
TMOut, Wait
Ejemplo de función TW
Wait Sw(0) = On, 5 'Espera hasta 5 segundos por la activación del bit de entrada 0
If TW = True Then
Print “Time Up” 'Muestra "Time UP" después de 5 segundos
EndIf
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
717
Función UBound
Arroja el subíndice más grande disponible para la dimensión indicada de una matriz.
Sintaxis
UBound (arrayName [, dimension])
Parámetros
arrayName Nombre de la variable de matriz; sigue las convenciones de nomenclatura de
variables estándar.
dimension Opcional. Expresión entera que indica la dimensión cuyo límite superior se arroja.
Usa 1 para la primera dimensión, 2 para la segunda y 3 para la tercera. Si se omite
dimension, se asume el valor 1.
También consulte
Redim
Ejemplo de función UBound
Integer i, a(10)
For i=0 to UBound(a)
a(i) = i
Next
718
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción UByte
Declara variables de tipo UByte. (tipo de variable sin signo, tamaño: 2 bytes).
Sintaxis
UByte varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de la variable que el usuario desea declarar como de tipo UByte.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
UByte se usa para declarar variables como de tipo UByte. Las variables del tipo UByte pueden incluir
valores de 0 a 255. Las variables locales se deben declarar al inicio de una función. Las variables globales
y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UInt32, UInt64,
UShort
Ejemplo de instrucción UByte
El siguiente ejemplo muestra un programa simple que declara algunas variables como de tipo UByte y
asigna valores a las variables.
El programa monitorea si el bit superior de "test_ok" es 1 o 0. El resultado aparecerá en la pantalla. (Ya
que el valor 15 está asignado a la variable, el bit con el valor "test_ok" más alto siempre está definido en
este ejemplo.)
Function Test
UByte A(10) 'Matriz de dimensión única de tipo UByte
UByte B(10, 10) 'Matriz de dos dimensiones de tipo UByte
UByte C(5, 5, 5) 'Matriz de tres dimensiones de tipo UByte
UByte test_ok
test_ok = 15
Print "Initial Value of test_ok = ", test_ok
test_ok = (test_ok And 8)
If test_ok <> 8 Then
Print "test_ok high bit is ON"
Else
Print "test_ok high bit is OFF"
End If
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
719
Función UCase$
Arroja una cadena que se ha convertido a mayúsculas.
Sintaxis
UCase$ (string)
Parámetros
string Expresión de cadena.
Valores devueltos
La cadena mayúscula convertida.
También consulte
LCase$, LTrim$, Trim$, RTrim$
Ejemplo de función UCase$
str$ = "Data"
str$ = UCase$(str$) ' str$ = "DATA"
720
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción UInt32
Declara variables del tipo UInt32. (Variable de número entero de 4 bytes sin signo).
Sintaxis
UInt32 varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
UInt32 se usa para declarar variables como de tipo de número entero. Las variables del tipo entero pueden
incluir valores de 0 a 4294967295. Las variables locales se deben declarar al inicio de una función. Las
variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt64,
UShort
Ejemplo de instrucción UInt32
El siguiente ejemplo muestra un programa simple que declara algunas variables como de tipo de número
entero con UInt32.
Function uint32test
UInt32 A(10) 'Matriz de dimensión única de tipo UInt32
UInt32 B(10, 10) 'Matriz de dos dimensiones de tipo UInt32
UInt32 C(5, 5, 5) 'Matriz de tres dimensiones de tipo UInt32
UInt32 var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
721
Instrucción UInt64
Declara variables del tipo Uint64. (Variable de número entero de 8 bytes sin signo).
Sintaxis
Uint64 varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente.
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
UInt64 se usa para declarar variables como de tipo de número entero. Las variables del tipo entero pueden
incluir valores de 0 a 18446744073709551615. Las variables locales se deben declarar al inicio de una
función. Las variables globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32,
UShort
Ejemplo de instrucción UInt64
El siguiente ejemplo muestra un programa simple que declara algunas variables como de tipo de número
entero con UInt64.
Function uint64test
UInt64 A(10) 'Matriz de dimensión única de tipo UInt64
UInt64 B(10, 10) 'Matriz de dos dimensiones de tipo UInt64
UInt64 C(5, 5, 5) 'Matriz de tres dimensiones de tipo UInt64
UInt64 var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
722
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción UOpen
Abre un archivo para acceso de lectura/escritura.
Sintaxis
UOpen fileName As #fileNumber
.
.
Close #fileNumber
Parámetros
fileName Expresión de cadena que especifica una ruta y nombre de archivo.
Si se omite la ruta, se especifica el archivo en la carpeta actual
Consulte ChDisk para conocer detalles.
fileNumber Expresión entera que representa valores desde 30 a 63.
Descripción
Abre el archivo especificado con el nombre de archivo especificado. Esta instrucción se usa para escribir y
cargar datos en el archivo especificado.
Nota
Hay una ruta de red disponible.
Si el archivo especificado no existe en el disco, se creará el archivo y se escribirán los datos en él.
Si el archivo especificado ya existe en el disco, los datos se escribirán y leerán desde el comienzo de los
datos existentes.
La posición de lectura/escritura (puntero) del archivo se puede cambiar con el comando Seek. Cuando se
cambia entre el acceso de lectura y escritura, debe usar Seek para volver a ubicar el puntero del archivo.
fileNumber identifica el archivo mientras está abierto y no se puede usar para hacer referencia a un archivo
diferente hasta que se cierre el archivo actual. fileNumber es utilizado por otras operaciones como Print#,
Read, Write, Seek y Close.
Close cierra el archivo y libera el número de archivo.
Recomendamos que use la función FreeFile para obtener el número de archivo para que el mismo número
no sea utilizado por más de una tarea.
También consulte
Close, Print #, Input#, AOpen, BOpen, ROpen, WOpen, FreeFile, Seek
Ejemplo de instrucción UOpen
Integer fileNum, i,
fileNum = FreeFile
UOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Close #fileNum
fileNum = FreeFile
UOpen "TEST.DAT" As #fileNum
Seek #fileNum, 10
Input #fileNum, j
Print "data = ", j
Close #fileNum
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
723
Instrucción UpdateDB
Actualiza los datos en la tabla que se recupera en la base de datos abierta.
Sintaxis
UpdateDB #DBNumber, item, value
Parámetros
DBNumber Expresión entera (501 a 508) que representa el número de base de datos especificado
por OpenDB.
item Nombre del elemento de la tabla que se actualizará.
Si existen varios elementos, sepárelos con comas.
value Valor que se actualizará.
Si existen varios elementos, sepárelos con comas.
Descripción
Actualiza los datos en la tabla que se recupera en la base de datos abierta con el valor especificado.
Antes de actualizar los datos, es necesario emitir SelectDB y seleccionar el registro que se va a actualizar.
Nota
- Se requiere la conexión de una computadora con RC+ instalado.
También consulte
OpenDB,CloseDB, SelectDB, DeleteDB
Ejemplo de instrucción UpdateDB
Ejemplo con base de datos SQL
A continuación se incluye un ejemplo de cómo registrar los datos en la tabla "Employees" de la base de
datos de muestra "Northwind" de SQL server 2000 y actualizar los elementos en los datos registrados.
Integer count, i, eid
String Lastname$, Firstname$, Title$
OpenDB #501, SQL, "(LOCAL)", "Northwind"
count = SelectDB(#501, "Employees", "TitleOfCourtesy = 'Mr.'")
Print #501, "Epson", "Taro", "Engineer", "Mr."
count = SelectDB(#501, "Employees", "LastName = 'Epson' and
FirstName = 'Taro'")
Input #501, eid, Lastname$, Firstname$, Title$
Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
UpdateDB #501, "Title", "Chief Engineer"
count = SelectDB(#501, "Employees", "LastName = 'Epson' and
FirstName = 'Taro'")
Input #501, eid, Lastname$, Firstname$, Title$
Print eid, ",", Lastname$, ",", Firstname$, ",", Title$
CloseDB #501
724
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción UShort
Declara variables del tipo Ushort. (Variable de número entero de 2 bytes sin signo).
Sintaxis
UShort varName [(subscripts)] [, varName [(subscripts)]...]
Parámetros
varName Nombre de variable que el usuario desea declarar.
subscripts Opcional. Las dimensiones de una matriz son variables; es posible declarar hasta 3
dimensiones. La sintaxis del subíndice es la siguiente
(ubound1, [ubound2], [ubound3])
ubound1, ubound2, ubound3 especifican, cada una, el límite superior máximo para la
dimensión asociada.
Los elementos en cada dimensión de una matriz se numeran desde 0 y el número
disponible de elementos de matriz es el valor de límite superior + 1.
Cuando especifique el valor del límite superior, asegúrese de que el número total de
elementos esté dentro del rango que se muestra a continuación:
Variable local 2.000
Variables globales conservadas 4.000
Variable global y variable de módulo 100.000
Descripción
UShort se usa para declarar variables como un tipo largo. Las variables de número entero pueden incluir
valores desde 0 a 65535. Las variables locales se deben declarar al inicio de una función. Las variables
globales y de módulo se deben declarar fuera de las funciones.
También consulte
Boolean, Byte, Double, Global, Int32, Int64, Integer, Long, Real, Short, String, UByte, UInt32,
UInt64
Ejemplo de instrucción UShort
El siguiente ejemplo muestra un programa simple que declara algunas variables como de tipo de número
entero con UShort.
Function ushorttest
UShort A(10) 'Matriz de dimensión única de tipo UShort
UShort B(10, 10) 'Matriz de dos dimensiones de tipo UShort
UShortC(5, 5, 5) 'Matriz de tres dimensiones de tipo UShort
UShort var1, arrayvar(10)
Integer i
Print "Please enter an Integer Number"
Input var1
Print "The Integer variable var1 = ", var1
For i = 1 To 5
Print "Please enter an Integer Number"
Input arrayvar(i)
Print "Value Entered was ", arrayvar(i)
Next i
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
725
Función Val
Convierte una cadena de carácter que consta de números en su valor numérico y arroja ese valor.
Sintaxis
Val(string)
Parámetros
string Expresión de cadena que contiene solo caracteres numéricos. La cadena también puede
contener un prefijo: &H (hexadecimal), &O (octal) o &B (binario).
Valores devueltos
Arroja un número entero o un resultado de punto flotante según la cadena de entrada. Si la cadena de
entrada tiene un carácter de punto decimal, el número se convierte en un número de punto flotante. De lo
contrario el valor devuelto es un número entero.
Descripción
Val convierte una cadena de caracteres de números en un valor numérico. El resultado puede ser un
número entero o un número de punto flotante. Si la cadena que se entrega a la instrucción Val contiene un
punto decimal, el valor devuelto será un número de punto flotante. De lo contrario, será un número entero.
También consulte
Abs, Asc, Chr$, Int, Left$, Len, Mid$, Mod, Right$, Sgn, Space$, Str$
Ejemplo de función Val
El ejemplo a continuación muestra un programa que convierte varias cadenas diferentes en números y las
imprime en la pantalla.
Function ValDemo
String realstr$, intstr$
Real realsqr, realvar
Integer intsqr, intvar
realstr$ = "2.5"
realvar = Val(realstr$)
realsqr = realvar * realvar
Print "The value of ", realstr$, " squared is: ", realsqr
intstr$ = "25"
intvar = Val(intstr$)
intsqr = intvar * intvar
Print "The value of ", intstr$, " squared is: ", intsqr
Fend
Este es otro ejemplo de la ventana Command.
> Print Val("25.999")
25.999
>
726
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción VSD
Define la función de movimiento CP de velocidad variable para robots SCARA.
Sintaxis
VSD { ON | Off }
Parámetros
On | Off On: Activa la función de movimiento CP de velocidad variable para robots SCARA.
Off: Desactiva la función de movimiento CP de velocidad variable para robots SCARA.
Descripción
VSD está disponible para los siguientes comandos.
Move, Arc, Arc3
El comando está disponible solo para robots SCARA.
Para robots que no sean SCARA, use AvoidSingularity SING_VSD.
La función de movimiento CP de velocidad variable evita que ocurran el error de aceleración y el error de
sobrevelocidad cuando el robot SCARA ejecuta el movimiento CP. Esta función controla automáticamente
la velocidad de la articulación mientras mantiene la trayectoria. Si se controla la velocidad de la
articulación, no se mantendrá la velocidad del punto central de la herramienta especificada por SpeedS. Sin
embargo, se arrojará la configuración de velocidad original cuando la velocidad de articulación disminuya
a menos del límite. Si se prioriza la velocidad constante, defina AccelS, DecelS y SpeedS en valores más
pequeños para eliminar la ocurrencia de errores.
Si ocurren los errores de aceleración y sobrevelocidad incluso cuando se usa la instrucción VSD, defina
AccelS, DecelS y SpeedS en valores más pequeños.
Si se cambia el parámetro VSD, esta configuración permanecerá vigente hasta el siguiente inicio del
controlador.
VSD se activa al inicio del controlador.
También consulte
Función VSD
Ejemplo de instrucción VSD
VSD On 'Activa el movimiento CP de velocidad variable y ejecuta el movimiento
Move P1
Move P2
VSD Off
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
727
Función VSD
Arroja la configuración de la función de movimiento CP de velocidad variable para robots SCARA.
Sintaxis
VSD
Valores devueltos
On = Activa la función de movimiento CP de velocidad variable
Off = Desactiva la función de movimiento CP de velocidad variable
También consulte
VSD
Ejemplo de función VSD
If VSD = Off Then
Print "Variable Speed Drive is off"
EndIf
728
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción VxCalib
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Crea datos de calibración para un sistema de visión externo.
Sintaxis
(1) VxCalib CalNo
(2) VxCalib CalNo, CamOrient, P(pixel_st : pixel_ed), P(robot_st : robot_ed) [,TwoRefPoints]
(3) VxCalib CalNo, CamOrient, P(pixel_st : pixel_ed), P(robot_st : robot_ed), P(ref0) [,P(ref180)]
Parámetros
CalNo Expresión entera que especifica el número de datos de calibración. El rango es de 0 a 15;
se pueden definir hasta 16 calibraciones.
CamOrient Expresión entera que especifica la dirección de montaje de la cámara con los siguientes
valores:
1 a 3: Disponible solo para sintaxis (2).
4 a 7: Disponible solo para sintaxis (3).
1: Independiente
2: Descendente fija
3: Ascendente fija
4: Móvil en la articulación n.° 2
5: Móvil en la articulación n.° 4
6: Móvil en la articulación n.° 5
7: Móvil en la articulación n.° 6
P(pixel_st : pixel_ed)
Especifica las coordenadas de Pixel (solo X, Y) con datos de punto continuos.
P(robot_st : robot_ed)
Especifica las coordenadas de robot con datos de punto continuos.
Los datos de punto varían con las instrucciones de montaje de la cámara especificadas por
CamOrient.
Si CamOrient = 1 a 3:
Las coordenadas del robot deben definirse en los valores TOOL y ARM actuales.
Si CamOrient = 4 a 7:
Las coordenadas del robot se deben definir en TOOL: 0, ARM: 0.
TwoRefPoints Disponible para la sintaxis (1).
Verdadero, cuando se usan dos puntos de medición. Falso, cuando se usa un punto de
medición.
Especificar dos puntos de medición hace que la calibración sea más precisa.
Opcional.
Predetermin.: Falso
P(ref0) Disponible para la sintaxis (3).
Especifica las coordenadas de robot del punto de referencia mediante datos de punto.
P(ref180) Disponible para la sintaxis (3).
Especifica las coordenadas de robot del segundo punto de referencia mediante datos de
punto. Especificar dos puntos de referencia hace que la calibración sea más precisa.
Opcional.
Descripción
El comando VxCalib calcula los datos de calibración de visión para el número de calibración con la
orientación de cámara especificada, las coordenadas de píxel, las coordenadas del robot y los puntos de
referencia (solo cámara móvil) proporcionados por el parámetro.
Cuando solo especifica CalNo, se muestran los datos de punto y otras configuraciones que definió (solo
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
729
+Y
desde la ventana Command).
La siguiente imagen muestra el sistema de coordenadas de las coordenadas de píxel. (Unidades: píxel)
Para las coordenadas de píxel y las coordenadas del robot, defina la posición superior izquierda como Point
1 y la posición inferior derecha como Point 9 según el orden que se indica en la siguiente tabla.
Se clasifica en las cuatro categorías según el parámetro CamOrient y TwoRefPoints.
1) CamOrient = 1 a 3 (Independiente, Descendente fija, Ascendente fija), TwoRefPoints = False
Orden de
datos
Posición Coordenadas de píxel Coordenadas del robot
1
Parte superior
izquierda
Coordenadas de detección 1
Medición de coordenadas de punto
1
2 Parte superior
central
Coordenadas de detección 2 Medición de coordenadas de punto
2
3
Parte superior
derecha
Coordenadas de detección 3
Medición de coordenadas de punto
3
4
Parte central
derecha
Coordenadas de detección 4
Medición de coordenadas de punto
4
5 Centro Coordenadas de detección 5
Medición de coordenadas de punto
5
6 Parce central
izquierda
Coordenadas de detección 6 Medición de coordenadas de punto
6
7
Parte inferior
izquierda
Coordenadas de detección 7
Medición de coordenadas de punto
7
8
Parte inferior
central
Coordenadas de detección 8
Medición de coordenadas de punto
8
9 Parte inferior
derecha
Coordenadas de detección 9 Medición de coordenadas de punto
9
2) CamOrient = 2 (Descendente fija), TwoRefPoints = True
Nota: Cuando se define exactamente la herramienta, no es necesario usar TwoRefPoints y se debe
configurar en False.
Si configura TwoRefPoints en True, se usan dos puntos de medición para cada posición de calibración, lo
que hace que la calibración sea más precisa. 18 puntos de robot con eje U: se requieren 0 grados / 180
grados.
Después de configurar las coordenadas de los puntos de medición 1 al 9, gire el eje U en 180 grados y
defina las coordenadas de los puntos de medición 10 al 18 donde la mano (como la vara) se encuentra
posicionada en la posición objetivo de calibración.
Orden de
datos
Posición Coordenadas de píxel Coordenadas del robot Eje U
1 Parte superior Coordenadas de detección 1 Medición de coordenadas de punto 0 grados
0, 0
+X
+Θ
730
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
izquierda
1
2
Parte superior
central
Coordenadas de detección 2
Medición de coordenadas de punto
2
3
Parte superior
derecha
Coordenadas de detección 3
Medición de coordenadas de punto
3
4
Parte central
derecha
Coordenadas de detección 4
Medición de coordenadas de punto
4
5 Centro Coordenadas de detección 5
Medición de coordenadas de punto
5
6 Parce central
izquierda
Coordenadas de detección 6 Medición de coordenadas de punto
6
7
Parte inferior
izquierda
Coordenadas de detección 7
Medición de coordenadas de punto
7
8
Parte inferior
central
Coordenadas de detección 8
Medición de coordenadas de punto
8
9 Parte inferior
derecha
Coordenadas de detección 9 Medición de coordenadas de punto
9
10
Parte superior
izquierda
- - -
Medición de
coordenadas de
punto
10
180 grados
11 Parte superior
central
- - -
Medición de
coordenadas de
p
unto 11
12
Parte superior
derecha
- - -
Medición de
coordenadas de
punto
12
13
Parte central
derecha
- - -
Medición de
coordenadas de
punto
13
14 Centro - - -
Medición de
coordenadas de
punto
14
15
Parce central
izquierda
- - -
Medición de
coordenadas de
punto
15
16 Parte inferior
izquierda
- - -
Medición de
coordenadas de
p
unto 16
17
Parte inferior
central
- - -
Medición de
coordenadas de
p
unto 17
18
Parte inferior
derecha
- - -
Medición de
coordenadas de
p
unto 18
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
731
3) CamOrient = 3 (Ascendente fija), TwoRefPoints = True
Nota: Cuando se define exactamente la herramienta, no es necesario usar TwoRefPoints y se debe
configurar en False.
Si configura TwoRefPoints en True, se usan dos puntos de detección, lo que hace que la calibración sea
más precisa. Solo para las coordenadas de píxel, 18 puntos de eje U: se requieren 0 grados / 180 grados.
Después de configurar las coordenadas de detección 1 a 9 en cada coordenada de punto de medición a 0
grados, defina las coordenadas de detección para los puntos 10 a 18 en 180 grados.
Orden de
datos
Posición Coordenadas de píxel Coordenadas del robot Eje U
1
Parte superior
izquierda
Coordenadas de detección 1
Medición de coordenadas de punto
1
0 grados
2 Parte superior
central
Coordenadas de detección 2 Medición de coordenadas de punto
2
3
Parte superior
derecha
Coordenadas de detección 3
Medición de coordenadas de punto
3
4
Parte central
derecha
Coordenadas de detección 4
Medición de coordenadas de punto
4
5 Centro Coordenadas de detección 5
Medición de coordenadas de punto
5
6 Parce central
izquierda
Coordenadas de detección 6 Medición de coordenadas de punto
6
7
Parte inferior
izquierda
Coordenadas de detección 7
Medición de coordenadas de punto
7
8
Parte inferior
central
Coordenadas de detección 8
Medición de coordenadas de punto
8
9
Parte inferior
derecha
Coordenadas de detección 9
Medición de coordenadas de punto
9
10
Parte superior
izquierda
Coordenadas de detección
10
- - -
180 grados
11 Parte superior
central
Coordenadas de detección
11
- - -
12
Parte superior
derecha
Coordenadas de detección
12
- - -
13
Parte central
derecha
Coordenadas de detección
13
- - -
14 Centro
Coordenadas de detección
14
- - -
15
Parce central
izquierda
Coordenadas de detección
15
- - -
16 Parte inferior
izquierda
Coordenadas de detección
16
- - -
17
Parte inferior
central
Coordenadas de detección
17
- - -
18
Parte inferior
derecha
Coordenadas de detección
18
- - -
4) CamOrient = 4 a 7
Orden de
datos
Posición Coordenadas de píxel Coordenadas del robot
1
Parte superior
izquierda
Coordenadas de detección 1
Medición de coordenadas de punto
1
2
Parte superior
central
Coordenadas de detección 2
Medición de coordenadas de punto
2
3 Parte superior
derecha
Coordenadas de detección 3 Medición de coordenadas de punto
3
4 Parte central Coordenadas de detección 4 Medición de coordenadas de
p
unto
732
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
derecha
4
5 Centro Coordenadas de detección 5
Medición de coordenadas de punto
5
6
Parce central
izquierda
Coordenadas de detección 6
Medición de coordenadas de punto
6
7
Parte inferior
izquierda
Coordenadas de detección 7
Medición de coordenadas de punto
7
8
Parte inferior
central
Coordenadas de detección 8
Medición de coordenadas de punto
8
9
Parte inferior
derecha
Coordenadas de detección 9
Medición de coordenadas de punto
9
Nota
Además de las tablas anteriores, especifique las coordenadas de robot de los puntos de referencia.
Con los dos puntos de referencia hace que la calibración sea más precisa. En este caso, necesita dos puntos
del eje U: 0 grados / 180 grados.
Después de configurar las coordenadas del primer punto de referencia, gire el eje U en 180 grados y defina
las coordenadas del segundo punto de referencia donde la mano (como la vara) se encuentra posicionada en
la posición objetivo de calibración. Cuando la herramienta se define de forma precisa, los dos puntos de
referencia no son necesarios.
También consulte
Función VxTrans, Función VxCalInfo, VxCalDelete, VxCalSave, VxCalLoad
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
733
Ejemplo de instrucción VxCalib
Function MobileJ2
Integer i
Double d(8)
Robot 1
LoadPoints "MobileJ2.pts"
VxCalib 0, 4, P(21:29), P(1:9), P(0)
If (VxCalInfo(0, 1) = True) Then
For i = 0 To 7
d(i) = VxCalInfo(0, i + 2)
Next i
Print "Calibration result:"
Print d(0), d(1), d(2), d(3), d(4), d(5), d(6), d(7)
P52 = VxTrans(0, P51, P50)
Print "Coordinates conversion result:"
Print P52
SavePoints "MobileJ2.pts"
VxCalSave "MobileJ2.caa"
Else
EndIf
Fend
Print "Calibration failed"
734
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción VxCalDelete
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Elimina los datos de calibración para la calibración de un sistema de visión externo.
Sintaxis
VxCalDelete CalNo
Parámetros
CalNo Expresión entera que especifica el número de datos de calibración.
El rango es de 0 a 15; se pueden definir hasta 16 calibraciones.
Descripción
Elimina los datos de calibración definidos por el número de calibración.
También consulte
VxCalib, Función VxTrans, Función VxCalInfo, VxCalSave, VxCalLoad
Ejemplo de instrucción VxCalDelete
VxCalDelete "MobileJ2.caa"
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
735
Instrucción VxCalLoad
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Carga los datos de calibración para la calibración de un sistema de visión externo desde un archivo.
Sintaxis
VxCalLoad FileName
Parámetros
FileName Especifica el nombre del archivo desde el cual se cargan los datos de calibración mediante
la expresión de cadena.
La extensión del archivo es “.caa”. Si se omite, “.caa” se agrega automáticamente.
Para extensiones distintas de “.caa”, se cambian automáticamente a “.caa”.
Descripción
Carga los datos de calibración desde el archivo especificado en el proyecto actual.
También consulte
VxCalib, Función VxTrans, Función VxCalInfo, VxCalDelete, VxCalSave
Ejemplo de instrucción VxCalLoad
VxCalLoad "MobileJ2.caa"
736
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función VxCalInfo
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Arroja el estado de finalización de la calibración y los datos de calibración.
Sintaxis
VxCalInfo (CalNo,CalData)
Parámetros
CalNo Expresión entera que especifica el número de datos de calibración. El rango es de 0 a 15;
se pueden definir hasta 16 calibraciones.
CalData Especifica el tipo de datos de calibración que se debe adquirir con los valores enteros en la
siguiente tabla.
CalData Tipo de datos de calibración
1 CalComplete
2 X Avg Error [mm]
3 X Max error [mm]
4 X mm per pixel [mm]
5 X tilt
6 Y Av
g
error [mm]
7 Y Max error [mm]
8 Y mm per pixel [mm]
9 Y tilt
Valores devueltos
Arroja los datos de calibración especificados. Para CalData = 1, el tipo de dato es Booleano. Para todos
los otros datos, el tipo de datos es Doble.
Descripción
Puede revisar qué calibración tiene datos de calibración definidos.
También puede recuperar los valores de los datos de calibración.
También consulte
VxCalib, Función VxTrans, VxCalDelete, VxCalSave, VxCalLoad
Ejemplo de función VxCalInfo
Print VxCalInfo(0, 1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
737
Instrucción VxCalSave
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Guarda los datos de calibración para la calibración de un sistema de visión externo a un archivo.
Sintaxis
VxCalSave FileName
Parámetros
FileName Especifica el nombre del archivo desde el cual se cargan los datos de calibración mediante
la expresión de cadena.
La extensión es “.caa”. Si se omite, “.caa” se agrega automáticamente.
Para extensiones distintas de “.caa”, se cambian automáticamente a “.caa”.
Descripción
Guarda los datos de calibración con el nombre de archivo especificado. El archivo se guarda en el proyecto
actual. Si el nombre de archivo ya existe, los datos de calibración se sobrescriben.
También consulte
VxCalib, Función VxTrans, Función VxCalInfo, VxCalDelete, VxCalLoad
Ejemplo de instrucción VxCalSave
VxCalSave "MobileJ2.caa"
738
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función VxTrans
Este comando solo se usa con los sistemas de visión externos y no se puede usar con Vision Guide.
Convierte las coordenadas de píxel a coordenadas de robot y arroja los datos de punto convertidos.
Sintaxis
VxTrans (CalNo, P(pixel) [, P(camRobot)] ) As Point
Parámetros
CalNo Expresión entera que especifica el número de datos de calibración.
El rango es de 0 a 15; se pueden definir hasta 16 calibraciones.
P(pixel) Especifica las coordenadas de píxel de visión (solo X, Y, U) con datos de punto.
P(camRobot) Opcional. Para una cámara móvil, esta es la posición en la que el robot se encontraba
cuando se adquirió la imagen. Si no se especifica, se usa la posición del robot actual.
El punto debe estar en TOOL: 0 y ARM: 0.
Valores devueltos
Arroja las coordenadas calculadas del robot con los datos de punto.
Descripción
Este comando convierte las coordenadas de píxel a coordenadas de robot con los datos de calibración del
número de calibración especificado.
Cuando use una cámara móvil, especifique P(camRobot) si el robot se movió desde la posición en la que se
adquirió la imagen. Asegure que P(camRobot) esté en TOOL: 0 y ARM: 0. Se usan los ángulos de las
articulaciones n.° 4 y n.° 6 de las coordenadas definidas del robot para el cálculo.
También consulte
VxCalib, Función VxCalInfo, VxCalDelete, VxCalSave, VxCalLoad
Ejemplo de función VxTrans
P52 = VxTrans(0, P51, P50)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
739
Instrucción Wait
Causa que el programa esté en Wait por un lapso de tiempo especificado o hasta que la condición de
entrada especificada (con MemSw o Sw) se cumpla. (También se puede usar Oport en lugar de Sw para
verificar las salidas de hardware.) También espera que los valores de las variables globales cambien.
Sintaxis
(1) Wait time
(2) Wait inputcondition
(3) Wait inputcondition, time
Parámetros
time Expresión real entre 0 y 2.147.483, que representa el lapso de tiempo que se esperará
cuando se use la instrucción Wait para esperar según el tiempo. El tiempo se
especifica en segundos. El incremento más pequeño es de 0,01 segundos.
inputcondition Se puede usar la siguiente sintaxis para especificar la condición de entrada:
[Event] Operador comparativo ( =, <>, >=, >, <, <=) [Expresión entera]
Se pueden usar las siguientes funciones y variables en Event.
Funciones : Sw, In, InW, Oport, Out, OutW, MemSw, MemIn, MemInW,
Ctr, GetRobotInsideBox, GetRobotInsidePlane,
MCalComplete,
Motor, LOF, ErrorOn, SaftyOn, EstopOn, TeachOn ,
Cnv_QueLen, WindowsStatus, AtHome, LatchState,
WorkQue_Len, PauseOn, AIO_In, AIO_InW, AIO_Out,
AIO_OutW
Operadores : Byte, Int32, Integer, Long, Short, UByte, UInt32, variable
global conservada UShort, variable Global, variable de módulo
También, puede especificar múltiples condiciones de entrada si usa los siguientes
operadores.
Operador : And, Or, Xor, Mask
Descripción
(1) Esperar con intervalo de tiempo
Cuando se usa como un temporizador, la instrucción Wait causa que el programa se pause por la
cantidad de tiempo especificada y luego continúe la ejecución del programa.
(2) Esperar condiciones de suceso sin intervalo de tiempo
Cuando se usa como un enclavamiento de espera condicional, la instrucción Wait causa que el
programa espere hasta que se cumplan las condiciones especificadas. Si una vez que transcurre el
intervalo de tiempo TMOut las condiciones aún no se han cumplido, ocurre un error. Para comprobar
múltiples condiciones con una sola instrucción Wait, el usuario puede usar las instrucciones And,
Mask, Or o Xor. (Consulte la sección de ejemplo para Wait.)
(3) Esperar con condición de suceso e intervalo de tiempo
Especifica la condición de Wait y el intervalo de tiempo. Después de que la condición de Wait se
cumple, o transcurre el intervalo de tiempo, el control del programa se traslada al siguiente comando.
Use Tw para comprobar si la condición Wait se cumplió o si transcurrió el intervalo de tiempo.
Notas
Especificación de un período de tiempo de espera para usar con Wait
Cuando se usa la instrucción Wait sin un intervalo de tiempo, se puede especificar un período de tiempo de
espera que define un límite de tiempo para la espera de la condición especificada. Este período de tiempo
740
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
de espera se define con la instrucción TMOut. Consulte esta instrucción para obtener más información. (La
configuración predeterminada para TMOut es "0", que significa que no hay período de tiempo de espera.)
Esperar una variable con Wait
- Las variables disponibles son del tipo de número entero (Byte, Int32, Integer, Long, Short, UByte, UInt32,
UShort)
- Las variables de matriz no están disponibles
- Las variables locales no están disponibles
- Si el valor de una variable no puede cumplir la condición del suceso por más de 0,01 segundos, no se
podrá obtener el cambio en las variables.
- Pueden esperar hasta 64 para las variables en un sistema (incluidos los que se usan en las expresiones de
condición de suceso, como Till). Si es superior a 64, ocurre un error durante la compilación del proyecto.
- Si especifica Byref en una variable en espera de cualquier llamada de función, se genera un error.
- Cuando se incluye una variable en el miembro derecho de la expresión de condición del suceso, el valor se
calcula cuando se configura la condición Trap. Recomendamos no usar variables en una expresión entera
para evitar crear condiciones no intencionales.
Cuando use el puerto PC COM (1001 a 1008)
- No puede usar la función Lof para la instrucción Wait.
También consulte
AtHome, Cnv_QueLen, Ctr, ErrorOn, EstopOn, GetRobotInsideBox, GetRobotInsidePlane, In,
InW, LatchState, LOF, Mask, MCalComplete, MemIn, MemInW, MemSw, Motor, Oport, Out,
OutW, PauseOn, SaftyOn, Sw, TeachOn, TMOut, WindowsStatus, Tw, WorkQue_Len
Ejemplo de instrucción Wait
El ejemplo que se indica a continuación muestra 2 tareas, cada una con la capacidad de iniciar las
instrucciones de movimiento. No obstante, se usa un mecanismo de bloqueo entre las 2 tareas para
garantizar que cada una de ellas obtenga el control de las instrucciones de movimiento del robot solamente
después de que la otra tarea haya terminado de usarlas. Esto permite que las 2 tareas ejecuten las
instrucciones de movimiento según sea necesario y de manera ordenada y predecible. MemSw se usa junto
con la instrucción Wait para esperar hasta que la E/S de memoria n.º 1 tenga el valor adecuado antes de que
sea seguro moverse nuevamente.
Function main
Integer I
MemOff 1
Xqt !2, task2
For i = 1 to 100
Wait MemSw(1) = Off
Go P(i)
MemOn 1
Next I
Fend
Function task2
Integer i
For i = 101 to 200
Wait MemSw(1) = On
Go P(i)
MemOff 1
Next i
Fend
' Espera hasta que la entrada 0 esté activada
Wait Sw(0) = On
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
741
' Espera 60,5 segundos y continúa la ejecución
Wait 60.5
' Espera hasta que la entrada 0 esté desactivada y la entrada 1 esté activada.
Wait Sw(0) = Off And Sw(1) = On
' Espera hasta que el bit de memoria 0 esté activado o el bit de memoria 1 esté activado
Wait MemSw(0) = On Or MemSw(1) = On
' Espera un segundo y activa la salida 1
Wait 1; On 1
' Espera que los 3 bits inferiores del puerto de entrada 0 sean iguales a 1
Wait In(0) Mask 7 = 1
' Espera hasta que la variable global de tipo Integer giCounter sea mayor que 10
Wait giCounter > 10
' Espera diez segundos hasta que la variable global de tipo Long glCheck sea 30000
Wait glCheck = 30000, 10
742
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WaitNet
Espera que se establezca una conexión de puerto TCP/IP.
Sintaxis
WaitNet #portNumber [, timeOut]
Parámetros
portNumber Expresión entera para el número del puerto TCP/IP que se conectará. El rango es de
201 a 216.
timeOut Opcional. Tiempo máximo de espera para conexión.
También consulte
OpenNet, CloseNet
Ejemplo de instrucción WaitNet
Para este ejemplo, se configuró la característica TCP/IP de dos controladores de la siguiente manera:
Controlador n.º 1:
Puerto: #201
Nombre del host: 192.168.0.2
Puerto TCP/IP: 1000
Function tcpip
OpenNet #201 As Server
WaitNet #201
Print #201, "Data from host 1"
Fend
Controlador n.º 2:
Puerto: #201
Nombre del host: 192.168.0.1
Puerto TCP/IP: 1000
Function tcpip
String data$
OpenNet #201 As Client
WaitNet #201
Input #201, data$
Print "received '", data$, "' from host 1"
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
743
Instrucción WaitPos
Espera que el robot reduzca su aceleración y se detenga en la posición antes de ejecutar la nueva
instrucción mientras el movimiento de ruta está activo.
Sintaxis
WaitPos
Descripción
Normalmente, cuando el movimiento de ruta está activo (CP está activado o se especificó el parámetro de
CP), el comando de movimiento inicia la siguiente instrucción a medida que comienza la desaceleración.
Use el comando WaitPos inmediatamente antes del movimiento para completar el movimiento de
desaceleración y pase al siguiente movimiento.
También consulte
Wait, WaitSig, CP
Ejemplo de instrucción WaitPos
Off 1
CP On
Move P1
Move P2
WaitPos ' espera que el robot desacelere
On 1
CP Off
744
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WaitSig
Espera una señal de otra tarea.
Sintaxis
WaitSig signalNumber [, timeOut]
Parámetros
signalNumber Expresión entera que representa el número de señal que se recibirá. El rango es de 0
a 63.
timeOut Opcional. Expresión real que representa el tiempo máximo que se espera.
Descripción
Use WaitSig para esperar una señal de otra tarea. La señal solo será recibida después de que se inicie
WaitSig. Las señales anteriores se ignoran.
También consulte
Wait, WaitPos, Signal
Ejemplo de instrucción WaitSig
Function Main
Xqt SubTask
Wait 1
Signal 1
.
.
Fend
Function SubTask
WaitSig 1
Print "signal received"
.
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
745
Instrucción Weight
Especifica o muestra la configuración de peso del brazo del robot.
Sintaxis
Weight payloadWeight [ , distance | S | T ]
Weight
Parámetros
payloadWeight El peso del efector final que se transportará en unidades de Kg.
distance La distancia desde el centro de rotación del segundo brazo al centro de gravedad del
efector final en unidades de mm. Solo válido para robots SCARA (incluida la serie
RS).
S Peso de carga contra el eje S en kg a 2 posiciones decimales)
T Peso de carga contra el eje T en kg a 2 posiciones decimales)
Valores devueltos
Muestra la configuración actual de Weight cuando se omiten los parámetros.
Descripción
Especifica los parámetros para calcular la aceleración máxima del movimiento de punto a punto. La
instrucción Weight especifica el peso del efector final y las piezas que se transportarán.
Solo es necesario especificar la longitud del brazo (distance) para robots SCARA (incluida la serie RS). Es
la distancia desde la línea central de la articulación de rotación del segundo brazo hasta el centro de
gravedad combinado de la mano/pieza de trabajo.
Si el robot tiene un eje adicional, las cargas en el eje adicional deben definirse con los parámetros S y T.
Si el peso de la pieza de trabajo de valor equivalente calculado a partir de los parámetros especificados
supera la carga útil permisible, ocurre un error.
Posibles errores
El peso supera el máximo
Cuando el peso de carga equivalente calculado a partir del valor ingresado supera el peso de carga máximo,
ocurrirá un error.
Daño potencial al brazo del manipulador
Tenga en cuenta que especificar un peso de mano Weight significativamente menor que el peso de la pieza
de trabajo real puede causar una aceleración y desaceleración excesivas. Estas, a su vez, pueden causar
daños graves al manipulador.
Nota
Los valores de peso no cambian mediante la desactivación de la alimentación principal
Los valores de peso no cambian mediante la desactivación de la alimentación principal.
También consulte
Accel, Inertia
746
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Ejemplo de instrucción Weight
Esta instrucción Weight en la ventana Command muestra la siguiente configuración.
> weight
2.000, 200.000
>
Define el peso de la mano (3 kg) con la instrucción Weight
Weight 3.0
Define el peso de la carga en el eje S adicional (30 kg) con la instrucción Weight
Weight 30.0, S
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
747
Función Weight
Arroja un parámetro Weight.
Sintaxis
Weight(paramNumber)
Parámetros
paramNumber Expresión entera que contiene uno de los siguientes valores:
1: Peso de carga útil
2: Longitud del brazo
3: Carga en el eje S adicional.
4: Carga en el eje T adicional.
Valores devueltos
Número real que contiene el valor del parámetro.
También consulte
Inertia, Weight
Ejemplo de función Weight
Print "The current Weight parameters are: ", Weight(1)
748
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Where
Muestra los datos de posición actuales del robot.
Sintaxis
Where [localNumber]
Parámetros
localNumber Opcional. El número del sistema de coordenadas local. El valor predeterminado es
Local 0.
También consulte
Joint, PList, Pulse
Ejemplo de instrucción Where
El tipo de visualización puede ser distinto según el tipo de robot y la existencia de ejes adicionales.
El siguiente ejemplo es para un robot SCARA sin el eje adicional.
>where
WORLD: X: 350.000 mm Y: 0.000 mm Z: 0.000 mm U: 0.000 deg V: 0.000 deg
W: 0.000 deg
JOINT: 1: 0.000 deg 2: 0.000 deg 3: 0.000 mm 4: 0.000 deg
PULSE: 1: 0 pls 2: 0 pls 3: 0 pls 4: 0 pls
> local 1, 100,100,0,0
> where 1
WORLD: X: 250.000 mm Y:-100.000 mm Z: 0.000 mm U: 0.000 deg V: 0.000
deg W: 0.000 deg
JOINT: 1: 0.000 deg 2: 0.000 deg 3: 0.000 mm 4: 0.000 deg
PULSE: 1: 0 pls 2: 0 pls 3: 0 pls 4: 0 pls
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
749
Función WindowsStatus
Arroja el estado de inicio de Windows.
Sintaxis
WindowsStatus
Valores devueltos
El valor entero representa el estado de inicio actual de Windows. El estado de inicio actual de Windows es
devuelto en una imagen de bit y muestra el siguiente estado.
Nombre de la
función
Reserva del sistema Con capacidad de RC+
Con capacidad de
computadora
Número de bit
15 a 2: 1 0
Detalles de
funciones
disponibles
Vision Guide
(Tipo de digitalizador de
video)
API de RC+
Bus de campo maestro
Archivo de
computadora
Computadora RS-232C
Acceso a base de datos
Llamada de DLL
Descripción
Esta función se usa para comprobar el estado de inicio del controlador cuando su configuración está definida
en "Independent mode" (Modo independiente). Cuando la configuración del controlador está definida en
"Cooperative mode" (Modo cooperativo), los programas no se podrán iniciar hasta que tanto la función RC+ y
la función de computadora estén disponibles.
Ejemplo de función WindowsStatus
Print "The current PC Booting up Status is: ", WindowsStatus
750
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WOpen
Abre un archivo para escritura.
Sintaxis
WOpen fileName As #fileNumber
. .
Close #fileNumber
Parámetros
fileName Una expresión de cadena que contiene la ruta y el nombre de archivo.
Si se omite la ruta, se muestra el archivo en la carpeta actual.
Consulte ChDisk para conocer detalles.
fileNumber Expresión entera de 30 a 63
Descripción
Abre el archivo especificado con el fileNumber especificado. Esta instrucción se usa para abrir y escribir
datos en el archivo especificado. (Para agregar datos, consulte la explicación de AOpen.)
Si el nombre de archivo especificado no existe en la carpeta actual del disco, WOpen crea el archivo y
escribe en él. Si el nombre de archivo especificado existe, WOpen borra todos los datos en el archivo y
escribe en él.
fileNumber identifica el archivo mientras está abierto y no se puede usar para hacer referencia a un archivo
diferente hasta que se cierre el archivo actual. fileNumber es utilizado por otras operaciones como Print#,
Write, Seek y Close.
Close cierra el archivo y libera el número de archivo.
Recomendamos que use la función FreeFile para obtener el número de archivo para que el mismo número
no sea utilizado por más de una tarea.
Notas
Hay una ruta de red disponible.
Búfer de escritura en archivo
La escritura en archivo se almacena en el búfer. Los datos almacenados en el búfer se pueden escribir con
la instrucción Flush. También, al cerrar un archivo con la instrucción Close, los datos almacenados en el
búfer se pueden escribir.
También consulte
AOpen, BOpen, Close, Print#, ROpen, UOpen, FreeFile
Ejemplo de instrucción WOpen
Integer fileNum, i, j
fileNum = FreeFile
WOpen "TEST.DAT" As #fileNum
For i = 0 To 100
Print #fileNum, i
Next i
Close #fileNum
fileNum = FreeFile
ROpen "TEST.DAT" As #fileNum
For i = 0 to 100
Input #fileNum, j
Print "data = ", j
Next i
Close #fileNum
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
751
Instrucción WorkQue_Add
Agrega los datos de cola de trabajo (datos de punto y datos de usuario) a la cola de trabajo especificada.
Sintaxis
WorkQue_Add WorkQueNum, pointData [, userData ]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
pointData Los datos de punto que se van a agregar a la cola de trabajo.
userData Opcional. Expresión real utilizada para registrar los datos del usuario junto con los
datos de punto.
Si se omite, 0 (número real) se registra como los datos del usuario.
Descripción
pointData y useData se agregan al final de la cola de trabajo. Sin embargo, cuando el tipo de orden es
especificado por WorkQue_Sort, se registran según el tipo de orden especificado.
Cuando la distancia de prevención de registro doble es definida por WorkQue_Reject, se calcula la
distancia desde el dato de punto registrado anteriormente. Si los datos de punto son menores que esa
distancia, los datos de punto y los datos del usuario no se agregan a la cola de trabajo. En este caso, no
ocurre un error.
El límite superior de los datos de la cola de trabajo es 1000. Los datos de la cola de trabajo se eliminan con
WorkQue_Remove cuando dejan de ser utilizados.
También consulte
WorkQue_AutoRemove, WorkQue_Len, WorkQue_Reject, WorkQue_Remove, WorkQue_Sort
Ejemplo de instrucción WorkQueAdd
Integer x, y
Real u
P0 = XY(300, 300, 300, 90, 0, 180)
P1 = XY(200, 280, 150, 90, 0, 180)
P2 = XY(200, 330, 150, 90, 0, 180)
P3 = XY(-200, 280, 150, 90, 0, 180)
Pallet 1, P1, P2, P3, 10, 10
x = 1
y = 1
u = 5.3
WorkQue_Add 1, Pallet(1, x, y), u
752
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WorkQue_AutoRemove
Define la función de eliminación automática en la cola de trabajo especificada.
Sintaxis
WorkQue_AutoRemove WorkQueNum ,{True | False}
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
True | False True: activa la función de eliminación automática.
False: desactiva la función de eliminación automática.
Descripción
Define la función de eliminación automática en la cola de trabajo. Cuando la eliminación automática es
activada, los datos de punto y los datos de usuario se eliminan automáticamente de la cola de trabajo
cuando los datos de punto se obtienen de la cola de trabajo por WorkQue_Get.
Cuando está desactivada la eliminación automática, los datos de punto y los datos de usuario no se
eliminan. Para eliminarlos, use WorkQue_Remove.
Los datos de usuario obtenidos por WorkQue_UserData no se eliminan automáticamente.
La función de eliminación automática se puede definir para cada cola de trabajo.
También consulte
Función WorkQue_AutoRemove, WorkQue_Get
Ejemplo de instrucción WorkQue_AutoRemove
WorkQue_AutoRemove 1, True
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
753
Función WorkQue_AutoRemove
Arroja el estado de la función de eliminación automática definida en la cola de trabajo.
Sintaxis
WorkQue_AutoRemove (WorkQueNum)
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
Valores devueltos
True si la función de eliminación automática de la cola de trabajo especificada está activada, de lo contrario
False.
También consulte
WorkQue_AutoRemove, WorkQue_Get
Ejemplo de función WorkQue_AutoRemove
Boolean autoremove
autoremove = WorkQue_Reject(1)
754
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función WorkQue_Get
Arroja los datos de punto desde la cola de trabajo especificada.
Sintaxis
WorkQue_Get(WorkQueNum [, index ] )
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
index Opcional. Expresión entera que representa el índice de los datos de la cola que desea
adquirir. (el comienzo del número de índice es 0)
Valores devueltos
Los datos de punto son arrojados desde la cola de trabajo especificada.
Descripción
Use WorkQue_Get para adquirir los datos de punto desde la cola de trabajo especificada. Si se omite el
índice, se arrojan los primeros datos de los datos de la cola. Si se especifica el índice, se arrojan los datos
de punto del índice especificado.
Cuando la función de eliminación automática está desactivada por WorkQue_AutoRemove, los datos de
punto y los datos de usuario son eliminados por WorkQue_Get.
Cuando está desactivada la eliminación automática, los datos de punto y los datos de usuario no se
eliminan. Para eliminarlos, use WorkQue_Remove.
También consulte
WorkQue_AutoRemove, WorkQue_Len, WorkQue_Reject, WorkQue_Remove, WorkQue_Sort
Ejemplo de función WorkQue_Get
' Salta a la primera pieza en la cola y la sigue
Jump WorkQue_Get(1)
On gripper
Wait .1
Jump place
Off gripper
Wait .1
WorkQueRemove 1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
755
Función WorkQue_Len
Arroja el número de los datos de cola de trabajolidos registrados en la cola de trabajo especificada.
Sintaxis
WorkQue_Len(WorkQueNum)
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
Valores devueltos
La expresión entera que representa el número de datos de cola de trabajo válidos registrados.
Descripción
Arroja el número de datos de cola de trabajo válidos registrados.
También se puede utilizar WorkQue_Len como argumento para la instrucción de espera.
También consulte
WorkQue_Add, WorkQue_Get, WorkQue_Remove
Ejemplo de función WorkQue_Len
Do
Do While WorkQue_Len(1) > 0
WorkQue_Remove 1, 0
Loop
If WorkQue_Len(1) > 0 Then
Jump WorkQue_Get(1, 0) C0
On gripper
Wait .1
WorkQue_Remove 1, 0
Jump place
Off gripper
Jump idlePos
EndIf
Loop
756
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WorkQue_List
Muestra la lista de datos (datos de punto y datos de usuario) de la cola de trabajo especificada.
Sintaxis
WorkQue_List WorkQueNum, [numOfItems ]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
numOfItems Opcional. Expresión entera para especificar la cantidad de elementos que desea
mostrar. Si se omite, se muestran todos los elementos.
Nota
Este comando solo funcionará en la ventana Command.
También consulte
WorkQue_Add, WorkQue_Get, WorkQue_Remove
Ejemplo de instrucción WorkQue_List
Desde la ventana Command:
> WorkQue_List 1
Queue 0 = XY( 1.000, 1.000, 0.000, 0.000 ) /R /0 (
0.000)
Queue 1 = XY( 3.000, 1.000, 0.000, 0.000 ) /R /0 (
2.000)
Queue 2 = XY( 4.000, 1.000, 0.000, 0.000 ) /R /0 (
3.000)
Queue 3 = XY( 5.000, 1.000, 0.000, 0.000 ) /R /0 (
4.000)
Queue 4 = XY( 6.000, 1.000, 0.000, 0.000 ) /R /0 (
5.000)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
757
Instrucción WorkQue_Reject
Define y muestra la distancia mínima para prevenir el registro doble en la cola de trabajo especificada.
Sintaxis
WorkQue_Reject WorkQueNum [,rejectDistance ]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
rejectDistance Opcional cuando se ejecuta desde la ventana Command. Expresión real que especifica
la distancia mínima permitida entre piezas en la cola en milímetros. Si se omite,
aparece la rejectDistance actual.
Descripción
Utilice WorkQue_Reject para especificar la distancia mínima entre las piezas a fin de evitar el registro
doble de los datos de punto. La cola de trabajo no se puede registrar cuando WorkQue_Add registra datos
de punto menores que la distancia mínima. WorkQue_Reject ayuda a que el sistema filtre el registro doble.
El valor predeterminado es 0 mm.
WorkQue_Reject se debe ejecutar antes de agregar los datos de la cola de trabajo (datos de punto y de
usuario) con WorkQue_Add.
La prevención de registro doble se puede definir para cada cola de trabajo.
También consulte
WorkQue_Add, Función WorkQue_Reject
Ejemplo de instrucción WorkQue_Reject
WorkQue_Reject 1, 2.5
758
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función WorkQue_Reject
Arroja la distancia de la función de prevención de registro doble definida en la cola de trabajo especificada.
Sintaxis
WorkQue_Reject (WorkQueNum)
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
Valores devueltos
Valor real en milímetros
También consulte
WorkQue_Add, WorkQue_Reject
Ejemplo de función WorkQue_Reject
Real rejectDist
RejectDist = WorkQue_Reject(1)
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
759
Instrucción WorkQue_Remove
Elimina los datos de cola de trabajo (datos de punto y datos de usuario) de la cola de trabajo especificada.
Sintaxis
WorkQue_Remove WorkQueNum [, index | All]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
index Opcional. La expresión entera que representa el índice de los datos de la cola que
desea eliminar. (el comienzo del número de índice es 0).
Especifique All cuando elimine todos los datos de cola desde la cola de trabajo.
Descripción
Use WorkQue_Remove para eliminar uno o más elementos de los datos de una cola de trabajo.
Normalmente, se eliminan elementos de la cola después de terminar con los datos.
También consulte
WorkQue_Add
Ejemplo de instrucción WorkQue_Remove
Jump WorkQue_Get(1)
On gripper
Wait .1
Jump place
Off gripper
Wait .1
' Elimina los datos de WorkQueue
WorkQue_Remove 1
760
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WorkQue_Sort
Define y muestra el tipo de orden para la cola de trabajo especificada.
Sintaxis
WorkQue_Sort WorkQueNum [,SortMethod ]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
SortMethod Especifica el método de orden con una expresión entera o con la siguiente constante.
Esto se puede omitir si se ejecuta desde la ventana Command. Si se omite, aparece el
método de orden actual.
Constante Valor Descripción
QUE_SORT_NONE 0 Sin orden (orden de registro para la cola de
trabajo)
QUE_SORT_POS_X 1 Orden ascendente de coordenada X
QUE_SORT_INV_X 2 Orden descendente de coordenada X
QUE_SORT_POS_Y 3 Orden ascendente de coordenada Y
QUE_SORT_INV_Y 4 Orden descendente de coordenada Y
QUE_SORT_POS_USER 5 Datos de usuario (valor real) en orden ascendente
QUE_SORT_INV_USER 6 Datos de usuario (valor real) en orden
descendente
Descripción
Define el método de orden de la cola de trabajo. Cuando los datos de punto y los datos de usuario son
agregados por WorkQue_Add, se registran en la cola de trabajo según el método de orden especificado.
Cuando los datos de usuario son definidos nuevamente por WorkQue_UserData, el orden de las colas de
trabajo cambia según el método de orden especificado.
WorkQue_Sort se debe ejecutar antes de agregar los datos de la cola de trabajo (datos de punto y de
usuario) a los datos de la cola de trabajo con WorkQue_Add.
WorkQue_Sort se debe ejecutar antes de volver a configurar los datos de usuario con WorkQue_UserData.
El método de orden se puede definir para cada cola de trabajo.
También consulte
WorkQue_Add, WorkQue_UserData
Ejemplo de instrucción WorkQue_Sort
WorkQue_Sort 1, QUE_SORT_POS_X
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
761
Función WorkQue_Sort
Arroja el método de orden de la cola de trabajo especificada.
Sintaxis
WorkQue_Sort (WorkQueNum)
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
Valores devueltos
Una expresión entera que representa el método de orden definido en la cola de trabajo.
4 = Sin orden (orden de registro para la cola de trabajo)
5 = Orden ascendente de coordenada X
6 = Orden descendente de coordenada X
7 = Orden ascendente de coordenada Y
8 = Orden descendente de coordenada Y
9 = Datos de usuario (valor real) en orden ascendente
10 = Datos de usuario (valor real) en orden descendente
También consulte
WorkQue_Add, WorkQue_Sort, WorkQue_UserData
Ejemplo de función WorkQue_Sort
Integer quesort
quesort = WorkQue_Sort(1)
762
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción WorkQue_UserData
Restablece y muestra los datos de usuario (número real) registrados en la cola de trabajo especificada.
Sintaxis
WorkQue_UserData WorkQueNum, [index], [userData]
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
index Expresión entera que representa el índice de los datos de la cola de trabajo. (el
comienzo del número de índice es 0). Opcional cuando se ejecuta desde la ventana
Command.
userData Expresión entera que representa los datos de usuario que se volverán a definir. Esto se
puede omitir cuando se ejecuta desde la ventana Command. Si se omite, se muestran
los datos del usuario actual (expresión real).
Descripción
Restablece y muestra los datos de usuario registrados actualmente en la cola de trabajo especificada.
Si el método de orden es especificado por WorkQue_Sort, el orden de los datos de la cola de trabajo
cambia según el método de orden especificado.
QUE_SORT_POS_USER : Datos de usuario (expresión real) en orden ascendente
QUE_SORT_INV_USER : Datos de usuario (expresión real) en orden descendente
También consulte
Función WorkQue_UserData
Ejemplo de WorkQue_UserData
WorkQue_UserData 1, 1, angle
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
763
Función WorkQue_UserData
Arroja los datos de usuario (valor real) registrados en la cola de trabajo especificada.
Sintaxis
WorkQue_UserData (WorkQueNum [, index])
Parámetros
WorkQueNum Expresión entera (1 a 16) que especifica el número de cola de trabajo.
index Opcional. Expresión entera que representa el índice de los datos de la cola de trabajo.
(el primer número de índice es 0).
Valores devueltos
Valor real.
También consulte
WorkQue_UserData
Ejemplo de función WorkQue_UserData
' Elimina de la cola
angle = WorkQue_UserData(1) ' pasa de forma predeterminada al índice de cola de 0
Jump WorkQue_Get(1) :U(angle)
WorkQue_Remove 1
764
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Wrist
Define la orientación de la muñeca de un punto.
Sintaxis
(1) Wrist point, [Flip | NoFlip]
(2) Wrist
Parámetros
point Pnumber o P(expr) o etiqueta de punto.
Flip | NoFlip Representa la orientación de la muñeca.
Valores devueltos
Cuando se omiten ambos parámetros, aparece la orientación de la muñeca para la posición del robot actual.
Si se omite Flip | NoFlip, se muestra la orientación de la muñeca para el punto especificado.
También consulte
Función Elbow, Hand, J4Flag, J6Flag, Wrist
Ejemplo de instrucción Wrist
Wrist P0, Flip
Wrist P(mypoint), NoFlip
P1 = 320.000, 400.000, 350.000, 140.000, 0.000, 150.000
Wrist P1, NoFlip
Go P1
Wrist P1, Flip
Go P1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
765
Función Wrist
Arroja la orientación de la muñeca de un punto.
Sintaxis
Wrist [(point)]
Parámetros
point Opcional. Pnumber o P(expr) o etiqueta de punto o expresión de punto. Si se omite point, se
arroja la orientación de la muñeca de la posición actual del robot.
Valores devueltos
1 NoFlip (/NF)
2 Flip (/F)
También consulte
Instrucción Elbow, Hand, J4Flag, J6Flag, Wrist
Ejemplo de función Wrist
Print Wrist(pick)
Print Wrist(P1)
Print Wrist
Print Wrist(P1 + P2)
766
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción Write
Escribe caracteres en un archivo o puerto de comunicación sin un terminador de final de línea.
Sintaxis
Write #portNumber, string
Parámetros
portNumber mero de ID que especifica el archivo o el puerto de comunicación.
El número de archivo se puede especificar en las instrucciones ROpen, WOpen y
AOpen.
El número de puerto de comunicación se puede especificar en las instrucciones
OpenCom (RS-232C) u OpenNet (TCP/IP).
string Expresión de cadena que se escribirá en el archivo.
Descripción
Write es distinto a Print en que no agrega un terminador de fin de línea.
Nota
Búfer de escritura en archivo
La escritura en archivo se almacena en el búfer. Los datos almacenados en el búfer se pueden escribir con
la instrucción Flush. También, al cerrar un archivo con la instrucción Close, los datos almacenados en el
búfer se pueden escribir.
También consulte
Print, Read
Ejemplo de instrucción Write
OpenCom #1
For i = 1 to 10
Write #1, data$(i)
Next i
CloseCom #1
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
767
Instrucción WriteBin
Escribe datos binarios en un archivo o puerto de comunicación.
Sintaxis
WriteBin #portNumber, data
WriteBin #portNumber, array(), count
Parámetros
portNumber Número de ID que especifica el archivo o el puerto de comunicación
El número de archivo puede ser especificado en instrucciones BOpen.
El número de puerto de comunicación se puede especificar en las instrucciones OpenCom
(RS-232C) u OpenNet (TCP/IP).
data Expresión entera que contiene los datos que se escribirán.
array() Nombre de un byte, entero o variable de matriz larga que contiene los bytes de datos que se
escribirán. Especifica la variable de matriz de una dimensión.
count Especifica el número de bytes a escribir.
El recuento especificado tiene que ser menor o igual que el número de elemento de la
matriz, y también menor que 256 bytes.
Si el puerto de comunicación (TCP/IP) es el asunto, el recuento tiene que ser menor o igual
que el número de matriz, y también menor que 1024 bytes.
También consulte
ReadBin, Write
Ejemplo de instrucción WriteBin
Integer i, data(100)
OpenCom #1
For i = 0 To 100
WriteBin #1, i
Next I
WriteBin #1, data(), 100
CloseCom #1
768
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Operador Xor
Realiza la operación Xor bitwise (incluido OR) en las dos expresiones.
Sintaxis
result = expr1 Xor expr2
Parámetros
expr1, expr2 Un valor numérico o un nombre de variable.
result Un número entero.
Resultado
Arroja un resultado de una operación bitwise Xor.
Descripción
El operador Xor realiza la operación Xor bitwise sobre los valores de los operandos. Cada bit de los
resultados es el valor con Xor de los bits correspondientes de los dos operandos.
Si el bit en expr1
es
Y el bit en expr2 es
El resultado
es:
0 0 0
0 1 1
1 0 1
1 1 0
También consulte
And, LShift, Not, Or, Rshift
Ejemplo del operador Xor
>print 2 Xor 6
4
>
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
769
Instrucción Xqt
Inicia la ejecución de una tarea desde el interior de otra tarea.
Sintaxis
Xqt [taskNumber,] funcName [(argList)] [,Normal | NoPause | NoEmgAbort ]
Parámetros
taskNumber Opcional. El número de tarea de la tarea que se ejecutará. El rango del número de
tarea es de 1 a 32.
Para las tareas en segundo plano, especifica un valor entero desde 65 a 80.
funcName El nombre de la función a ejecutar.
argList Opcional. Lista de argumentos que se transfieren al procedimiento de la función
cuando se lo llama. Múltiples argumentos se separan con comas.
taskType Opcional. Normalmente se omite.
Para las tareas en segundo plano, especificar un tipo de tarea no significa nada.
Normal Ejecuta una tarea normal.
NoPause Ejecuta una tarea que no hace una pausa con la instrucción Pause, la ocurrencia de la
señal de entrada Pause o la apertura de la puerta de seguridad.
NoEmgAbort Ejecuta una tarea que continúa procesando con la parada de emergencia o la
ocurrencia de un error.
Descripción
Xqt inicia la función especificada y arroja inmediatamente.
Normalmente, no se requiere el parámetro taskNumber. Cuando se omite taskNumber, SPEL
+
asigna
automáticamente un número de tarea a la función, para que no tenga que hacer un seguimiento de los
números de tarea que están en uso.
Notas
Tipo de tarea
Especifica NoPause o NoEmgAbort como un tipo de tarea para ejecutar una tarea que monitorea el
controlador completo.
Sin embargo, asegúrese de usar estas tareas especiales según la comprensión del movimiento de la tarea
con SPEL
+
o una restricción de tareas especiales.
Para conocer detalles de las tareas especiales, consulte la sección Tareas especiales del Manual del usuario
de EPSON RC+.
Tarea en segundo plano
Cuando ejecute Xqt en una tarea en segundo plano, la tarea generada también es la tarea en segundo plano.
Para ejecutar la función principal desde una tarea en segundo plano, use la instrucción StartMain.
Los detalles de la tarea en segundo plano se explican en el Manual del usuario de EPSON RC+: 6.20
Tarea especial.
770
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Comandos no disponibles en la tarea NoEmgAbort y la tarea en segundo plano
Los siguientes comandos no se pueden ejecutar en una tarea NoEmgAbort y tarea en segundo plano.
A Accel F Find Q QP V VCal
AccelR
Fine
QPDecelR
VcalPoints
AccelS G Ir
QPDecelS
VCls
Arc H Home R Range
VCreateCalibration
Arc3
HomeCl
r
Reset *1
VCreateObject
Arch
HomeSet
Restart *2
VCreateSequence
Arm
Hord
r
S Sense
VDefArm
ArmSet I Inertia
SFree
VDefGetMotionRange
ArmCl
r
J JTran
SingularityAngle
VDefLocal
AutoLJM
Jump
SingularitySpeed
VDefSetMotionRange
AvoidSingularity
Jump3
SLock
VDefTool
B Base
Jump3CP
SoftCP
VDeleteCalibration
BGo
JRange
Speed
VDeleteObject
BMove L LimitTorque
SpeedFactor
VDeleteSeuence
Box
LimZ
SpeedR
VGet
BoxCl
r
LimZMargin
SpeedS
VGoCenter
Brake
Local
SyncRobots
VLoad
C Cnv_AbortTrac
k
LocalCl
r
T TC
VLoadModel
Cnv_Accel M MCal
TGo
VRun
Cnv_DownStrea
m
MCord
r
Till
VSave
Cnv_Fine
Moto
r
TLSet
VSaveImage
Cnv_Mode
Move
TLClr
VSaveModel
Cnv_QueAdd O OLAccel
TMove
VSet
Cnv_QueMove P Pass
Tool
VShowModel
Cnv_QueReject
Pg_LSpeed
Trap (Detección)
VStasShow
Cnv_QueUserData
Pg_Scan
VStatsReset
Cnv_Trigge
r
Plane
VStatsResetAll
Cnv_UpStream
PlaneCl
r
VStatsSave
CP
Powe
r
VTeach
Curve
PTPBoost
VTrain
CVMove
Pulse
W WaitPos
E ECP
Weight
ECPCl
r
X Xqt *3
ECPSet
XYLim
*1 Se puede ejecutar Reset Error
*2 Ejecutable desde la tarea de procesamiento Trap Error
*3 Ejecutable desde las tareas en segundo plano
También consulte
Function/Fend, Halt, Resume, Quit, Startmain, Trap
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
771
Ejemplo de instrucción Xqt
Function main
Xqt flash 'Inicia la función Flash como la tarea 2
Xqt Cycle(5) 'Inicia la función Cycle como la tarea 3
Do
Fend
Loop
Wait 3 'Ejecuta la tarea 2 por 3 segundos
Halt flash 'Suspende la tarea
Wait 3
Resume flash 'Reanuda la tarea
Function Cycle(count As Integer)
Integer i
For i = 1 To count
Jump pick
On vac
Wait .2
Jump place
Off vac
Wait .2
Next i
Fend
Function flash
Do
Fend
Loop
On 1
Wait 0.2
Off 1
Wait 0.2
772
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Función XY
Arroja un punto desde coordenadas individuales que se pueden usar en una expresión de punto.
Sintaxis
XY(x, y, z, u, [v, w])
Parámetros
x Expresión real que representa la coordenada X.
y Expresión real que representa la coordenada Y.
z Expresión real que representa la coordenada Z.
u Expresión real que representa la coordenada U.
v Opcional para los robots de 6 ejes (incluye la serie N). Expresión real que representa la coordenada
V.
w Opcional para los robots de 6 ejes (incluye la serie N). Expresión real que representa la coordenada
W.
Valores devueltos
Un punto construido de las coordenadas especificadas.
Descripción
Cuando no usa el eje ST adicional, no necesita ser cuidadoso con respecto a nada en particular.
Puede mover el manipulador a la coordenada especificada con la función XY como se indica a
continuación:
Go XY(60,30,-50,45)
Cuando usa el eje ST adicional, debe tener cuidado.
La función XY arroja solo los datos de punto del robot, sin incluir el eje adicional.
Si usa la función XY del siguiente modo: Go XY(60,30,-50,45), el manipulador se moverá a la coordenada
especificada pero el eje adicional no se moverá. Si también desea mover el eje adicional, especifique lo
siguiente: Go XY(60,30,-50,45) : ST( 10,20).
Para conocer detalles acerca del eje adicional, consulte el Manual del usuario de EPSON RC+. 20. Eje
adicional.
También consulte
JA, Expresión Point, Función ST
Ejemplo de función XY
P10 = XY(60, 30, -50, 45) + P20
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
773
Instrucción XYLim
Define o muestra los límites del rango de movimiento permisibles de XY para el robot.
Sintaxis
XYLim minX, maxX, minY, maxY, [minZ], [maxZ]
XYLim
Parámetros
minX La posición mínima de la coordenada X a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada X menor que minX.)
maxX La posición máxima de la coordenada X a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada X mayor que maxX.)
minY La posición mínima de la coordenada Y a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada Y menor que minY.)
maxY La posición máxima de la coordenada Y a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada Y mayor que maxY.)
minZ Opcional. La posición mínima de la coordenada Z a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada Z menor que minZ.)
maxZ Opcional. La posición máxima de la coordenada Z a la que puede viajar el manipulador.
(El manipulador no se puede mover a una posición con una coordenada Z mayor que maxZ.)
Valores devueltos
Muestra los valores de XYLim actuales cuando se usan sin parámetros.
Descripción
XYLim se usa para definir los límites de rango de movimiento XY. Muchos sistemas de robot permiten a
los usuarios definir límites de articulación, pero el lenguaje SPEL
+
permite definir límites de articulación y
de movimiento. En efecto, esto permite que los usuarios creen un envolvente de trabajo para la aplicación.
(Tenga en mente que los límites de rango de articulación también se pueden definir con SPEL.)
El rango de movimiento estableció con valores XYLim se aplica solo a las posiciones de objetivo del
comando de movimiento, y no a las rutas de movimiento desde la posición inicial a la posición objetivo.
Por lo tanto, el brazo no puede moverse fuera del rango XYLim durante el movimiento. (Es decir, el rango
XYLim no afecta a Pulse.)
Notas
Desactivar la comprobación del rango de movimiento
Hay muchas aplicaciones que no requieren comprobar el límite del rango de movimiento y, por este
motivo, hay un método simple para desactivar esta comprobación de límite. Para desactivar la
comprobación de límite de rango de movimiento, defina los valores de Motion Range Limit para minX,
maxX, minY y maxY en "0". Por ejemplo XYLim 0, 0, 0, 0.
Valores de límite de rango de movimiento predeterminados
Los valores predeterminados de la instrucción XYLim son "0, 0, 0, 0". (Motion Range Limit Checking está
desactivado.)
Consejo
Configuración de señalar y activar para XYLim
EPSON RC+ cuenta con un cuadro de diálogo para señalar y activar que permite definir los límites de
rango de movimiento. El método más simple de configurar los valores XYLim es mediante el uso de la
página XYZ Limits (Límites de XYZ) de Robot Manager.
774
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
También consulte
Range
Ejemplo de instrucción XYLim
Este simple ejemplo con la ventana Command define y luego muestra la configuración de XYLim:
> xylim -200, 300, 0, 500
> XYLim
-200.000, 300.000, 0.000, 500.000
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
775
Función XYLim
Arroja los datos de punto para el límite superior o inferior de la región XYLim.
Sintaxis
XYLim(limit)
Parámetros
limit Expresión entera que especificará el límite que se arrojará.
1: Límite inferior.
2: Límite superior.
Valores devueltos
Cuando se especifica "1" para los datos de referencia, arroja la posición de límite inferior del eje X
especificada en XYLim como X de datos de punto, la posición de límite inferior del eje Y como Y y la
posición del límite inferior del eje Z como Z.
Cuando se especifica "2" para los datos de referencia, arroja la posición de límite superior del eje X
especificada en XYLim como X de datos de punto, la posición de límite superior del eje Y como Y y la
posición del límite superior del eje Z como Z.
También consulte
Instrucción XYLim
Ejemplo de función XYLim
P1 = XYLim(1)
P2 = XYLim(2)
776
Manual de referencia del lenguaje SPEL+ Rev.2
Manual de referencia del lenguaje SPEL+
Instrucción XYLimClr
Borra la definición XYLim.
Sintaxis
XYLimClr
También consulte
XYLim, XYLimDef
Ejemplo de función XYLimClr
En este ejemplo se usa la función XYLimClr en un programa:
Function ClearXYLim
If XYLimDef = True Then
XYLimClr
EndIf
Fend
Manual de referencia del lenguaje SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
777
Función XYLimDef
Indica si se definió o no XYLimClr.
Sintaxis
XYLimDef
Valores devueltos
Es True si se definió XYLimClr, de lo contrario es False.
También consulte
XYLim, XYLimClr
Ejemplo de función XYLimDef
En este ejemplo se usa la función XYLimDef en un programa:
Function ClearXYLim
If XYLimDef = True Then
XYLimClr
EndIf
Fend
Mensajes de error de SPEL+.
Manual de referencia del lenguaje SPEL+ Rev.2 778
Para obtener ayuda con cualquier error de SPEL
+
, coloque el cursor sobre el mensaje de error en las
ventanas Run o Command y pulse la tecla F1.
N.º Mensaje Solución Nota 1 Nota 2
1
Se inició el programa de control del
controlador.
-
2
Término debido a bajo voltaje de la
fuente de alimentación.
-
3
Se completó el programa de control
del controlador.
Se guarda este registro cuando se
reinicia el controlador desde
EPSON RC+ o TP1.
4
Se limpió el área de guardado de las
variables conservadas.
-
5
Se inició Function Main.
-
6
Se inició Function Main.
Posteriormente, los mismos registros
se omiten.
Omita el registro "Se inició Function
Main" para evitar que se acabe el
espacio del historial del sistema.
7
Se guardó el número de serie.
-
8
Se ejecutó el respaldo del sistema.
-
9
Se ejecutó la restauración del sistema.
-
10
Se inicializaron los parámetros del
robot.
-
11
Cambió el valor del pulso de
compensación entre el origen del
codificador y el sensor de reposo
(HOFS).
-
Valor después
del cambio
Valor
antes del
cambio
17
Se activó el modo de guardado de
mensajes. Suceso poco común.
-
18
Se ejecutó la conversión del archivo de
parámetros del robot.
-
19 Se instaló el firmware de la DU.
-
20
Se guardó la configuración de
habilitación en el modo Teach
(Enseñar).
-
21
Se cambió la configuración de
habilitación en el modo Teach.
-
23
Se ejecutó la parada de emergencia
(EStop).
-
Número de
robot que
ejecuta el
comando de
movimiento
Estado del
controlador
24
Se abrió la protección.
-
Número de
robot que
ejecuta el
comando de
movimiento
Estado del
controlador
25 Cambió la configuración del robot.
-
Número
del robot
26 Cambió la configuración de alarma.
-
Número de
alarma
50
Se restableció la alarma de la batería
que corresponde al controlador.
-
51
Se restableció la alarma de la batería
que corresponde al robot.
-
Número del
robot
52
Se restableció la alarma de lubricado
que corresponde al robot.
-
Número del
robot
100 Dispositivo conectado al controlador.
-
Mensajes de error de SPEL
+
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 779
N.º Mensaje Solución Nota 1 Nota 2
101
Cambió el dispositivo de la consola.
-
20: TP3
21: RC+
22: E/S remota
26: Ethernet
remoto
29: RS232
remoto
102 Cambió el dispositivo de visualización.
-
103 Cambió el modo de trabajo.
-
104
Cambió el modo cooperativo.
-
0:
Independiente
1: Cooperativo
110
Se instaló el firmware del controlador.
-
1: Configurar
2: Inicializar
3: Actualizar
4: Recuperar
111
Se restauró la dirección IP.
Puede guardar este registro cuando
se
instala el firmware del controlador.
112 Controlador reiniciado
-
120 RC+ conectado al controlador.
-
1: Ethernet
2: USB
121 TP conectado al controlador.
-
123 RC+ desconectado del controlador.
-
124 TP desconectado del controlador.
-
126
El modo de trabajo cambió a AUTO
(Automático).
-
127
El modo de trabajo cambió a Program
(Programar).
-
128
El modo de trabajo cambió a Teach
(Enseñar).
-
129
Ethernet remoto conectado al
controlador
-
130
Ethernet remoto desconectado del
controlador
-
131
Comunicación remota conectada al
controlador
-
132
Comunicación remota desconectada
del controlador
-
Estado de cierre
de sesión
0: Normal
1: Anormal
(tiempo de
espera)
133
El modo de trabajo cambió a Test
(Probar).
-
400
Se activó la alarma de la batería que
corresponde al controlador.
Reemplace la batería y reinicie la
alarma.
Reemplace la batería y reinicie la
alarma.
401
Se activó la alarma de la batería que
corresponde al robot. Reemplace la
batería y reinicie la alarma.
Reemplace la batería y reinicie la
alarma.
Número del robot
402
Se activó la alarma de lubricado que
corresponde al robot. Lubrique el
robot y reinicie la alarma.
Lubrique el robot y reinicie la
alarma.
Número del robot
410
Se activó la alarma de la batería que
corresponde al controlador.
Reemplace la batería y reinicie la
alarma.
Reemplace la batería.
Después de reemplazar la batería,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance] (Herramientas -
Controlador - Mantenimiento).
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
780
N.º Mensaje Solución Nota 1 Nota 2
411
Se activó la alarma de la batería que
corresponde al robot. Reemplace la
batería y reinicie la alarma.
Reemplace la batería.
Después de reemplazar la batería,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-[
Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
412
Se activó la alarma de la correa que
corresponde al robot. Reemplace la
correa y reinicie la alarma.
Reemplace la correa de regulación.
Después de reemplazar las correas
de regulación, reinicie la alarma en
EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
413
Se activó la alarma de lubricado que
corresponde al robot. Lubrique las
unidades de ranura del tornillo esférico
y reinicie la alarma.
Lubrique la ranura del tornillo
esférico.
Después de realizar el lubricado,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
414
Se activó la alarma del motor que
corresponde al robot. Reemplace el
motor y reinicie la alarma.
Reemplace el motor.
Después de reemplazar el motor,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
415
Se activó la alarma del engranaje que
corresponde al robot. Reemplace las
unidades de engranaje y reinicie la
alarma.
Reemplace las unidades de
engranaje.
Después de reemplazar las
unidades de engranaje, reinicie la
alarma en EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
416
Se activó la alarma de la ranura del
tornillo esférico que corresponde al
robot. Reemplace la ranura del tornillo
esférico y reinicie la alarma.
Reemplace la ranura del tornillo
esférico.
Después de reemplazar la ranura
del tornillo esférico, reinicie la
alarma en EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
420
Se activó la alarma de la batería que
corresponde al controlador.
Reemplace la batería y reinicie la
alarma.
Reemplace la batería.
Después de reemplazar la batería,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance] (Herramientas -
Controlador - Mantenimiento).
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
421
Se activó la alarma de la batería que
corresponde al robot. Reemplace la
batería y reinicie la alarma.
Reemplace la batería.
Después de reemplazar la ranura
del tornillo esférico, reinicie la
alarma en EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
422
Se activó la alarma de la correa que
corresponde al robot. Reemplace la
correa y reinicie la alarma.
Reemplace la correa de regulación.
Después de reemplazar las correas
de regulación, reinicie la alarma en
EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
423
Se activó la alarma de lubricado que
corresponde al robot. Lubrique la
ranura del tornillo esférico y reinicie la
alarma.
Lubrique la ranura del tornillo
esférico.
Después de realizar el lubricado,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 781
N.º Mensaje Solución Nota 1 Nota 2
424
Se activó la alarma del motor que
corresponde al robot. Reemplace el
motor y reinicie la alarma.
Reemplace el motor.
Después de reemplazar el motor,
reinicie la alarma en EPSON RC+
7.0-[Tools]-[Controller]-
[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
425
Se activó la alarma del engranaje que
corresponde al robot. Reemplace las
unidades de engranaje y reinicie la
alarma.
Reemplace las unidades de
engranaje.
Después de reemplazar las
unidades de engranaje, reinicie la
alarma en EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
426
Se activó la alarma de la ranura del
tornillo esférico que corresponde al
robot. Reemplace la ranura del tornillo
esférico y reinicie la alarma.
Reemplace la ranura del tornillo
esférico.
Después de reemplazar la ranura
del tornillo esférico, reinicie la
alarma en EPSON RC+ 7.0-[Tools]-
[Controller]-[Maintenance].
1000 veces la
tasa de
consumo
1000
veces el
valor de
límite
501
El historial de seguimientos es
activado.
Efectúa el rendimiento del sistema
si está activo el historial de
seguimientos.
502
Se inicializó la memoria.
Cuando se genera este error, se
inicializa el valor de la variable
global conservada.
Reemplace la batería de la placa
del procesador.
Reemplace la placa del procesador.
503
Se encontró un error de disco duro.
Debe reemplazar el disco duro lo antes
posible.
Esta es una advertencia de falla del
disco duro. Reemplace el disco
duro lo antes posible.
504
Se generó un error en una tarea en
segundo plano.
Asegúrese de que no haya
problemas en el sistema y siga con
la operación.
505 Se reinició el controlador.
-
511
El voltaje de la batería del respaldo de
la placa del procesador es inferior al
voltaje permitido. Reemplace la
batería de la placa del procesador.
Reemplace de inmediato la batería
de la placa del procesador.
Mantenga activada la alimentación
del controlador todo el tiempo que
sea posible hasta que reemplace la
batería.
100 veces el
valor actual
100 veces el
valor de
límite
512
El voltaje de entrada de 5 V de la placa
del procesador es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 5 V, reemplace la
fuente de alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
513
El voltaje de entrada de 24 V para el
freno del motor, el codificador y el
ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 24 V, reemplace la
fuente de alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
514
La temperatura interna del controlador
es superior a la temperatura permitida.
Detenga el controlador lo antes
posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no esté
obstruido.
100 veces el
valor actual
100 veces el
valor de
límite
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
782
N.º Mensaje Solución Nota 1 Nota 2
515
La velocidad de rotación del ventilador
del controlador es inferior a la
velocidad permitida. (FAN1)
Revise que el filtro no esté
obstruido. Si la advertencia no
desaparece después de reiniciar el
controlador, reemplace el
ventilador.
Valor actual
Valor de
límite
516
La velocidad de rotación del ventilador
del controlador es inferior a la
velocidad permitida. (FAN2)
Revise que el filtro no esté
obstruido. Si la advertencia no
desaparece después de reiniciar el
controlador, reemplace el
ventilador.
Valor actual
Valor de
límite
517
La temperatura interna del controlador
es superior a la temperatura permitida.
Detenga el controlador lo antes
posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no esté
obstruido.
100 veces el
valor actual
100 veces el
valor de
límite
521
El voltaje de entrada de 3,3 V de DU1
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 3,3 V de la unidad
motriz 1, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
522
El voltaje de entrada de 5 V de DU1
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 1, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
523
El voltaje de entrada de 24 V de DU1
para el freno del motor, el codificador y
el ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 1, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
524
La temperatura interna de DU1 del
controlador es superior a la
temperatura permitida.
Detenga la unidad motriz 1 lo antes
posible y compruebe que la
temperatura ambiente de dicha
unidad no sea alta.
Revise que el filtro no esté
obstruido.
100 veces el
valor actual
100 veces el
valor de
límite
525
La velocidad de rotación de DU1 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 1 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
526
La velocidad de rotación de DU1 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 1 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
531
El voltaje de entrada de 3,3 V de DU2
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 3,3 V de la unidad
motriz 2, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
532
El voltaje de entrada de 5 V de DU2
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 2, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 783
N.º Mensaje Solución Nota 1 Nota 2
533
El voltaje de entrada de 24 V de DU2
para el freno del motor, el codificador y
el ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 2, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
534
La temperatura interna de DU2 del
controlador es superior a la
temperatura permitida.
Detenga la unidad motriz 2 lo antes
posible y compruebe que la
temperatura ambiente de la unidad
motriz 2 no sea alta.
Revise que el filtro no esté
obstruido.
100 veces el
valor actual
100 veces el
valor de
límite
535
La velocidad de rotación de DU2 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 2 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
536
La velocidad de rotación de DU2 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 2 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
541
El voltaje de entrada de 3,3 V de DU3
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 3,3 V de la unidad
motriz 3, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
542
El voltaje de entrada de 5 V de DU3
para la placa es inferior al voltaje
permitido.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 3, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
543
El voltaje de entrada de 24 V de DU3
para el freno del motor, el codificador y
el ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera a
partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 3, reemplace la fuente de
alimentación.
100 veces el
valor actual
100 veces el
valor de
límite
544
La temperatura interna de DU3 del
controlador es superior a la
temperatura permitida.
Detenga la unidad motriz 3 lo antes
posible y compruebe que la
temperatura ambiente de la unidad
motriz 3 no sea alta.
Revise que el filtro no esté
obstruido.
100 veces el
valor actual
100 veces el
valor de
límite
545
La velocidad de rotación de DU3 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 3 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
546
La velocidad de rotación de DU3 del
ventilador del controlador es inferior a
la velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 3 no esté obstruido. Si la
advertencia no desaparece
después de reiniciar el controlador,
reemplace el ventilador.
Valor actual
Valor de
límite
550
Se desconectó la comunicación con
Compact Vision. Revise el cableado de
red.
Revise la conexión entre el
controlador y Compact Vision.
N.º de cámara
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
784
N.º Mensaje Solución Nota 1 Nota 2
551
Las RPM del ventilador del procesador
de Compact Vision han disminuido.
Limpie el filtro del ventilador o
reemplace el ventilador.
Revise que el filtro del ventilador de
Compact Vision no esté obstruido.
Si no se borró la advertencia
después de reiniciar el controlador
y Compact Vision, reemplace el
ventilador del procesador.
N.º de cámara
Valor actual
552
Las RPM del ventilador del procesador
de Compact Vision han disminuido.
Limpie el filtro del ventilador o
reemplace el ventilador.
Reemplace el ventilador del
procesador de Compact Vision.
N.º de cámara
Valor actual
553
Las RPM del ventilador del chasis de
Compact Vision han disminuido.
Reemplace el ventilador.
Revise que el filtro del ventilador de
Compact Vision no esté obstruido.
Si no se borró la advertencia
después de reiniciar el controlador
y Compact Vision, reemplace el
ventilador del sistema.
N.º de cámara
Valor actual
554
Las RPM del ventilador del chasis de
Compact Vision han disminuido.
Reemplace el ventilador.
Reemplace el ventilador del
sistema de Compact Vision.
N.º de cámara
Valor actual
555
La temperatura del procesador de
Compact Vision es demasiado alta.
Revise el entorno de instalación
(ventilación, temperatura ambiente,
etc.)
Revise que el filtro del ventilador de
Compact Vision no esté obstruido.
Si la advertencia no desaparece
después de reiniciar el controlador
y Compact Vision, revise el entorno
de instalación (espacio circundante,
temperatura ambiente) de Compact
Vision.
N.º de cámara
1000 veces
el valor
actual
556
La temperatura del procesador de
Compact Vision es demasiado alta.
Revise el entorno de instalación
(ventilación, temperatura ambiente,
etc.)
Revise que el filtro del ventilador de
Compact Vision no esté obstruido.
Si la advertencia no desaparece
después de reiniciar el controlador
y Compact Vision, revise el entorno
de instalación (espacio circundante,
temperatura ambiente) de Compact
Vision.
N.º de cámara
1000 veces
el valor
actual
557
El voltaje de la batería de reserva de
Compact Vision es bajo. Reemplace
la batería.
Reemplace la batería de reserva de
Compact Vision.
N.º de cámara
1000 veces
el valor
actual
558
El voltaje de la batería de reserva de
Compact Vision es bajo. Reemplace
la batería.
Reemplace la batería de reserva de
Compact Vision.
N.º de cámara
1000 veces
el valor
actual
559
El proceso de Compact Vision termi
de manera anormal. Reinicie la unidad
de Compact Vision.
Si la advertencia no desaparece
después de reiniciar el controlador
y Compact Vision, inicialice
Compact Vision.
N.º de cámara
560
La memoria disponible de Compact
Vision es baja. Reinicie la unidad de
Compact Vision.
Si la advertencia no desaparece
después de reiniciar el controlador
y Compact Vision, inicialice
Compact Vision.
N.º de cámara
Valor actual
561
El espacio de disco disponible de
Compact Vision es bajo. Reduzca el
número de objetos que usan modelos
(geométrico, correlación, DefectFinder,
etc.)
Revise la secuencia de visión si
tiene modelos innecesarios que se
pueden reducir. Considere usar la
memoria USB.
N.º de cámara
Valor actual
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 785
N.º Mensaje Solución Nota 1 Nota 2
562
Se generó un error crítico de hardware
en la unidad de Compact Vision.
Revise la condición del hardware,
como el cableado interno.
Si la advertencia no desaparece
después de reiniciar el controlador
y Compact Vision, inicialice
Compact Vision.
N.º de cámara
563
Se generó un error crítico de hardware
en la unidad de Compact Vision.
Revise la condición del hardware,
como el cableado interno.
Si no se borró la advertencia
después de reiniciar el controlador
y Compact Vision, reemplace la
placa LED/SW.
N.º de cámara
569
Se recuperó la comunicación con
Compact Vision.
-
N.º de cámara
597
Se completó el movimiento PTP para
evitar el punto de singularidad.
Se completó el movimiento PTP
para la evasión de la singularidad.
Si hace clic en el mismo botón de
desplazamiento, se hará funcionar
el robot en el movimiento de
desplazamiento normal.
598
Se detuvo el robot debido a la
detección de colisión
Mueva el manipulador en la
dirección que evita la colisión
599
Desplazamiento intentado cerca del
punto de singularidad.
El robot no pudo desplazarse en el
movimiento CP (predeterminado).
Si hace clic en el mismo botón de
desplazamiento, se hará funcionar
el robot en el movimiento PTO.
700
El tipo de driver del motor no coincide
con el modelo actual del robot. Revise
el modelo del robot. Reemplace el
driver del motor.
Revise el modelo del robot.
736
Se restableció el codificador. Reinicie
el controlador.
Reinicie el controlador.
737
Bajo voltaje desde la batería del
codificador. Reemplace la batería.
Apague el controlador y reemplace
la batería.
Para conocer el procedimiento de
reemplazo de la batería, consulte
Mantenimiento en el manual del
manipulador.
752 Servoalarma D.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
786
N.º Mensaje Solución Nota 1 Nota 2
1001
Falla de operación.
El parámetro Command no es
válido.
-
1002
No se puede acceder a los datos
solicitados. Los datos no están
configurados o el rango no es
válido.
Revise que la E/S de destino, las
variables y las tareas existan.
1003 La contraseña no es válida Ingrese la contraseña correcta.
1004
No se puede ejecutar con una
versión no compatible.
Use el archivo de la versión correcta.
1005
No se puede ejecutar con un
número de serie no válido.
Use los datos de respaldo del mismo
controlador para restaurar la
configuración del controlador.
1006
No se puede ejecutar con un
modelo de robot no válido.
Use los datos de respaldo del mismo
controlador para restaurar la
configuración del controlador.
1007
No se puede ejecutar con un
controlador no válido.
Use el instalador compatible.
1010
Error de configuración remota.
No se puede asignar el número de
entrada R-IO a la entrada remota.
Especifique el número de entrada y
excluya del número de entrada R-IO.
1011
Error de configuración remota.
No se puede asignar un número
de bit que no existe a una señal
E/S remota.
Revise el tamaño del esclavo del
bus de campo.
Revise el tamaño del esclavo del bus
de campo.
1012
Error de configuración remota.
No se puede asignar un número
de bit que no existe a una señal
E/S remota.
Revise el tamaño del maestro del
bus de campo.
Revise el tamaño del maestro del
bus de campo.
1013
Falla del esclavo del bus de
campo.
No se puede cambiar el tamaño
porque incluye actualmente una
señal E/S remota.
-
1014
Falla del maestro del bus de
campo. No se puede cambiar el
tamaño porque incluye
actualmente una señal E/S remota.
-
1015
Error de configuración remota. No
se puede asignar el número de
entrada/salida Hand-IO a la
entrada remota.
-
1020
No se puede ejecutar en el modo
de recuperación.
Inicie el controlador de manera
normal.
1021
No se puede ejecutar debido a una
falla de inicialización del
controlador.
Restaure la configuración del
controlador.
1022
No se puede ejecutar sin que se
abra el proyecto.
Abra un proyecto.
1023
No se puede ejecutar mientras el
proyecte esté abierto.
Recompile el proyecto.
1024
No se puede activar desde la
entrada remota.
Habilite la entrada remota.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 787
N.º Mensaje Solución Nota 1 Nota 2
1025
Se prohíbe la ejecución en el
modo Teach.
Cambie al modo AUTO
(Automático).
1026
No se puede ejecutar en el modo
Teach, excepto desde TP.
Cambie al modo AUTO
(Automático).
1027
No se puede ejecutar en el modo
Auto.
Cambie al modo Program
(Programar).
1028
No se puede ejecutar en el modo
Auto, excepto desde la consola
principal.
Cambie al modo Program
(Programar).
1029 No se puede ejecutar desde OP. Habilite la entrada OP.
1030
No se permite el cambio del modo
de operación.
Cambie al modo Auto con una
consola en el modo Program.
1031
No se puede ejecutar mientras se
ejecutan las tareas.
Detenga la tarea y luego ejecútela.
1032
No se puede ejecutar mientras se
ejecuta el número máximo de
tareas.
Detenga la tarea y luego ejecútela.
1033
No se puede ejecutar durante el
comando de movimiento
asincrónico.
Ejecute después de que termine el
movimiento.
1034
Comando asincrónico detenido
durante la operación.
El comando asincrónico ya se
detuvo cuando el controlador recibió
un comando de parada.
1035
No se puede ejecutar cuando la
E/S remota está habilitada,
excepto desde el dispositivo
remoto.
El comando no se puede ejecutar
mediante la consola, excepto la E/S
remota cuando la salida AutoMode
de la E/S remota está en ON
(Activado).
1037
No se puede ejecutar cuando
Ethernet remoto está habilitado,
excepto desde el dispositivo de
Ethernet remoto.
El comando no se puede ejecutar
mediante la consola, excepto
Ethernet remoto cuando el indicador
Auto del Ethernet remoto está en ON
(Activado).
1039
Se prohíbe la ejecución.
Se ejecutó un comando prohibido
mientras se ejecutaba el programa.
Detenga el programa y luego ejecute
el comando.
1041
No se puede ejecutar durante el
estado de parada de emergencia.
Cancele el estado de parada de
emergencia.
1042
No se puede ejecutar mientras
esté abierta la protección.
Cierre la protección.
1043
No se puede ejecutar durante la
condición de error.
Cancele la condición de error.
1044
No se puede ejecutar cuando la
entrada de pausa remota está ON.
Cambie la entrada de pausa remota
a OFF.
1045
La condición de espera de entrada
es la única condición disponible
para la entrada.
El controlador recibió una entrada
mientras no se encontraba en la
condición de espera de entrada.
1046
No se puede ejecutar durante la
transferencia de archivos.
Ejecute después de la transmisión
del archivo.
1047
No se puede cancelar el comando
ejecutado desde otros dispositivos.
Cancele el comando de movimiento
desde el dispositivo que emitió el
comando.
1048
No se puede ejecutar después de
haber detectado bajo voltaje.
Reinicie el controlador.
1049
Otros dispositivos están en el
modo Program.
Revise la conexión de otros
dispositivos.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
788
N.º Mensaje Solución Nota 1 Nota 2
1050 La contraseña es demasiado larga.
Ingrese la contraseña que tenga
menos de 16 caracteres.
1051
Falla al exportar el estado del
controlador.
1. Vuelva a intentarlo con la misma
memoria USB.
2. Vuelva a intentarlo con otra
memoria USB.
3. Vuelva a intentarlo después de
reiniciar el controlador.
1052
Exportar estado del controlador
ocupada.
Ejecute el comando después de
completar el respaldo del estado del
controlador.
1053
Se prohíbe la ejecución en el
modo Test
Ejecute en otros modos.
1054
No se puede ejecutar en el modo
TEST, excepto desde TP.
-
1055
No se puede ejecutar la tarea en
segundo plano.
Confirme que no haya ninguna tarea
en segundo plano ejecutándose.
Recompile el proyecto.
1056 No se puede ejecutar desde OP. Habilite la entrada TP3.
1057
No se puede ejecutar cuando TP3
está habilitado, excepto desde
TP3.
El comando no se puede ejecutar
desde otras consolas cuando TP3
está habilitado.
1058
No se puede ejecutar, excepto el
modo T2.
Cambie a la tecla <Teach/T2>.
1059
No se puede cambiar al modo T2.
El modo T2 no se puede usar en los
controladores RC700-A que cumplen
con las normas UL.
1100
Falla del archivo. No se puede
tener acceso al archivo.
1. Reinicie el controlador.
2. Vuelva a instalar el firmware.
3. Reemplace la CF.
1102
Falla del archivo. Falla de lectura y
escritura del registro
1. Reinicie el controlador.
2. Reemplace la CF.
1103 No se encontró el archivo. Revise si existe el archivo.
1104
No se encontró el archivo del
proyecto.
Recompile el proyecto.
1105 No se encontró el archivo objeto. Recompile el proyecto.
1106
No se encontraron los archivos de
puntos.
Recompile el proyecto.
1107
El programa usa una característica
no compatible con la versión actual
del firmware del controlador.
Revise la versión del compilador en
EPSON RC+ 7.0-[Project]-
[Properties]-[Compiler] (Proyecto -
Propiedades - Compilador).
1108
Se actualizaron uno o más
archivos de origen. Compile el
proyecto.
Recompile el proyecto.
1109
No hay capacidad de
almacenamiento suficiente.
Aumente el espacio libre de la
memoria USB.
1110 No se encontró el archivo.
-
1111
No se encontró el archivo del
transportador.
-
1112
No se encontraron los archivos de
fuerza.
Recompile el proyecto.
Recompile el proyecto.
1120
Falla del archivo.
El archivo de configuración está
dañado.
Restaure la configuración del
controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 789
N.º Mensaje Solución Nota 1 Nota 2
1121
Falla del archivo.
El archivo de proyecto está
dañado.
Recompile el proyecto.
1122
Falla del archivo.
El archivo de puntos está dañado.
Recompile el proyecto.
1123
Falla del archivo.
El archivo de la etiqueta de E/S
está dañado.
Recompile el proyecto.
1124
Falla del archivo.
El archivo de error del usuario está
dañado.
Recompile el proyecto.
1126
Falla del archivo.
La información de opción del
software está dañada.
1. Reinicie el controlador.
2. Vuelva a instalar el firmware.
3. Reconfigure la opción.
1127
Falla del archivo.
El archivo de visión está dañado.
Recompile el proyecto.
1128
Falla del archivo.
El archivo de información de
respaldo está dañado.
No se puede restaurar la información
de respaldo especificada.
Adquiera nuevamente la información
de respaldo y luego restaure el
archivo.
1130
Falla del mensaje de error.
No se encontró ningún elemento
en el historial de errores.
No existe ningún historial de errores.
Reinicie el controlador.
1131
No se puede tener acceso a la
memoria USB.
Inserte correctamente la memoria
USB. Cuando sigue sucediendo este
error después de insertar
correctamente la memoria USB, la
memoria podría ser irreconocible
para el controlador. Inserte otra
memoria para revisar la operación.
1132
Falla del archivo.
No se pudo copiar el archivo.
-
1133
Falla del archivo.
No se pudo eliminar el archivo.
-
1134
Falla del archivo.
El archivo de GUI Builder es
dañado.
Recompile el proyecto.
1140
Falla del archivo.
No se pudo abrir el archivo objeto.
Recompile el proyecto.
1141
Falla del archivo.
No se pudo abrir el archivo de
proyecto.
Recompile el proyecto.
1142
Falla del archivo.
No se pudo leer el archivo de
proyecto.
Recompile el proyecto.
1143
Falla del archivo.
No se pudo abrir el archivo de
guardado de la condición.
1. Vuelva a intentarlo con la misma
memoria USB.
2. Vuelva a intentarlo con otra
memoria USB.
3. Vuelva a intentarlo después de
reiniciar el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 790
N.º Mensaje Solución Nota 1 Nota 2
1144
Falla del archivo.
No se pudo escribir el archivo de
guardado de la condición.
1. Vuelva a intentarlo con la misma
memoria USB.
2. Vuelva a intentarlo con otra
memoria USB.
3. Vuelva a intentarlo después de
reiniciar el controlador.
1145
Falla del archivo.
No se pudo abrir el archivo del
transportador.
Recompile el proyecto.
1146
Falla del archivo.
No se pudo leer el archivo del
transportador.
Recompile el proyecto.
1150
Falla del archivo.
El historial de errores no es válido.
1. Reinicie el controlador.
2. Reemplace la CF.
1151
Falla del archivo.
No se pudo asignar el historial de
errores.
1. Reinicie el controlador.
2. Reemplace la CF.
1152
Falla del archivo.
No se pudo abrir el archivo del
historial de errores.
1. Reinicie el controlador.
2. Reemplace la CF.
1153
Falla del archivo.
No se pudo escribir el archivo del
historial de errores.
1. Reinicie el controlador.
2. Reemplace la CF.
1155
Falla del archivo.
No se pudo abrir el archivo de
configuración.
Restaure la configuración del
controlador.
1156
Falla del archivo.
No se pudo guardar el archivo de
configuración.
Restaure la configuración del
controlador.
1157
Falla del archivo.
No se pudo leer el archivo de
configuración.
Restaure la configuración del
controlador.
1158
Falla del archivo.
No se pudo escribir el archivo de
configuración.
Restaure la configuración del
controlador.
1160
Falla de MCD.
No se pudo abrir el archivo MCD.
Restaure la configuración del
controlador.
1161
Falla de MCD.
No se pudo leer el archivo MCD.
Restaure la configuración del
controlador.
1163
Falla de MCD.
No se pudo guardar el archivo
MCD.
Restaure la configuración del
controlador.
1165
Falla de MPD.
No se pudo abrir el archivo MPD.
-
1166
Falla de MPD.
No se pudo leer el archivo MPD.
-
1168
Falla de MPD.
No se pudo guardar el archivo
MPD.
-
1170
Falla de MPL.
No se pudo abrir el archivo MPL.
1. Reinicie el controlador.
2. Vuelva a instalar el firmware.
1181
Falla de PRM.
No se pudo reemplazar el archivo
PRM.
1. Reinicie el controlador.
2. Reconfigure el robot.
1185
Falla del archivo.
No se pudo abrir el archivo de
información de respaldo.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 791
N.º Mensaje Solución Nota 1 Nota 2
1186
Falla del archivo.
No se pudo leer el archivo de
información de respaldo.
-
1187
Falla del archivo.
No se pudo escribir el archivo de
información de respaldo.
-
1188
Falla del archivo.
No se pudo guardar el archivo de
información de respaldo.
-
1189
Los datos de respaldo se crearon
con una versión anterior.
No se puede restaurar la
configuración del controlador en el
procedimiento especificado para
usar datos de un respaldo anterior.
Revise los datos de respaldo.
1190
Los datos de respaldo se crearon
con una versión más nueva.
-
1191
No hay ningún proyecto en los
datos de respaldo.
-
1192
No se puede ejecutar con un
número de robot no válido.
Revise que los datos de respaldo
sean iguales al número de robot
actual.
1193
No se puede ejecutar con
información del robot no válida.
Revise que los datos de respaldo
sean iguales al número de robot
actual.
1194
No se puede ejecutar con un
número de unidad motriz no válido.
-
1195
Falla del archivo. No se pudo
asignar el historial de salud.
Reinicie el controlador.
-
-
1196
Falla del archivo. No se pudo abrir
el archivo del historial de salud.
Reinicie el controlador.
-
-
1197
Falla del archivo. No se pudo
escribir el archivo del historial de
salud.
Reinicie el controlador.
-
-
1200
Falla de compilación.
Revise el mensaje de compilación.
Este error se genera durante la
compilación desde TP. Corrija el
lugar donde se generó el error.
1201
Falla de enlace.
Revise el mensaje de enlace.
Este error se genera durante la
compilación desde TP. Corrija el
lugar donde se generó el error.
1250
Falla de salida del usuario.
El nombre está vacío.
-
1251
Falla de salida del usuario.
La condición está vacía.
-
1252
Falla de salida del usuario.
El número de robot está fuera del
rango disponible.
-
1260
Falla de configuración de la
alarma.
El robot no existe.
-
1261
Falla de configuración de la
alarma.
No se pudo obtener la fecha de
expiración.
-
1262
Falla de configuración de la
alarma.
No se pudo configurar la alarma.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 792
N.º Mensaje Solución Nota 1 Nota 2
1263
Falla de configuración de la
alarma.
El número de alarma especificado
está fuera del rango permitido.
-
1264
Falla de configuración de la
alarma.
El número de alarma especificado
no está habilitado.
-
1290
El número del monitor de fuerza
está fuera del rango permitido.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
1291
El monitor de fuerza ya se está
usando en otro dispositivo.
Cierre el monitor de fuerza del otro
dispositivo y luego ejecute el
monitor de fuerza.
Revise si otra PC está usando el
monitor de fuerza.
1500 Error de comunicación.
-
1501
El comando no se completó a
tiempo.
Ejecute el comando nuevamente
después de un rato. Revise la
conexión entre EPSON RC+7.0 y el
controlador.
1502
Desconexión de la comunicación
entre RC+ y el controlador. Vuelva
a restablecer la comunicación.
Revise la conexión entre EPSON
RC+7.0 y el controlador.
1: Tiempo de
espera de la
comunicació
n
2:
Desconexión
del cable
USB
3: Falla de
recepción de
USB
4: Apagado
de la
comunicació
n USB
1503
Desconexión mientras se
ejecutaba una tarea.
Revise la conexión entre el
dispositivo de la consola y el
controlador.
1504
Desconexión de la comunicación
entre el Ethernet remoto y el
controlador. Vuelva a restablecer
la comunicación.
Revise la conexión entre el
dispositivo Ethernet remoto y el
controlador.
1505
Desconexión de la comunicación
entre RS232 remoto y el
controlador. Vuelva a restablecer
la comunicación.
Revise la conexión entre el
dispositivo RS232 remoto y el
controlador.
1506
Desconexión de la comunicación
entre TP3 y el controlador.
Vuelva a restablecer la
comunicación.
Revise la conexión entre TP3 y el
controlador.
1510 Fuera del rango de la dirección IP.
Revise la configuración de la
dirección IP del controlador.
1511 Dirección IP reservada.
La dirección IP está reservada.
Configure la otra dirección IP.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 793
N.º Mensaje Solución Nota 1 Nota 2
1512
Puerta de IP reservada.
La dirección de la puerta es
reservada. Configure la dirección de
la otra puerta.
1521
Comunicación de Vision.
No se pudo inicializar Ethernet.
Reinicie el controlador.
1522
Comunicación de Vision.
No se pudo terminar Ethernet.
-
1523
Comunicación de Vision.
No se pudo crear el identificador
de socket.
Reinicie el controlador.
1524
Comunicación de Vision.
No se pudo conectar.
Revise la conexión entre la cámara y
el controlador.
1526
Comunicación de Vision.
No se pudo enviar al servidor.
Revise la conexión entre la cámara y
el controlador.
1527
Comunicación de Vision.
No se pudo leer desde el servidor.
Revise la conexión entre la cámara y
el controlador.
1528
Comunicación de Vision.
No se pudo configurar la opción.
-
1529
Comunicación de Vision.
Ethernet aún no se ha inicializado.
Reinicie el controlador.
1530
Comunicación de Vision.
No se completó la conexión.
Revise la conexión entre la cámara y
el controlador.
1531
Comunicación de Vision.
Todos los sockets están en uso.
-
1532
Comunicación de Vision.
Tiempo de espera del envío.
Revise la conexión entre la cámara y
el controlador.
1533
Comunicación de Vision.
Tiempo de espera de recepción.
Revise la conexión entre la cámara y
el controlador.
1534
Comunicación de Vision.
Error de comunicación.
Revise la conexión entre la cámara y
el controlador.
1550
Falla de comunicación.
Error de inicialización de Ethernet.
Reinicie el controlador. Revise la
conexión del cable Ethernet.
1551
Falla de comunicación.
Error de inicialización de USB.
Reinicie el controlador. Revise la
conexión del cable USB.
1552
Falla de comunicación.
Error de comunicación interna del
controlador.
Reinicie el controlador.
1553
Falla de comunicación.
Se detectaron datos no válidos.
-
1555 Error de transmisión de Ethernet.
Revise la conexión entre EPSON
RC+7.0 y el controlador.
1556
Error de recepción de Ethernet.
Revise la conexión entre EPSON
RC+7.0 y el controlador.
Si se usó el enrutador entre el PC y
el controlador, confirme que la
función DHCP esté deshabilitada.
1557 Error de transmisión de USB.
Revise la conexión entre EPSON
RC+7.0 y el controlador.
1558 Error de recepción de USB.
Revise la conexión entre EPSON
RC+7.0 y el controlador.
1559
Falla de comunicación.
No se pudo asignar la memoria
-
1580
Falla de comunicación del
analizador.
Error de comunicación.
1. Reinicie el controlador.
2. Actualice el firmware.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 794
N.º Mensaje Solución Nota 1 Nota 2
1581
Falla de comunicación del
analizador.
Se generó el tiempo de espera
durante la comunicación.
1. Reinicie el controlador.
2. Vuelva a instalar el firmware.
1582
Falla de comunicación del
analizador.
Error de transmisión.
Reinicie el controlador.
Recompile el proyecto.
1583
Falla de comunicación del
analizador.
Error de inicialización.
Reinicie el controlador.
1584
Falla de comunicación del
analizador.
Error de conexión.
Reinicie el controlador.
1585
Falla de comunicación del
analizador.
El parámetro no es válido.
Reinicie el controlador.
Recompile el proyecto.
1586
Falla de comunicación del
analizador.
Ocupado
-
1587
Falla de comunicación del
analizador.
Se detectaron datos no válidos.
Actualice el firmware.
1700
Falla de inicialización.
No se pudo inicializar TP.
-
1701
Falla de inicialización.
No se pudo inicializar TP.
-
1702
Falla de inicialización.
No se pudo inicializar TP.
-
1703
Falla del archivo.
No se pudo leer el archivo de
datos de la pantalla.
-
1704
No se pudo leer el archivo de
configuración.
-
1706 No se pudo abrir el puerto TP.
-
1708
No se pudo leer la tabla de claves
de TP.
-
1709 No se pudo cambiar el idioma.
-
1710 No se pudo mostrar la pantalla.
-
1800
El controlador ya está conectado
RC+.
Solo un RC+ 7.0 puede conectarse
al controlador.
1802
Se intentó el comando sin estar
conectado al controlador.
Conéctese al controlador.
1803
No se pudo leer ni escribir el
archivo en el PC.
-
1804
Falla de inicialización.
No se pudo asignar la memoria en
el PC.
-
1805
Falla de conexión.
Revise el inicio del controlador y la
conexión del cable de
comunicación.
-
1806
Tiempo de espera durante la
conexión vía Ethernet.
-
1807
Tiempo de espera durante la
conexión vía USB.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 795
N.º Mensaje Solución Nota 1 Nota 2
1808
El driver del USB no está
instalado.
No se pudo instalar EPSON RC+
7.0. Instale EPSON RC+ 7.0
nuevamente.
1809
Falla de inicialización.
No se pudo inicializar el Daemon
de PC.
Reinicie el sistema.
1810
Error de Daemon de PC.
Error poco común.
1.
Reinicie EPSON RC+ +7.0.
2.
Reinicie el PC.
1812
Falla de conexión.
El controlador conectado no es
compatible con EPSON RC+ 7.0.
Use EPSON RC+ 5.0.
El controlador conectado es RC180
o RC90 compatible con EPSON RC+
5.0.
Revise la conexión entre el PC y el
controlador.
1852
Error del sistema.
Error poco común.
1.
Reinicie EPSON RC+ +7.0.
2.
Reinicie el PC.
3.
Vuelva a instalar EPSON RC+
7.0.
1861
Falla de inicialización.
No se pudo inicializar
SimulatorMNG.
1.
Reinicie EPSON RC+ 7.0.
2.
Reinicie el PC.
3.
Vuelva a instalar EPSON RC+
7.0.
1862
Falla de inicialización.
Falló la inicialización de WBProxy.
1.
Reinicie EPSON RC+ 7.0.
2.
Reinicie el PC.
3.
Vuelva a instalar EPSON RC+
7.0.
1863 El parámetro no es válido.
-
1864
Falla de inicialización.
El controlador virtual no existe.
Falla de instalación de EPSON RC+
7.0. Reinstale el software.
1865
Falla de inicialización.
No se pudo iniciar el controlador
virtual.
1.
Vuelva a intentarlo después de
un rato.
2.
Reinicie el PC.
1867
No se puede ejecutar porque no se
encuentra en el modo de
simulacro.
El modo de simulacro no es válido.
Habilite el simulacro.
1868
Falla de inicialización.
No se encontró el directorio.
Falla de instalación de EPSON RC+
7.0. Reinstale el software.
1872
Falla de conexión.
No se encontraron los archivos
para el simulador que usaba el
controlador real.
-
1873
Falla de conexión.
No se encontraron los archivos
para el simulador que usaba el
controlador virtual.
-
1874
No se pudo agregar el controlador
virtual.
Falla de instalación de EPSON RC+
7.0. Reinstale el software.
1875
Falla del objeto del simulador.
No se pueden cargar datos para el
objeto del simulador.
-
1876
Falla del objeto del simulador.
No se pueden leer datos del objeto
del simulador.
-
1877
Falla del objeto del simulador.
No se pueden eliminar datos del
objeto del simulador.
-
1878
Falla del objeto del simulador.
No se pueden actualizar datos del
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 796
N.º Mensaje Solución Nota 1 Nota 2
objeto del simulador.
1879
Otros controladores virtuales se
están iniciando.
Se pueden usar otros controladores
virtuales en EPSON RC+ 5.0.
O bien, el controlador virtual puede
ya estar en uso en otro EPSON
RC+7.0.
1880
No se puede ejecutar durante el
restablecimiento del controlador.
-
1901
No compatible.
Se intentó un comando no
admitido.
Actualice el firmware.
1902
No compatible.
Se especificó un parámetro no
admitido.
-
1903 Error del sistema.
-
1910
Error del sistema.
No se pudo escribir el archivo de
reinicio.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 797
N.º Mensaje Solución Nota 1 Nota 2
2000
No compatible.
Se intentó un comando no
admitido.
Recompile el proyecto.
2001
No compatible.
Se intentó un comando de
movimiento no compatible.
Recompile el proyecto.
2003
No compatible.
Se especificó un argumento de
función no admitido.
Recompile el proyecto.
2004
No compatible.
Se especificó un valor devuelto de
función no compatible.
Recompile el proyecto.
2005
No compatible.
Se especificó una condición no
admitida.
Recompile el proyecto.
2006
No compatible.
Se especificó un comando E/S no
admitido.
Recompile el proyecto.
2007
Se especificó una condición no
admitida.
No se puede realizar el
desplazamiento en el movimiento CP
(predeterminado).
2008
No compatible.
Número de error desconocido.
Si hace clic en el mismo botón de
desplazamiento, se hará funcionar el
robot en el movimiento PTP.
2009
No compatible.
Número de tarea no válido.
No se puede realizar el
desplazamiento en el movimiento CP
(predeterminado).
2010
Error del archivo objeto.
Compile el proyecto. Fuera del
rango del código interno.
Recompile el proyecto.
2011
Error del archivo objeto.
Compile el proyecto. Error del
argumento de la función.
Recompile el proyecto.
2012
Error del archivo objeto.
Compile el proyecto. Error del
argumento del comando.
Recompile el proyecto.
2013
Error del archivo objeto.
Compile el proyecto. No se puede
procesar el código.
Recompile el proyecto.
2014
Error del archivo objeto.
Compile el proyecto. No se puede
procesar el código de tipo de
variable.
Recompile el proyecto.
2015
Error del archivo objeto.
Compile el proyecto. No se puede
procesar el código de tipo de
cadena.
Recompile el proyecto.
2016
Error del archivo objeto.
Compile el proyecto. No se puede
procesar el código de categoría de
la variable.
Recompile el proyecto.
2017
Error del archivo objeto.
Compile el proyecto. No se puede
procesar debido a un código
inadecuado.
Recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 798
N.º Mensaje Solución Nota 1 Nota 2
2018
Error del archivo objeto.
Compile el proyecto. No se pudo
calcular el tamaño de la variable.
Recompile el proyecto.
2019
Error del archivo objeto.
No se puede procesar la espera de
la variable.
Compile el proyecto.
Recompile el proyecto.
2020
Se superó el número de tabla de la
pila.
La llamada Function o la variable
local están fuera de rango.
Revise que no se llame una función
de forma indefinida. Reduzca la
profundidad de la función de
llamada.
2021
Se superó el tamaño del área de la
pila.
Error de pila. La llamada Function
o la variable local están fuera de
rango.
Si se usan muchas variables locales,
particularmente del tipo cadena,
reemplácelas con variables globales.
2022
Falla de la pila. No se encontraron
los datos requeridos en la pila.
Recompile el proyecto.
2023
Falla de la pila. Se encontró una
etiqueta inesperada en la pila.
Recompile el proyecto.
2024
Se superó el tamaño del área de la
pila. La variable local está fuera de
rango.
Cambie el tamaño de la variable
local.
2031
Falla del sistema.
El número del robot supera el
número máximo.
Restaure la configuración del
controlador.
2032
Falla del sistema.
Error de cumplimiento del número
de tarea.
Recompile el proyecto.
2033
Falla del sistema.
Demasiados errores.
Solucione los errores que suceden
con frecuencia.
2040
Falla del subproceso.
No se pudo crear el subproceso.
Reinicie el controlador.
2041
Falla del subproceso.
Tiempo de espera de creación del
subproceso.
Reinicie el controlador.
2042
Falla del subproceso.
Tiempo de espera de término del
subproceso.
Reinicie el controlador.
2043
Falla del subproceso.
Tiempo de espera de término del
subproceso.
Reinicie el controlador.
2044
Falla del subproceso.
Tiempo de espera del proceso de
Daemon.
Reinicie el controlador.
2045
Falla del subproceso.
Tiempo de espera de continuación
de la tarea.
Reinicie el controlador.
2046
Falla del subproceso.
Tiempo de espera de parada de la
tarea.
Reinicie el controlador.
2047
Falla del subproceso.
Tiempo de espera de inicio de la
tarea.
Reinicie el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 799
N.º Mensaje Solución Nota 1 Nota 2
2050
Falla de operación del archivo
objeto.
El tamaño del archivo objeto
supera el tamaño permitido.
Recompile el proyecto.
2051
Falla de operación del archivo
objeto.
No se puede eliminar el archivo
objeto durante la ejecución.
Reinicie el controlador.
2052
Falla de operación del archivo
objeto.
No puede asignar la memoria para
el archivo objeto.
Reinicie el controlador.
2053
Falla de operación del archivo
objeto.
No se puede acceder al archivo
objeto mientras se actualiza.
Realice el mismo procesamiento
después de un tiempo. Recompile el
proyecto.
2054
Falla de operación del archivo
objeto.
Falla de ID de la función.
Recompile el proyecto.
Sincronice los archivos del proyecto.
Recompile el proyecto.
2055
Falla de operación del archivo
objeto.
Falla de ID de la variable local.
Recompile el proyecto.
Sincronice los archivos del proyecto.
Recompile el proyecto.
2056
Falla de operación del archivo
objeto.
Falla de ID de la variable global.
Recompile el proyecto.
Sincronice los archivos del proyecto.
Recompile el proyecto.
2057
Falla de operación del archivo
objeto.
Falla de ID de la variable global
conservada. Recompile el
proyecto.
Sincronice los archivos del proyecto.
Recompile el proyecto.
2058
Falla de operación del archivo
objeto.
No se pudo calcular el tamaño de
la variable.
Sincronice los archivos del proyecto.
Recompile el proyecto.
2059
Se superó el área de la variable
global.
No se puede asignar el área de la
variable global porque no se pudo
asignar la memoria.
Reduzca el número de variables
globales que se usarán.
2070
Falla de SRAM.
SRAM no está asignado.
Reemplace la placa del procesador.
2071
Falla de SRAM.
No se puede eliminar cuando la
variable global conservada está en
uso.
Realice el mismo procesamiento
después de un tiempo. Recompile el
proyecto.
2072
Se superó el área de la variable de
respaldo.
No se puede asignar el área de la
variable global conservada porque
no se pudo asignar la memoria.
Reduzca el número de variables
globales conservadas que se usarán.
Tamaño
máximo
El tamaño
que intentó
usar
2073
Falla de SRAM.
No se pudo borrar el área de la
variable global conservada.
Recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 800
N.º Mensaje Solución Nota 1 Nota 2
2074
Falla de SRAM.
No se pudo limpiar el área de
guardado de la variable global
conservada.
Reinicie el controlador.
2100
Falla de inicialización.
No se pudo abrir el archivo de
inicialización.
Restaure la configuración del
controlador.
2101
Falla de inicialización.
Inicialización duplicada.
Reinicie el controlador.
2102
Falla de inicialización.
No se pudo inicializar MNG.
Reinicie el controlador.
2103
Falla de inicialización.
No se pudo crear un suceso.
Reinicie el controlador.
2104
Falla de inicialización.
No se pudo configurar una
prioridad.
Reinicie el controlador.
2105
Falla de inicialización.
No se pudo configurar el tamaño
de la pila.
Reinicie el controlador.
2106
Falla de inicialización.
No se pudo configurar un proceso
de interrupción.
Reinicie el controlador.
2107
Falla de inicialización.
No pudo iniciar un proceso de
interrupción.
Reinicie el controlador.
2108
Falla de inicialización.
No se pudo detener un proceso de
interrupción.
Reinicie el controlador.
2109
Falla de inicialización.
No se pudo terminar MNG.
Reinicie el controlador.
2110
Falla de inicialización.
No se pudo asignar la memoria.
Reinicie el controlador.
2111
Falla de inicialización.
No se pudo inicializar el
movimiento.
Restaure la configuración del
controlador.
2112
Falla de inicialización.
No se pudo terminar el movimiento.
Reinicie el controlador.
2113
Falla de inicialización.
No se pudo asignar la SRAM.
Reemplace la placa del procesador.
2114
Falla de inicialización.
No se pudo registrar la SRAM.
Reemplace la placa del procesador.
2115
Falla de inicialización.
Las placas de bus de campo
superan el número máximo.
Revise el número de placas del bus
de campo.
2116
Falla de inicialización.
No se pudo inicializar el bus de
campo.
Reinicie el controlador.
Revise la placa del bus de campo.
Reemplace la placa del bus de
campo.
2117
Falla de inicialización.
No se pudo terminar el bus de
campo.
Reinicie el controlador.
2118
Falla de inicialización.
No se pudo abrir el movimiento.
Restaure la configuración del
controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 801
N.º Mensaje Solución Nota 1 Nota 2
2119
Falla de inicialización.
No se pudo inicializar el
seguimiento del transportador.
Asegúrese de que la configuración
del transportador y el codificador sea
correcta.
2120
Falla de inicialización.
No se pudo asignar el área del
sistema.
Reinicie el controlador.
2121
Falla de inicialización.
No se pudo asignar el área del
archivo objeto.
Reinicie el controlador.
2122
Falla de inicialización.
No se pudo asignar el área del
robot.
Reinicie el controlador.
2123
Falla de inicialización.
No se pudo crear el suceso.
Reinicie el controlador.
2124
Falla de inicialización.
Está instalado un módulo de bus
de campo no compatible.
Instale el módulo de bus de campo
comprado desde SEC.
2130
Falla de MCD.
No se pudo abrir el archivo MCD.
Restaure la configuración del
controlador.
2131
Falla de MCD.
No se pudo asignar el archivo
MCD.
Restaure la configuración del
controlador.
2132
Falla de PRM.
No se pudo encontrar el archivo
PRM.
Restaure la configuración del
controlador.
2133
Falla de PRM.
No se pudo asignar el archivo
PRM.
Restaure la configuración del
controlador.
2134
Falla de PRM.
Error de contenido del archivo
PRM.
Restaure la configuración del
controlador.
2135
Falla de PRM.
No se pudo convertir el archivo
PRM.
Reinicie el controlador.
2136
Falla de PRM.
No se pudo convertir el archivo
PRM.
Reinicie el controlador.
2137
Falla de PRM.
No se pudo convertir el archivo
PRM.
Reinicie el controlador.
2140
Error de inicialización de DU.
No se pueden usar las unidades
motrices.
La comunicación con las unidades
motrices no está disponible para los
controladores virtuales. Regrese el
archivo de configuración a los
valores originales si es que se
cambió.
2141
Error de inicialización de DU. No
se pudieron inicializar las unidades
motrices.
Revise la conexión con las unidades
motrices.
2142
Error de inicialización de DU.
No se pudieron inicializar las
unidades motrices.
Revise la conexión con las unidades
motrices.
2143
Error de inicialización de DU.
Tiempo de espera durante la
inicialización de las unidades
motrices.
Revise la conexión con las unidades
motrices.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 802
N.º Mensaje Solución Nota 1 Nota 2
2144
Error de inicialización de DU.
No hay datos para descargar en
las unidades motrices.
Reinicie la unidad de control y las
unidades motrices.
2145
Error de inicialización de DU.
No se pudo iniciar la comunicación
con las unidades motrices.
Reinicie la unidad de control y las
unidades motrices.
2146
Error de inicialización de DU.
Tiempo de espera cuando se inicia
la comunicación con las unidades
motrices.
Reinicie la unidad de control y las
unidades motrices.
2147
Error de inicialización de DU. No
se pudo actualizar el software de
las unidades motrices.
Revise la configuración de
actualización de software.
Revise la conexión con la unidad
motriz.
2148
Error de inicialización de DU. No
se pudo actualizar el software de
las unidades motrices.
Revise el nombre del archivo.
Revise el archivo de actualización.
2149
Error de inicialización de DU. No
se pudo actualizar el software de
las unidades motrices.
Revise la potencia y conexión de la
unidad motriz.
Reinicie el controlador.
2150
Falla de operación.
No se pudo encontrar el número de
la tarea.
Reinicie el controlador.
2151
Falla de operación.
Ejecución de la tarea.
Reinicie el controlador.
2152
Falla de operación.
Falla del tamaño del código de
objeto.
Reinicie el controlador.
2153
Falla de operación.
Falla del parámetro de
desplazamiento.
Reinicie el controlador.
2154
Falla de operación.
Ejecución del desplazamiento.
Reinicie el controlador.
2155
Falla de operación.
No se puede ejecutar la función de
desplazamiento.
Reinicie el controlador.
2156
Falla de operación.
No se configuraron los datos de
desplazamiento.
Reinicie el controlador.
2157
Falla de operación.
No se pudo cambiar el parámetro
de desplazamiento.
Reinicie el controlador.
2158
Falla de operación.
No se pudo asignar el área para el
punto de interrupción.
Reinicie el controlador.
2159
Falla de operación.
El número de puntos de
interrupción supera el número de
configuración permitido.
Reduzca los puntos de interrupción.
2160
Falla de operación.
No se pudo asignar la ID de
función.
Reinicie el controlador.
2161
Falla de operación.
No se pudo asignar la dirección de
la variable local.
Reinicie el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 803
N.º Mensaje Solución Nota 1 Nota 2
2162
Falla de operación.
No hay búfer suficiente para
almacenar la variable local.
Revise el tamaño de la variable local.
2163
Falla de operación.
El cambio de valor está disponible
solamente cuando se suspende la
tarea.
Suspenda la tarea mediante el punto
de interrupción.
2164
Falla de operación.
No se pudo asignar la dirección de
la variable global.
Revise el tamaño de la variable
global.
2165
Falla de operación.
No hay búfer suficiente para
almacenar la variable global.
Revise el tamaño de la variable
global.
2166
Falla de operación.
No se pudo obtener la dirección de
la variable global conservada.
Revise el tamaño de la variable
global conservada.
2167
Falla de operación.
No hay búfer suficiente para
almacenar la variable global
conservada.
Revise el tamaño de la variable
global conservada.
2168
Falla de operación.
SRAM no está asignado.
Reinicie el controlador.
2169
Falla de operación.
No se puede borrar la variable
global conservada cuando se carga
el archivo objeto.
Reinicie el controlador.
2170
Falla de operación.
No hay búfer suficiente para
almacenar la cadena.
Revise el tamaño de la variable de
cadena.
2171
Falla de operación.
No se puede iniciar la tarea
después de detectar un bajo
voltaje.
Revise la potencia del controlador.
Reinicie el controlador.
2172
Falla de operación.
Configuración de E/S remota
duplicada.
Reinicie el controlador.
2173
Error de configuración remota.
No se puede asignar un número de
entrada inexistente a la función
remota.
Revise el número de entrada de E/S.
2174
Error de configuración remota.
No se puede asignar un número de
salida inexistente a la función
remota.
Revise el número de salida de E/S.
2175
Falla de operación.
No se configuró la función remota.
Reinicie el controlador.
2176
Falla de operación.
Error de espera del suceso.
Reinicie el controlador.
2177
Falla de operación.
Falla del respaldo del sistema.
Reinicie el controlador.
Instale el firmware del controlador.
2178
Falla de operación.
Falla de restauración del sistema.
Reinicie el controlador.
Instale el firmware del controlador.
2179
Error de configuración remota.
No se puede asignar el mismo
número de entrada a algunas
funciones remotas.
Revise la configuración remota.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 804
N.º Mensaje Solución Nota 1 Nota 2
2180
Error de configuración remota.
No se puede asignar el mismo
número de salida a algunas
funciones remotas.
Revise la configuración remota.
2181
Falla de operación.
El número de tarea no se ha
reservado para la API de RC+.
Configure el número de tareas de la
API de RC+.
2190
No se puede calcular porque son
datos de la cola.
Revise el programa.
2191
No se puede ejecutar AbortMotion
porque el robot no se ejecuta
desde una tarea.
Si no opera el robot desde un
programa, no puede usar
AbortMotion.
2192
No puede ejecutar AbortMotion
porque la tarea del robot ya
finalizó.
La tarea está completa.
Revise el programa.
2193
No puede ejecutar Recover sin el
movimiento, porque AbortMotion
no se ejecutó.
Ejecute AbortMotion antes de
ejecutar Recover WithoutMove.
2194
Error de configuración del
transportador.
Asegúrese de que la configuración
del transportador y el codificador sea
correcta.
2195
Error de configuración del
transportador.
Asegúrese de que la configuración
del transportador y el codificador sea
correcta.
2196
El número del transportador está
fuera de rango.
Asegúrese de que la configuración
del transportador y el codificador sea
correcta.
2197
Se usó un parámetro de comando
prohibido para el movimiento de
seguimiento del transportador.
Elimine LJM.
2200
Robot en uso.
No se puede ejecutar el comando
de movimiento cuando otras tareas
están usando el robot.
El comando de movimiento del robot
no se puede ejecutar
simultáneamente desde más de una
tarea. Revise el programa.
2201
El robot no existe.
Revise si la configuración del robot
se realizó correctamente. Restaure
la configuración del controlador.
2202
Falla de estado del módulo de
control de movimiento. Se arrojó
un error desconocido.
Recompile el proyecto.
2203
No se puede borrar el número local
' 0 '.
No se puede borrar el número local
0. Revise el programa.
2204
No se puede borrar un brazo
mientras está en uso.
No se puede borrar el brazo mientras
está en uso. Revise si el brazo no
está en uso.
El número de
brazo que
intentó borrar
2205
No se puede borrar el número de
brazo ' 0 '.
No se puede borrar el número de
brazo 0. Revise el programa.
2206
No se puede borrar una
herramienta mientras está en uso.
No se puede borrar la herramienta
mientras está en uso. Revise si la
herramienta no está en uso.
El número de
herramienta
que intentó
borrar
2207
No se puede borrar el número de
herramienta ' 0 '.
No se puede borrar el número de
herramienta 0. Revise el programa.
2208
No se puede borrar ECP ' 0 '.
No se puede borrar el número ECP
0. Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 805
N.º Mensaje Solución Nota 1 Nota 2
2209
No se puede borrar un ECP
mientras está en uso.
No se puede borrar el ECP mientras
está en uso. Revise si el ECP no
está en uso.
El número de
ECP que
intentó borrar
2210
No se puede especificar ' 0 ' como
el número local.
El comando que procesa el valor
local no puede especificar el número
local 0. Revise el programa.
2216
El número de caja está fuera de
rango.
Los números de caja disponibles
varían de 1 a 15. Revise el
programa.
2217
El número de caja no está definido.
La caja especificada no está
definida.
Revise el número de caja.
2218
El número de plano está fuera de
rango.
Los números de caja disponibles
varían de 1 a 15. Revise el
programa.
2219
El número de plano no está
definido.
El plano especificado no está
definido. Revise el número de plano.
2220
Falla de PRM. No se encontraron
datos del archivo PRM.
Reinicie el controlador. Restaure la
configuración del controlador.
2221
Falla de PRM. No se pudo
actualizar el archivo PRM.
Reinicie el controlador. Restaure la
configuración del controlador.
2222
El número local no está definido.
Revise la configuración local. Revise
el programa.
El número
local
especificado
2223
El número local está fuera de
rango.
El número local disponible es de 1 a
15. Revise el programa.
El número
local
especificado
2224
No compatible. MCOFS no está
definido
-
2225 CalPls no está definido. Revise la configuración de CalPls.
2226
El número de brazo está fuera de
rango.
El número de brazo disponible es de
0 a 3. Dependiendo de los
comandos, el número de brazo 0 no
está disponible. Revise el programa.
El número de
brazo
especificado
2227
El número de brazo no es
definido.
Revise la configuración del brazo.
Revise el programa.
El número de
brazo
especificado
2228
El pulso para la posición de reposo
no está definido.
Revise la configuración de HomeSet.
2229
El número de herramienta está
fuera de rango.
El número de herramienta disponible
varía de 0 a 3. Según los comandos,
el número de herramienta 0 no está
disponible. Revise el programa.
El número de
herramienta
especificado
2230
El número de la herramienta no
está definido.
Revise la configuración de la
herramienta. Revise el programa.
El número de
herramienta
especificado
2231
El número ECP está fuera de
rango.
El número de herramienta disponible
varía de 0 a 15. Según los
comandos, el número de herramienta
0 no está disponible. Revise el
programa.
El número
ECP
especificado
2232
El número ECP no está definido.
Revise la configuración de ECP.
Revise el programa.
El número
ECP
especificado
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 806
N.º Mensaje Solución Nota 1 Nota 2
2233
El eje para restablecer el
codificador no está especificado.
Asegúrese de especificar el eje para
restablecer el codificador.
2234
No se puede restablecer el
codificador con el motor en el
estado ON.
Apague el motor antes de
restablecerlo.
2235 XYLIM no está definido.
Revise la configuración de XYLim.
Revise el programa.
2236
Falla de PRM. No se pudo
configurar el contenido del archivo
PRM para el módulo de estado del
control de movimiento.
Reinicie el controlador. Restaure la
configuración del controlador.
2237
El número de pálet está fuera de
rango.
Los números de pálets disponibles
son de 0 a 15. Revise el programa.
2238 El pálet no está definido. Revise la configuración de pálet.
2240
El subíndice de la matriz está fuera
del rango definido por el usuario.
No se puede tener acceso ni
actualizar fuera de los límites de la
matriz.
Revise el subíndice de la matriz.
Revise el programa.
Las
dimensiones
superan la
definición
El subíndice
especificado
2241
Las dimensiones de la matriz no
coinciden con la declaración.
Revise las dimensiones de la matriz.
Revise el programa.
2242 Se usó cero '0' como divisor. Revise el programa.
2243
Desbordamiento de la variable. La
variable especificada superaba el
valor máximo permitido.
Revise el tipo de variable y el
resultado del cálculo. Revise el
programa.
2244
Subdesbordamiento de la variable.
La variable especificada era inferior
al valor mínimo permitido.
Revise el tipo de variable y el
resultado del cálculo. Revise el
programa.
2245
No se puede ejecutar este
comando con un número de punto
flotante.
No se puede ejecutar este comando
para el tipo Real o Double. Revise el
programa.
2246
No se puede calcular el valor
especificado con la función Tan.
Revise el valor especificado. Revise
el programa.
El valor
especificado
2247
El subíndice de la matriz
especificada es inferior a ' 0 '.
Revise el valor especificado. Revise
el programa.
El valor
especificado
2248
Falla de matriz. Redim solo se
puede ejecutar para una variable
de matriz.
Intentó Redim en una variable que
no es de una matriz. Recompile el
proyecto.
2249
Falla de matriz. Solo puede
especificar Preserve para la matriz
de una sola dimensión.
Se especificó otra matriz que no es
de una sola dimensión como
Preserve para Redim. Recompile el
proyecto.
2250
Falla de matriz. No se pudo
calcular el tamaño del área de la
variable.
Recompile el proyecto.
2251
No se pudo asignar suficiente
memoria para la instrucción Redim.
Reduzca el número de subíndices
que se especificarán para Redim.
Realice Redim con moderación.
2252
No se puede asignar memoria
suficiente para ByRef.
Reduzca el número de subíndices de
la matriz que se verán mediante
ByRef.
2253
No se pueden comparar caracteres
con valores.
Revise que el tipo de cadena y el tipo
de datos numéricos no se comparen.
Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 807
N.º Mensaje Solución Nota 1 Nota 2
2254
Los datos especificados superan
los límites de la matriz. No se
puede consultar o actualizar fuera
de los límites de la matriz.
Revise el número de subíndices y
datos de la matriz. Revise el
programa.
El número de
subíndices de
la matriz
El número
de datos que
se
consultarán
o
actualizarán
2255
Desbordamiento o
subdesbordamiento de la variable.
La variable especificada está fuera
de rango.
Se especificó el valor que supera el
rango del tipo Double. Revise el
programa.
2256
El subíndice de la matriz
especificada está fuera del rango
permitido máximo.
Reduzca el número de subíndices
que se especificarán. Para conocer
los subíndices disponibles, consulte
la ayuda en línea.
2260
El número de tarea está fuera del
rango disponible.
Para conocer el número de tarea
disponible, consulte la ayuda en
línea. Revise el programa.
El número de
tarea
especificado
2261
El número de tarea especificado no
existe.
Revise el programa.
El número de
tarea
especificado
2262
El número de robot está fuera del
rango disponible.
El número de robot disponible es 1.
Revise el programa.
El número de
robot
especificado
2263
El número de salida está fuera del
rango disponible. El n.º de puerto
o el n.º de dispositivo están fuera
del rango disponible.
Para conocer el número de salida
disponible, consulte la ayuda en
línea. Revise el programa.
El número de
salida
especificado
2264
El argumento del comando está
fuera del rango disponible. Revise
los argumentos. Datos agregados
1: Valor aprobado. Datos
agregados 2: orden del argumento.
Para conocer el rango del argumento
disponible, consulte la ayuda en
línea. Revise el programa.
El valor
agregado
¿Qué
argumento
de número?
2265
El número de articulación está
fuera del rango disponible.
El número de articulación disponible
es de 1 a 6. Revise el programa.
El número de
articulación
especificado
2266
El tiempo de espera está fuera del
rango disponible.
El tiempo de espera disponible es de
0 a 2147483. Revise el programa.
El tiempo de
espera
especificado
2267
El número de temporizador es
fuera del rango disponible.
El número de temporizador
disponible es de 0 a 15. Revise el
programa.
El número de
temporizador
especificado
2268
El número de captura está fuera
del rango disponible.
El número de captura disponible es
de 1 a 4. Revise el programa.
El número de
captura
especificado
2269
La ID de idioma está fuera del
rango disponible.
Para conocer la ID de idioma
disponible, consulte la ayuda en
línea. Revise el programa.
La ID de
idioma
especificada
2270
El valor del parámetro D
especificado para el proceso
paralelo está fuera del rango
disponible.
El valor de parámetro D disponible
es de 0 a 100. Revise el programa.
El valor de
parámetro D
especificado
2271
El número de arco está fuera del
rango disponible.
El número de arco disponible es de 0
a 7. Revise el programa.
El número de
arco
especificado
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
808
N.º Mensaje Solución Nota 1 Nota 2
2272
El n.º de dispositivo está fuera del
rango disponible.
El número especificado que
representa un dispositivo de control o
un dispositivo de visualización está
fuera del rango disponible. Para
conocer el número de dispositivo
disponible, consulte la ayuda en
línea. Revise el programa.
El número de
dispositivo
especificado
2273
Los datos de salida están fuera del
rango disponible.
El valor de los datos de salida
disponibles es de 0 a 255. Revise el
programa.
Datos de
salida
¿Qué datos
de byte del
número
están fuera
de rango?
2274
El argumento Asin está fuera del
rango disponible. El rango es de -1
a 1.
Revise el programa.
2275
El argumento Acos está fuera del
rango disponible. El rango es de -1
a 1.
Revise el programa.
2276
El argumento Sqr está fuera del
rango disponible.
Revise el programa.
2277
El argumento Randomize está
fuera del rango disponible.
Revise el programa.
2278
El argumento Sin, Cos, Tan está
fuera del rango disponible.
Revise el programa.
2280
El período de tiempo de espera
configurado con la instrucción
TMOut expiró antes de que la
condición de espera terminara en
la instrucción WAIT.
Investigue la causa del tiempo de
espera. Revise si es correcto el
período de tiempo de espera
configurado.
Período de
tiempo de
espera
2281
Expiró el período de tiempo de
espera configurado con la
instrucción TMOut en las
instrucciones WaitSig o SyncLock.
Investigue la causa del tiempo de
espera. Revise si es correcto el
período de tiempo de espera
configurado.
Número de
señal
Período de
tiempo de
espera
2282
Expiró el período de tiempo de
espera configurado con la
instrucción TMOut en la instrucción
WaitNet.
Investigue la causa del tiempo de
espera. Revise si es correcto el
período de tiempo de espera
configurado.
Número de
puerto
Período de
tiempo de
espera
2283
Tiempo de espera.
Tiempo de espera en la
configuración del dispositivo de
visualización.
Reinicie el controlador.
2290
No se puede ejecutar un comando
de movimiento.
No se puede ejecutar un comando
de movimiento después de usar la
función de usuario en el comando de
movimiento. Revise el programa.
2291
No se puede ejecutar el comando
OnErr.
No se puede ejecutar OnErr en el
comando de movimiento cuando se
usa la función de usuario en el
comando de movimiento. Revise el
programa.
2292
No se puede ejecutar el comando
de E/S mientras está abierta la
protección. Necesidad forzada.
No se puede ejecutar el comando de
E/S mientras está abierta la
protección. Revise el programa
2293
No se puede ejecutar un comando
de E/S durante la condición de
parada de emergencia. Necesidad
forzada.
No se puede ejecutar el comando de
E/S durante la condición de parada
de emergencia. Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 809
N.º Mensaje Solución Nota 1 Nota 2
2294
No se puede ejecutar el comando
de E/S cuando se ha detectado un
error. Necesidad forzada.
No se puede ejecutar el comando de
E/S mientras ocurre un error. Revise
el programa.
2295
No se puede ejecutar este
comando desde una tarea
NoEmgAbort y una tarea en
segundo plano.
Para conocer detalles sobre los
comandos ejecutables, consulte la
ayuda en línea.
Revise el programa.
2296
Se actualizaron uno o más
archivos de origen. Compile el
proyecto.
Recompile el proyecto.
2297
No se puede ejecutar el comando
de E/S en el modo TEACH sin el
parámetro Forced.
No se puede ejecutar el comando de
E/S en el modo TEACH. Revise el
programa.
2298
No se puede continuar la ejecución
en el proceso Trap SGClose.
No puede ejecutar las instrucciones
Cont y Recover con la tarea de
procesamiento Trap SGClose.
2299
No se puede ejecutar este
comando. Necesita la
configuración [enable the advance
task control commands] (habilite
los comandos de control de la
tarea avanzada) desde la
configuración de preferencias del
controlador RC+.
Habilite [enable the advance task
control commands] desde RC+ para
ejecutar el comando.
2300
Robot en uso. No se puede
ejecutar el comando de movimiento
cuando otra tarea está usando al
robot.
El comando de movimiento del robot
no se puede ejecutar
simultáneamente desde más de una
tarea. Revise el programa.
El número de
tarea que
está usando
al robot
2301
No se puede ejecutar el comando
de movimiento cuando Enable
Switch (Interruptor de activación)
está en OFF.
Ejecute el comando de movimiento
con el interruptor de activación
agarrado.
2302
No se puede ejecutar la instrucción
Call en un proceso Trap Call.
No se puede llamar a otra función
desde la función que llama Trap Call.
Revise el programa.
2303
No se puede ejecutar la instrucción
Call en un proceso paralelo.
Revise el programa.
2304
No se puede ejecutar la instrucción
Xqt en un proceso paralelo.
Revise el programa.
2305
No se puede ejecutar la instrucción
Call desde la ventana Command.
Ejecute Call desde el programa.
2306
No se puede ejecutar la instrucción
Xqt desde la tarea iniciada por
Trap Xqt.
Revise el programa.
2307
No se puede ejecutar este
comando mientras las tareas están
en ejecución.
Revise si todas las tareas se han
completado.
2308
No se puede encender el motor
debido a un error crítico.
Encuentre el error que ocurrió
anteriormente en el historial de
errores y resuelva su causa. Luego,
reinicie el controlador.
2309
No se puede ejecutar el comando
de movimiento mientras está
abierta la protección.
Revise el estado de protección.
2310
No se puede ejecutar el comando
de movimiento mientras se espera
a que continúe.
Ejecute Continue o Stop y luego
ejecute el comando de movimiento.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
810
N.º Mensaje Solución Nota 1 Nota 2
2311
No se puede ejecutar un comando
de movimiento durante el proceso
de continuación.
Espere a que termine Continue y
luego ejecute el comando de
movimiento.
2312
No se puede ejecutar la tarea
durante la condición de parada de
emergencia.
Revise el estado de parada de
emergencia.
2313
No se puede continuar la ejecución
inmediatamente después de abrir
la protección.
Espere 1,5 segundos después de
abrir la protección y luego ejecute
Continue.
2314
No se puede continuar la ejecución
mientras está abierta la protección.
Revise el estado de protección.
2315
No se puede ejecutar el comando
Cont y Restart en la operación de
reanudación.
Espere hasta que finalice Continue.
2316
No se puede continuar la ejecución
después de haber detectado un
error.
Revise el estado del error.
2317
No se puede ejecutar la tarea
cuando se ha detectado un error.
Restablezca el error con Reset y
luego ejecute la tarea.
2318
No se puede ejecutar un comando
de movimiento cuando se ha
detectado un error.
Ejecute el comando de movimiento
después de restablecer el error con
Reset.
2319
No se puede ejecutar un comando
de E/S durante la condición de
parada de emergencia.
Revise el estado de parada de
emergencia.
2320
Falla de función. El tipo de
argumento no coincide.
Recompile el proyecto.
2321
Falla de función. El valor devuelto
no coincide con la función.
Recompile el proyecto.
2322
Falla de función.
El tipo ByRef no coincide.
Recompile el proyecto.
2323
Falla de función. No se pudo
procesar el parámetro ByRef.
Recompile el proyecto.
2324
Falla de función. La dimensión del
parámetro ByRef no coincide.
Recompile el proyecto.
2325
Falla de función. No se puede usar
ByRef en una instrucción Xqt.
Recompile el proyecto.
2326
No se puede ejecutar una
instrucción Dll Call desde la
ventana Command.
Ejecute DII Call desde el programa.
2327 No se pudo ejecutar una Dll Call.
Revise la DLL.
Revise el programa.
2328
No se puede ejecutar la tarea
antes de la conexión con RC+.
Necesita conectarse con RC+ antes
de ejecutar la tarea.
2329
No se puede ejecutar una
instrucción Eval en un proceso
Trap Call.
Revise el programa.
2330
Falla de captura.
No se puede usar el argumento en
la instrucción Trap Call o Xqt.
Revise el programa.
2331
Falla de captura.
No se pudo procesar la instrucción
Trap Goto.
Recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 811
N.º Mensaje Solución Nota 1 Nota 2
2332
Falla de captura.
No se pudo procesar la instrucción
Trap Goto.
Recompile el proyecto.
2333
Falla de captura.
La captura ya está en proceso.
Recompile el proyecto.
2334
No se puede ejecutar una
instrucción Eval en un proceso
Trap Finish o Trap Abort.
Revise el programa.
2335
No se puede continuar la ejecución
y Reset Error en el modo TEACH.
Revise el programa.
2336
No se puede la instrucción Here
con un proceso paralelo.
Go Here :Z(0) ! D10; MemOn(1) !
no es ejecutable.
Cambie el programa:
P999 = Here
Go P999 Here :Z(0) ! D10;
MemOn(1) !
2337
No se puede ejecutar, excepto
desde las funciones del
identificador de sucesos de GUI
Builder.
Revise el programa.
2338
No se puede ejecutar Xqt, la
entrada de datos y la salida para
TP en el modo TEST.
No se puede ejecutar en el modo
TEST.
Revise el programa.
2339
No se puede ejecutar en el modo
independiente.
Cambie la configuración a
“cooperative mode” (modo
cooperativo) y ejecute.
2340
El valor especificado en la función
InBCD no es un valor BCD válido.
Revise el programa.
Dígito de
decenas
Dígito de
unidades
2341
El valor especificado en la
instrucción OpBCD no es un valor
BCD válido.
Revise el programa.
El valor
especificado
2342
No se puede cambiar el estado del
bit de salida configurado como
salida remota.
Revise la configuración de E/S
remota.
Número de
E/S
1: bit, 2:
byte, 3:
palabra
2343
El tiempo de salida para la salida
asincrónica ordenada por la
instrucción On u Off está fuera del
rango disponible.
Revise el programa.
El tiempo
especificado
2344
El número de bit de entrada/salida
de E/S está fuera del rango
disponible o la placa no está
instalada.
Revise el programa.
Revise si se detectó correctamente
la placa E/S de expansión y la placa
E/S del bus de campo.
Número de bit
2345
El número de byte de
entrada/salida de E/S está fuera
del rango disponible o la placa no
está instalada.
Revise el programa.
Revise si se detectó correctamente
la placa E/S de expansión y la placa
E/S del bus de campo.
Número de
byte
2346
El número de palabra de
entrada/salida de E/S está fuera
del rango disponible o la placa no
está instalada.
Revise el programa.
Revise si se detectó correctamente
la placa E/S de expansión y la placa
E/S del bus de campo.
Número de
palabra
2347
El número de bit de E/S de
memoria está fuera del rango
disponible.
Revise el programa.
Número de bit
2348
El número de byte de E/S de
memoria está fuera del rango
disponible.
Revise el programa.
Número de
byte
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
812
N.º Mensaje Solución Nota 1 Nota 2
2349
El número de palabra de E/S de
memoria está fuera del rango
disponible.
Revise el programa.
Número de
palabra
2350
El comando se permite solo
cuando está activo el modo de E/S
virtual.
El comando puede ejecutarse solo
para el modo de E/S virtual.
2353
El comando especificado no se
puede ejecutar desde la ventana
Command.
Ejecute el comando especificado
desde el programa.
2354
No se puede ejecutar el comando
de salida de E/S cuando Enable
Switch está en OFF.
Ejecute el comando de salida de E/S
con el interruptor de activación
agarrado.
2360
Falla del archivo.
No se pudo abrir el archivo de
configuración.
Restaure la configuración del
controlador.
2361
Falla del archivo.
No se pudo cerrar el archivo de
configuración.
Restaure la configuración del
controlador.
2362
Falla del archivo.
No se pudo abrir la clave del
archivo de configuración.
Restaure la configuración del
controlador.
2363
Falla del archivo.
No se pudo obtener una cadena
desde el archivo de configuración.
Restaure la configuración del
controlador.
2364
Falla del archivo.
No se pudo escribir en el archivo
de configuración.
Restaure la configuración del
controlador.
2365
Falla del archivo.
No se pudo actualizar el archivo de
configuración.
Restaure la configuración del
controlador.
2370
La combinación de la cadena
supera la longitud de cadena
máxima.
La longitud máxima de la cadena es
255. Revise el programa.
Longitud de
cadena
combinada
2371
La longitud de la cadena está fuera
de rango.
La longitud máxima de la cadena es
255. Revise el programa.
La longitud
especificada
2372
Se especificó un carácter no válido
después del ampersand en la
función Val.
Revise el programa.
2373
Se especificó una cadena no válida
para la función Val.
Revise el programa.
2374
Falla de cadena. Código de
carácter no válido en la cadena.
Revise el programa.
2380
No se puede usar ' 0 ' para el valor
Step en For...Next.
Revise el valor Step.
2381
La relación entre For...Next y
GoSub no es válida. Entrada o
salida de For...Next mediante una
instrucción Goto.
Revise el programa.
2382
No se puede ejecutar Return
mientras se ejecuta OnErr.
Revise el programa.
2383
Se usó Return sin GoSub. Revise
el programa.
Revise el programa.
2384
Se usó Case o Send sin Select.
Revise el programa.
Revise el programa.
2385
No se puede ejecutar EResume
mientras se ejecuta GoSub.
Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 813
N.º Mensaje Solución Nota 1 Nota 2
2386
Se usó EResume sin OnErr.
Revise el programa.
Revise el programa.
2400
Falla de curva.
No se pudo abrir el archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2401
Falla de curva.
No se pudieron asignar los datos
de encabezado del archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2402
Falla de curva.
No se pudo escribir el archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2403
Falla de curva.
No se pudo abrir el archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2404
Falla de curva.
No se pudo actualizar el archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2405
Falla de curva.
No se pudo leer el archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2406
Falla de curva.
El archivo de curva está dañado.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2407
Falla de curva.
Especifique un archivo distinto del
archivo de curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2408
Falla de curva.
La versión del archivo de curva no
es válida.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2409
Falla de curva.
El número de robot en el archivo
de curva no es válido.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2410
Falla de curva.
No se puede asignar suficiente
memoria para la instrucción
CVMove.
Reinicie el controlador.
2411
Los datos de punto especificados
en la instrucción Curve superan el
número máximo.
El número máximo de puntos
especificado en la instrucción Curve
es 200. Revise el programa.
2412
El número de comandos de salida
especificado en la instrucción
Curve supera el número máximo.
El número máximo de comandos de
salida especificado en la instrucción
Curve es 16. Revise el programa.
2413
Falla de curva. El código interno
especificado supera el tamaño
permitido en la instrucción Curve.
Reinicie el controlador.
2414
Los datos de punto de continuación
P(:) especificados superan el
número máximo.
El número máximo de puntos
especificado continuamente es 200.
Revise el programa.
Punto de
partida
Punto final
2415
Falla de curva.
No se puede crear un archivo de
curva.
Reinicie el controlador.
Cree un archivo de curva
nuevamente.
2416 El archivo de curva no existe.
Revise si el nombre del archivo de
curva especificado es correcto.
2417
Falla de curva.
El comando de salida se especifica
antes de los datos de punto.
Revise que no se especifique un
comando de salida antes de los
datos de punto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
814
N.º Mensaje Solución Nota 1 Nota 2
2430
Falla del mensaje de error.
El archivo de mensajes de error no
existe.
Reinicie el controlador.
2431
Falla del mensaje de error.
No se pudo abrir el archivo de
mensajes de error.
Reinicie el controlador.
2432
Falla del mensaje de error.
No se pudieron obtener los datos
de encabezado del archivo de
mensajes de error.
Reinicie el controlador.
2433
Falla del mensaje de error.
El archivo de mensajes de error
está dañado.
Reinicie el controlador.
2434
Falla del mensaje de error.
Se especificó un archivo distinto
del archivo de mensajes de error.
Reinicie el controlador.
2435
Falla del mensaje de error.
La versión del archivo de mensajes
de error no es válida.
Reinicie el controlador.
2440
Error de archivo.
El número de archivo ya se está
usando.
Revise el número de archivo.
2441
Error de archivo.
No se pudo abrir el archivo.
Asegúrese de que el archivo existe y
que lo especificó correctamente.
2442
Error de archivo.
El archivo no está abierto.
Abra el archivo por adelantado.
2443
Error de archivo. Otra tarea está
utilizando el número de archivo.
Revise el programa.
2444
Error de archivo. No se pudo
cerrar el archivo.
Revise el archivo.
2445
Error de archivo. Falla al buscar
archivo.
Revise el programa.
Revise la configuración del puntero.
2446
Error de archivo.
Se están usando todos los
números de archivo.
Cierre los archivos innecesarios.
2447
Error de archivo.
No tiene permiso de lectura.
Use ROpen o UOpen que tenga
acceso de lectura para el archivo.
2448
Error de archivo.
No tiene permiso de escritura.
Use WOpen o UOpen que tenga
acceso de escritura para el archivo.
2449
Error de archivo.
No tiene permiso binario.
Use BOpen que tenga acceso binario
al archivo.
2450
Error de archivo.
No se pudo obtener acceso al
archivo.
Revise el archivo.
2451
Error de archivo. No se pudo
escribir el archivo.
Revise el archivo.
2452
Error de archivo. No se pudo leer
el archivo.
Revise el archivo.
2453
Error de archivo.
No se puede ejecutar el comando
para el disco actual.
El comando especificado no está
disponible en el disco actual
(ChDisk).
2454 Error de archivo. Disco no válido. Revise el programa.
2455 Error de archivo. Unidad no válida. Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 815
N.º Mensaje Solución Nota 1 Nota 2
2456
Error de archivo. Carpeta no
válida.
Revise el programa.
2460
Error de la base de datos.
El número de la base de datos ya
se está usando.
Revise el programa.
Especifique el número de otra base
de datos.
Cierre la base de datos.
2461
Error de la base de datos.
La base de datos no está abierta.
Revise el programa.
Abra la base de datos.
2462
Error de la base de datos.
Otra tarea está utilizando el
número de base de datos.
Revise el programa.
2470
Error de comunicación de
Windows. Estado no válido.
Reinicie el controlador.
Recompile el proyecto.
2471
Error de comunicación de
Windows. Respuesta no válida.
Reinicie el controlador.
Recompile el proyecto.
2472
Error de comunicación de
Windows. Ya se inició.
Reinicie el controlador.
2473
Error de comunicación de
Windows. Ocupado.
Reinicie el controlador.
Recompile el proyecto.
2474
Error de comunicación de
Windows. Sin solicitud.
Reinicie el controlador.
Recompile el proyecto.
2475
Error de comunicación de
Windows. Desbordamiento del
búfer de datos.
Reduzca el volumen de datos.
Revise el programa.
2476
Error de comunicación de
Windows. No se pudo esperar el
suceso.
Reinicie el controlador.
2477
Error de comunicación de
Windows. Carpeta no válida.
Asegúrese de que la carpeta
especificada sea correcta.
2478
Error de comunicación de
Windows. Código de error no
válido.
Recompile el proyecto.
2500
La condición del suceso
especificado para Wait supera el
número máximo.
El número máximo de condiciones
de sucesos es 8. Revise el
programa.
2501
El número de bit especificado en la
función Ctr no se inicializó con una
instrucción CTReset.
Revise el programa.
El número de
bit
especificado
2502
El número de tarea supera el
número máximo que se puede
ejecutar.
El número de tareas disponible que
puede ejecutarse simultáneamente
es 32 para las tareas normales y 16
para las tareas en segundo plano.
Revise el programa.
2503
No se puede ejecutar Xqt cuando
ya se está ejecutando el número
de tarea especificado.
Revise el programa.
El número de
tarea
especificado
2504
Falla de la tarea. El manipulador
especificado ya está ejecutando un
proceso paralelo.
Recompile el proyecto.
2505
No hay datos suficientes para la
asignación de variable de la
instrucción Input.
Revise el contenido de los datos de
comunicación. Revise el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
816
N.º Mensaje Solución Nota 1 Nota 2
2506
La variable especificada para la
instrucción Input supera el número
máximo.
Para OP, solo se puede especificar
una variable. Para otros dispositivos,
se pueden especificar hasta 32
variables.
2507
Todos los contadores están en uso
y no se puede inicializar un nuevo
contador con CTReset.
El número de contadores disponible
que se puede configurar
simultáneamente es 16. Revise el
programa.
2508
Falla de OnErr. No se pudo
procesar la instrucción OnErr.
Recompile el proyecto.
2509
Falla de OnErr. No se pudo
procesar la instrucción OnErr.
Recompile el proyecto.
2510
La etiqueta de E/S especificada no
está definida.
La etiqueta de E/S especificada no
está registrada. Revise el archivo de
etiqueta de E/S.
2511
Se usó la instrucción SyncUnlock
sin ejecutar una instrucción
SyncLock anterior. Revise el
programa.
Revise el programa.
Número de
señal
2512
La instrucción SyncLock ya se
ejecutó.
La instrucción SyncLock no se puede
ejecutar por segunda vez
consecutiva. Revise el programa.
Número de
señal
2513
La etiqueta del punto especificado
no está definida.
La etiqueta de punto especificado no
está registrada. Revise el archivo de
puntos.
2514
No se pudo obtener el tiempo de
funcionamiento del motor del robot.
Reinicie el controlador.
2515
No se pudo configurar la fecha o la
hora.
Revise si la fecha y hora están
configuradas correctamente.
2516
No se pudieron obtener los datos
de depuración o para la
inicialización.
Reinicie el controlador.
2517
No se pudo convertir en fecha u
hora.
Revise la hora configurada en el
controlador.
Reinicie el controlador.
2518
Se especificó un número mayor
para los datos de punto de inicio
que para los datos del punto final.
Especifique un número mayor para
los datos de punto final que para los
datos del punto de inicio.
Punto de
partida
Punto final
2519
Sintaxis de formato no válido para
FmtStr$.
Revise el formato.
2520
El nombre del archivo es
demasiado largo.
Revise si el nombre del archivo de
puntos especificado es correcto. La
longitud máxima de la cadena para el
nombre del archivo es de 32.
2521
La ruta del archivo es demasiado
larga.
Revise si el nombre del archivo de
puntos especificado es correcto.
2522
El nombre de archivo no es válido.
Asegúrese de no usar caracteres
incorrectos para el nombre del
archivo.
2523
El proceso de continuación ya se
ejecutó.
Revise el programa.
2524
No se puede ejecutar Xqt cuando
el número de captura especificado
ya se está ejecutando.
Revise el programa.
2525 Contraseña no válida.
Revise si la contraseña se configuró
correctamente.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 817
N.º Mensaje Solución Nota 1 Nota 2
2526
No hay términos de espera. Recompile el proyecto.
2527
Se usaron demasiadas variables
para la espera de la variable
global.
Revise el programa.
2528
Se especificó la variable global que
no se pudo usar para el comando
Wait.
Revise el programa.
2529
No se puede usar ByRef si la
variable se usó para la espera de
la variable global.
Revise el programa.
2530
Demasiados archivos de puntos. Revise el archivo de puntos.
2531
Otro robot está usando el archivo
de puntos.
Revise el programa.
2532
No se puede calcular la posición
del punto porque existen datos
indefinidos.
Revise los datos de punto.
2533
Error en INP o OUTP. Revise el programa.
2534
No se iniciará ninguna función
principal para la instrucción
Restart.
Sin ejecutar la función principal, se
llama la instrucción Restart.
2535
No permite cambiar la
configuración Enable en el modo
Teach.
Configure la autoridad.
2536
No se pudo cambiar la
configuración Enable en el modo
Teach.
Reinicie el controlador.
2537
El recuento de los datos de punto
P(:) es incorrecto o el formato del
parámetro es incorrecto.
Revise el programa.
2538
Falla de Force_GetForces.
No se pudo procesar la instrucción
Force_GetForces.
Revise el programa.
2539
Contraseña no válida. Revise la contraseña.
2540
Sin conexión a RC+. Conéctese a RC+.
2541
Parámetro duplicado.
Se especificó el mismo número de
robot.
Revise el parámetro.
2542
El número de cola de trabajo
especificada no es válido.
Los números de la cola de trabajo
disponibles son de 1 a 16. Revise el
programa.
2543
Se especificó una secuencia no
válida.
No se pudo encontrar la secuencia
especificada. Revise el nombre de la
secuencia.
2544
Se especificó un objeto no válido.
No se pudo encontrar el nombre del
objeto especificado. Revise el
nombre del objeto.
2545
Se especificó una calibración no
válida.
No se pudo encontrar el nombre de
la calibración especificada. Revise el
nombre de la calibración.
2546
No se puede encender el motor
inmediatamente después de abrir
la protección.
Espere 1,5 segundos después de
abrir la protección y luego encienda
el motor.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 818
N.º Mensaje Solución Nota 1 Nota 2
2548
Hay demasiados archivos de
fuerza.
Elimine los archivos de fuerza o
use los archivos de fuerza
existentes.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
2549
No se puede especificar el archivo
de fuerza que no está asociado
con el robot.
Especifique el archivo de fuerza
correcto.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
2550
El comando especificado no es
compatible con el robot articulado y
el robot de tipo cartesiano.
El robot especificado no es
compatible.
Revise la configuración del robot.
2551
No se pudo obtener la información
de salud.
Reinicie el controlador.
2552
No se permite cambiar la
configuración en el modo UL.
Configure la autoridad.
2553
No se pudo cambiar la
configuración en el modo UL.
Reinicie el controlador.
2600
El número de objeto de propiedad
de masa está fuera del rango
permitido.
Revise el rango de los números.
Los valores de MassProperties que
se pueden especificar son de 1 a 15.
Revise el programa.
2601
El objeto de propiedad de masa no
está definido.
Revise la configuración.
Confirme la configuración de
MassProperties.
Revise el programa.
2602
No se puede borrar el objeto de
propiedad de masa mientras está
en uso.
Especifique otro objeto de
propiedad de masa antes de borrar
el objeto anterior.
No se puede borrar MP mientras
está en uso.
Confirme si MP está en uso.
2603
No se puede borrar el número '0'
del objeto de propiedad de masa
No se puede borrar el número MP 0.
Revise el programa.
2840
Falla en la confirmación del
recuento de conexión de DU.
Revise si la unidad motriz es
conectada correctamente.
2841
Falla en la adquisición del recuento
de conexión de DU.
Revise si la unidad motriz es
conectada correctamente.
2842
Falla en la confirmación de la
información de conexión de DU.
Revise si la unidad motriz es
conectada correctamente.
2843
Falla en la adquisición de la
información de conexión de DU.
Revise si la unidad motriz es
conectada correctamente.
2844
Hay un número faltante o una
repetición en la configuración del
interruptor DIP de DU.
Revise los interruptores DIP de la
unidad motriz
2845
La unidad motriz (DU) que usa el
robot no está conectada.
Revise si la unidad motriz es
conectada correctamente.
Elimine el
registro del
robot o
conecte la DU
al
manipulador
registrado.
2846
Debido a que se reconoció el
aumento y la disminución de la
unidad matriz, la unidad del
controlador se reinició.
El controlador se reinició debido a un
cambio de conexión con la unidad
motriz.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 819
N.º Mensaje Solución Nota 1 Nota 2
2847
La configuración del interruptor DIP
de la unidad I/F del sensor de
fuerza es inadecuada.
No es necesario cambiar la
configuración del interruptor DIP.
Consúltenos.
2848
No está conectada la unidad I/F del
sensor de fuerza para la cual está
registrado el sensor de fuerza.
Revise la conexión.
Confirme si es posible conectarlo
correctamente a la unidad I/F del
sensor de fuerza.
2849
No se pudo inicializar la unidad I/F
del sensor de fuerza.
Revise la conexión.
Confirme si es posible conectarlo
correctamente a la unidad I/F del
sensor de fuerza.
2850
No se pudo inicializar la unidad I/F
del sensor de fuerza.
Revise la conexión.
Confirme si es posible conectarlo
correctamente a la unidad I/F del
sensor de fuerza.
2851
El sensor de fuerza, que es
diferente del sensor registrado,
está conectado.
Revise la conexión o la
configuración.
No corresponde el número de serie
del sensor conectado con el sensor
registrado.
Cámbielo por un sensor nuevo
después de confirmar la conexión,
regresar al sensor conectado o
invalidar el sensor. En caso de que
se reemplace, establezca
nuevamente la configuración de la
conexión en la configuración del
sensor.
2852
El sensor de fuerza registrado no
está conectado.
Revise la conexión.
Confirme que sea posible hacer una
correcta conexión con el sensor
registrado.
Invalide el sensor cuando no conecte
el sensor.
2853
No se pudo actualizar el software
de la unidad I/F del sensor de
fuerza.
Revise el procedimiento de
actualización.
Revise la configuración de
actualización del software.
Confirme la conexión con la unidad
I/F del sensor de fuerza.
2854
No se pudo actualizar el software
de la unidad I/F del sensor de
fuerza.
Revise el procedimiento de
actualización.
Confirme el nombre del archivo.
Confirme el archivo de actualización.
2855
No se pudo actualizar el software
de la unidad I/F del sensor de
fuerza.
Revise el procedimiento de
actualización.
Confirme la fuente de alimentación y
la conexión de la unidad I/F del
sensor de fuerza.
Reinicie el controlador.
2856
Está conectada la unidad I/F del
sensor de fuerza con una versión
anterior.
Actualice el software de la unidad
I/F del sensor de fuerza.
Se necesita actualizar la versión de
la unidad I/F del sensor de fuerza
conectado. Actualice la unidad I/F
del sensor de fuerza. Para actualizar
los procedimientos, consúltenos.
2857
El robot registrado en la unidad I/F
del sensor de fuerza no está
conectado.
Revise el registro del robot o la
configuración del sensor de fuerza.
El robot que se relaciona con el
sensor no está registrado.
Revise el registro del robot o invalide
la conexión del robot.
2858
No se pudo asignar la memoria
para el monitor de fuerza.
Reinicie el controlador.
Consulte con nosotros si ocurre un
error similar después de reiniciarlo.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 820
N.º Mensaje Solución Nota 1 Nota 2
2859
No se pudo asignar la memoria
para el registro de fuerza.
Reinicie el controlador.
Consulte con nosotros si ocurre un
error similar después de reiniciarlo.
2860
El objeto del monitor de fuerza
especificado en el registro de
fuerza está en uso.
Especifique otro objeto del monitor
de fuerza.
No se puede especificar el mismo
número FM.
Especifique un número FM diferente.
2861
Se ejecuta el número máximo de
los registros de fuerza.
Revise la sincronización del
registro.
Se usa el número de registro más
grande.
Confirme el número de registros.
2862
No se pudo asignar la memoria
para el monitor del control de
fuerza.
Reinicie el controlador.
Consulte con nosotros si ocurre un
error similar después de reiniciarlo.
2863
No se pueden ejecutar
simultáneamente el monitor de
control de fuerza y la propiedad
LogStart.
Salga de la propiedad LogStart
mediante la propiedad LogEnd.
Detiene la propiedad LogStart
mediante la propiedad LogEnd y
luego ejecuta el monitor de control
de fuerza.
2864
No se pueden ejecutar
simultáneamente el monitor de
control de fuerza y el monitor de
fuerza.
Salga del monitor de fuerza.
Detiene el monitor de fuerza y luego
ejecuta el monitor de control de
fuerza.
2865
No se pueden ejecutar
simultáneamente el monitor de
control de fuerza y la propiedad
LogStart.
Salga del monitor de control de
fuerza.
Detiene el monitor de control de
fuerza y luego ejecuta la propiedad
LogStart.
2866
No se pueden ejecutar
simultáneamente el monitor de
control de fuerza y el monitor de
fuerza.
Salga del monitor de control de
fuerza.
Detiene el monitor de control de
fuerza y luego ejecuta el monitor de
fuerza.
2867
El canal especificado está en uso.
Especifique otro canal.
No se puede especificar el mismo
canal. Especifique un canal diferente
para ejecutar.
2868
El objeto del monitor de fuerza
especificado está en uso.
Especifique otro objeto del monitor
de fuerza.
No se puede especificar el mismo
número FM. Especifique un número
FM diferente para ejecutar.
2869
La duración especificada de la
medición es menor que el intervalo
de medición especificado.
Revise el parámetro.
Especifique el tiempo de medición
por más tiempo que el intervalo de
medición que se ejecutará.
2870
El producto de la duración
especificada de la medición y el
intervalo de medición especificado
está fuera del rango permitido.
Revise el parámetro.
Revise el tiempo e intervalo de
medición.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 821
N.º Mensaje Solución Nota 1 Nota 2
2900
No se pudo abrir como servidor
para el puerto Ethernet.
Revise si el puerto Ethernet está
configurado correctamente. Revise
si el cable Ethernet está conectado
correctamente.
2901
No se pudo abrir como cliente para
el puerto Ethernet.
Revise si el puerto Ethernet está
configurado correctamente. Revise
si el cable Ethernet está conectado
correctamente.
2902
No se pudo leer desde el puerto
Ethernet.
Revise que el puerto del destinatario
de comunicaciones no esté cerrado.
2904
Se especificó una dirección IP no
válida.
Revise la dirección IP.
2905
Falla de Ethernet.
No hay especificación del
servidor/cliente.
Revise el programa.
2906 No se configuró el puerto Ethernet.
Revise si el puerto Ethernet está
configurado correctamente.
Número de
puerto
2907
El puerto Ethernet ya estaba
siendo usado por otra tarea.
Solamente una tarea puede usar un
puerto a la vez.
Número de
puerto
2908
No se pueden cambiar los
parámetros del puerto mientras el
puerto Ethernet está abierto.
Los parámetros del puerto no
pueden cambiarse mientras el puerto
esté abierto.
Número de
puerto
2909
El puerto Ethernet no está abierto.
Para usar el puerto Ethernet, ejecute
la instrucción OpenNet.
Número de
puerto
2910
Tiempo de espera de lectura desde
un puerto Ethernet.
Revise la comunicación.
Valor de
tiempo de
espera
2911
No se pudo leer desde un puerto
Ethernet.
Revise la comunicación.
2912
El puerto Ethernet ya estaba
siendo usado por otra tarea.
Solamente una tarea puede usar un
puerto a la vez.
Número de
puerto
2913
No se pudo escribir en el puerto
Ethernet.
Revise si el puerto Ethernet está
configurado correctamente. Revise
si el cable Ethernet está conectado
correctamente.
Número de
puerto
2914
No se completó la conexión del
puerto Ethernet.
Revise si el puerto del destinatario
de la comunicación está abierto.
Número de
puerto
2915
Los datos recibidos desde el puerto
Ethernet superan el límite de una
línea.
La longitud máxima de una línea es
de 255 bytes.
El número de
bytes es una
línea recibida
2920
Falla de RS-232C.
Error de proceso del puerto RS-
232C.
Revise si se detectó correctamente
la placa RS-232C.
2921
No se pudo leer desde el puerto
RS-232C.
Revise el parámetro y la
comunicación.
2922
No se pudo leer desde el puerto
RS-232C. Error de exceso.
Desacelere la transferencia de datos
o reduzca el tamaño de los datos.
2926
El hardware del puerto RS-232C
no está instalado.
Revise si se detectó correctamente
la placa RS-232C.
Número de
puerto
2927
El puerto RS-232C ya lo tiene
abierto otra tarea.
Solamente una tarea puede usar un
puerto a la vez.
Número de
puerto
2928
No se pueden cambiar los
parámetros del puerto mientras
está abierto el puerto RS-232C.
Los parámetros del puerto no
pueden cambiarse mientras el puerto
esté abierto.
Número de
puerto
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 822
N.º Mensaje Solución Nota 1 Nota 2
2929
El puerto RS-232C no está abierto.
Para usar el puerto RS-232C,
ejecute la instrucción OpenCom.
Número de
puerto
2930
Tiempo de espera de lectura desde
el puerto RS-232C.
Revise la comunicación.
Valor de
tiempo de
espera
2931
No se pudo leer desde el puerto
RS-232C.
Revise la comunicación.
2932
El puerto RS-232C ya lo tiene
abierto otra tarea.
Solamente una tarea puede usar un
puerto a la vez.
Número de
puerto
2933
No se pudo escribir en el puerto
RS-232C.
Revise la comunicación.
Número de
puerto
2934
No se completó la conexión del
puerto RS-232C.
Revise el puerto RS-232C.
2935
Los datos recibidos desde el puerto
RS-232C superan el límite de una
línea.
La longitud máxima de una línea es
de 255 bytes.
El número de
bytes es una
línea recibida
2937
No se puede ejecutar mientras se
usa RS-232C remoto.
El puerto especificado está en uso
actualmente.
Especifique otro puerto.
2938
No se puede ejecutar mientras se
usa ModBus.
El puerto especificado está en uso
actualmente.
Especifique otro puerto.
2950
Falla de Daemon. No se pudo
crear el subproceso de Daemon.
Reinicie el controlador.
2951
Falla de Daemon. Tiempo de
espera mientras se crea el
subproceso de Daemon.
Reinicie el controlador.
2952
Se detectó una falla en la señal de
entrada de la llave de interruptor de
TEACH/AUTO.
Configure el interruptor de llave de
TP en TEACH o AUTO, según
corresponda. Revise si el TP es
conectado correctamente.
2953
Se detectó una falla en la señal de
entrada de la llave ENABLE.
Revise si el TP está conectado
correctamente.
2954
Se detectó una soldadura de relé.
Probablemente se generó un exceso
de corriente debido a una falla de
cortocircuito. Investigue la causa del
problema y tome las medidas
necesarias, y reemplace la DPB.
2955
La temperatura del resistor de
regeneración fue más alta que la
temperatura especificada.
Revise que el filtro no esté obstruido
y que el ventilador no se detenga.
Si no existen problemas en el filtro y
el ventilador, reemplace el módulo
regenerativo.
2970
Falla de MNG.
Error de asignación de área.
Reinicie el controlador.
2971
Falla de MNG.
Error de comprobación en tiempo
real.
Reinicie el controlador.
2972
Falla de MNG.
Error de prioridad estándar.
Reinicie el controlador.
2973
Falla de MNG. Error de prioridad
del impulso.
Reinicie el controlador.
2974
Falla de MNG. Error de prioridad
descendente.
Reinicie el controlador.
2975
Falla de MNG. Error de espera del
suceso.
Reinicie el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 823
N.º Mensaje Solución Nota 1 Nota 2
2976
Falla de MNG. Error de cierre del
mapa.
Reinicie el controlador.
2977 Falla de MNG. Error libre del área. Reinicie el controlador.
2978
Falla de MNG. Error de
AddIOMem.
Reinicie el controlador.
2979 Falla de MNG. Error de AddInPort. Reinicie el controlador.
2980
Falla de MNG. Error de
AddOutPort.
Reinicie el controlador.
2981
Falla de MNG. Error de
AddInMemPort.
Reinicie el controlador.
2982
Falla de MNG.
Error de AddOutMemPort.
Reinicie el controlador.
2983
Falla de MNG. Error de
IntervalOutBit.
Reinicie el controlador.
2984 Falla de MNG. Error de CtrReset. Reinicie el controlador.
2997
Detección de colisión
Si utiliza el simulador, revise que el
objeto esté ubicado en la dirección
de movimiento del robot.
2998
Se intentó AbortMotion cuando el
robot no se estaba moviendo
Consulte la ayuda para conocer
AbortMotion.
2999
Se intentó AbortMotion cuando el
robot se estaba moviendo
Consulte la ayuda para conocer
AbortMotion.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 824
N.º Mensaje Solución Nota 1 Nota 2
3000
El tamaño del archivo OBJ es
grande. TP1 podría no compilar
este proyecto.
Cuando es necesario compilar el
proyecto desde TP1, considere
reducir el programa.
3001
El número de variables que usan
el comando Wait está cerca del
máximo permitido.
El número de variables que usan el
comando Wait supera 56 (el máximo
es 64). Revise si existen variables
innecesarias.
3002
No se pudo encontrar el archivo
DLL.
Revise si existe el archivo DLL en
alguna de las siguientes carpetas:
-
Carpeta del proyecto
-
Carpeta del sistema de Windows
-
Carpeta de configuración de la
variable de entorno PATH
3003
No se puede encontrar la función
DLL.
Revise el nombre de la función
especificada. Además, revise el
archivo DLL para ver si existe la
función especificada en la DLL.
3050 La función Main no está definida. Declare una función Main.
3051 La función no existe. Declare una función sin resolver.
3052 La variable no existe. Declare una variable sin resolver.
3100 Error de sintaxis. Corrija el error de sintaxis.
3101
Error de recuento del parámetro.
El número de parámetros es
excesivo o insuficiente. Corrija los
parámetros.
3102
La longitud del nombre del archivo
supera el máximo permitido.
Acorte el nombre del archivo.
3103 Definición de función duplicada. Cambie el nombre de la función.
3104
Definición de variable duplicada ‘
** ’.
Cambie el nombre de la variable.
3105
Las variables global y global
conservada no se pueden definir
dentro de un bloque de funciones.
Declare las variables global y global
conservada fuera del bloque de
funciones.
3106
Se especificó una función
indefinida.
Especifique un nombre de función
válido.
3107
Se especificó While y Until para
Do...Loop.
La instrucción While/Until se
especificó para ambas instrucciones
Do y Loop. Elimine la cualquiera de
las instrucciones While/Until.
3108
El número o etiqueta de la línea
especificada ‘ ** ’ no existe.
Configure la etiqueta de línea.
3109
Error de desbordamiento.
La especificación numérica directa
se desborda. Reduzca el valor
numérico.
3110
Se especificó una variable
indefinida ‘ ** ’.
Existe una variable indefinida.
Declare la variable.
3111
La variable especificada no es una
variable de matriz.
Especifique la variable de matriz.
3112
No se pueden cambiar las
dimensiones de la variable de
matriz.
La dimensión de la matriz no se
puede cambiar en la instrucción
Redim durante el tiempo de
funcionamiento. Corrija el programa.
3114
La variable Next especificada no
coincide con la variable For
especificada.
Corrija el nombre de la variable.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 825
N.º Mensaje Solución Nota 1 Nota 2
3115
No se puede usar una expresión
de punto en el primer argumento.
Especifique un solo punto para la
configuración del indicador de
puntos. No especifique una
expresión de puntos.
3116
El número de dimensiones de la
matriz no coincide con la
declaración.
Revise el número de dimensiones de
la matriz.
3117
No se pudo encontrar el archivo.
No se pudo encontrar el archivo que
configura el proyecto. Revise en la
carpeta del proyecto si existe el
archivo.
3118
No se pudo encontrar la
instrucción EndIf correspondiente.
El número de instrucciones EndIf que
corresponden a las instrucciones If y
ElseIf no es suficiente. Agregue
instrucciones EndIf.
3119
No se puede encontrar la
instrucción Loop correspondiente.
El número de instrucciones Loop que
corresponden a las instrucciones Do
no es suficiente. Agregue las
instrucciones Loop.
3120
No se puede encontrar la
instrucción Next correspondiente.
El número de instrucciones Next que
corresponden a las instrucciones For
no es suficiente. Agregue las
instrucciones Next.
3121
No se pudo encontrar el Send
correspondiente.
El número de instrucciones Send que
corresponde a las instrucciones
Select no es suficiente. Agregue las
instrucciones Send.
3123
Las instrucciones On/Off superan
el número máximo.
Se define un límite superior (máx.
16) en el número de instrucciones
On/Off en la instrucción Curve.
Revise el límite superior y corrija el
programa.
3124
El número de puntos supera el
número máximo.
Un límite superior ("200" para curvas
abiertas, "50" para curvas cerradas)
está definido en el número de puntos
disponible en la instrucción Curve.
Revise el límite superior y corrija el
programa.
3125
No se pudo encontrar el If
correspondiente.
El número de instrucciones EndIf que
corresponde a las instrucciones If es
excesivo. Elimine los EndIf
innecesarios.
3126
No se pudo encontrar el Do
correspondiente.
El número de instrucciones Loop que
corresponde a las instrucciones Do
es excesivo. Elimine los Loop
innecesarios.
3127
No se pudo encontrar el Select
correspondiente.
El número de instrucciones Send que
corresponde a las instrucciones
Select es excesivo. Elimine los Send
innecesarios.
3128
No se pudo encontrar el For
correspondiente.
El número de instrucciones Next que
corresponde a las instrucciones For
es excesivo. Elimine los Next
innecesarios.
3129
'_' no se puede usar como el
primer carácter de un identificador.
Cambie el primer carácter del
identificador a un carácter alfabético.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 826
N.º Mensaje Solución Nota 1 Nota 2
3130
No se puede especificar el
parámetro ROT.
No se puede especificar el parámetro
ROT en las instrucciones BGo, Go,
TGo, Jump y Jump3. Corrija el
programa.
3131
No se puede especificar el
parámetro ECP.
No se puede especificar el parámetro
ECP en las instrucciones BGo, Go,
TGo, Jump, Jump3 y Arc. Corrija el
programa.
3132
No se puede especificar el
parámetro Arch.
No se puede especificar el parámetro
Arch en las instrucciones Go, BGo,
TGo, Arc, Arc3, BMove, Move y
TMove. Corrija el programa
3133
No se puede especificar el
parámetro LimZ.
No se puede especificar el parámetro
LimZ en las instrucciones BGo, TGo,
Jump3, Arc, Arc3, BMove, Move y
TMove. Corrija el programa.
3134
No se puede especificar el
parámetro Sense.
No se puede especificar el parámetro
Sense en las instrucciones BGo,
TGo, Arc, Arc3, BMove, Move y
TMove. Corrija el programa.
3135
Se especificó un parámetro no
válido.
Se especificó un parámetro no válido
en las instrucciones Xqt y Call.
Corrija el programa.
3137
No se puede especificar el
subíndice variable de matriz.
No se puede especificar el subíndice
de variable de matriz. Corrija el
programa.
3138
No se especificó ByRef en la
declaración de función.
Especifique ByRef en la lista de
parámetros de declaraciones de
función que es llamada por la
instrucción Call.
3139
No se puede ejecutar la instrucción
Xqt para una función que necesita
un parámetro ByRef.
No se puede ejecutar la instrucción
Xqt para una función que necesita un
parámetro ByRef. Elimine el
parámetro ByRef.
3140
No se puede ejecutar la instrucción
Redim para la variable ByRef.
No se puede ejecutar la instrucción
Redim para una variable que
especifica un parámetro ByRef.
Elimine el parámetro ByRef.
3141 El archivo OBJ está dañado.
-
3142
El tamaño del archivo OBJ supera
el tamaño disponible después de
la compilación.
El resultado de la compilación supera
el valor de límite (máx. 1 MB por
archivo). Divida el programa.
3143
La longitud de sangría supera el
tamaño disponible.
La longitud disponible del
identificador es de un máximo de 32
caracteres para nombres de
etiquetas y variables y 64 caracteres
para nombres de funciones.
Reduzca el número de caracteres
para que no superen la longitud
disponible. Para conocer detalles de
la longitud disponible, consulte el
Manual del usuario de EPSON RC+
"6.4 Nombres de funciones y
variables (Restricciones de
nombres)".
3144
' ** ' ya está siendo usado para un
nombre de función.
Corrija el identificador ' ** ' o el
nombre de la función.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 827
N.º Mensaje Solución Nota 1 Nota 2
3145
' ** ' ya está siendo usado para
una variable global conservada.
Corrija el identificador ' ** ' o el
nombre de la variable global
conservada.
3146
' ** ' ya está siendo usado para
una variable global.
Corrija el identificador ' ** ' o el
nombre de la variable global.
3147
' ** ' ya está siendo usado para
una variable de módulo.
Corrija el identificador ' ** ' o el
nombre de la variable de módulo.
3148
' ** ' ya está siendo usado para
una variable local.
Corrija el identificador ' ** ' o el
nombre de la variable local.
3149
' ** ' ya está siendo usado para
una etiqueta de E/S.
Corrija el identificador ' ** ' o el
nombre de la etiqueta de E/S.
3150
' ** ' ya está siendo usado para
una etiqueta de error de usuario.
Corrija el identificador ' ** ' o el
nombre de la etiqueta de error de
usuario.
3151
No se puede usar un parámetro de
función.
No se puede especificar un
argumento para la función que se
ejecuta la instrucción Trap. Corrija el
programa.
3152
Los elementos especificados de la
variable de matriz superan el
tamaño disponible.
El valor de límite de los elementos de
la matriz depende del tipo de
variables.
Consulte el Manual del usuario de
EPSON RC+7.0 "6.7.6 Matriz" y
corrija el número de elementos de
matriz para que no supere el valor de
límite.
3153
Diferencia de tipo de parámetro.
El tipo de parámetro no coincide en
las instrucciones Call,
Force_GetForces y Xqt. Corrija el
tipo de parámetro.
3154
' ** ' no es una etiqueta de bit de
entrada.
Especifique una etiqueta de bit de
entrada válida.
3155
' ** ' no es una etiqueta de byte de
entrada.
Especifique una etiqueta de byte de
entrada válida.
3156
' ** ' no es una etiqueta de palabra
de entrada.
Especifique una etiqueta de palabra
de entrada válida.
3157
' ** ' no es una etiqueta de bit de
salida.
Especifique una etiqueta de bit de
salida válida.
3158
' ** ' no es una etiqueta de byte de
salida.
Especifique una etiqueta de byte de
salida válida.
3159
' ** ' no es una etiqueta de palabra
de salida.
Especifique una etiqueta de palabra
de salida válida.
3160
' ** ' no es una etiqueta de bit de
memoria.
Especifique una etiqueta de bit de
E/S de memoria válida.
3161
' ** ' no es una etiqueta de byte de
memoria.
Especifique una etiqueta de byte de
E/S de memoria válida.
3162
' ** ' no es una etiqueta de palabra
de memoria.
Especifique una etiqueta de palabra
de E/S de memoria válida.
3163
Demasiados argumentos de
función.
El número máximo del parámetro de
función es de 100. Reduzca el
número de parámetros.
3164
No se puede comparar con un
valor booleano.
El tamaño de los valores booleanos
no se puede comparar. Corrija el
programa.
3165
No se puede usar un valor
booleano en la expresión.
El valor booleano no se puede usar
en la expresión. Corrija el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
828
N.º Mensaje Solución Nota 1 Nota 2
3166
No se puede comparar entre el
valor booleano y la expresión.
El tamaño del valor booleano y la
expresión no se pueden comparar.
Corrija el programa.
3167
No se puede almacenar un valor
booleano en una variable
numérica.
El valor booleano no se puede usar
en el valor numérico. Corrija el
programa.
3168
No se puede almacenar un valor
numérico en una variable
booleana.
El valor numérico no se puede usar
en la variable booleana. Corrija el
programa.
3169
Se especificó una etiqueta de E/S
sin definir.
Defina una nueva etiqueta de E/S o
especifique la etiqueta de E/S
definida.
3170
Se especificó una expresión de
condición no válida.
Se especificó una expresión de
cadena para el lado derecho de la
expresión de condición en la
instrucción Do o Loop. Corrija la
expresión de la condición para que el
lado derecho de la expresión sea un
valor booleano.
3171
No se puede comparar entre el
valor numérico y la cadena.
El valor numérico y la cadena no
pueden ser comparados. Corrija el
programa.
3172
No se puede usar una palabra
clave como nombre de variable.
Algunas palabras clave de SPEL+ no
se pueden usar como nombres de
variables. Corrija el nombre de
variable para que no se sobreponga
con las palabras clave.
3173
' ** ' ya está siendo usado para
una etiqueta de línea.
Corrija el identificador ' ** ' o el
nombre de la etiqueta de línea.
3174
Número o etiqueta de línea
duplicado (**).
No se puede especificar etiquetas de
línea con el mismo nombre en la
misma función. Elimine la etiqueta
de línea ' ** ' o defina una nueva
etiqueta de línea y corrija el
programa.
3175
Se especificó una etiqueta de
punto sin definir.
Defina una nueva etiqueta de punto
o especifique la etiqueta de punto
definida.
3176
Se especificó una variable
indefinida.
Defina una nueva variable o
especifique la variable definida.
3177
' ** ' ya está siendo usado para
una etiqueta de punto.
Corrija el identificador ' ** ' o el
nombre de la etiqueta de punto.
3178
No se puede usar el número de
resultado.
No se puede especificar el número
de resultado cuando se usa un
objeto de visión que no arroja
resultados múltiples en las
instrucciones VSet y VGet. Corrija el
programa.
3179
El literal de cadena está fuera de
la longitud disponible.
El valor de límite de la longitud de
cadena es de un máximo de 255
caracteres. Reduzca la longitud de
la cadena para que no supere el
valor de límite.
3180
No se puede cambiar el valor de
propiedad de calibración con el
comando VSet.
La propiedad de calibración no se
puede cambiar en la instrucción
VSet. Corrija el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 829
N.º Mensaje Solución Nota 1 Nota 2
3181
Se debe usar la variable de matriz
con ByRef.
No se puede especificar ByVal para
la variable de matriz. Especifique el
parámetro ByRef.
3182 No se especificó una suscripción. Especifique una suscripción.
3183 No se puede omitir el parámetro. Agregue un parámetro.
3184
No se puede usar el parámetro
SYNC con el comando de
seguimiento.
No se puede especificar el parámetro
SYNC en comandos de seguimiento.
Elimine el parámetro SYNC.
3185
No se puede usar datos de cola de
trabajo.
No se puede especificar los datos de
cola de trabajo en las instrucciones
BGo, BMove, TGo y TMove. Elimine
los datos de cola de trabajo.
3186
La combinación entre los datos de
cola de trabajo y los datos de
punto no coincide.
No se puede especificar la
combinación de los datos de cola de
trabajo y los datos de punto para la
especificación de coordenada de las
instrucciones Arc, Arc3, Jump3 y
Jump3CP.
Use los datos de cola de trabajo o
los datos de punto.
3187
Se especificó un valor de indicador
de punto no válido.
Corrija el programa para que el valor
de indicador de punto esté dentro del
rango de 0 a 127.
3188
No se puede usar la el comando
Call en el procesamiento paralelo.
No se puede usar la el comando Call
en el procesamiento paralelo. Corrija
el programa.
3189
No se puede usar variables locales
con el comando Wait.
La instrucción Wait no puede esperar
el cambio de variables locales.
Corrija el programa.
3190
No se puede usar variables de
matriz con el comando Wait.
La instrucción Wait no puede esperar
el cambio de variables de matriz.
Corrija el programa.
3191
No se puede usar variables reales
con el comando Wait.
La instrucción Wait no puede esperar
el cambio de variables reales.
Corrija el programa.
3192
No se puede usar variables de
cadena con el comando Wait.
La instrucción Wait no puede esperar
el cambio de variables de cadena.
Corrija el programa.
3193
Falta el nombre del objeto de
visión.
No se puede omitir el nombre del
objeto de visión en la instrucción
VTeach. Especifique el nombre del
objeto.
3194
No se puede usar un valor
booleano para el valor de tiempo
de espera.
No se puede usar el valor booleano
para el valor de tiempo de espera de
la instrucción Wait. Corrija el
programa.
3196
No se encontró la instrucción
Fend.
El número de instrucciones Fend que
corresponde a las instrucciones
Function no es suficiente. Agregue
las instrucciones Fend.
3197
El nombre de la variable numérica
no puede usar '$'.
El nombre de la variable numérica no
puede usar '$'. Corrija el nombre de
la variable.
3198
Las variables de cadena deben
tener el sufijo '$'.
Las variables de cadena deben tener
un sufijo '$'. Agregue un sufijo '$' al
nombre de variable.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 830
N.º Mensaje Solución Nota 1 Nota 2
3199
Se especificó un objeto no válido.
Se especificó un objeto de visión no
válido en los comandos de Vision
Guide como VSet y VGet.
Especifique un objeto de visión
válido.
3200 Falta el valor. Agregue un valor.
3201 Se esperaba ' , '. Agregue ' , '.
3202 Se esperaba ' ( '. Agregue ' ( '.
3203 Se esperaba ' ) '. Agregue ' ) '.
3204 Falta el identificador. Especifique un identificador.
3205 No se especificó el punto. Especifique un punto.
3206
Falta la expresión de condición de
suceso.
Agregue una expresión de condición
de suceso.
3207 Falta la fórmula. Agregue una fórmula.
3208 Falta la fórmula de cadena. Agregue una fórmula de cadena.
3209 Falta la fórmula de punto. Agregue una fórmula de punto.
3210
No se especificó la etiqueta de
línea.
Revise si la etiqueta de línea
especificada existe en el programa.
Agregue una etiqueta de línea válida.
3211 No se especificó la variable. Especifique una variable.
3212
No se pudo encontrar el Fend
correspondiente.
El número de instrucciones Fend que
corresponde a las instrucciones
Function no es suficiente. Agregue
las instrucciones Fend.
3213 Se esperaba ' : '. Agregue ' : '.
3214
No se especificó True/False.
No se especificó True/False en la
propiedad de Vision Guide/GUI
Builder o la sustitución de la
expresión lógica que requiere la
configuración de un valor booleano.
Especifique True o False.
3215
No se especificó On/Off.
Se debe especificar On u Off para la
configuración de lógica de salida
remota de las instrucciones Motor,
Brake, AutoLJM, SetSw y Box.
Especifique On u Off.
3216
No se especificó High/Low.
Se debe especificar High o Low para
la configuración de modo de
alimentación de la instrucción Power.
Especifique High o Low.
3217
No se especificó la etiqueta de bit
de entrada.
No se especificó la etiqueta de bit de
entrada en las instrucciones SetSW y
CTReset y las funciones Sw y Ctr.
Especifique una etiqueta de bit de
entrada válida.
3218
No se especificó la etiqueta de
byte de entrada.
No se especificó la etiqueta de byte
de entrada en la instrucción SetIn y
en las funciones In e InBCD.
Especifique una etiqueta de byte de
entrada válida.
3219
No se especificó la etiqueta de
palabra de entrada.
No se especificó la etiqueta de
palabra de entrada en la instrucción
SetInW y en las funciones InReal e
InW. Especifique una etiqueta de
palabra de entrada válida.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 831
N.º Mensaje Solución Nota 1 Nota 2
3220
No se especificó la etiqueta de bit
de salida.
No se especificó la etiqueta de bit de
salida en las instrucciones On, Off y
en la función Oport. Especifique una
etiqueta de bit de salida válida.
3221
No se especificó la etiqueta de
byte de salida.
No se especificó la etiqueta de byte
de salida en las instrucciones Out y
OpBCD y en la función Out.
Especifique una etiqueta de byte de
salida válida.
3222
No se especificó la etiqueta de
palabra de salida.
No se especificó la etiqueta de
palabra de salida en las
instrucciones OutReal y OpW y en la
función OutReal. Especifique una
etiqueta de palabra de salida válida.
3223
No se especificó la etiqueta de bit
de memoria.
No se especificó la etiqueta de bit de
memoria en las instrucciones
MemOn, MemOff y en la función
MemSw. Especifique una etiqueta
de bit de memoria válida.
3224
No se especificó la etiqueta de
byte de memoria.
No se especificó la etiqueta de byte
de memoria en la instrucción
MemOut y en la función MemIn.
Especifique una etiqueta de byte de
memoria válida.
3225
No se especificó la etiqueta de
palabra de memoria.
No se especificó la etiqueta de
palabra de memoria en la instrucción
MemOutW y en la función MemInW.
Especifique una etiqueta de palabra
de memoria válida.
3226
No se especificó la etiqueta de
error de usuario.
No se especificó la etiqueta de error
de usuario en la instrucción Error.
Especifique una etiqueta de error de
usuario válida.
3227
No se especificó el nombre de
función.
No se especificó el nombre de
función en una instrucción que
requiere la designación del nombre
de función, como Call y Xqt.
Especifique un nombre de función
válido.
3228
No se especificó el tipo de
variable.
No se especificó el tipo de variable
para la definición de parámetro de la
instrucción Function y la
especificación del parámetro
Preserve de la instrucción Global.
Especifique un tipo de variable
correcto.
3229
Parámetro de instrucción Trap no
válido. Use Goto, Call o Xqt.
Especifique GoTo, Call o Xqt como
parámetro de la instrucción Trap.
3230 Se esperaba For/Do/Function.
Especifique For, Do o Function como
parámetro de la instrucción Exit.
3231
No se especificó Above/Below.
El valor de configuración para la
orientación del codo no se especificó
en la instrucción Elbow. Especifique
Above o Below.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 832
N.º Mensaje Solución Nota 1 Nota 2
3232
No se especificó Righty/Lefty.
El valor de configuración para la
orientación de la mano no se
especificó en la instrucción Hand.
Especifique Righty o Lefty.
3233
No se especificó NoFlip/Flip.
El valor de configuración para la
orientación de la muñeca no se
especificó en la instrucción Wrist.
Especifique NoFlip o Flip.
3234
No se especificó el número de
puerto.
El número de puerto que indica el
archivo o puerto de comunicación no
se especificó en las instrucciones
Read, ReadBin, Write y WriteBin.
Consulte “Instrucción SetCom” en la
Manual de referencia del lenguaje
SPEL+ y especifique un número de
archivo o
número de puerto adecuado.
3235
No se especificó la variable de tipo
de cadena.
No se especificó la variable de tipo
de cadena en un comando que
requiere la especificación de la
variable de tipo de cadena como
parámetro. Especifique una variable
de tipo de cadena válida.
3236
No se especificó el número de
puerto RS-232C.
El número de puerto RS-232C no se
especifica en las instrucciones
OpenCom, CloseCom y SetCom.
Consulte Instrucción OpenCom” en
la Manual de referencia del
lenguaje SPEL+ y especifique un
número de puerto
adecuado.
3237
No se especificó el número de
puerto de comunicación de red.
No se especificó el número de puerto
de comunicación de red en las
instrucciones OpenNet, CloseNet,
SetNet y WaitNet. Especifique un
número entero de 201 a 216.
3238
No se especificó la velocidad de
comunicación.
No se especificó la velocidad de
comunicación (velocidad en baudios)
en la instrucción SetCom. Consulte
"Instrucción SetCom" en la Manual
de referencia del lenguaje SPEL+ y
especifique una velocidad en
baudios adecuada.
3239
No se especificó el número de bit
de datos.
No se especificó la longitud de bit de
datos en la instrucción SetCom.
Consulte “Instrucción SetCom” en la
Manual de referencia del lenguaje
SPEL+ y especifique una longitud
de bit de
datos adecuada.
3240
No se especificó el número de bit
de detención.
No se especificó la longitud de bit de
detención en la instrucción SetCom.
Consulte “Instrucción SetCom”en la
Manual de referencia del lenguaje
SPEL+ y especifique una longitud de
bit de
detención adecuada.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 833
N.º Mensaje Solución Nota 1 Nota 2
3241
No se especificó la paridad.
No se especificó la paridad en la
instrucción SetCom. Consulte
“Instrucción SetCom” en la Manual
de referencia del lenguaje SPEL+
y especifique una paridad
adecuada.
3242
No se especificó el terminador.
No se especificó el terminador (fin de
la línea de enviar/recibir) en las
instrucciones SetCom y SetNet.
Consulte “Instrucción SetCom” en la
Manual de referencia del lenguaje
SPEL+ y
especifique un terminador adecuado.
3243
No se especificó el flujo de
hardware.
No se especificó el flujo de hardware
en la instrucción SetCom. Consulte
“Instrucción SetCom” en la Manual
de referencia del lenguaje SPEL+ y
especifique un control de flujo
adecuado.
3244
No se especificó el flujo de
software.
No se especificó el flujo de software
en la instrucción SetCom. Consulte
“Instrucción SetCom” en la Manual
de referencia del lenguaje SPEL+ y
especifique un control de flujo
adecuado.
3245
No se especificó el valor None.
No se especificó "NONE" para la
configuración de control de flujo de
software en la instrucción SetNet.
Especifique "NONE".
3246
No se especificó el parámetro ' O '
o ' C '.
No se especificó el parámetro Open
o Close para el final de una curva en
la instrucción Curva.
Consulte “Instrucción Curve” en la
Manual de referencia del lenguaje
SPEL+ y especifique un
parámetro
Open/Close adecuado.
3247
No se especificó el parámetro
NumAxes.
El número de ejes de coordenadas
controlado durante un movimiento de
curva no se especifica en la
instrucción Curve. Consulte
“Instrucción Curve” en la Manual de
referencia del lenguaje SPEL+ y
especifique un número de ejes de
coordenadas
adecuado.
3248
El valor J4Flag (0-1) no se
especificó.
Especifique 0 o 1, o una expresión
para el valor J4Flag.
3249
El valor J6Flag (0-127) no se
especificó.
Especifique un número entero entre
0 y 127, o una expresión para el
valor J6Flag.
3250
No se especificó la variable de
matriz.
No se especificó la variable de matriz
en la instrucción que requiere la
especificación de la variable de
matriz. Especifique una variable de
matriz válida.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 834
N.º Mensaje Solución Nota 1 Nota 2
3251
No se especificó la variable de
matriz de cadena.
La matriz que almacena un token
debe ser una variable de matriz de
cadena en la instrucción ParseStr y
la función ParseStr. Especifique una
variable de matriz de cadena.
3252
No se especificó la ID del
dispositivo.
No se especificó la ID del dispositivo
en la instrucción DispDev o el
comando Cls. Consulte "Instrucción
DispDev" en la Manual de referencia
del lenguaje SPEL+ y especifique
una ID
de dispositivo adecuada.
3253
No se especificó el tipo de E/S.
No se especificó el tipo de E/S en la
función IOLabel$. Consulte "Función
IOLabel$" en la Manual de referencia
del lenguaje SPEL+ y especifique un
tipo de E/S adecuado.
3254
No se especificó el ancho de bits
de E/S.
No se especificó el ancho de bits de
E/S (ancho del puerto de E/S) en las
funciones IODef e IOLabe. Consulte
"Función IODef" en la Manual de
referencia del lenguaje SPEL+ y
especifique un
ancho de bits de E/S adecuado.
3255
No se especificó ByRef.
Aunque se especificó ByRef en la
declaración de función, no se
especificó ByRef para llamadas.
Especifique el parámetro ByRef.
3256
No se especificó el tipo de
variable.
No se especificó el tipo de variable
en la instrucción Global. Especifique
un tipo de variable adecuado.
3257
La expresión de condición no se
evalúa un valor booleano.
La expresión de condición en las
instrucciones If, ElseIf, Do y Loop
debe arrojar un valor booleano.
Corrija la expresión de condición
para arrojar un valor booleano.
3258
No se especificó el número de
puerto RS232C.
No se especificó el número de puerto
RS-232C en la función ChkCom.
Consulte "Función ChkCom" en la
Manual de referencia del lenguaje
SPEL+ y especifique un número
de puerto
adecuado.
3259
No se especificó el número de
puerto de comunicación de red.
No se especificó el número de puerto
de comunicación de red en la función
ChkCom. Consulte "Función
ChkNet" en la Manual de referencia
del lenguaje SPEL+ y especifique un
número de puerto adecuado.
3260
No se especificó la ID de idioma.
No se especificó la ID de idioma en
la función ErrMsg$. Consulte
"Función ErrMsg$" en la Manual de
referencia del lenguaje SPEL+ y
especifique una ID de idioma
adecuada.
3261 Se esperaba '.'. Agregue '.'.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 835
N.º Mensaje Solución Nota 1 Nota 2
3262
No se especificó el nombre de
secuencia de visión.
No se especificó el nombre de
secuencia de visión en comandos de
Vision Guide como VSet, VGet y
VRun. Agregue un nombre de
secuencia.
3263
No se especificó el nombre de
secuencia o nombre de calibración
de visión.
No se especificó el nombre de
secuencia o nombre de calibración
de visión en las instrucciones VSet y
VGet. Agregue un nombre de
secuencia o un nombre de
calibración.
3264
No se especificó el nombre de
propiedad o nombre de resultado
de visión.
No se especificó el nombre de
propiedad o nombre de resultado de
visión en las instrucciones VSet y
VGet. Agregue un nombre de
propiedad o un nombre de resultado.
3265
No se especificó el nombre de
propiedad, nombre de resultado o
nombre de objeto de visión.
No se especificó el nombre de
propiedad, el nombre de resultado o
el nombre de objeto de visión en las
instrucciones VSet y VGet. Agregue
un nombre de propiedad, el nombre
de resultado o el nombre de objeto.
3266
No se especificó el nombre de
propiedad de calibración de visión.
No se especificó el nombre de
propiedad de calibración de visión en
las instrucciones VSet y VGet.
Agregue un nombre de propiedad.
3267
No se especificó el tipo de tarea.
No se especificó el tipo de tarea en
la instrucción Xqt. Consulte
"Instrucción Xqt" en la Manual de
referencia del lenguaje SPEL+ y
especifique un tipo de tarea
adecuado.
3268
No se especificó el nombre de
formulario.
No se especificó el nombre de
formulario en las instrucciones GSet,
GGet, GShow, GShowDialog y
GClose. Especifique un nombre de
fórmula.
3269
No se especificó el nombre de
propiedad o nombre de control.
No se especificó el nombre de
propiedad o nombre de control en las
instrucciones GSet y GGet.
Especifique un nombre de propiedad
o un nombre de control.
3270
No se especificó el nombre de
propiedad.
No se especificó el nombre de
propiedad en las instrucciones GSet
y GGet. Especifique un nombre de
propiedad.
3271
No se especificó BackColorMode.
No se especificó el valor de
configuración de la propiedad
BackColorMode en la instrucción
GSet. Consulte "Propiedad
BackColorMode" en el manual de
GUI Builder 7.0, y especifique un
valor de configuración adecuado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 836
N.º Mensaje Solución Nota 1 Nota 2
3272
No se especificó BorderStyle.
No se especificó el valor de
configuración de la propiedad
BorderStyle en la instrucción GSet.
Consulte "Propiedad BorderStyle" en
el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3273
No se especificó DropDownStyle.
No se especificó el valor de
configuración de la propiedad
DropDownStyle en la instrucción
GSet. Consulte "Propiedad
DropDownStyle" en el manual de
GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3274
No se especificó EventTaskType.
No se especificó el valor de
configuración de la propiedad
EventTaskType en la instrucción
GSet. Consulte "Propiedad
EventTaskType" en el manual de
GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3275
No se especificó ImageAlign.
No se especificó el valor de
configuración de propiedad
ImageAlign en la instrucción GSet.
Consulte "Propiedad ImageAlign" en
el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3276
No se especificó IOType.
No se especificó el valor de
configuración de la propiedad
IOType en la instrucción GSet.
Consulte "Propiedad IOType" en el
manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3277
No se especificó FormBorderStyle.
No se especificó el valor de
configuración de la propiedad
FormBorderStyle en la instrucción
GSet. Consulte "Propiedad
FormBorderStyle" en el manual de
GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3278
No se especificó ScrollBars.
No se especificó el valor de
configuración de la propiedad
ScrollBars en la instrucción GSet.
Consulte "Propiedad ScrollBars" en
el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3279
No se especificó SizeMode.
No se especificó el valor de
configuración de la propiedad
SizeMode en la instrucción GSet.
Consulte "Propiedad SizeMode" en el
manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 837
N.º Mensaje Solución Nota 1 Nota 2
3280
No se especificó StartPosition.
No se especificó el valor de
configuración de la propiedad
StartPosition en la instrucción GSet.
Consulte "Propiedad StartPosition"
en el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3281
TextAlign no se especificó.
El valor de configuración de la
propiedad TextAlign no se especificó
en la instrucción GSet.
Este error ocurre cuando el tipo de
control no se puede identificar
porque el control fue especificado
por la variable de cadena. Consulte
“Propiedad TextAlign” en el manual
de GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3282
TextAlign no se especificó.
El valor de configuración de la
propiedad TextAlign no se especificó
en la instrucción GSet.
Este error ocurre cuando el control
es un cuadro de texto. Consulte
“Propiedad TextAlign” en el manual
de GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3283
TextAlign no se especificó.
El valor de configuración de la
propiedad TextAlign no se especificó
en la instrucción GSet.
Este error ocurre cuando el control
no es un cuadro de texto. Consulte
“Propiedad TextAlign” en el manual
de GUI Builder 7.0, y especifique un
valor de configuración adecuado.
3284
No se especificó WindowState.
No se especificó el valor de
configuración de la propiedad
WindowState en la instrucción GSet.
Consulte "Propiedad WindowState"
en el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3285 J1FLAG no se especificó.
Especifique 0 o 1, o una expresión
para el valor J1Flag.
3286 J2FLAG no se especificó.
Especifique 0 o 1, o una expresión
para el valor J2Flag.
3287 No se especificó la ID del robot. Especifique un número de robot.
3288
No se especificó la ID del
robot/Valor All.
No se especificó el número del robot
o el valor All en las funciones
InsideBox e InsidePlane.
Especifique un número de robot que
realice la detección de intrusión, o el
valor All.
3289
No se especificó la ID del área.
No se especificó el número del área
en las funciones InsideBox e
InsidePlane. Especifique un número
de área de comprobación de
acercamiento que arroje un estado
mediante un número entero de 1 a
15.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 838
N.º Mensaje Solución Nota 1 Nota 2
3290
No se especificó el número de
archivo.
No se especificó el número de
archivo en el comando relacionado
con la administración de archivos.
Especifique un número de archivo
mediante un número entero entre 30
y 63 o una expresión.
3292
No se especificó el tipo de base de
datos.
No se especificó el tipo de base de
datos en la instrucción OpenDB.
Consulte "Instrucción OpenDB" en la
Manual de referencia del lenguaje
SPEL+ y especifique un tipo de base
de datos adecuado.
3293
No se especificó el tipo de disco.
No se especificó el tipo de disco que
está sometido a manipulación de
archivos en la instrucción ChDisk.
Consulte "Instrucción ChDisk" en la
Manual de referencia del lenguaje
SPEL+ y especifique un tipo de
disco
adecuado.
3295
No se especificó la ID del área de
transportador.
No se especificó la ID de área que
está sometida al conteo de datos de
cola de trabajo en la función
Cnv_QueLen. Consulte “Función
Cnv_QueLenen la Manual de
referencia del lenguaje SPEL+ y
especifique una ID
de área adecuada.
3296
No se especificó el número de
archivo de la base de datos.
No se especificó el número de la
base de datos que está sometida a
operación en las funciones OpenDB,
CloseDB, DeleteDB, UpdateDB y
SelectDB. Consulte "Instrucción
OpenDB" en la Manual de referencia
del lenguaje SPEL+ y especifique un
número de base de datos adecuado.
3297
No se especificó el nombre de
calibración de visión.
No se especificó el nombre de
calibración en la instrucción VCal.
Especifique un nombre de
calibración que esté sometido a
calibración.
3298
No se especificó la ID de tipo de
objeto de visión.
No se especificó el tipo de objeto de
visión en la instrucción
VCreateObject. Consulte
"Instrucción VCreateObject" en la
Referencia de propiedades y
resultados de Vision Guide 7.0 y
especifique un tipo de objeto
adecuado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 839
N.º Mensaje Solución Nota 1 Nota 2
3299
No se especificó la ID del modo de
apagado.
No se especificó el valor del modo de
apagado en la instrucción ShutDown
y la función ShutDown. Consulte
"Instrucción ShutDown" en la Manual
de referencia del lenguaje SPEL+ y
especifique un valor de modo
adecuado.
3301
La versión del archivo OBJ
enlazado no coincide.
No todos los archivos de proyecto se
compilan en la misma versión.
Recompile el proyecto.
3302
El archivo OBJ no coincide con la
etiqueta de E/S compilada.
Cambió la configuración del
proyecto. Recompile el proyecto.
3303
El archivo OBJ enlazado no
coincide con la etiqueta de error de
usuario compilada.
Cambió la configuración del
proyecto. Recompile el proyecto.
3304
El archivo OBJ enlazado no
coincide con la opción de
compilación compilada.
Cambió la configuración del
proyecto. Recompile el proyecto.
3305
El archivo OBJ enlazado no
coincide con la opción de enlace
compilada.
Cambió la configuración del
proyecto. Recompile el proyecto.
3306
El archivo OBJ enlazado no
coincide con la opción SPEL
compilada.
Cambió la configuración del
proyecto. Recompile el proyecto.
3307
Función duplicada.
Se está usando el mismo nombre de
función en más de un archivo.
Corrija el programa (nombre de
función).
3308
Variable global conservada
duplicada.
Se está usando el mismo nombre de
variable global conservada en más
de un archivo.
Corrija el programa (nombre de
variable).
3309
Variable global duplicada.
Se está usando el mismo nombre de
variable global en más de un archivo.
Corrija el programa (nombre de
variable).
3310
Variable de módulo duplicada.
Se está usando el mismo nombre de
variable de módulo en más de un
archivo.
Corrija el programa (nombre de
variable).
3311 No se pudo encontrar el archivo.
-
3312 El archivo OBJ está dañado.
-
3313
El nombre de archivo especificado
incluye caracteres que no se
pueden usar.
-
3314
No se puede abrir el archivo.
El archivo está siendo usado para
otra aplicación. Salga de la otra
aplicación.
3315
' ** ' ya está siendo usado para un
nombre de función.
Corrija el identificador ' ** ' o el
nombre de la función. Recompile el
proyecto.
3316
' ** ' ya está siendo usado para un
nombre de variable global
conservada.
Corrija el identificador ' ** ' o el
nombre de la variable global
conservada. Recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 840
N.º Mensaje Solución Nota 1 Nota 2
3317
' ** ' ya está siendo usado para un
nombre de variable global.
Corrija el identificador ' ** ' o el
nombre de la variable global.
Recompile el proyecto.
3318
' ** ' ya está siendo usado para un
nombre de variable de módulo.
Corrija el identificador ' ** ' o el
nombre de la variable de módulo.
Recompile el proyecto.
3319
La dimensión de la variable de
matriz no coincide con la
declaración.
Corrija la dimensión de la matriz y
recompile el proyecto.
3320
El tipo de valor devuelto de la
función no coincide con la
declaración.
Corrija el tipo de valor devuelto de la
función y recompile el proyecto.
3321
' ** ' ya está siendo usado con un
nombre de función.
Corrija el identificador ' ** ' o el
nombre de la función. Recompile el
proyecto.
3322
' ** ' ya está siendo usado con un
nombre de variable global
conservada.
Corrija el identificador ' ** ' o el
nombre de la variable global
conservada. Recompile el proyecto.
3323
' ** ' ya está siendo usado con un
nombre de variable global.
Corrija el identificador ' ** ' o el
nombre de la variable global.
Recompile el proyecto.
3324
' ** ' ya está siendo usado con un
nombre de variable de módulo.
Corrija el identificador ' ** ' o el
nombre de la variable de módulo.
Recompile el proyecto.
3325
' ** ' ya está siendo usado con un
nombre de variable local.
Corrija el identificador ' ** ' o el
nombre de la variable local.
Recompile el proyecto.
3326
El número de parámetros no
coincide con la declaración.
Revise el número de parámetros en
la función, corrija el programa y
recompile el proyecto.
3327
No se especificó ByRef en la
declaración de función para el
parámetro **.
-
3328
No se especificó ByRef para el
parámetro **.
-
3329 Diferencia de tipo de parámetro **.
-
3330
El archivo OBJ enlazado no
coincide con el proyecto de Vision
compilado.
Recompile el proyecto.
3331
El tamaño del archivo OBJ supera
el tamaño disponible después del
enlazado.
El tamaño del archivo OBJ supera el
valor de límite (8 MB). Reduzca el
programa.
3332
Se redefinió la variable '**'.
Se sobrecargó la variable ' ** ’.
Elimine las definiciones de variables
innecesarias y recompile el proyecto.
3333
El archivo OBJ enlazado no
coincide con el proyecto de GUI
Builder compilado.
Recompile el proyecto.
3334
El número de variables que está
usando el comando Wait supera el
máximo permitido.
El número de variables que está
usando el comando Wait supera el
máximo permitido (64). Elimine las
variables y recompile el proyecto.
3335
No se puede usar la llamada en el
procesamiento paralelo.
No se puede usar la llamada en el
procesamiento paralelo. Corrija el
programa y recompile el proyecto.
3336 Se redefinió la variable.
Corrija el tipo de datos de la variable
y recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 841
N.º Mensaje Solución Nota 1 Nota 2
3400
No se especificó la ID de diálogo.
No se especificó la ID de diálogo en
la instrucción RunDialog. Consulte
"Instrucción RunDialog" en la
Manual de referencia del lenguaje
SPEL+ y especifique una ID de
diálogo.
3401
No se especificó el nombre de la
función principal.
No se especificó el nombre de la
función principal a ejecutar en la
instrucción StartMain. Especifique
un nombre de función principal (main
a main63).
3402
No se especificó el nombre de
objeto de visión.
No se especificó el nombre de objeto
de visión en las instrucciones
VLoadModel, VSaveModel,
VShowModel, VTeach y VTrain.
Especifique un nombre de objeto.
3403
No se especificó la ID del modo de
recuperación.
No se especificó el valor del modo de
recuperación en la instrucción
Recover o la función Recover.
Consulte "Instrucción Recover" en la
Manual de referencia del
lenguaje SPEL+ y especifique un
modo adecuado.
3404
No se especificó la condición de
captura.
No se especificó el número de
captura o el suceso de captura en la
instrucción Trap. Consulte
"Instrucción Trap" en la Manual de
referencia del lenguaje SPEL+ y
especifique un número o suceso de
captura
adecuado.
3405
No se especificó DialogResult.
No se especificó el valor de
configuración de la propiedad
DialogResult en la instrucción GSet.
Consulte "Propiedad DialogResult"
en el manual de GUI Builder 7.0, y
especifique un valor de configuración
adecuado.
3406
No se especificó MsgBox_Type.
No se especificó el tipo de
visualización en la instrucción
MsgBox_Type. Consulte "Instrucción
MsgBox" en la Manual de referencia
del lenguaje SPEL+ y especifique un
valor de configuración adecuado.
3407
No se especificó la variable de
matriz de tipo de byte.
No se especificó la variable de matriz
de tipo de byte para enviar o recibir
datos en la instrucción
FbusIO_SendMsg. Los datos de
envío/recepción se deben especificar
por matriz de tipo de byte.
3408
No se especificó la variable de
matriz única.
El número de dimensiones no es el
adecuado en el comando donde solo
está disponible la variable de matriz
única. Corrija el número de
dimensiones.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 842
N.º Mensaje Solución Nota 1 Nota 2
3409
No se especificó la lista de puntos.
No se especificó la coordenada de
píxel o la coordenada del robot como
un dato de punto continuo en la
instrucción VxCalib. Especifique un
dato de punto continuo en el
siguiente formato: P (inicio : fin)
3410
No se especificó el tipo de código.
No se especificó el valor de
configuración de la propiedad
CodeType en la instrucción VSet.
Consulte "Propiedad CodeType" en
la Referencia de propiedades y
resultados de Vision Guide 7.0 y
especifique un valor de configuración
adecuado.
3411
No se especificó el tipo Edge.
No se especificó el valor de
configuración de la propiedad
EdgeType en la instrucción VSet.
Consulte "Propiedad EdgeType" en
la Referencia de propiedades y
resultados de Vision Guide 7.0 y
especifique un valor de configuración
adecuado.
3412
No se especificó el tipo de ECC.
No se especificó el valor de
configuración de la propiedad
ErrorCorrection en la instrucción
VSet. Este error es para la versión
antigua de RC+6.x. Es posible
configurar la versión antigua
mediante la configuración de la
versión del compilador. Consulte
"Propiedad ErrorCorrection" en la
Referencia de propiedades y
resultados de Vision Guide 6.0 y
especifique un valor de configuración
adecuado.
3413
No se especificó el tipo
ImageColor.
No se especificó el valor de
configuración de la propiedad
ImageColor en la instrucción VSet.
Consulte "Propiedad ImageColor" en
la Referencia de propiedades y
resultados de Vision Guide 7.0 y
especifique un valor de configuración
adecuado.
3414
No se especificó el tipo de punto.
No se especificó el valor de
configuración de la propiedad
PointType en la instrucción VSet.
Consulte "Propiedad PointType" en
la Referencia de propiedades y
resultados de Vision Guide 7.0 y
especifique un valor de configuración
adecuado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 843
N.º Mensaje Solución Nota 1 Nota 2
3415
No se especificó el tipo de
referencia.
No se especificó el valor de
configuración de la propiedad
ReferenceType en la instrucción
VSet. Consulte "Propiedad
ReferenceType" en la Referencia de
propiedades y resultados de Vision
Guide 7.0 y especifique un valor de
configuración adecuado.
3416
No se especificó el tipo Edge.
La lógica (tipo Edge) de la entrada
del disparador no se especifica en la
instrucción SetLatch. Especifique 0
(lógica negativa) o 1 (lógica positiva).
3417
No se especificó el número de
puerto.
No se especificó el número del
puerto de entrada de R-E/S al que
está conectada la entrada del
disparador en la instrucción
SetLatch. Consulte “Instrucción
SetLatch” en la Manual de
referencia del lenguaje SPEL+ y
especifique un
número de puerto adecuado.
3418
No se especificó el eje.
No se especificó el parámetro del eje
en la función Force_GetForce o la
instrucción Force_SetTrigger.
Consulte "Función Force_GetForce"
en la Manual de referencia del
lenguaje SPEL+ y especifique un
valor de configuración adecuado.
3419
No se especificó CompareType.
No se especificó el parámetro
CompareType para definir la
condición de juicio en la instrucción
Force_SetTrigger.
Consulte "Instrucción
Force_SetTrigger" en la Manual de
referencia del lenguaje SPEL+ y
especifique un
parámetro adecuado.
3420
Solo está disponible una matriz de
número entero o de tipo corto.
-
3421
No se especificó el nombre de
formulario o de ID de ventana.
No se especificó el nombre de
formulario o de ID de ventana del
sistema sometido a operación en las
instrucciones GShow y GClose.
Especifique un nombre de formulario
o ID de ventana válido. Para
conocer detalles de la ID de ventana,
consulte "Instrucción GShow" en el
Manual de GUI Builder7.0.
3422
No se especificó la ID de ventana.
No se especificó la ID de ventana del
sistema sometida a operación en las
instrucciones GShow y GClose.
Consulte "Instrucción GShow" en el
Manual de GUI Builder7.0 y
especifique una ID de ventana
adecuada.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 844
N.º Mensaje Solución Nota 1 Nota 2
3423
No se especificó la ID del modo de
rendimiento.
No se especificó el modo de
rendimiento en el parámetro
PerformMode de las instrucciones
PerformMode, Go, BGo, TGo y
Jump. Consulte "Instrucción
PerformMode" en la Manual de
referencia del lenguaje SPEL+ y
especifique un modo de
rendimiento adecuado.
3424
No se especificó el tipo de
protocolo.
No se especificó la configuración del
protocolo de comunicación en la
instrucción SetNet. Especifique UDP
o TCP.
3425
No se especificó el tipo de E/S o la
etiqueta de E/S.
No se especificó el tipo de E/S o la
etiqueta de E/S en la función IODef.
Especifique la etiqueta E/S o el tipo
de E/S para comprobar la existencia
de la definición. Para conocer
detalles de los tipos E/S, consulte
"Función IODef" en la Referencia del
lenguaje SPEL+.
3426
No se especificó el modo de
evasión de singularidad.
No se especificó el modo de evasión
de singularidad en la instrucción
AvoidSingularity. Consulte
"Instrucción AvoidSingularity" en la
Manual de referencia del lenguaje
SPEL+ y especifique un modo
adecuado.
3427
No se especificó el valor de
aceleración.
No se especificó el número de
configuración de la aceleración en la
función AccelR. Consulte "Función
AccelR" en la Manual de referencia
del lenguaje SPEL+ y especifique un
valor de configuración adecuado.
3428
No se especificó el valor de
aceleración.
No se especificó el número de
configuración de la aceleración en la
función Acccel, la función AccelMax,
la función AccelS y la función
RealAccel. Consulte "Función Accel"
en la Manual de referencia del
lenguaje SPEL+ y especifique un
número de configuración adecuado.
3429
No se especificó el criterio de
ordenación de los datos de la cola
de trabajo.
No se especificó el criterio de
ordenación de los datos de la cola de
trabajo en la instrucción
WorkQue_Sort. Consulte
"Instrucción WorkQue_Sort" en la
Manual de referencia del lenguaje
SPEL+ y especifique un criterio de
ordenación adecuado.
3430
No se especificó el número de ejes
de las coordenadas.
-
3431
No se especificó el número de ejes
de las coordenadas.
-
3432
No se especificó un punto o
expresión de punto.
Revise el programa.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 845
N.º Mensaje Solución Nota 1 Nota 2
3433
No se especificó la variable de
matriz de tipo booleano.
Especifique la variable de matriz
de tipo booleano.
La matriz que almacena un valor
Enabled o una propiedad
LPF_Enabled debe ser una matriz de
tipo booleano en la instrucción FGet.
Especifique una variable de matriz
booleana.
3434
No se especificó la variable de
matriz de tipo real o doble.
Especifique una variable de matriz
de tipo real o doble.
No se especificó la variable de matriz
de tipo real o doble en las
instrucciones FGet o MPGet.
Especifique una variable de matriz
de tipo real o doble.
3435
No se especificó la variable de
matriz de tipo de número entero.
Especifique una variable de matriz
de tipo de número entero.
La matriz que almacena un valor de
la propiedad Polarities debe ser una
matriz de tipo de número entero en la
instrucción FGet.
Especifique una variable de matriz
de tipo de número entero.
3436
No se especificó la duración de la
instrucción FCKeep.
Especifique la duración.
No se especificó la duración del
control de fuerza (valor de tiempo de
espera) en la instrucción FCKeep.
Especifique un valor de configuración
adecuado.
3437
No se especificó el tipo de pieza
del controlador.
Especifique el tipo de pieza del
controlador.
3438
No se especificó el tipo de pieza
del robot.
Especifique el tipo de pieza del robot.
3450
No se especificó el nombre de
propiedad de fuerza o el nombre
de estado.
Agregue un nombre de propiedad
o un nombre de estado.
No se especificó el nombre de
propiedad de fuerza o el nombre de
estado en las instrucciones FSet,
FGet, MPSet y MPGet.
Agregue un nombre de propiedad o
un nombre de estado.
3451
No se especificó el nombre de
propiedad de fuerza, el nombre de
estado o el nombre de objeto.
Agregue un nombre de propiedad,
el nombre de estado o el nombre
de objeto.
No se especificó el nombre de
propiedad de fuerza, el nombre de
estado o el nombre de objeto en las
instrucciones FSet, FGet, MPSet y
MPGet.
Agregue un nombre de propiedad, el
nombre de estado o el nombre de
objeto.
3452
No se especificó el nombre de
objeto de fuerza.
Agregue un nombre de objeto de
fuerza.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
3453
No se especificó el objeto de la
propiedad de masa.
Especifique el objeto de la
propiedad de masa.
Especifique un objeto de la
propiedad de masa válido.
3454
No se especificó el objeto del
sistema de coordenadas de fuerza.
Especifique un objeto del sistema
de coordenadas de fuerza.
Especifique un objeto del sistema de
coordenadas de fuerza válido.
3455
No se especificó el objeto de
control de fuerza.
Especifique un objeto de control de
fuerza.
Especifique un objeto de control de
fuerza válido.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 846
N.º Mensaje Solución Nota 1 Nota 2
3456
No se especificó el objeto de
monitoreo de fuerza.
Especifique un objeto de
monitoreo de fuerza.
Especifique un objeto de monitoreo
de fuerza válido.
3457
No se especificó el objeto
disparador de fuerza.
Especifique un objeto disparador
de fuerza.
Especifique un objeto disparador de
fuerza válido.
3458
No se especificó el objeto de
control de fuerza o el objeto del
sistema de coordenadas de fuerza.
Especifique un objeto de control de
fuerza o un objeto del sistema de
coordenadas de fuerza.
No se especificaron los datos de
control de fuerza o los datos del
sistema de coordenadas de fuerza
en la instrucción FCSMove.
Especifique un objeto de control de
fuerza o un objeto del sistema de
coordenadas de fuerza válido.
3459
No se especificó el objeto de
fuerza.
Especifique un objeto de fuerza.
3460
No se especificó la etiqueta del
objeto de fuerza.
Especifique una etiqueta del objeto
de fuerza.
3461
No se especificó el objeto o la
etiqueta de fuerza.
Especifique un objeto o una etiqueta
de fuerza.
3462
No se especificó el objeto o la
etiqueta del sistema de
coordenadas de fuerza.
Especifique un objeto o una
etiqueta del sistema de
coordenadas de fuerza.
Especifique un objeto o una etiqueta
del sistema de coordenadas de
fuerza válidos.
3463
No se especificó el objeto o la
etiqueta de control de fuerza.
Especifique un objeto o una
etiqueta de control de fuerza.
Especifique un objeto o una etiqueta
de control de fuerza válidos.
3464
No se especificó el objeto o la
etiqueta de monitoreo de fuerza.
Especifique un objeto o una
etiqueta de monitoreo de fuerza.
Especifique un objeto o una etiqueta
de monitoreo de fuerza válidos.
3465
No se especificó el objeto o la
etiqueta de disparador de fuerza.
Especifique un objeto o una
etiqueta de disparador de fuerza.
Especifique un objeto o una etiqueta
de disparador de fuerza válidos.
3466
No se especificó el objeto o la
etiqueta de la propiedad de masa.
Especifique el objeto o la etiqueta
de la propiedad de masa.
Especifique un objeto o una etiqueta
de la propiedad de masa válidos.
3467
No se especificó el objeto o la
etiqueta del sistema de
coordenadas de fuerza.
Especifique un objeto o una
etiqueta del sistema de
coordenadas de fuerza.
Especifique un objeto o una etiqueta
del sistema de coordenadas de
fuerza válidos.
3468
No se especificó la etiqueta del
objeto de control de fuerza.
Especifique una etiqueta del objeto
de control de fuerza.
Especifique una etiqueta del objeto
de control de fuerza válida.
3469
No se especificó la etiqueta del
objeto de monitoreo de fuerza.
Especifique una etiqueta del objeto
de monitoreo de fuerza.
Especifique una etiqueta del objeto
de monitoreo de fuerza válida.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 847
N.º Mensaje Solución Nota 1 Nota 2
3470
No se especificó la etiqueta del
objeto disparador de fuerza.
Especifique una etiqueta del objeto
disparador de fuerza.
Especifique una etiqueta del objeto
disparador de fuerza válida.
3471
No se especificó la etiqueta del
objeto sensor de fuerza.
Especifique una etiqueta del objeto
sensor de fuerza.
Especifique una etiqueta del objeto
sensor de fuerza válida.
3472
No se especificó la etiqueta del
objeto de la propiedad de masa.
Especifique la etiqueta del objeto
de la propiedad de masa.
Especifique una etiqueta del objeto
de la propiedad de masa válida.
3473
No se especificó la etiqueta del
objeto de la propiedad de masa.
Especifique la etiqueta del objeto
de la propiedad de masa.
Especifique una etiqueta del objeto
de la propiedad de masa válida.
3474
No se especificaron los valores de
configuración de las propiedades
Fmag_Axes o Tmag_Axes.
Especifique un valor de
configuración adecuado.
No se especificaron los valores de
configuración de las propiedades
Fmag_Axes o Tmag_Axes en la
instrucción FSet.
Consulte "Propiedad Fmag_Axes" o
"Propiedad Tmag_Axes" y
especifique un valor de configuración
adecuado.
3475
No se especificó el valor de
configuración de la propiedad
TriggerMode.
Especifique un valor de
configuración adecuado.
No se especificó el valor de
configuración de la propiedad
TriggerMode en la instrucción FSet.
Consulte "Propiedad TriggerMode" y
especifique un valor de configuración
adecuado.
3476
No se especificó el valor de
configuración de la propiedad
Operator.
Especifique un valor de
configuración adecuado.
No se especificó el valor de
configuración de la propiedad
Operator en la instrucción FSet.
Consulte "Propiedad Operator" y
especifique un valor de configuración
adecuado.
3477
No se especificó el valor de
configuración de la propiedad
Orientation.
Especifique un valor de
configuración adecuado.
No se especificó el valor de
configuración de la propiedad
Orientation en la instrucción FSet.
Consulte "Propiedad Orientation" y
especifique un valor de configuración
adecuado.
3478
No se especificó el valor de
configuración de la propiedad
Polarity.
Especifique un valor de
configuración adecuado.
No se especificaron los valores de
configuración de las propiedades
Fmag_Polarity, Fx_Polarity,
Fy_Polarity, Fz_Polarity,
Tmag_Polarity, Tx_Polarity,
Ty_Polarity y Tz_Polarity en la
instrucción FSet.
Especifique un valor de configuración
adecuado.
3500
Macro duplicada en la instrucción
#define.
Se definió otra macro con el mismo
nombre. Cambie el nombre de la
macro.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 848
N.º Mensaje Solución Nota 1 Nota 2
3501
No se especificó el nombre de la
macro.
No se especificó el nombre de la
macro en las instrucciones #define,
#ifdef, #ifndef y #undef. Agregue un
nombre de macro.
3502
No se pudo encontrar el nombre
de archivo de inclusión.
No se especificó el nombre del
archivo de inclusión en la instrucción
#include. Agregue un nombre de
archivo de inclusión válido.
3503
El archivo de inclusión
especificado no se encuentra en el
proyecto.
Se especificó un archivo de inclusión
que no se encuentra registrado en la
configuración del proyecto. Agregue
un archivo de inclusión a la
configuración del proyecto.
3504
El parámetro de la función de
macro no coincide con la
declaración.
Revise el número de parámetros y
corrija la función de macro.
3505
La macro tiene una referencia
circular.
La macro tiene una referencia
circular. Corrija la referencia circular.
3506
Las instrucciones #define, #ifdef,
#ifndef, #else, #endif, #undef y de
declaración de variable son solo
válidas en un archivo de inclusión.
Revise y corrija los contenidos del
archivo de inclusión.
3507
Sobre el nivel de anidado de #ifdef
o #ifndef.
El límite de los niveles de anidado es
de un máximo de 7. Corrija el
programa para que no supere el
valor de límite.
3508
No se pudo encontrar #ifdef o
#ifndef.
El número de instrucciones #endif
que corresponden a las instrucciones
#ifdef e #ifndef es excesivo. Elimine
instrucciones #endif o agregue
instrucciones #ifdef e #ifndef.
3509
No se encontró #endif para #ifdef o
#ifndef.
El número de instrucciones #endif
que corresponden a las instrucciones
#ifdef e #ifndef es insuficiente.
Agregue instrucciones #endif.
3510
No se pudo obtener el búfer de la
macro.
-
3550
No se especificó el parámetro para
la función de macro.
La macro declarada como función de
macro se llama sin un argumento.
Corrija el programa.
3600
El comando de movimiento de
seguimiento no puede usar el
parámetro Sense.
Cuando se especifican los datos de
cola en las instrucciones Jump,
Jump3 y Jump3CP, no se puede
especificar el parámetro Sense.
Elimine la instrucción Sense.
3601
El tipo de parámetro no coincide
con la función externa ' ** '.
Revise todas las instrucciones que
llaman a esta función en este
archivo.
No se puede especificar el parámetro
LJM en las instrucciones BGo, TGo,
Arc, Arc3, BMove, Move y TMove.
Elimine el parámetro LJM.
3602
El comando de movimiento de
seguimiento especificado no
puede usar el parámetro LJM.
La función InReal no se puede usar
con la instrucción Wait. Corrija el
programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 849
N.º Mensaje Solución Nota 1 Nota 2
3603
La función InReal no se puede
usar con la instrucción Wait.
No se puede especificar el parámetro
PerformMode en las instrucciones
Jump3, Jump3CP, Arc, Arc3, BMove,
Move y TMove. Elimine el parámetro
PerformMode.
3605
El comando de movimiento de
seguimiento especificado no
puede usar el parámetro
PerformMode.
No se puede especificar el parámetro
LJM en las instrucciones BGo, TGo,
Arc, Arc3, BMove, Move y TMove.
Elimine el parámetro LJM.
3606 No se puede usar el índice.
No se puede especificar el número
de índice excepto en la propiedad
List en las instrucciones GSet y
GGet. Corrija el programa.
3607 Se especificó un índice de objeto
no válido.
Se especificó un índice no válido en
la propiedad Objects de las
instrucciones VSet y VGet. El índice
debe ser superior a 1 e inferior al
número de objetos en la secuencia
especificada. Especifique un índice
adecuado.
3608 Se especificó un índice de control
no válido.
Se especificó un índice no válido en
la propiedad Controls de las
instrucciones GSet y GGet. El índice
debe ser superior a 1 e inferior al
número de controles en el formulario
especificado. Especifique un índice
adecuado.
3609
Los parámetros del modificador
están duplicados.
Revise el programa.
Los datos de control de fuerza o el
parámetro CF están duplicados en
las instrucciones CVMover, FCKeep
y otras instrucciones para el
movimiento del robot. Corrija el
programa.
3800
Proceso de compilación
cancelado.
-
3801 Proceso de enlace cancelado.
-
3802
Proceso de compilación
cancelado. Los errores de
compilación alcanzaron el número
máximo.
Corrija el error en el programa y
recompile el proyecto.
3803
Proceso de enlace cancelado. Los
errores de enlace alcanzaron el
número máximo.
Corrija el error en el programa y
recompile el proyecto.
3804
El comando especificado no se
puede ejecutar desde la ventana
Command.
La declaración de variables y
funciones, la instrucción de control
del programa, los comandos de
preprocesador y algunos comandos
no pueden ser ejecutados desde la
ventana Command. Para conocer
detalles, consulte "Apéndice A: Lista
de condiciones de uso de comandos
de SPEL+" en la Referencia del
lenguaje SPEL+.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
850
N.º Mensaje Solución Nota 1 Nota 2
3805
El comando especificado solo se
puede ejecutar desde la ventana
Command.
Las instrucciones Brake, SysConfig,
Where, Cnv_QueList y WorlQue_List
solo se pueden ejecutar desde la
ventana Command. Elimine estas
instrucciones desde el programa.
3806
La función especificada no se
puede ejecutar desde la ventana
Command.
La función LogIn no se puede
ejecutar desde la ventana Command
incluso cuando se usa con la
instrucción Print. Use la función en
el programa.
3808
No se puede usar la sintaxis
especificada en la versión actual.
Los parámetros de movimiento LJM
y PerformMode no se pueden
especificar según la versión del
compilador.
Parámetro LJM: 6.0.x.x o posterior
Parámetro PerformMode: 7.0.4.x
o posterior
Revise la versión del compilador
desde las propiedades del proyecto.
3809
Las variables de módulo no se
pueden usar en la ventana
Command.
No se puede acceder a la variable de
módulo desde la ventana Command.
Revise el comando de entrada.
3812
No se puede usar la función
especificada con una salida
remota del usuario.
Las funciones para la expresión de
condición de salida remota definida
por el usuario son limitadas.
Consulte el Manual del usuario de
EPSON RC+7.0 11.8 E/S de salida
remota definida por el usuario” y
especifique una función válida.
3813
No se puede usar la etiqueta,
función y variable definidas por el
usuario con una salida remota del
usuario.
No se puede usar la etiqueta, función
y variable definidas por el usuario
con la expresión de condición de
salida remota definida por el usuario.
Corrija la expresión de condición.
3814
El tamaño del código de objeto
supera el tamaño disponible.
Una combinación de instrucciones
múltiples supera el tamaño
disponible de código intermedio que
se puede ejecutar de una vez (1024
bytes). Divida las instrucciones.
3815
No se puede especificar el
parámetro para la propiedad o el
estado en la ventana Command.
Elimine el parámetro y ejecute
nuevamente.
Cuando ejecute la instrucción FGet o
MPGet desde una ventana
Command, no es posible especificar
un parámetro en una propiedad o
estado.
Elimine el parámetro y ejecute
nuevamente.
3850 No se encontró el archivo.
-
3851
No se encontró el archivo de
puntos.
No se pudo leer el archivo de puntos
que configura el proyecto. Revise en
la carpeta del proyecto si existe el
archivo.
3852
No se encontró el archivo de
etiqueta E/S.
No se pudo leer el archivo de
etiqueta de E/S que configura el
proyecto. Revise en la carpeta del
proyecto si existe el archivo.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 851
N.º Mensaje Solución Nota 1 Nota 2
3853
No se encontró el archivo de
etiqueta de error de usuario.
No se pudo leer el archivo de
etiqueta de error de usuario que
configura el proyecto. Revise en la
carpeta del proyecto si existe el
archivo.
3854
El archivo de fuerza no existe.
Revise en la carpeta del proyecto
si existe el archivo.
No se pudo leer el archivo de fuerza
que configura el proyecto. Revise en
la carpeta del proyecto si existe el
archivo.
3860
El archivo de etiqueta E/S no es un
formato admitido.
Vuelva a generar el archivo de
etiqueta de E/S.
3861
El archivo de etiqueta de error de
usuario tiene un formato de
archivo no admitido.
Vuelva a generar el archivo de error
de usuario.
3862
El archivo de puntos tiene un
formato de archivo no admitido.
Vuelva a generar el archivo de
puntos.
3863
El archivo de proyecto de Vision
tiene un formato de archivo no
admitido.
Vuelva a generar la secuencia de
Vision.
3864
El archivo de proyecto de GUI
Builder tiene un formato de archivo
no admitido.
Vuelva a generar el formulario de
GUI Builder.
3865
El archivo OBJ no es un formato
admitido.
Recompile el proyecto.
3866
El archivo de fuerza tiene un
formato de archivo no admitido.
Vuelva a crear el archivo de
fuerza.
Vuelva a generar el archivo de
fuerza.
3876
No se puede especificar un objeto
de robot.
Revise el programa.
No se puede especificar un objeto de
robot en las instrucciones FDel y
FList, las funciones FDef y FLabel$,
las instrucciones MPSet, MPGet,
MPDel y MPList y las funciones
MPDef y MPLabel$.
Corrija el programa.
3877
No se puede especificar un objeto
de control de fuerza y un objeto del
sistema de coordenadas de fuerza
al mismo tiempo.
Revise el programa.
No se puede especificar un objeto de
control de fuerza y un objeto del
sistema de coordenadas de fuerza al
mismo tiempo en la instrucción
FCSMove.
Corrija el programa.
3878
No se puede especificar el
parámetro CF.
Elimine el parámetro CF.
No se puede especificar el parámetro
CF en las instrucciones Go, BGo,
TGo, Jump y Jump3.
Elimine el parámetro CF.
3879
No se puede especificar la etiqueta
del objeto de la propiedad de
masa.
Revise el programa.
No se puede especificar la etiqueta
del objeto de la propiedad de masa
en las instrucciones MPDel y MPList.
Corrija el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
852
N.º Mensaje Solución Nota 1 Nota 2
3880
No se puede especificar la etiqueta
del objeto del sistema de
coordenadas de fuerza.
Revise el programa.
No se puede especificar la etiqueta
del objeto del sistema de
coordenadas de fuerza en las
instrucciones FDel y FList.
Corrija el programa.
3881
No se puede especificar la etiqueta
del objeto de control de fuerza.
Revise el programa.
No se puede especificar la etiqueta
del objeto de control de fuerza en las
instrucciones FDel y FList.
Corrija el programa.
3882
No se puede especificar la etiqueta
del objeto de monitoreo de fuerza.
Revise el programa.
No se puede especificar la etiqueta
del objeto de monitoreo de fuerza en
las instrucciones FDel y FList.
Corrija el programa.
3883
No se puede especificar la etiqueta
del objeto disparador de fuerza.
Revise el programa.
No se puede especificar la etiqueta
del objeto disparador de fuerza en
las instrucciones FDel y FList.
Corrija el programa.
3884
No se puede especificar la etiqueta
del objeto sensor de fuerza.
Revise el programa.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
3885
No se puede especificar el número
del objeto de la propiedad de
masa.
Revise el programa.
No se puede especificar el número
del objeto de la propiedad de masa
en la función MPNumber.
Corrija el programa.
3886
No se puede especificar el número
del objeto del sistema de
coordenadas de fuerza.
Revise el programa.
No se puede especificar el número
del objeto del sistema de
coordenadas de fuerza en la función
FNumber.
Corrija el programa.
3887
No se puede especificar el número
del objeto de control de fuerza.
Revise el programa.
No se puede especificar el número
del objeto de control de fuerza en la
función FNumber.
Corrija el programa.
3888
No se puede especificar el número
del objeto de monitoreo de fuerza.
Revise el programa.
No se puede especificar el número
del objeto de monitoreo de fuerza en
la función FNumber.
Corrija el programa.
3889
No se puede especificar el número
del objeto disparador de fuerza.
Revise el programa.
No se puede especificar el número
del objeto disparador de fuerza en la
función FNumber.
Corrija el programa.
3890
No se puede especificar el número
del objeto sensor de fuerza.
Revise el programa.
-
3891
El tipo de los dos objetos
especificados no coincide.
Especifique el mismo tipo de
objetos.
Los tipos de datos del primer y
segundo parámetro no coinciden en
las instrucciones FDel, FList, MPDel
y MPList.
Corrija el programa.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 853
N.º Mensaje Solución Nota 1 Nota 2
3900
No se puede obtener el búfer de
comunicación interno.
-
3901
El tamaño de búfer no es
suficiente.
-
3910
Se especificó un comando sin
definir.
-
3911
No se puede ingresar el nombre
del archivo en el búfer de nombre
de archivo.
-
3912
No se puede obtener el búfer
interno.
-
3913
No se puede definir la prioridad.
Reinicie el controlador.
3914 ICode no lido.
Recompile el proyecto.
3915 ICode no lido.
Recompile el proyecto.
3916 ICode no lido.
Recompile el proyecto.
3917 ICode no lido.
Recompile el proyecto.
3918 ICode no lido.
Recompile el proyecto.
3919 ICode no lido.
Recompile el proyecto.
3920 ICode no lido.
Recompile el proyecto.
3921 ICode no válido. Recompile el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
854
N.º Mensaje Solución Nota 1 Nota 2
4001
El brazo alcanzó el límite de rango
de movimiento.
Revise el punto que se moverá, el
punto actual y la configuración de
rango.
4002
El valor especificado está fuera
del rango permitido.
Revise los parámetros de
configuración.
El parámetro
que causa el
error.
4003
Falla del driver del dispositivo de
movimiento.
Error de comunicación dentro del
módulo de control de movimiento.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4004
Falla del driver del dispositivo de
movimiento.
Error de espera de suceso dentro
del módulo de control de
movimiento.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4005
La posición del punto actual
supera el valor LimZ especificado.
Reduzca el eje Z. Aumente el valor
LimZ especificado.
4006
La posición del punto objetivo
supera el valor LimZ especificado.
Reduzca la posición de la
coordenada Z del punto objetivo.
Aumente el valor LimZ especificado.
4007
Error de conversión de
coordenadas. El punto final/medio
está fuera del área de movimiento.
Se desplaza al exterior del área
de movimiento.
Revise si no se especificó la
coordenada fuera del rango de
movimiento.
4008
La posición del punto actual o el
valor LimZ especificado está fuera
del rango de movimiento.
Cambie el valor LimZ especificado.
4009
Falla del driver del dispositivo de
movimiento.
Error de tiempo de espera dentro
del módulo de control de
movimiento.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4010
No se definieron las coordenadas
locales especificadas.
Defina el sistema de coordenadas
local.
Número local
4011
El brazo alcanzó el límite de rango
de movimiento XY especificado
por la instrucción XYLim.
Revise el área limitada por la
instrucción XYLim.
4012
El valor del límite superior de Box
es menor que el valor del límite
inferior. Cambie los valores del
límite superior e inferior.
Defina el valor de límite superior para
que sea mayor que el valor de límite
inferior.
4013
Error de cálculo interno del
módulo de control de movimiento.
Falló el cálculo de la temporización
del movimiento de arco. Realice una
de las siguientes opciones:
-
Revise y modifique el parámetro
Arch
-
Desactive Arch
4014
No se completó MCAL.
Ejecute MCal. Asegúrese de que
MCOdr esté definido para la
articulación conectada a la placa PG.
4016
Se intentó ejecutar la instrucción
SFree para articulaciones
prohibidas.
A causa de las limitaciones
mecánicas del robot, está prohibido
definir algunas articulaciones en el
estado sin servo. Revise las
especificaciones del robot.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 855
N.º Mensaje Solución Nota 1 Nota 2
4018
Error de comunicación dentro del
módulo de control de movimiento.
Error de la suma de
comprobación.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4021
Las posiciones de punto usadas
para definir Local están
demasiado cerca.
Configure la distancia entre puntos
que estén a más de 1 μm.
4022
Los datos de coordenadas de
punto utilizados para definir Local
no son válidos.
Haga coincidir los datos de
coordenadas para los puntos que se
especificarán.
4023
No se puede ejecutar cuando el
motor está en el estado
desactivado.
Active la alimentación del motor y
ejecútelo.
4024
No se pudo completar el
posicionamiento del brazo con la
especificación Fine actual.
Revise que el robot no genere
vibraciones o que todas las piezas y
tornillos estén aseguradas
firmemente. Aumente el valor de la
configuración Fine.
4025
No se puede ejecutar un comando
de movimiento durante la
condición de parada de
emergencia.
Elimine la condición de parada de
emergencia y ejecute el comando de
movimiento.
4026
Error de comunicación dentro del
módulo de control de movimiento.
Falla del servo I/F.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4028
Error de comunicación dentro del
módulo de control de movimiento.
Falla de estado del driver del
dispositivo.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4030
El búfer del cálculo de par
promedio se desbordó.
Reduzca el intervalo de tiempo de
Atclr a Atrq.
Reduzca el intervalo de tiempo de
Atclr a Atrq a menos de dos minutos.
4031
No se puede ejecutar un comando
de movimiento cuando el motor
está en el estado desactivado.
Active la alimentación del motor y
ejecute el comando de movimiento.
4032
No se puede ejecutar un comando
de movimiento cuando hay una o
más articulaciones en el estado
SFree.
Defina todas las articulaciones en el
estado SLock y ejecute el comando
de movimiento.
4033
Las articulaciones de la placa del
generador de pulsos no admiten el
comando especificado.
Las articulaciones con placa PG no
permiten el comando especificado.
4034
Este modelo del robot no admite
el comando especificado.
Elimine el comando no admitido del
programa.
4035
La instrucción CP intentó cambiar
solo la orientación de la
herramienta.
Defina una distancia de movimiento
entre los puntos. Use el modificador
ROT, la instrucción SpeedR y la
instrucción AccelR.
4036
La velocidad de rotación de la
orientación de la herramienta
según la instrucción CP es
demasiado alta.
Reduzca los valores de configuración
para las instrucciones SpeedS y
AccelS. Use el modificador ROT, la
instrucción SpeedR y la instrucción
AccelR.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
856
N.º Mensaje Solución Nota 1 Nota 2
4037
El atributo de punto de las
posiciones de punto actuales y de
objetivo difieren para ejecutar un
comando de control de CP.
Haga coincidir el atributo de punto.
4038
Dos posiciones de punto están
demasiado cerca para ejecutar
una instrucción Arc.
Configure la distancia entre puntos
que estén a más de 1 μm.
4039
Tres posiciones de punto
especificadas por la instrucción
Arc se encuentran en una línea
recta.
Use la instrucción Move.
4041
Se intentó el comando de
movimiento hacia el área
prohibida en la parte posterior del
robot.
Revise el rango de movimiento del
robot.
4042
Falla del driver del dispositivo de
movimiento.
No se pudo detectar la
interrupción del formato circular.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4043
Este modelo del robot o este tipo
de articulación no admiten el
comando especificado.
Elimine el comando no admitido del
programa.
4044
Falla de curva. No se admite la
forma de curva especificada.
Cree un archivo de curva
nuevamente con la instrucción Curve.
4045
Falla de curva. No se admite el
modo especificado.
Especifique el modo Curve
adecuadamente. Cree un archivo de
curva nuevamente con la instrucción
Curve.
4046
Falla de curva. El número de
coordenadas especificado está
fuera del rango permitido.
El número de ejes de coordenadas
disponible es de 2, 3, 4 y 6. Cree un
archivo de curva nuevamente con la
instrucción Curve.
4047
Falla de curva. No se
especificaron datos de punto.
Cree un archivo de curva
nuevamente con la instrucción Curve.
4048
Falla de curva. Se especificó el
proceso paralelo antes de la
designación del punto.
Cree un archivo de curva
nuevamente con la instrucción Curve.
4049
Falla de curva. El número de
procesos paralelos está fuera del
rango permitido.
Cree un archivo de curva
nuevamente con la instrucción Curve.
4050
Falla de curva. El número de
puntos está fuera del rango
permitido.
El número de puntos disponibles
difiere según la forma de curva.
Vuelva a revisar el número de
puntos.
4051
Falla de curva. El atributo Local y
el atributo de punto de todos los
puntos especificados no
coinciden.
Haga coincidir los indicadores locales
y de punto para todos los puntos
especificados.
4052
Falla de curva. No hay suficiente
memoria para dar formato al
archivo de curva.
Reinicie el controlador.
4053
Falla de curva. No se pudo dar
formato al archivo de curva.
Revise los datos de punto. Revise si
dos puntos adyacentes no se
sobreponen a la línea del punto
especificado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 857
N.º Mensaje Solución Nota 1 Nota 2
4054
Falla de curva. Error del archivo
de curva
El archivo de curva está dañado.
Cree un archivo de curva
nuevamente con la instrucción Curve.
4055
Falla de curva. No hay distancia
para el movimiento del archivo de
curva.
Revise los datos de punto.
4056
Falla de curva. Las posiciones de
punto para la instrucción Curve
están demasiado cerca.
Defina la distancia entre dos puntos
adyacentes al punto especificado en
más de 0,001 mm.
4058
Se ejecutó un comando prohibido
durante el seguimiento.
Elimine el comando prohibido del
programa.
4059
Se ejecutó un comando de
restablecimiento del codificador
mientras el motor estaba en el
estado activado.
Apague el motor.
4060
Se ejecutó un comando no válido
mientras el motor estaba en el
estado activado.
Apague el motor.
4061
El parámetro especificado está en
uso.
Intentó borrar el brazo y la
herramienta actualmente
especificado.
Seleccione otro brazo y herramienta
y ejecútelos.
4062
La variación de orientación es
superior a 360 grados.
Intentó rotar la articulación #J6 más
de 360 grados con un comando de
movimiento CP.
4063
La variación de orientación del
punto adyacente es superior a 90
grados.
En la línea de punto especificada por
la instrucción Curve, defina la
variación de orientación de los
valores de coordenadas de U, V y W
entre dos puntos adyacentes en
menos de 90 grados.
4064
No se puede ejecutar la
corrección de orientación
automáticamente.
En la línea de punto especificada, no
se puede crear una curva con la
corrección de orientación automática.
Cambie la línea de punto
especificada para que disminuya la
variación de orientación de la
articulación n.° J6.
4065
Intente realizar una rotación de J6
con la misma orientación en la
instrucción CP.
Intentó rotar la articulación #J6 más
de 360 grados con un comando de
movimiento CP. Intentó realizar una
rotación de la articulación 6 con la
misma orientación de inicio de
movimiento.
Cambie el punto objetivo para que la
articulación n.° J6 realice menos de
una rotación.
4066
Se intentó el comando Motion en
el área prohibida según la
combinación de articulaciones.
Intentó mover las articulaciones al
área limitada de interferencia del
robot.
4068
Se especificó el parámetro del
modificador ROT para el comando
de movimiento CP sin la rotación
de orientación.
Elimine el ROT desde el comando de
movimiento CP.
4069
Se especificó ECP sin seleccionar
ECP en la instrucción CP.
Especifique un ECP válido.
Mensajes de error de SPEL+
Manual de referencia del len
g
ua
j
e SPEL+ Rev.2 858
N.º Mensaje Solución Nota 1 Nota 2
4070
El número ECP especificado no
coincide con el número ECP
utilizado en la creación del archivo
de curva.
Especifique un ECP válido.
4071
Se intentó el comando de
movimiento durante la condición
de bloqueo de freno
electromagnético.
Libere el freno electromagnético.
4072
Falla de inicialización. No se
inicializó el monitor de hardware.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4073
La variación de orientación del
punto adyacente es superior a 90
grados.
Cualquiera de los U, V o W cambia
en 90 grados o más. Cambie el
punto de la orientación.
4074
El tipo de motor no coincide con la
configuración del robot actual.
Revise si el modelo del robot
especificado está conectado.
4075 La opción ECP no está activa. Habilite la opción ECP.
4076
Las posiciones de punto usadas
para definir Plane están
demasiado cerca.
Defina la distancia entre puntos a
más de 1 μm.
4077
Los datos de coordenadas de
punto utilizados para definir Plane
no son válidos.
Haga coincidir los datos de
coordenadas para los puntos que se
especificarán.
4078
La instrucción CP intentó cambiar
solo el eje ST adicional.
Use los comandos de movimiento
PTP para mover solo el eje adicional.
4079
La velocidad del eje ST adicional
con la instrucción CP es
demasiado alta.
Reduzca los valores definidos de
SpeedS y AccelS.
4080
No se puede ejecutar cuando
Enable Switch está desactivado.
Active Enable Switch y ejecútelo.
4081
Se detectó un error durante la
operación.
Revise la placa PG.
Revise la conexión con el driver del
motor.
Reemplace la placa PG.
Reemplace el controlador.
4082
Se detectó un error de la placa del
generador de pulso durante la
operación.
Revise la placa PG.
Revise la conexión con el driver del
motor.
Reemplace la placa PG.
4083
MCAL no se completó a tiempo.
Defina el parámetro PG para que
MCAL pueda completarse dentro de
120 segundos.
4084
Se detectó un error del sensor de
límite durante la operación.
Revise el sensor de límite.
4085
No se pudo cambiar a la ubicación
específica.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4086
No se puede ejecutar porque no
se encuentra en el modo de
simulacro.
Cambie al modo de simulacro y
ejecútelo.
4087
No se pudo dar formato al archivo
de reproducción.
Revise la cantidad de espacio libre
de la computadora.
Reinicie la computadora.
Vuelva a instalar RC+.
Reemplace la computadora.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 859
N.º Mensaje Solución Nota 1 Nota 2
4089
El intervalo de tiempo de
HealthRBStart a HealthRBStop es
demasiado largo o demasiado
corto.
Configure el intervalo de tiempo de
HealthRBStart a HealthRBStop para
que esté entre 1 y 3600 segundos.
-
-
4090
HealthRBStop se ejecuta sin
HealthRBStart.
Ejecute HealthRBStop después de
ejecutar HealthRBStart.
Este error se produce cuando se
ejecuta nuevamente HealthRBStop
sin ejecutar HealthRBStart después
de HealthRBStop.
-
-
4091
No existe el canal de E/S
análogo especificado.
Revise el número de canal. Monte la
placa opcional de E/S análoga.
4092
El canal de salida análogo
especificado se usa para una
salida de datos de velocidad.
Ejecute después de detener la salida
de velocidad del canal especificada.
4099
Se detectó un error del servo
durante la operación.
Revise si se está produciendo un
error número 5000 en el historial del
sistema. Si se está produciendo el
error, tome las medidas para un error
número 5000.
4100
Error de comunicación dentro del
módulo de control de movimiento.
No se puede calcular el punto o
pulso actual.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4101
Error de comunicación dentro del
módulo de control de movimiento.
No se puede calcular el punto o
pulso actual.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4103
Falla de inicialización. Error de
inicialización del módulo de
control de movimiento.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4104
Tiempo de espera de
posicionamiento de la articulación
conectada a la placa del
generador de pulsos.
No se puede recibir la señal de
finalización de posicionamiento
(DEND) desde el servomotor
conectado a la placa de PG
(generador de pulsos).
4108
Falla de inicialización.
Error de conexión de la unidad del
motor.
Revise el cableado de la unidad del
motor.
4150
Falla de señal de entrada
redundante de la parada de
emergencia.
El estado de la entrada de parada de
emergencia redundante sigue siendo
diferente por más de dos segundos.
Revise que no exista una
desconexión, error de conexión a
tierra o cortocircuito en la señal de
entrada de la parada de emergencia.
Luego reinicie el controlador.
4151
Falla de la señal de entrada
redundante de la protección.
El estado de la entrada de parada de
emergencia redundante sigue siendo
diferente por más de dos segundos.
Revise que no exista una
desconexión, error de conexión a
tierra o cortocircuito en la señal de
entrada de la parada de emergencia.
Luego reinicie el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 860
N.º Mensaje Solución Nota 1 Nota 2
4152
Error de soldadura del relé del
circuito principal.
Se detectó un error de soldadura del
relé debido a sobrecorriente del
sistema de alimentación.
Reemplace el controlador.
Reemplace el robot.
4153
Falla de señal de entrada
redundante del interruptor de
activación.
El estado de la entrada de la señal
de activación redundante difiere
continuamente por más de dos
segundos.
Revise la conexión del conector de
TP.
Reemplace el TP.
Reemplace el controlador.
4154
La temperatura del resistor de
regeneración fue más alta que la
temperatura especificada.
El trabajo del robot es demasiado
alto. Alargue el tiempo de espera o
reduzca el valor de aceleración. Si
se produce un error aunque se haya
reducido el trabajo, reemplace el
DPB.
4180
Falla de inicialización del robot.
No se encontró el robot
especificado
Configure el manipulador.
4181
Falla de inicialización del robot. El
robot especificado está siendo
utilizado por otra tarea.
No se puede configurar el
manipulador especificado, puesto
que ya está configurado.
4182
Falla de inicialización del robot. El
nombre del robot es demasiado
largo.
Acorte el nombre del manipulador.
4183
Falla de inicialización del robot.
Error de versión de los datos del
robot.
Vuelva a configurar el manipulador.
4187
Falla de inicialización del robot.
Error de comunicación con el
módulo: VSRCMNPK.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4188
Falla de inicialización del robot. La
matriz de interferencia del ángulo
de la articulación no es válida.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4189
Falla de inicialización del robot.
Error de comunicación con el
módulo: VSRCMC.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4191
Falla de inicialización del robot. La
matriz de transformación de
pulsos físico-lógicos no es válida.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4192
Falla de inicialización del robot.
Error de comunicación con el
módulo del servo.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4210
El circuito RAS detectó un mal
funcionamiento del sistema servo.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace el controlador.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4211
Falla interna de RAM del
servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 861
N.º Mensaje Solución Nota 1 Nota 2
4212
Falla de RAM para la
comunicación del procesador
principal y el servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4213
Falla interna de RAM del
servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Para la serie T, no es la DMB, sino la
placa del procesador.
4214
Falla de inicialización de la
comunicación del procesador
principal y el servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Para la serie T, no es la DMB, sino la
placa del procesador.
4215
Falla de inicialización de la
comunicación del procesador
principal y el servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4216
Falla de comunicación del
procesador principal y el
servoprocesador. Reinicie el
controlador. Compruebe si hay
ruidos. Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Para la serie T, no es la DMB, sino la
placa del procesador.
4217
Falla de comunicación del
procesador principal y el
servoprocesador. Reinicie el
controlador. Compruebe si hay
ruidos. Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Para la serie T, no es la DMB, sino la
placa del procesador.
4218
Exceso del comando de tiempo
prolongado del servo.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4219
Error de la suma de comprobación
del comando de tiempo
prolongado del servo.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4220
El temporizador guardián del
sistema detectó una falla.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
Para la serie T, no es la DMB, sino la
placa del procesador.
4221
Falla de comprobación de la
unidad motriz.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4222
Falla de RAM del
servoprocesador.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la DMB.
4223
Falla del circuito duplicado de la
parada de emergencia o la
protección.
Revise el cableado.
Revise el cableado de la parada de
emergencia o la protección.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 862
N.º Mensaje Solución Nota 1 Nota 2
4224
Se detectó voltaje bajo en la
alimentación del circuito principal.
Revise el voltaje de la fuente de
alimentación. Reinicie el
controlador.
Revise el voltaje de alimentación o
reinicie el controlador.
4225
El contacto del relé de control de
la alimentación del circuito
principal está soldado.
Reemplace el DPB.
Reemplace el DPB.
4226
Detecte la diferencia de
reconocimiento del procesador
secundario y el procesador
principal.
Reinicie el controlador, tome medidas
contra el ruido o reemplace la placa
del procesador.
4227
La temperatura del resistor de
regeneración fue más alta que la
temperatura especificada.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad, juego,
movimiento no uniforme, tensión
suelta de la correa, freno)
Revise la interferencia con el equipo
periférico. (Colisión, contacto)
Revise la configuración del modelo.
Revise la conexión del cable de
alimentación.
4228
Sobrevoltaje del procesador
secundario.
Reemplace la placa DPB.
4230
Falla de estado en tiempo real del
servo.
Error de la suma de
comprobación.
Se detectó un error en la suma de
comprobación de los datos en el
controlador.
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
Reemplace el controlador.
4232
Falla de estado en tiempo real del
servo. Error de contador de
funcionamiento libre con el servo.
Se detectó un error del contador de
funcionamiento libre en el
controlador.
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
Reemplace el controlador.
4233
Falla de estado en tiempo real del
servo. Error de comunicación con
el servoprocesador.
Se detectó un error de comunicación
en el controlador.
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
Reemplace el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 863
N.º Mensaje Solución Nota 1 Nota 2
4240
Se detectó una interrupción del
control de movimiento irregular.
Duplicado de interrupción.
Se detectó un error de interrupción
en el controlador.
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
Reemplace el controlador.
4241
Se detectó exceso de velocidad
durante el modo de potencia baja.
Se detectó exceso de velocidad del
robot durante el modo de potencia
baja.
Revise el mecanismo del robot.
(Uniformidad, juego, movimiento no
uniforme, tensión suelta de la correa,
freno)
Revise si el robot no interfiere con el
equipo periférico. (Colisión, contacto)
Reemplace el driver del motor.
Reemplace el motor. (Falla del motor
y codificador)
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
4242
Se generó una referencia de
aceleración incorrecta.
Intentó operar el robot mientras la
referencia de aceleración superaba el
valor especificado.
Para un movimiento CP, disminuya el
valor AccelS.
4243
Se generó una referencia de
velocidad incorrecta en el modo
de potencia alta.
Se detectó exceso de velocidad del
robot durante el modo de potencia
alta.
Revise el mecanismo del robot.
(Uniformidad, juego, movimiento no
uniforme, tensión suelta de la correa,
freno)
Revise si el robot no interfiere con el
equipo periférico. (Colisión, contacto)
Reemplace el driver del motor.
Reemplace el motor. (Falla del motor
y codificador)
Compruebe si hay un cortocircuito y
una conexión incorrecta del cableado
del equipo periférico. (Emergencia,
D-E/S y conectores E/S de
expansión)
4250
El brazo alcanzó el límite del
rango de movimiento durante la
operación.
Revise si una trayectoria de
movimiento CP está dentro del rango
de movimiento.
4251
El brazo alcanzó el límite del
rango de movimiento XY
especificado por XYLim durante la
operación.
Revise la configuración de XYLim.
4252
Se produjo un error de conversión
de coordenadas durante la
operación.
Revise si una trayectoria de
movimiento CP está dentro del rango
de movimiento.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 864
N.º Mensaje Solución Nota 1 Nota 2
4255
Debido a que SpeedS es
demasiado alta, el robot no puede
pasar a la postura especificada
del codo
Reduzca el valor de SpeedS.
4256
Cuando un robot pasó a la postura
específica del codo, se realizaron
Stop (Detención) o Pause (Pausa)
No ejecutar Stop o Pause.
4257
El robot no puede sobrepasar el
área de singularidad del codo
El robot no puede sobrepasar el área
de singularidad del codo.
Para sobrepasar el área de
singularidad de codo, use
SING_AVOID de “AvoidSingularity”.
4261
El brazo alcanzó el límite del
rango de movimiento en el
seguimiento del transportador.
Ponga el transportador dentro del
rango de movimiento. Mientras
tanto, permita que el rango de
seguimiento para la desaceleración
durante el cambio del movimiento
desde seguimiento a sin seguimiento.
Si se produce un error durante el
cambio del movimiento de
seguimiento, se puede evitar si se
aumenta la velocidad de aceleración
para finalizar el movimiento de
seguimiento.
4262
El brazo alcanzó el límite del
rango de movimiento XY en el
seguimiento del transportador.
4263
El brazo alcanzó el límite del
rango de movimiento de pulso en
el seguimiento del transportador.
4267
Trate de superar el atributo J4Flag
sin indicaciones.
Intentó superar el atributo J4Flag
durante el movimiento sin la
indicación J4Flag.
Cambie J4Flag del punto objetivo.
4268
Trate de superar el atributo J6Flag
sin indicaciones.
Intentó superar el atributo J6Flag
durante el movimiento sin la
indicación J6Flag.
Cambie J6Flag del punto objetivo.
4269
Intente superar el atributo de
orientación de muñeca particular
sin indicaciones.
Intentó superar el atributo de
orientación de muñeca particular
durante el movimiento sin la
indicación Wrist (muñeca).
Cambie el atributo Wrist para el
punto objetivo.
Cambie el punto objetivo para evitar
una orientación de muñeca particular.
4270
Intente superar el atributo de
orientación de brazo particular sin
indicaciones.
Intente superar el atributo de
orientación de mano particular
durante el movimiento sin la
indicación Hand (Mano).
Cambie el atributo Hand para el
punto objetivo.
Cambie el punto objetivo para evitar
una orientación de mano particular.
4271
Intente superar el atributo de
orientación de codo particular sin
indicaciones.
Intentó superar el atributo de
orientación de codo particular
durante el movimiento sin la
indicación Elbow (Codo).
Cambie el atributo Elbow para el
punto objetivo.
Cambie el punto objetivo para evitar
una orientación de codo particular.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 865
N.º Mensaje Solución Nota 1 Nota 2
4272
El indicador de punto especificado
no es válido.
Para el comando de movimiento CP,
la forma del brazo en el punto
objetivo es distinta a la del indicador
de punto especificado para el punto
objetivo.
Cambie el indicador de punto para el
punto objetivo.
4273
J6Flag cambió durante el
movimiento de levantamiento en
el seguimiento del transportador.
Ajuste la orientación de la
herramienta, de manera que J6Flag
no cambie.
4274
No se alcanzó J6Flag
especificado. Cambie J6Flag del
punto objetivo.
Para un comando de movimiento CP,
el manipulador alcanzó el punto
objetivo con J6Flag, que es distinto
del especificado para el punto
objetivo.
Cambie J6Flag del punto objetivo.
4275
No se alcanzó J4Flag
especificado. Cambie J4Flag del
punto objetivo.
Para un comando de movimiento CP,
el manipulador alcanzó el punto
objetivo con J4Flag, que es distinto
del especificado para el punto
objetivo.
Cambie J4Flag del punto objetivo.
4276
No se alcanzó el ArmFlag
especificado. Cambie el ArmFlag
para el punto objetivo.
Para un comando de movimiento CP,
el manipulador alcanzó el punto
objetivo con ArmFlag, que es distinto
del especificado para el punto
objetivo.
Cambie ArmFlag para el punto
objetivo.
4277
No se alcanzó el indicador de
codo especificado. Cambie el
indicador de codo para el punto
objetivo.
Para un comando de movimiento CP,
el manipulador alcanzó el punto
objetivo con ElbowFlag, que es
distinto del especificado para el punto
objetivo.
Cambie ElbowFlag para el punto
objetivo.
4278
No se alcanzó el WristFlag
especificado. Cambie el WristFlag
para el punto objetivo.
Para un comando de movimiento CP,
el manipulador alcanzó el punto
objetivo con WristFlag, que es distinto
del especificado para el punto
objetivo.
Cambie el WristFlag para el punto
objetivo.
4291
Falla de envío de datos en la red
de movimiento.
Revise la conexión del cable de la
unidad motriz.
4292
Falla de recepción de datos en la
red de movimiento.
Revise la conexión del cable de la
unidad motriz.
4301
La placa de generación de pulsos
detectó una señal limitada.
Reinicie y luego ejecute el siguiente
movimiento.
4302
La placa de generación de pulsos
detectó una señal de alarma.
Desconecte la alarma del driver del
motor de pulsos.
4401
El número de transportador
especificado no es válido.
Revise el número del transportador.
4402
El número de cola del
transportador especificado está
lleno.
El número de registro alcanzó el
límite superior (1000 piezas). Elimine
la cola.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 866
N.º Mensaje Solución Nota 1 Nota 2
4403
La operación continua no se
puede realizar durante el
movimiento de seguimiento.
¿El movimiento de seguimiento no se
puede continuar después de que se
canceló/puso en pausa?
4404
Los datos de la cola del
transportador especificados no
existen.
Revise el número de cola. O bien,
revise si está registrada la cola.
4405
El transportador no se inicializó
correctamente.
Recompile el proyecto.
Elimine el transportador y luego
restablezca la configuración.
4406
Los datos de cola especificados
están fuera del área definida.
No se puede hacer seguimiento a la
cola fuera del rango. Si la cola
especificada está sobre el límite de
subida, cambie el programa, de
manera que el seguimiento no
empiece hasta que la cola ingrese al
área debajo del límite superior. Si la
cola especificada está debajo del
límite de bajada, cambie el programa
para borrar los datos de la cola.
4407
El codificador no se asignó
correctamente.
Configure el codificador.
4409
El parámetro de la instrucción del
transportador no es válido.
Revise el parámetro.
4410
Se produjo un error de conversión
de coordenadas del transportador.
Recompile el proyecto.
Elimine el transportador y luego
restablezca la configuración.
4411
Error de comunicación dentro de
los módulos del transportador.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4413
Error de inicio de seguimiento del
transportador.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
4414
No se puede iniciar el seguimiento
del transportador después del
movimiento con CP activado.
Inicie el seguimiento del
transportador con
CP desactivado.
4415
La configuración del límite de
subida diagonal o del límite de
bajada diagonal no es correcta.
El límite de bajada diagonal es
sobre el límite de subida, o bien, el
límite de subida/de bajada diagonal
es horizontal a la dirección del
transportador. Revise la
configuración del límite de subida/de
bajada diagonal.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 867
N.º Mensaje Solución Nota 1 Nota 2
5000
Falla de matriz de la compuerta de
servocontrol.
Revise la DMB.
Compruebe si hay un
cortocircuito y una conexión
incorrecta del cableado del
equipo periférico. (Emergencia
y conectores E/S de expansión)
Reemplace la DMB.
Reemplace la unidad del eje
adicional.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
placa del procesador y la
unidad del motor.
5001
Desconexión de la señal del
codificador paralelo. Revise la
conexión del cable de señal o el
cableado interno del robot.
Revise la señal del cable M/C.
Revise el cableado de la señal
del robot. (Clavija faltante,
desconexión, cortocircuito)
Reemplace el motor.
Reemplace la DMB.
Revise la conexión del conector
en el controlador. (Soltar,
conexión al terminal del
codificador de serie en DMB)
Revise la configuración del
modelo.
Revise el cableado del equipo
periférico. (Emergencia y E/S)
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5002
El driver del motor no está
instalado. Instale el driver del
motor. Revise la DMB o el driver
del motor.
Revise si el driver del motor
está montado.
Revise la configuración del
modelo y la configuración de
hardware.
Reemplace el driver del motor.
Reemplace la DMB.
Para la serie T, revise el
cableado de la unidad del
motor.
5003
Falla de inicialización de la
comunicación del codificador
incremental. Revise la conexión
del cable de señal y la
configuración del robot.
Revise la configuración del
modelo.
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
placa del procesador y la
unidad del motor.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 868
N.º Mensaje Solución Nota 1 Nota 2
5004
Falla de inicialización del
codificador absoluto. Revise la
conexión del cable de señal o la
configuración del robot.
Revise la configuración del
modelo.
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5005
Falla de configuración de la
división del codificador.
Revise la configuración del robot.
Revise la configuración del
modelo.
5006
Falla de los datos durante la
inicialización del codificador
absoluto. Revise la conexión del
cable de señal, el controlador o el
motor.
Reemplace el motor.
Reemplace la DMB. (Falla del
codificador)
Revise las contramedidas para
el ruido.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5007
Los turnos múltiples del codificador
absoluto superan el rango máximo.
Reinicie el codificador.
Reinicie el codificador.
Reemplace el motor.
5008
La posición está fuera de rango.
Reinicie el codificador.
Reinicie el codificador.
Reemplace la DMB.
Reemplace el motor.
5009
No hay respuesta del codificador
de serie. Revise la conexión del
cable de señal, el motor, DMB o la
tarjeta IF del codificador.
Revise la configuración del
modelo. (Configuración
incorrecta del modelo de
codificador paralelo)
Revise la conexión del cable de
señal.
Reemplace la DMB y la tarjeta
I/F del codificador.
5010
Falla de inicialización del
codificador de serie.
Reinicie el controlador.
Revise el motor, la DMB o la
tarjeta IF del codificador.
Revise la configuración del
robot.
Revise la conexión del cable de
señal.
Reemplace la DMB y la tarjeta
I/F del codificador.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5011
Falla de comunicación del
codificador de serie. Reinicie el
controlador. Revise el motor, la
DMB o la tarjeta IF del codificador.
Revise la configuración del
robot.
Revise la conexión del cable de
señal.
Reemplace la DMB y la tarjeta
I/F del codificador.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 869
N.º Mensaje Solución Nota 1 Nota 2
5012
Falla del temporizador guardián
del servoprocesador.
Reinicie el controlador. Revise el
motor o la DMB.
Reemplace la DMB.
Revise las contramedidas para
el ruido.
Para la serie T, revise la
conexión del cable de señal.
Reinicie el controlador, tome
medidas contra el ruido y
reemplace la unidad del motor.
5013
Falla de WDT del circuito de
control actual.
Reinicie el controlador. Revise el
controlador.
Revise la conexión del cable de
alimentación.
Revise la fuente de
alimentación de 15 V y la
conexión del cable.
Reemplace la DMB.
Revise las contramedidas para
el ruido.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5014
La DMB no es para este robot.
Revise la configuración del
robot.
Reemplace por la DMB
compatible.
5015
El codificador se reinició. Reinicie
el controlador.
Reinicie el controlador.
5016
Falla de suministro de
alimentación del codificador
absoluto. Reemplace la batería.
Revise el cableado interno del
robot.
Reinicie el codificador.
Revise la conexión del cable de
señal.
5017
Error de datos de respaldo del
codificador absoluto. Reinicie el
codificador.
Reinicie el codificador.
Revise la conexión del cable de
señal.
5018
Alarma de la batería del
codificador absoluto.
Reemplace la batería.
Revise la conexión del cable de
señal.
5019
Falla de posición del codificador
absoluto. Reinicie el codificador.
Reemplace el motor.
Reinicie el codificador.
Reemplace el motor. (Falla del
codificador)
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
5020
La velocidad es demasiado alta
durante el encendido del
controlador. Detenga el robot y
reinicie el controlador.
Reinicie el controlador.
Reinicie el codificador.
Para la serie T, reinicie el
controlador, tome medidas
contra el ruido y reemplace la
unidad del motor.
Revise la interferencia con
otros dispositivos.
5021
Sobrecalentamiento del codificador
absoluto.
Reduzca el trabajo de
movimiento.
Espere hasta que disminuya la
temperatura del codificador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
870
N.º Mensaje Solución Nota 1 Nota 2
5022
Falla del transductor R/D. Reinicie
el codificador. Revise la placa del
solucionador o el cableado interno
del robot.
Reinicie el codificador.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Reemplace la placa del
solucionador.
5023
Falla de comunicación del sensor
G.
Revise la conexión del cable de
señal o el cableado interno del
manipulador.
Revise la conexión del
cableado de señal.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Revise la contramedida para el
ruido.
Reemplace la placa de control.
Reemplace la DMB.
5024
Error de datos del sensor G.
Revise la placa de control.
Reemplace la placa de control.
5025
Se produjo una brecha entre los
datos de los turnos múltiples y los
datos de conversión R/D
(Radianes/grados).
Reinicio del codificador.
Reinicie el solucionador.
Revise la contramedida para el
ruido.
Reemplace la placa del
solucionador.
5026
Desconexión de la señal de
excitación del solucionador.
Reinicie el codificador. Revise la
placa del solucionador o el
cableado interno del robot.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Reemplace la placa del
solucionador.
5027
S-DSP detectó el error de
comunicación en DSP.
Revise la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
5028
Se detectó error de datos de
realimentación actual.
Revise la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
Para la serie T, revise si
existen fallas de cortocircuito y
conexión a tierra en el cable de
alimentación. Reinicie el
controlador o reemplace la
unidad del motor.
5029
Falla de comunicación de D-DSP.
Revise la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
5030
La velocidad es demasiado alta
durante el apagado del
controlador. Reinicie el codificador.
Reinicie el codificador.
Reemplace el motor.
5031
La velocidad es demasiado alta.
Reinicie el codificador.
Exceso de cantidad de cálculo
Reinicie el codificador.
Reemplace el motor.
Para la serie T, reinicie el
controlador y reemplace la
unidad del motor.
5032 Servoalarma A. Reinicie el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 871
N.º Mensaje Solución Nota 1 Nota 2
5040
Falla de salida del par del motor en
estado de potencia alta. Revise la
conexión del cable de
alimentación, el robot, el driver o el
motor.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
5041
Falla de salida de par del motor en
estado de potencia baja. Revise la
conexión del cable de
alimentación, el robot, el freno, el
driver o el motor.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
872
N.º Mensaje Solución Nota 1 Nota 2
5042
Desbordamiento de error de
posición en estado de potencia
alta. Revise la conexión del cable
de alimentación, el robot, el driver
y el motor.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
5043
Desbordamiento de error de
posición en estado de potencia
baja. Revise la conexión del cable
de alimentación, el robot, el freno,
el driver o el motor.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot.
(Clavija faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación.
(Bajo voltaje de la fuente de
alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 873
N.º Mensaje Solución Nota 1 Nota 2
5044
Desbordamiento de error de
velocidad en estado de potencia
alta. Revise la conexión del cable
de alimentación, el robot, el freno,
el driver o el motor.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
5045
Desbordamiento de error de
velocidad en estado de potencia
baja. Revise la conexión del cable
de alimentación, el robot, el freno,
la unidad o el motor.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
874
N.º Mensaje Solución Nota 1 Nota 2
5046
Exceso de velocidad en estado de
potencia alta.
Revise la conexión del cable de
señal, el robot, el freno, el driver o
el motor.
Reduzca SpeedS del
movimiento CP. Cambie la
orientación del movimiento CP.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
5047
Exceso de velocidad en estado de
potencia baja.
Revise la conexión del cable de
señal, el robot, el freno, el driver o
el motor.
Revise el movimiento en
estado de potencia alta.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
Para la serie T, reemplace la
placa del procesador y la
unidad del motor, además de
las piezas anteriores.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 875
N.º Mensaje Solución Nota 1 Nota 2
5048
Sobrevoltaje del circuito de
alimentación principal. Revise el
voltaje de alimentación principal o
el módulo de regeneración.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa,
freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
Revise el cableado de
alimentación del robot. (Clavija
faltante, desconexión,
cortocircuito)
Revise el voltaje de la fuente
de alimentación. (Bajo voltaje
de la fuente de alimentación)
Reemplace el driver del motor.
Reemplace la DMB.
Reemplace el motor.
5049
Sobrecorriente del driver del
motor. Revise la conexión del
cable de alimentación o el
cableado interno del robot.
Revise si existen fallas de
cortocircuito y conexión a tierra
en el cable de alimentación.
Reemplace el driver del motor.
Reemplace la DMB.
Para la serie T, revise si
existen fallas de cortocircuito y
conexión a tierra en el cable de
alimentación.
Reinicie el controlador o
reemplace la unidad del motor.
5050
Exceso de velocidad durante el
control de par. Revise el rango de
velocidad del movimiento de
trabajo.
Revise la velocidad de
movimiento durante el control
de par.
5051
Falla de alimentación de la unidad
de modulación de ancho de pulso
(PWM) de 15 V. Reinicie el
controlador. Reemplace la
alimentación de 15 V.
Revise la fuente de
alimentación de 15 V y la
conexión del cable.
Reemplace el driver del motor.
Reemplace la DMB.
5054
Sobrecarga del motor. Disminuya
el trabajo de movimiento y la
aceleración.
Reduzca el trabajo de
movimiento.
Revise la configuración de
peso/inercia.
Revise el robot. (Juego, gran
carga, tensión suelta de la
correa, freno)
5055
Sobrecarga del motor. Disminuya
el trabajo de operación y la
aceleración.
Reduzca el trabajo de
movimiento.
Revise la configuración de
peso/inercia.
Revise el robot. (Juego, gran
carga, tensión suelta de la
correa, freno)
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
876
N.º Mensaje Solución Nota 1 Nota 2
5056
Los datos del sensor G han
cambiado rápidamente. Revise la
placa de control.
Revise la contramedida para el
ruido.
Reemplace la placa de control.
5057
Se detectó una colisión en el modo
de potencia alta
Se hizo funcionar la detección
de colisiones.
Revise si el robot no interfiere
con el equipo periférico.
(Colisión, contacto)
Mueva el robot a la dirección
donde se pueda evitar la
colisión.
Revise si existen anormalidades
con los robots mediante la
colisión y el contacto.
Si no se encontró ninguna
colisión ni contacto, se aplican
aceleración y desaceleración
excesivas que pueden tener
una saturación de par
consecutiva.
Para hacer funcionar el
manipulador sin ninguna
contramedida, configure
CollisionDetect en desactivado
(off) y desactive la función de
detección de colisiones para la
articulación de destino.
Dado que la función de
detección de colisiones detecta
un error de colisión mucho
antes que cualquier otro error,
estos errores podrían no
detectarse. Cuando no se
encuentra la colisión o el
contacto y no se aplica una
aceleración/desaceleración o
carga excesivas, configure
CollisionDetct en OFF para
hacer funcionar el robot.
Mediante esto, los errores se
podrán detectar correctamente.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 877
N.º Mensaje Solución Nota 1 Nota 2
5058
Se detectó una colisión en el modo
de potencia baja
Se hizo funcionar la detección
de colisiones.
Revise si el robot no interfiere
con el equipo periférico.
(Colisión, contacto)
Mueva el robot a la dirección
donde se pueda evitar la
colisión.
Revise si existen anormalidades
con los robots mediante la
colisión y el contacto.
Si no se encontró ninguna
colisión ni contacto, revise si se
aplicó carga excesiva.
Para hacer funcionar el
manipulador sin ninguna
contramedida, configure
CollisionDetect en desactivado
(off) y desactive la función de
detección de colisiones para la
articulación de destino.
Dado que la función de
detección de colisiones detecta
un error de colisión mucho
antes que cualquier otro error,
estos errores podrían no
detectarse. Cuando no se
encuentra la colisión o el
contacto y no se aplica una
aceleración/desaceleración o
carga excesivas, configure
CollisionDetct en OFF para
hacer funcionar el robot.
Mediante esto, los errores se
podrán detectar correctamente.
5072 Servoalarma B. Reinicie el controlador.
5080
El motor está sobrecargado.
Disminuya el trabajo y la
aceleración.
Reduzca el trabajo de
movimiento.
Revise la configuración de
peso/inercia.
Revise el robot. (Juego, gran
carga, tensión suelta de la
correa, freno)
5098
Temperatura alta del codificador.
Reduzca el trabajo. Revise la
unidad de engranaje reductor del
robot.
Espere hasta que disminuya la
temperatura del codificador.
Reduzca el trabajo de
movimiento.
Revise la configuración de
peso/inercia.
Revise el robot. (Juego, gran
carga, tensión suelta de la
correa, freno)
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 878
N.º Mensaje Solución Nota 1 Nota 2
5099
Temperatura alta del driver del
motor. Limpie el filtro del
ventilador del controlador. Revise
la temperatura ambiente. Reduzca
el trabajo.
Limpie el filtro del ventilador de
refrigeración.
Reduzca el trabajo de
movimiento.
Revise la configuración de
peso/inercia.
Baje la temperatura ambiente.
5112 Servoalarma C. Reinicie el controlador.
5501
Falla de inicialización del control
de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5510
Error de cálculo del control de
fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5511
Error de transformación de
coordenadas en el control de
fuerza.
Revise si el robot se mueve fuera
del rango de movimiento.
Revise si se especificó la
coordenada fuera del rango de
movimiento.
Revise si el robot se mueve
fuera del rango de movimiento
durante la ejecución del control
de fuerza.
5520
Error de parámetro de impedancia.
Revise la combinación de Mass
(Masa), Damper (Amortiguador) y
Spring (Resorte).
Revise la combinación de
Spring, Damper y Mass. Revise
si la propiedad Mass es
demasiado pequeña para la
propiedad Damper.
5521
Se especificó el modo de sistema
de coordenadas en vez del modo
personalizado para el sensor de
fuerza, el que no está asociado
con el robot.
Revise la configuración del sensor
de fuerza o el modo del sistema de
coordenadas.
Revise la asociación con el
robot.
Revise si se especificó la
dirección en lugar de la
coordenada personalizada para
la propiedad Orientation
(Orientación) del objeto del
sistema de coordenadas de
fuerza para el sensor que no
está asociado con el robot.
5522
Está seleccionado Undefined data
(Datos sin definir).
Revise si están definidos los datos
seleccionados.
Revise si está definido el
parámetro especificado.
5523
El parámetro que no se puede
continuar cuando se especifica el
control de fuerza continua CF.
Revise el objeto de control de
fuerza y el objeto del sistema de
coordenadas de fuerza.
Revise el objeto de control de
fuerza y el objeto de
coordenadas de fuerza que
están siendo utilizados por los
comandos de movimiento antes
y después de continuar el
control de fuerza mediante el
parámetro CF.
5530
El tiempo especificado ha
transcurrido después de reiniciar el
sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 879
N.º Mensaje Solución Nota 1 Nota 2
5531
Aproxímese al punto de
singularidad mientras ejecuta el
control de fuerza.
Evite el punto de singularidad
mientras utiliza el control de
fuerza.
Revise si se especificaron las
coordenadas cercanas a la
singularidad.
Revise si el robot se mueve
hacia el entorno de la
singularidad durante la
ejecución del control de fuerza.
O bien, revise la posición de
instalación del robot.
5532
El búfer para el sensor de fuerza
está saturado.
Acorte el intervalo de tiempo de
AvgForceClear a AvgForce.
Acorte el intervalo de tiempo
entre AvgForceClear y
AvgForce para que sea menor
a un minuto.
5533
Ha
transcurrido el tiempo de
continuación para que CF ejecute
el control de fuerza.
Para continuar el control de fuerza,
utilice FCKeep.
Revise si el intervalo de los
comandos de movimiento es
igual o inferior a un minuto.
5535
El robot SCARA no puede ejecutar
el control de fuerza si la propiedad
Orientation de los objetos Base
(Base), Tool (Herramienta), Local
(Local) y FCS, o de V y W de la
posición del comando actual es
distinta de 0.
Revise los parámetros.
Configure “0” en la propiedad
Orientation o V y W de la
posición del comando actual
para los objetos Base, Tool,
Local y FCS.
5536
El control de fuerza no es
compatible con este modelo de
robot.
Revise el modelo del robot y la
versión de firmware del
controlador.
Revise si el robot especificado
es el correcto.
Revise si el firmware del
controlador es compatible con
el modelo del robot.
5540
Error de transmisión del sensor de
fuerza.
Revise la conexión de la unidad I/F
del sensor de fuerza y el sensor de
fuerza.
Ejecute la propiedad Reboot
del objeto del sensor de fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5541
Error de recepción del sensor de
fuerza.
Revise la conexión de la unidad I/F
del sensor de fuerza y el sensor de
fuerza
Ejecute la propiedad Reboot
del objeto del sensor de fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 880
N.º Mensaje Solución Nota 1 Nota 2
5542
Sensor de fuerza en uso.
Revise si los demás comandos
están usando el sensor de fuerza.
Revise si las propiedades
Reset o Reboot del objeto de
sensor de fuerza se ejecutan
en otra tarea.
5543
Error de comunicación del sensor
de fuerza.
Ejecute la propiedad Reboot del
objeto del sensor de fuerza.
Ejecute la propiedad Reboot
del objeto del sensor de fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5544
Error del elemento del sensor de
fuerza.
Revise si la fuerza que supera el
valor nominal se aplica al sensor
de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Este error se puede producir si
ha transcurrido mucho tiempo
desde que no se reinicia el
sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Revise si la fuerza que supera
el valor nominal se aplica al
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5545
Error del circuito 1 del sensor de
fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5546
Error del circuito 2 del sensor de
fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Si se produce un error similar
incluso después de tomar las
medidas anteriores, revise si
hay vibración en la punta del
brazo del robot.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 881
N.º Mensaje Solución Nota 1 Nota 2
5547
Error de temperatura alta del
sensor de fuerza.
Revise si la temperatura ambiente
se encuentra dentro del valor
nominal y que no haya un cambio
rápido de temperatura.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Revise la temperatura
ambiente.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5548
El sensor de fuerza detectó una
fuerza que supera el valor nominal.
Revise si se aplica una fuerza que
supera el valor nominal.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Ejecute la propiedad Reset del
objeto del sensor de fuerza.
Revise si la fuerza que supera
el valor nominal se aplica al
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5549
No está conectada la unidad I/F
del sensor de fuerza.
Revise la conexión de la unidad I/F
del sensor de fuerza y el sensor de
fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
Consulte con nosotros si ocurre
un error similar incluso después
de tomar las anteriores
contramedidas.
5550
La detección de fuerza del sensor
de fuerza está desactivada.
Revise la configuración del sensor
de fuerza.
Revise la configuración del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
5551
Está conectado un sensor de
fuerza que no es compatible.
Revise la versión de firmware del
controlador y la conexión del
sensor de fuerza.
Revise si el firmware del
controlador es compatible con
el sensor de fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
5560
Error de corrección de desfase del
sensor de fuerza.
Revise la conexión del sensor
de fuerza y la unidad I/F del
sensor de fuerza.
Reinicie el sensor de fuerza y
la unidad I/F del sensor de
fuerza.
5570
Desbordamiento de búfer del
monitor de fuerza.
Reinicie el monitor de fuerza.
Cierre y vuelva a abrir el
monitor de fuerza.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 882
N.º Mensaje Solución Nota 1 Nota 2
5571
Desbordamiento de búfer del
registro de fuerza.
Configure un intervalo de medición
de datos más largo.
Configure un intervalo más
largo para medir los datos.
La computadora que recibe los
datos puede estar en estado de
carga pesada.
5572
Desbordamiento de búfer del
monitor de control de fuerza.
Reinicie el monitor de control de
fuerza.
Cierre y vuelva a abrir el
monitor de control de fuerza.
5800
Falla de inicialización del control
de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5801
Falla al asignar memoria con el
control de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5802
Error de cálculo del control de
fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5803
El sensor de fuerza no pudo
conectarse con el robot.
Revise la configuración de la
conexión del sensor de fuerza.
Revise la configuración de la
conexión del sensor de fuerza.
5810
Error de parámetro del control de
fuerza.
Revise el rango del parámetro.
Revise el rango del parámetro
especificado.
5811
El parámetro del objeto de control
de fuerza está fuera de rango.
Nota 1: Propiedad
Nota 2: Eje
Revise el parámetro.
Revise la propiedad del objeto
de control de fuerza.
1: Número
2: Sistema de
coordenadas
3: Habilitado
4: Masa
5: Amortiguador
6: Resorte
7:
TargetForcePriorit
yMode
8: TargetForce
9: LimitSpeed
10: LimitAccel
1: Fx
2: Fy
3: Fz
4: Tx
5: Ty
6: Tz
o
1:J
2:S
3:R
5812
LimitSpeed o LimitAccel del objeto
del control de fuerza es inferior a la
configuración de velocidad o
aceleración del robot.
Revise el parámetro.
Revise los valores de Speed,
SpeedS, SpeedR, Accel,
AccelS, AccelR, LimitSpeed y
LimitAccel.
5813
Todas las propiedades activadas
del objeto de control de fuerza son
falsas.
Configure True (Verdadero) en 1 o
más ejes.
Active la propiedad “Enabled”
(Activada) para al menos un
eje.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 883
N.º Mensaje Solución Nota 1 Nota 2
5814
El robot SCARA no puede ejecutar
el control de fuerza si la propiedad
Orientation de los objetos Base,
Tool, Local y FCS, o de V y W de
la posición del comando actual es
distinta de 0,
o si Tx_Enabled y Ty_Enabled no
está en False (Falso).
Revise los parámetros.
Desactive el estado activado de
Tx y Ty.
Configure “0” en la propiedad
Orientation o V y W de la
posición del comando actual
para los objetos Base, Tool,
Local y FCS.
5815
El parámetro del objeto del
disparador de fuerza está fuera de
rango.
Nota 1: Propiedad
Nota 2: Eje
Revise el parámetro.
Revise la propiedad del objeto
del disparador de fuerza.
1: Número
2: Sensor de
fuerza
3: Sistema de
coordenadas
4: TriggerMode
5: Operador
6: Habilitado
7: FMag_Axes
8: TMag_Axes
9: Polaridad
10: UpperLevel
11: LowerLevel
12: UpperLevel
inferior al
LowerLevel
13: LPF_Enabled
14:
LPF_TimeConsta
nt
1: Fx
2: Fy
3: Fz
4: Tx
5: Ty
6: Tz
7: Fmag
8: Tmag
5816
El parámetro del objeto del
sistema de coordenadas de fuerza
está fuera de rango.
Nota 1: Propiedad
Nota 2: Eje
Revise el parámetro.
Revise la propiedad del objeto
del sistema de coordenadas de
fuerza.
1: Número
2: Posición
3:
Orientation_Mode
4:
Orientation_UVW
5:
Orientation_Robo
tLocal
1: X
2: Y
3: Z
o
1: U
2: V
3: W
5817
El parámetro del objeto del monitor
de fuerza está fuera de rango.
Nota 1: Propiedad
Nota 2: Eje
Revise el parámetro.
Revise la propiedad del objeto
del monitor de fuerza.
1: Número
2: Sensor de
fuerza
3: Sistema de
coordenadas
4: FMag_Axes
5: TMag_Axes
6: LPF_Enabled
7:
LPF_TimeConsta
nt
5818
El parámetro del objeto de
restricción de movimiento de
fuerza está fuera de rango.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5819
La duración especificada de
FCKeep está fuera del rango
permitido.
Revise la duración.
Revise si la duración
especificada es igual o inferior
a 600 segundos.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 884
N.º Mensaje Solución Nota 1 Nota 2
5830
No se puede reanudar el control
de fuerza desde la pausa.
Cancele el comando de
movimiento.
Cancele el movimiento.
5831
No se puede ejecutar este
comando durante el control de
fuerza.
Salga del control de fuerza
mediante FCEnd.
Cancele el control de fuerza.
Ejecute el comando FCEnd.
5832
No se puede ejecutar un comando
de movimiento que no tenga
ningún objeto de control de fuerza
durante el control de fuerza.
Salga del control de fuerza
mediante FCEnd.
Revise si el comando de
movimiento inmediatamente
después de continuar el control
de fuerza con CT no contiene
el control de fuerza.
5840
Sensor de fuerza en uso.
Revise si los demás comandos
están utilizando el sensor de
fuerza.
Revise si las propiedades
Reset o Reboot del objeto de
sensor de fuerza se ejecutan
en otra tarea.
5901
Falla al asignar memoria con el
control de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5902
El control de fuerza no pudo liberar
la memoria.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5903
No se puede encontrar el robot
especificado.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5904
Falla al asignar memoria con el
control de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5906
No se puede encontrar el número
de datos de fuerza especificado.
Especifique un número de datos
de fuerza válido.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5907
No se definió el número de datos
de fuerza especificado.
Especifique un número de datos
de fuerza de enseñanza.
Especifique un número de
datos de fuerza definido.
5908
No se definió el número de datos
del sistema de coordenadas de
fuerza especificado. Especifique
un número de datos del sistema de
coordenadas de fuerza de
enseñanza.
Especifique un número de
datos del sistema de
coordenadas de fuerza
definido.
5909
No se pueden actualizar los datos
de fuerza especificados.
No se pueden actualizar ni
eliminar los datos de fuerza
especificados con las
instrucciones FSet, FDel,
MPSet o MPDel.
5910
El valor de los datos de fuerza
especificados está fuera del rango
permitido.
Especifique el valor dentro del
rango.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 885
N.º Mensaje Solución Nota 1 Nota 2
5911
El valor del nivel superior es menor
que el valor del nivel inferior.
Cambie los valores del nivel
superior e inferior.
Cambie los valores del nivel
superior e inferior.
5912
El número de los parámetros de
comando especificado no es
correcto.
Especifique un número válido de
parámetros.
Especifique un número válido
de parámetros.
Número de
parámetros
5913
El número de los parámetros de
función especificado no es
correcto.
Especifique un número válido de
parámetros.
Especifique un número válido
de parámetros.
Número de
parámetros
5914
El tipo de parámetro de comando
especificado no es correcto.
Especifique los parámetros
válidos.
Especifique los parámetros
válidos.
5915
El tipo de parámetro de función
especificado no es correcto.
Especifique los parámetros
válidos.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5918
No se puede encontrar la etiqueta
de datos de fuerza especificada.
Especifique una etiqueta de datos
de fuerza válida.
Especifique una etiqueta de
datos de fuerza válida definida.
5921
Duplique la etiqueta de datos de
fuerza. El nombre de etiqueta
especificado ya está en uso.
Cambie el nombre de la etiqueta.
Cambie el nombre de la
etiqueta.
5924
El control de fuerza del robot
especificado no pudo asignar
memoria.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5927
No se pueden leer los datos de
fuerza del archivo de fuerza.
Vuelva a crear el archivo de
fuerza.
Los datos de fuerza no son
válidos y no se pueden leer.
Vuelva a crear el archivo de
fuerza.
0: FC
1: FCS
2: FT
3: FM
4: MASS
Número de
datos de
fuerza
5928
Falla al asignar memoria con el
control de fuerza.
Reinicie el controlador.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5929
El nombre del archivo de fuerza
especificado no es correcto.
Especifique un nombre de archivo
de fuerza válido.
Reinicie el controlador.
Inicialice el firmware del
controlador.
Reemplace el controlador.
5930
La etiqueta de datos de fuerza
especificada supera la longitud
máxima. Especifique una etiqueta
de datos de fuerza válida.
Especifique una etiqueta de
datos de fuerza válida.
Consulte "Propiedad Label"
para conocer detalles.
5931
La descripción de los datos de
fuerza especificada supera la
longitud máxima.
Especifique una descripción válida.
Especifique una descripción
válida.
Consulte "Propiedad
Description" (Descripción) para
conocer detalles.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 886
N.º Mensaje Solución Nota 1 Nota 2
5932
El archivo de fuerza está dañado.
Vuelva a crear el archivo de
fuerza.
No se puede cargar el archivo
de fuerza porque está dañado
o fue editado por herramientas
distintas a Force Control 7.0.
Vuelva a crear el archivo de
fuerza.
5933
No se puede encontrar el archivo
de datos de fuerza especificado.
Especifique un nombre de archivo
de fuerza válido.
Especifique un nombre de
archivo de fuerza válido.
5934
No se puede guardar el archivo de
fuerza.
Libere el espacio suficiente
para escribir el archivo de
fuerza.
Número del robot
5940
La etiqueta de datos de fuerza es
incorrecta.
Especifique una etiqueta de datos
de fuerza válida.
Especifique una etiqueta de
datos de fuerza válida.
Consulte "Propiedad Label"
para conocer detalles.
5941
La etiqueta de datos de fuerza es
incorrecta.
Especifique una etiqueta de datos
de fuerza válida.
Especifique una etiqueta de
datos de fuerza válida.
Consulte "Propiedad Label"
para conocer detalles.
5943
La versión del archivo de fuerza no
es válida.
Actualice el firmware del
controlador.
No se puede cargar el archivo
de fuerza, porque es una
versión más reciente.
5944
No se pudo leer el archivo de
fuerza.
Vuelva a crear el archivo de
fuerza.
No se puede cargar el archivo
de fuerza, porque el formato no
es compatible.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 887
N.º Mensaje Solución Nota 1 Nota 2
6001
El número de calibración está fuera del
rango.
Corrija el número de calibración.
6002 No está definida la calibración. Realice la calibración.
6003
La orientación de la cámara está fuera del
rango.
Corrija el valor
CameraOrientation.
6004
El indicador TwoRefPoints está fuera del
rango.
Corrija el valor TwoRefPoints.
6005
No se puede calcular la posición del punto
porque existen datos no válidos.
Vuelva a enseñar los puntos.
6006
No se pudo calibrar. No se puede calcular
porque existen datos no válidos.
Realice nuevamente la
enseñanza de puntos y la
calibración.
6007
Falla en la transformación de coordenadas.
No se puede calcular porque existen datos
no válidos.
Vuelva a enseñar los puntos.
6009
El nombre del archivo de calibración no es
válido.
Corrija el nombre del archivo de
calibración.
6010 No se encontró el archivo de calibración.
Corrija el nombre del archivo de
calibración.
6012 No se pudo leer el archivo de calibración.
Corrija el nombre del archivo de
calibración.
6013 No se pudo escribir el archivo de calibración.
Revise el permiso de acceso a
la carpeta del proyecto.
6014
Se deben especificar 9 puntos de
coordenadas de píxeles.
Asegúrese de obtener al menos
9 resultados en la secuencia de
visión.
6015
Se deben especificar 18 puntos de
coordenadas de píxeles.
Asegúrese de obtener al menos
18 resultados en la secuencia de
visión.
6016
Se deben especificar 9 puntos de
coordenadas del robot.
Vuelva a enseñar los puntos.
6017
Se deben especificar 18 puntos de
coordenadas del robot.
Vuelva a enseñar los puntos.
6018
Se deben especificar 9 puntos de
coordenadas del robot y 1 punto de
referencia.
Realice nuevamente la
enseñanza de puntos y la
calibración.
6019
Se deben especificar 9 puntos de
coordenadas del robot y 2 puntos de
referencia.
Realice nuevamente la
enseñanza de puntos y la
calibración.
6502
Proceso de Vision Error de comunicación (-
3)
Revise la conexión con la
cámara (cable, configuración).
6503 Proceso de Vision Error de memoria (-11) Reinicie RC+.
6506 Proceso de Vision Error de modelado (-14)
Cambie el objetivo y vuelva a
enseñar.
6507
Proceso de Vision Error de recuperación (-
15)
Especifique el archivo del
formato adecuado.
6508
Proceso de Vision Número de iteraciones
no válido (-16)
Configure un valor en el rango
válido.
6509 Proceso de Vision Modo no válido (-17) Configure un valor válido.
6510
Proceso de Vision Valor de umbral no
válido (-18)
Configure un valor en el rango
válido.
6511 Proceso de Vision Polaridad no válida (-19)
Configure un valor en el rango
válido.
6512
Proceso de Vision No se pudo abrir el
archivo (-20)
Especifique un archivo correcto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 888
N.º Mensaje Solución Nota 1 Nota 2
6513
Proceso de Vision Error de inicialización (-
21)
Vuelva a instalar RC+.
6514 Proceso de Vision Error de estado (-22)
Revise la conexión con la
cámara.
6517
Proceso de Vision Formato de imagen no
válido (-25)
Especifique el archivo de
imagen del formato de lectura.
6520
Proceso de Vision Valor de propiedad no
válido (-100)
Configure un valor en el rango
válido.
6521
Proceso de Vision No se pudo realizar el
proceso de término de exposición (-201)
Desactive el Firewall de
Windows.
6533
Proceso de Vision Valor ThresholdLow de
propiedad Blob no válido (-11004)
Configure un valor en el rango
válido.
6534
Proceso de Vision Valor ThresholdHigh de
propiedad Blob no válido (-11005)
Configure un valor en el rango
válido.
6535
Proceso de Vision Valor Polarity de
propiedad Blob no válido (-11006)
Configure un valor en el rango
válido.
6536
Proceso de Vision Valor NumberToFind de
propiedad Blob no válido (-11007)
Configure un valor en el rango
válido.
6537
Proceso de Vision Valor MinArea de
propiedad Blob no válido (-11008)
Configure un valor en el rango
válido.
6538
Proceso de Vision Valor MaxArea de
propiedad Blob no válido (-11009)
Configure un valor en el rango
válido.
6539
Proceso de Vision Valor RejectOnEdge de
propiedad Blob no válido (-11010)
Configure un valor en el rango
válido.
6540
Proceso de Vision Valor SizeToFind de
propiedad Blob no válido (-11011)
Configure un valor en el rango
válido.
6553
Proceso de Vision Valor Accept de
propiedad Geom no válido (-11504)
Configure un valor en el rango
válido.
6554
Proceso de Vision Valor NumberToFind de
propiedad Geom no válido (-11505)
Configure un valor en el rango
válido.
6555
Proceso de Vision Valor AngleEnable de
propiedad Geom no válido (-11506)
Configure un valor en el rango
válido.
6556
Proceso de Vision Valor AngleRange de
propiedad Geom no válido (-11507)
Configure un valor en el rango
válido.
6557
Proceso de Vision Valor AngleStart de
propiedad Geom no válido (-11508)
Configure un valor en el rango
válido.
6558
Proceso de Vision Valor ScaleEnable de
propiedad Geom no válido (-11509)
Configure un valor en el rango
válido.
6559
Proceso de Vision Valor ScaleFactorMax de
propiedad Geom no válido (-11510)
Configure un valor en el rango
válido.
6560
Proceso de Vision Valor ScaleFactorMin de
propiedad Geom no válido (-11511)
Configure un valor en el rango
válido.
6561
Proceso de Vision Valor ScaleTarget de
propiedad Geom no válido (-11512)
Configure un valor en el rango
válido.
6562
Proceso de Vision Valor SeparationMinX de
propiedad Geom no válido (-11513)
Configure un valor en el rango
válido.
6563
Proceso de Vision Valor SeparationMinY de
propiedad Geom no válido (-11514)
Configure un valor en el rango
válido.
6564
Proceso de Vision Valor SeparationAngle
de propiedad Geom no válido (-11515)
Configure un valor en el rango
válido.
6565
Proceso de Vision Valor SeparationScale
de propiedad Geom no válido (-11516)
Configure un valor en el rango
válido.
6566
Proceso de Vision Valor Confusion de
propiedad Geom no válido (-11517)
Configure un valor en el rango
válido.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 889
N.º Mensaje Solución Nota 1 Nota 2
6567
Proceso de Vision Valor
ModelOrgAutoCenter de propiedad Geom
no válido (-11518)
Configure un valor en el rango
válido.
6570
Proceso de Vision Valor DetailLevel de
propiedad Geom no válido (-11521)
Configure un valor en el rango
válido.
6571
Proceso de Vision Valor Smoothness de
propiedad Geom no válido (-11522)
Configure un valor en el rango
válido.
6572
Proceso de Vision Valor RejectOnEdge de
propiedad Geom no válido (-11523)
Configure un valor en el rango
válido.
6573
Proceso de Vision Valor SharedEdges de
propiedad Geom no válido (-11524)
Configure un valor en el rango
válido.
6574
Proceso de Vision Valor Timeout de
propiedad Geom no válido (-11525)
Configure un valor en el rango
válido.
6575
Proceso de Vision Valor RejectByArea de
propiedad Geom no válido (-11526)
Configure un valor en el rango
válido.
6576
Proceso de Vision Valor SearchReversed
de propiedad Geom no válido (-11527)
Configure un valor en el rango
válido.
6577
Proceso de Vision Valor ScaleTargetPriority
de propiedad Geom no válido (-11528)
Configure un valor en el rango
válido.
6578
Proceso de Vision Valor
SearchReducedImage de propiedad Geom
no válido (-11529)
Configure un valor en el rango
válido.
6586
Proceso de Vision Valor DetailLevel de
propiedad Geom Model no válido (-11602)
Configure un valor en el rango
válido.
6587
Proceso de Vision Valor Smoothness de
propiedad Geom Model no válido (-11603)
Configure un valor en el rango
válido.
6603
Proceso de Vision Propiedad Corr no válida
Valor Accept (-12004)
Configure un valor en el rango
válido.
6604
Proceso de Vision Propiedad Corr no válida
Valor NumberToFind (-12005)
Configure un valor en el rango
válido.
6605
Proceso de Vision Propiedad Corr no válida
Valor AngleEnable (-12006)
Configure un valor en el rango
válido.
6606
Proceso de Vision Propiedad Corr no válida
Valor AngleRange (-12007)
Configure un valor en el rango
válido.
6607
Proceso de Vision Propiedad Corr no válida
Valor AngleStart (-12008)
Configure un valor en el rango
válido.
6608
Proceso de Vision Propiedad Corr no válida
Valor AngleAccuracy (-12009)
Configure un valor en el rango
válido.
6609
Proceso de Vision Propiedad Corr no válida
Valor Confusion (-12010)
Configure un valor en el rango
válido.
6610
Proceso de Vision Propiedad Corr no válida
Valor ModelOrgAutoCenter (-12011)
Configure un valor en el rango
válido.
6613
Proceso de Vision Propiedad Corr no válida
Valor RejectOnEdge (-12014)
Configure un valor en el rango
válido.
6614
Proceso de Vision Propiedad Corr no válida
Valor Timeout (-12015)
Configure un valor en el rango
válido.
6615
Proceso de Vision Propiedad Corr no válida
Valor RejectByArea (-12016)
Configure un valor en el rango
válido.
6630
Proceso de Vision Tamaño de estructura de
la propiedad Edge no válido (-12501)
Configure un valor en el rango
válido.
6631
Proceso de Vision Tamaño de estructura
del encabezado de resultado de Edge no
válido (-12502)
Configure un valor en el rango
válido.
6632
Proceso de Vision Tamaño de estructura
del elemento de resultado de Edge no válido
(-12503)
Configure un valor en el rango
válido.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 890
N.º Mensaje Solución Nota 1 Nota 2
6633
Proceso de Vision Propiedad Edge no
válida
Valor EdgeType (-12504)
Configure un valor en el rango
válido.
6634
Proceso de Vision Propiedad Edge no
válida
Valor NumberToFind (-12505)
Configure un valor en el rango
válido.
6635
Proceso de Vision Propiedad Edge no
válida
Valor Polarity (-12506)
Configure un valor en el rango
válido.
6636
Proceso de Vision Propiedad Edge no
válida
Valor SearchWidth (-12507)
Configure un valor en el rango
válido.
6637
Proceso de Vision Propiedad Edge no
válida
Valor Accept (-12508)
Configure un valor en el rango
válido.
6638
Proceso de Vision Propiedad Edge no
válida
Valor ScoreWeightContrast (-12509)
Configure un valor en el rango
válido.
6639
Proceso de Vision Propiedad Edge no
válida
Valor ContrastTarget (-12510)
Configure un valor en el rango
válido.
6640
Proceso de Vision Propiedad Edge no
válida
Valor ContrastVariation (-12511)
Configure un valor en el rango
válido.
6641
Proceso de Vision Propiedad Edge no
válida
Valor StrengthTarget (-12512)
Configure un valor en el rango
válido.
6642
Proceso de Vision Propiedad Edge no
válida
Valor StrengthVariation (12513)
Configure un valor en el rango
válido.
6653
Proceso de Vision Lector de código
Error de suma de comprobación (-1010)
Cambie el código a uno con una
suma de comprobación correcta.
O bien, cambie la configuración
para que no utilice la suma de
comprobación.
6654
Proceso de Vision Lector de código
Zona silenciosa no válida (-1011)
Asegúrese de que haya una
zona silenciosa (margen en
blanco) alrededor del código.
Configure una zona silenciosa
más estrecha.
6655
Proceso de Vision Lector de código
El mensaje es demasiado largo (-1012)
Cambie el código.
6686
Proceso de Vision OCR
El diccionario de reconocimiento está lleno (-
2132)
Borre los caracteres registrados.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 891
N.º Mensaje Solución Nota 1 Nota 2
7003
No se puede encontrar el robot
especificado.
Reinicie el controlador.
Inicialice el firmware del control.
7004
Duplique la asignación del área de
datos de punto.
Reinicie el controlador.
Inicialice el firmware del control.
7006
No se puede encontrar el número
de punto especificado.
Especifique un número de punto
válido.
Revise el número de punto
especificado.
7007
No se definió el número de punto
especificado. Especifique un
número de punto de enseñanza.
Revise si los datos de punto están
registrados en el punto especificado.
Realice la enseñanza.
7010
No se puede asignar el área de
memoria para la definición de
pálet.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7011
No se puede liberar el área de
memoria para la definición de
pálet.
Reinicie el controlador.
Inicialice el firmware del controlador.
7012
No se puede encontrar el número
de pálet especificado. Especifique
un número de pálet válido.
Revise el número de pálet.
7013
No está definido el pálet
especificado. Especifique el pálet
definido o defina el pálet.
Revise si el pálet especificado es
definido por la instrucción Pallet.
Declare el pálet.
7014
El número de división especificado
es superior a la definición del
número de división de pálet.
Especifique una división válida.
Revise el número de división
especificado.
7015
El número de eje de coordenadas
especificado no existe.
Revise el número de eje de
coordenadas especificado.
7016
El número de orientación del brazo
especificado no existe.
Revise el número de orientación del
brazo especificado.
7017
No se puede asignar la memoria
necesaria.
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7018
No se puede encontrar la etiqueta
de punto especificada. Especifique
una etiqueta de punto válida.
Revise la etiqueta de punto
especificada.
7019
La configuración del parámetro en
el archivo de inicialización no es
válida.
Reinicie el controlador.
Inicialice el firmware del controlador.
7021
Duplique la etiqueta de punto. El
nombre de etiqueta especificado
ya está en uso. Cambie el nombre
de la etiqueta.
Cambie la etiqueta de punto.
7022
No está definido el sistema de
coordenadas local especificado.
Especifique un número del sistema
de coordenadas local válido.
Revise el número local especificado.
Defina el sistema de coordenadas
local.
7024
No está asignada el área de
memoria para los datos de punto
para el robot especificado.
Recompile el proyecto.
7026
No se puede abrir el archivo de
puntos. Especifique un nombre
de archivo de puntos válido.
Revise el nombre del archivo de
puntos.
Revise si existe el archivo de puntos
especificado para el proyecto.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 892
N.º Mensaje Solución Nota 1 Nota 2
7027
No se pueden leer los datos de
punto del archivo de puntos.
Cree nuevamente un archivo de
puntos.
7028
El área de puntos está asignada
más allá del número de punto
disponible.
Hay demasiados puntos.
Revise el número de puntos.
7029
El nombre del archivo de puntos
especificado no es correcto.
Especifique un nombre de archivo
de puntos válido.
Revise la extensión del archivo.
7030
La etiqueta de punto especificada
supera la longitud máxima.
Especifique una etiqueta de punto
válida.
Cambie la etiqueta de punto.
7031
La descripción del punto
especificado supera la longitud
máxima. Especifique una
descripción válida.
Cambie el comentario.
7032
El archivo de puntos está dañado.
Error de la suma de comprobación.
Cree nuevamente un archivo de
puntos.
7033
No se puede encontrar el archivo
de puntos especificado.
Especifique un nombre de archivo
de puntos válido.
Revise el nombre del archivo de
puntos especificado.
7034
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (cree un archivo temporal).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7035
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (archivo abierto).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7036
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (renueve el encabezado del
archivo).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7037
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (cree el nombre del archivo).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7038
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (copie el archivo).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7039
No se puede guardar el archivo de
puntos.
No se pudo guardar el archivo de
puntos (cambie el nombre del
archivo).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 893
N.º Mensaje Solución Nota 1 Nota 2
7040
La etiqueta de punto es incorrecta.
Especifique una etiqueta de punto
válida.
El carácter inicial del nombre de la
etiqueta de punto no es correcto.
Corrija el nombre de la etiqueta.
7041
La etiqueta de punto es incorrecta.
Especifique una etiqueta de punto
válida.
Se usó un carácter incorrecto.
Corrija el nombre de la etiqueta.
7042
No se puede definir el pálet.
El indicador no definido para los
datos del pálet está mezclado.
Revise los datos de punto.
Corrija los datos de punto.
7043
La versión del archivo de puntos
no es válida.
La versión del archivo de puntos es
distinta.
Vuelva a crear el archivo de puntos.
7044
La versión del formato del archivo
de puntos no es compatible.
El archivo de puntos no es
compatible.
Vuelva a crear el archivo de puntos.
7045
El número de cola de trabajo
especificada no es válido.
Revise el número de cola de trabajo
especificado.
7046
La cola de trabajo especificada
está llena.
La cola de trabajo está llena. Borre
los datos de punto de la cola de
trabajo y registre.
7047
No existen los datos de la cola de
trabajo especificados.
Revise el índice especificado.
7048
La cola de trabajo no se inicializó
correctamente.
No se pudo inicializar la cola de
trabajo (asigne memoria).
Reinicie el controlador.
Inicialice el firmware del controlador.
Reemplace el controlador.
7049
El parámetro de la instrucción de
cola de trabajo no es válido.
Revise los parámetros de los
comandos relacionados con la cola
de trabajo.
7050
No se puede ejecutar mientras se
registran los datos de la cola de
trabajo.
No se puede definir la cola de
trabajo, ya que los datos de punto
están registrados en la cola de
trabajo.
Vacíe la cola de trabajo antes de la
configuración.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 894
N.º Mensaje Solución Nota 1 Nota 2
7101
Esclavo del bus de campo. Se
produjo un error durante la
transformación de los datos de
E/S.
La placa del esclavo de bus de
campo está rota o el software del
controlador está dañado. Restaure
el firmware del controlador.
1
2
3
4
10
Se detectó un error de datos de
comunicación durante la
comunicación. El cable de
comunicación tiene un problema.
Revise el cable de comunicación y
sus unidades relacionadas.
11
12
El bus de campo está roto o el
software del controlador es
dañado. Restaure el firmware del
controlador.
13
14
15
El PLC no está en ejecución o no
está conectado.
Revise el PLC, el cable de
comunicación y los dispositivos
periféricos.
(Si el código 1 es 22 cuando se usa
la placa CC-Link.)
22
7103
Esclavo del bus de campo. Ocurrió
un error de tiempo de espera
durante la transformación de datos
de E/S.
La placa del esclavo del bus de
campo está rota o el software del
controlador está dañado. Restaure
el firmware del controlador.
1
2
Se detectó un error de datos de
comunicación durante la
comunicación. El cable de
comunicación tiene un problema.
Revise el cable de comunicación y
sus unidades relacionadas.
3
4
7150
Maestro del bus de campo.
El bus está desconectado.
Revise la conexión del cable de
comunicación del bus de campo.
7151
Maestro del bus de campo. El bus
está apagado.
Revise si el cable de comunicación
del bus de campo tiene alimentación.
7152
Maestro del bus de campo.
Error de estado de bus.
Reinicie el controlador.
Revise la placa del maestro del bus
de campo.
Reemplace la placa del maestro del
bus de campo.
7200
Argumento no válido. Revise el parámetro.
7201
Se produjo un error del sistema.
-
7202
No hay suficiente memoria.
-
7203
Acceso denegado.
-
7210
La unidad no está lista. Configure el dispositivo.
7211
La ruta especificada no es válida.
Asegúrese de que exista la ruta
especificada.
7212
La ruta especificada ya existe.
Si la carpeta o archivo especificado
ya existe, no puede realizar la
ejecución.
7213
No existe el archivo especificado
por la ruta.
Asegúrese de que exista el archivo
especificado.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 895
N.º Mensaje Solución Nota 1 Nota 2
7214
El tamaño del archivo es
demasiado grande.
Especifique un archivo que sea de
menos de 2 G bytes.
7215
El archivo especificado está
abierto.
El número de archivo especificado
ya existe. Use otro número de
archivo.
7216
El modo de apertura no es válido.
Asegúrese de que lo abrió en modo
de lectura o escritura.
7217
No hay datos de lectura.
Asegúrese de que haya datos que
leer.
7230
La conexión especificada está
abierta.
El número de archivo especificado
ya existe. Use otro número de
archivo.
7231
Ocurrió un error de nivel de
conexión al abrir la conexión.
Revise el derecho de acceso a la
base de datos.
7232
La conexión está cerrada.
Use OpenDB y abra la base de
datos.
7233
Se usó un tipo de datos no
admitido.
Convierta los datos en un valor de
cadena o numérico.
7234
El tamaño de los datos es
demasiado grande.
Datos demasiado grandes en una
línea. Especifique la consulta para
que solo se recuperen los campos
necesarios.
7235
El tipo de archivo especificado no
es admitido.
Revise el tipo de archivo Excel.
7236
No hay datos seleccionados.
Asegúrese de que los datos que
recuperó existan.
7250
No hay bytes disponibles para
lectura.
No hay datos recuperados. Revise
el programa de envío.
7251
El puerto es un estado no válido.
Revise la configuración del
dispositivo para el puerto
especificado.
7252
El puerto especificado está abierto.
Revise el número de puerto que
desea abrir.
7253
El puerto está cerrado.
Revise el número de puerto que
desea cerrar.
7254
El puerto especificado no está
abierto.
Revise el número de puerto que
desea abrir.
7255
Se agotó el tiempo de espera
durante la lectura desde el puerto.
Revise el período de tiempo de
espera del puerto y actualice según
la configuración correspondiente.
7256
Se agotó el tiempo de espera
durante la escritura al puerto.
Revise el período de tiempo de
espera del puerto y actualice según
la configuración correspondiente.
7260
La suma de comprobación del
proyecto no es válida.
Recompile el proyecto.
7261
Función no válida.
Revise la definición de función que
desea llamar.
7262
Parámetros no válidos.
Revise la definición de función que
desea llamar.
7263
No se puede ejecutar mientras se
crea el DLL.
-
7264
No se pudo crear el DLL.
-
7265
No se pudo encontrar el archivo
DLL.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 896
N.º Mensaje Solución Nota 1 Nota 2
7300
Comunicación de Vision.
No se admite el modo servidor.
-
7302
Comunicación de Vision.
No se pudo leer desde la cámara.
Revise la conexión con la cámara.
7303
Comunicación de Vision.
Desbordamiento de lectura de
datos.
Los datos recibidos superan el búfer
de recepción.
7304
Comunicación de Vision.
No se pudo abrir el puerto
Ethernet.
Revise la conexión con la cámara.
7305
Comunicación de Vision.
Dirección IP de cámara no válida.
Recompile el proyecto. Revise la
configuración de la cámara.
7306
Comunicación de Vision.
No se especificó el servidor o
cliente.
-
7307
Comunicación de Vision.
No se pudo enviar a la cámara.
Revise la conexión con la cámara.
7308
Comunicación de Vision.
Versión de cámara antigua.
La versión de la cámara conectada
es antigua. Actualice la cámara.
7321
Comunicación de Vision.
No se ha ajustado la configuración
de la cámara.
Recompile el proyecto. Revise la
configuración de la cámara.
7322
Comunicación de Vision.
Se agotó el tiempo de espera de
lectura.
Revise la conexión con la cámara.
7323
Comunicación de Vision.
Datos no válidos de lectura.
Revise la conexión con la cámara.
7324
Comunicación de Vision.
No se pudo enviar a la cámara.
Revise la conexión con la cámara.
7325
Comunicación de Vision.
No se completó la conexión.
Revise la conexión con la cámara.
7326
Comunicación de Vision.
Los datos de lectura son
demasiado largos.
-
7327
Comunicación de Vision.
Secuencia de visión indefinida.
Revise el nombre de secuencia.
7328
Comunicación de Vision.
No se ha ajustado la configuración
de la cámara.
Recompile el proyecto. Revise la
configuración de la cámara.
7329
Comunicación de Vision.
No se encontró el archivo Vis.
Recompile el proyecto. Revise la
configuración de la cámara.
7330
Comunicación de Vision.
No se pudo asignar la memoria.
Reduzca el número de secuencias,
objetos y calibración.
7341
Comunicación de Vision.
Número de cámara máximo
superado.
Revise el registro de la cámara.
7342
Comunicación de Vision.
Número de cámara no válido.
Revise el registro de la cámara.
7343
Comunicación de Vision.
El parámetro VSet es demasiado
largo.
Revise los nombres y las variables
de cadena de secuencias, objetos y
calibración.
7344
Comunicación de Vision:
Demasiados parámetros para
VGet.
El número de variables especificado
supera las 32. Reduzca el número
de parámetros.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 897
N.º Mensaje Solución Nota 1 Nota 2
7345
Comunicación de Vision.
No hay suficientes datos para la
asignación de la variable de la
instrucción VGet.
Reinicie la cámara.
Revise la versión de la cámara.
7346
Comunicación de Vision.
No se puede ejecutar una
instrucción Vision desde la
ventana Command.
Elimine el comando desde el
programa.
7400
Matriz determinada demasiado
pequeña.
Si especifica la cámara virtual,
especifique la cámara real.
7402
Valor no válido para distancia de
movimiento máxima.
Especifique el valor válido.
7403
Valor no válido para ángulo de
diferencia de pose máximo.
Especifique el valor válido.
7404 Valor no válido para LJMMode. Especifique el valor válido.
7405
Comando cancelado por el
usuario.
7406
El cambio de ángulo de la
articulación 1 superó el máximo
permitido durante la calibración.
Ajuste el ángulo de inicio de la
articulación 1.
7407
El cambio de ángulo de la
articulación 2 superó el máximo
permitido durante la calibración.
Ajuste el ángulo de inicio de la
articulación 2.
7408
El cambio de ángulo de la
articulación 4 superó el máximo
permitido durante la calibración.
Ajuste el ángulo de inicio de la
articulación 4.
7409
El cambio de ángulo de la
articulación 6 superó el máximo
permitido durante la calibración.
Ajuste el ángulo de inicio de la
articulación 6.
7410
Cámara de red. Se agotó el
tiempo de espera durante la
transferencia de imagen desde la
computadora.
Revise la conexión de la
computadora con la cámara.
7500
Cámara de red.
Se agotó la memoria.
Inicialice la cámara.
Reduzca el tamaño del proyecto.
7501
Cámara de red.
El proyecto no existe.
Recompile el proyecto.
7502
Cámara de red.
El proyecto no se definió.
Recompile el proyecto.
7503
Cámara de red.
No se admite la propiedad o
resultado de Vision.
Actualice el firmware de la cámara.
7504
Cámara de red.
No se puede abrir el archivo de
proyecto.
Recompile el proyecto.
7505 Secuencia de visión indefinida.
Revise el nombre de secuencia.
Recompile el proyecto.
7506 Objeto de visión indefinido.
Revise el nombre del objeto.
Recompile el proyecto.
7507
Cámara de red.
Error crítico.
Inicialice la cámara.
Recompile el proyecto.
7508
Cámara de red.
Comando no válido.
Actualice el firmware de la cámara.
7509
Valor de propiedad de visión no
válido.
Revise el valor de propiedad.
Actualice el firmware de la cámara.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 898
N.º Mensaje Solución Nota 1 Nota 2
7510 Propiedad de visión no válida.
Revise el nombre de la propiedad.
Actualice el firmware de la cámara.
7511 Modelo de Vision no enseñado. Enseñe el modelo.
7512 Calibración de Vision indefinida.
Revise el nombre de calibración.
Recompile el proyecto.
7513 Modelo de Vision no es Self. Revise el valor de propiedad.
7514 Resultado de visión no válido.
Revise el nombre del resultado.
Actualice el firmware de la cámara.
7515 No se encontró el objeto de Vision.
Revise el resultado Found antes de
obtener el resultado.
7516 Sin calibración de visión. Revise el nombre de calibración.
7517 Calibración de visión incompleta. Realice la calibración.
7518
Cámara de red.
No se pudo conectar con la
cámara.
Revise la conexión de la cámara.
7819
Cámara de red.
Error de comunicación.
Revise la conexión de la cámara.
7520 Ventana fuera de límites.
Coloque la ventana dentro de los
límites.
7521 Fuente OCR no válida. Registre la fuente OCR.
7522
La calibración de visión
especificada ya existe.
Cambie el nombre de calibración.
Elimine la calibración existente por
adelantado.
7523
La secuencia de visión
especificada ya existe.
Cambie el nombre de secuencia.
Elimine la secuencia existente por
adelantado.
7524
El objeto de visión especificado ya
existe.
Cambie el nombre del objeto.
Elimine la secuencia existente por
adelantado.
7525
No se pudo cargar el proyecto de
Vision.
La carpeta del proyecto puede estar
dañada.
Restaure los datos de respaldo.
7526
No se pudo guardar el proyecto de
Vision.
La carpeta del proyecto puede estar
protegida contra escritura.
Revise los permisos de acceso para
la carpeta de proyecto.
7527
Procesador de Vision. Error
crítico.
Inicialice la cámara.
Recompile el proyecto.
7528
No se encontró el archivo de
imagen.
Revise el archivo de imagen.
7529 La cámara no existe. Revise la conexión de la cámara.
7530 Falló la adquisición. Revise la conexión de la cámara.
7531 No hay objetos a enseñar. Enseñe el modelo.
7532
No se puede cargar el archivo de
imagen.
Revise el archivo de imagen.
7533 RC+7.0 no admite la cámara.
RC+7.0 no admite SC300/SC1200.
Use CV1/CV2.
7534
El firmware de la cámara no
admite las nuevas funciones de
RC+7.0.
Actualice el firmware de la cámara.
7535
Datos no válidos de la cámara de
red.
Inicialice la cámara.
7536
Falló el estado de exportación de
la cámara de red.
Inicialice la cámara.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 899
N.º Mensaje Solución Nota 1 Nota 2
7537
Valor ImageSize no válido. El valor
especificado no es admitido por la
cámara.
No se puede especificar un valor
ImageSize que supere la resolución
de la cámara. Corrija el valor de
propiedad.
7538
Valor ZoomFactor no válido. El
valor especificado requiere datos
fuera del área de la imagen.
Los valores admitidos son de 0,1 a
10,0.
Corrija el valor de propiedad.
7539
La cámara no admite Code
Reader.
Actualice el firmware de la cámara.
7540 La cámara no admite OCR. Actualice el firmware de la cámara.
7541
Datos insuficientes para enseñar
modelo.
No se puede registrar una imagen en
blanco o negro como un modelo.
7542
La ventana de modelo no puede
estar fuera de la imagen.
Corrija la posición de la ventana de
modelo.
7543
No se han enseñado los puntos de
calibración.
Enseñe el punto de calibración.
7544
La calibración debe ser fija
ascendente.
Solo se puede configurar la
secuencia con datos de calibración
de la cámara fija ascendente.
7545 No se definió el punto. Enseñe el punto de calibración.
7546 No se calibró RobotPlacePos.
Haga clic en CalRobotPlacePos y
calibre RobotPlacePos.
7547
La dirección IP de la cámara está
fuera de la subred actual.
Corrija la dirección IP de la cámara.
7548 No se detectó la cámara. Revise el cableado de la cámara.
7549
Radio no válido. El radio debe ser
>= RadiusInner y <= RadiusOuter.
Corrija el valor de propiedad.
7550 No existe el carácter OCR. Registre el carácter OCR.
7551 La opción OCR no está activa. Habilite la opción.
7572
Nombre de secuencia no válido.
Especifique un nombre que
comience con una letra. Para el
nombre también puede usar
caracteres alfanuméricos y guion
bajo (_).
7573
Nombre de calibración no válido.
Especifique un nombre que
comience con una letra. Para el
nombre también puede usar
caracteres alfanuméricos y guion
bajo (_).
7574
El nombre de secuencia o de
calibración ya existe.
Especifique otro nombre de
calibración.
7575 Cámara no válida. Especifique una cámara válida.
7576
No se pudo encontrar el objetivo
de visión.
Revise la secuencia de visión para
detectar el objetivo
7577
No se pudo posicionar el objetivo
de visión dentro de la tolerancia
especificada.
Revise la secuencia de visión para
detectar el objetivo
7578
No se encontró ningún objeto con
una ventana Search en la
secuencia.
Agregue un objeto para detectar el
objetivo en la secuencia de visión.
7579 Ángulo de rotación inicial no válido. Especifique el valor válido.
7580 Ángulo de rotación final no válido. Especifique el valor válido.
7581 Tolerancia de objetivo no válida. Especifique el valor válido.
7582
Tipo de definición de herramienta
no válida.
Especifique el valor válido.
7583 Ángulo de rotación no válido. Especifique el valor válido.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 900
N.º Mensaje Solución Nota 1 Nota 2
7584 Tipo de definición local no válida. Especifique el valor válido.
7585
Falló la detección de placa de
calibración.
Ajuste el foco y el tiempo de
exposición del lente para mostrar el
objeto con claridad.
7586 Falló la detección de longitud focal. Reduzca el diafragma de una lente.
7587
Falló la detección de escala de
definición local.
Ajuste el foco y el tiempo de
exposición del lente para mostrar el
objeto con claridad.
7588
Falló la detección de pose de placa
de calibración.
Ajuste el foco y el tiempo de
exposición del lente para mostrar el
objeto con claridad.
7589
Nombre de objeto no válido.
Especifique un nombre que
comience con una letra. Para el
nombre también puede usar
caracteres alfanuméricos y guion
bajo (_).
7590
La distancia de movimiento
máxima superó el límite definido
por VDefSetMotionRange.
Ajuste la posición de inicio. O
configure el valor de límite
ampliamente.
7591
El ángulo de diferencia de pose
máximo superó el límite definido
por VDefSetMotionRange.
Ajuste la posición de inicio. O
configure el valor de límite
ampliamente.
7592
La diferencia de ángulo de
articulación máxima superó el
límite definido por
VDefSetMotionRange.
Ajuste la posición de inicio. O
configure el valor de límite
ampliamente.
7596
Falló la alineación aproximada de
la cámara de definición local.
Ajuste la posición de inicio.
7597
No se pudo calcular el plano de
definición local.
Ajuste la secuencia de visión para
mostrar la placa de calibración con
claridad.
7598
La calibración genera una
distancia de movimiento del punto
demasiado pequeña.
Aumente el área de búsqueda o
reduzca el objetivo.
7599
La calibración genera un error de
relación de la cámara del punto
con el robot
Si especifica la cámara virtual,
especifique la cámara real.
7600
GUI Builder.
No se puede ejecutar una
instrucción GUI Builder desde la
ventana Command.
-
7602
GUI Builder.
El parámetro GSet es
demasiado largo.
Corrija el parámetro a la longitud
adecuada.
7603
GUI Builder.
Demasiados parámetros para GGet.
Revise el número de parámetros.
7604
GUI Builder.
No hay suficientes datos para
la asignación de la variable de
la instrucción GGet.
Especifique la variable.
7610
GUI Builder.
No se puede ejecutar la tarea
Event. El sistema está en estado
de pausa y EventTaskType está
normal.
No se puede operar el sistema si se
cambia EventTaskType a “NoPause”
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 901
N.º Mensaje Solución Nota 1 Nota 2
7611
GUI Builder.
No se puede ejecutar la tarea Event.
La protección está abierta y
EventTaskType está normal.
No se puede operar el sistema si se
cambia EventTaskType a
“NoEmgAbort”
7612
GUI Builder.
No se puede ejecutar la tarea Event.
Estop está activo y EventTaskType
no está en NoEmgAbort.
No se puede operar el sistema si se
cambia EventTaskType a
“NoEmgAbort”
7613
GUI Builder.
No se puede ejecutar la tarea Event.
El sistema está en estado de error y
EventTaskType no está en
NoEmgAbort.
No se puede operar el sistema si se
cambia EventTaskType a
“NoEmgAbort”
7650
GUI Builder.
Propiedad no válida.
Especifique la propiedad válida.
7651
GUI Builder.
Formulario no válido.
Especifique el formulario válido.
7652
GUI Builder.
Control no válido.
Especifique el control válido.
7653
GUI Builder.
El formulario especificado ya está
abierto.
Modifique el programa para prevenir
un lanzamiento doble.
7654
GUI Builder.
No existe la función del suceso
Revise el nombre de la función
definida para el suceso.
7655
GUI Builder.
El archivo no existe.
Especifique el artículo válido.
7656
GUI Builder.
Valor de propiedad no válido.
Revise el valor de la propiedad y
especifique el archivo válido.
7700
Seguridad.
Usuario no válido.
Póngase en contacto con el
administrador para registrar el
usuario.
7701
Seguridad.
Contraseña no válida.
Revise la contraseña.
7702
Seguridad.
Permiso denegado.
Póngase en contacto con el
administrador para definir la
autoridad.
7703
Seguridad.
Opción inactiva.
Registre las opciones.
7710
El origen y el destino no pueden ser
idénticos.
Especifique otro destino.
7711
El nombre de archivo de punto está
siendo usado por otro robot.
Revise el nombre del archivo de
puntos.
7712
Se especificó un eje no válido.
Revise si el eje especificado es
válido. Revise si el eje está
especificado correctamente.
7713 Opción no habilitada. Habilite la opción.
7714 No se encontró el archivo.
Especifique el nombre de archivo
correcto.
7715
El número de robot está fuera del
rango disponible.
Revise el número del robot.
7716 El robot no existe. Revise si el robot está registrado.
7717 Error de archivo. Carpeta no válida. Revise el nombre de la carpeta.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 902
N.º Mensaje Solución Nota 1 Nota 2
7750
Simulador. Falla de inicialización.
Reinicie RC+.
7751
Simulador. No se pudo guardar los
objetos.
Reinicie RC+.
7752
Simulador. No se pudo cargar los
objetos.
Reinicie RC+.
7753
Simulador. No se pudo asignar la
memoria.
Reinicie RC+.
7754
Simulador. El controlador virtual ya
existe.
Se puede duplicar el nombre del
controlador virtual. Revise el
nombre del controlador.
7755
Simulador. No se pudo crear la
información de conexión del
controlador virtual.
Reinicie RC+.
7756
Simulador. El origen de la copia del
controlador virtual no existe.
Revise el nombre del controlador
virtual.
7757
Simulador. El destino de la copia del
controlador ya existe.
Se puede duplicar el nombre del
controlador virtual. Revise el
nombre del controlador.
7758
Simulador. No se pudo copiar la
información de conexión del
controlador virtual.
Reinicie RC+.
7759
Simulador. No se pudo eliminar la
información de conexión del
controlador virtual.
Reinicie RC+.
7760
Simulador. No se pudo eliminar la
información de conexión del
controlador.
Reinicie RC+.
7761
Simulador. No se pudo cambiar el
nombre de la información de
conexión del controlador.
Revise el nombre del controlador
virtual.
7762
Simulador. El origen del cambio de
nombre del controlador virtual no
existe.
Revise el nombre del controlador
virtual.
7763
Simulador. El destino del cambio de
nombre del controlador ya existe.
Revise el nombre del controlador
virtual.
7764
Simulador. Número de robot no
válido.
Reinicie RC+.
7765
Simulador. No se pudo leer el
archivo de definición del robot.
Revise si existe el archivo de
definición.
7766
Simulador. No se pudo copiar los
objetos de diseño.
Reinicie RC+.
7767
Simulador. No se pudo cortar los
objetos de diseño.
Reinicie RC+.
7768
Simulador. No se pudo pegar los
objetos de diseño.
Reinicie RC+.
7769
Simulador. No se pudo eliminar el
robot.
Reinicie RC+.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 903
N.º Mensaje Solución Nota 1 Nota 2
7800
No es posible cambiar los datos, ya
que no son datos del eje PG.
-
7801
Se especificó un número de
articulación no válido.
-
7802 El tipo de robot no es válido.
-
7803 El parámetro no es válido.
-
7804 El número de robot no es válido.
-
7805
Falla de MCD.
No se pudo abrir el archivo MCD.
Restaure la configuración del
controlador.
7806
Falla de MCD.
No se pudo leer el archivo MCD.
Restaure la configuración del
controlador.
7807
Falla de MCD.
No se pudo guardar el archivo MCD.
Restaure la configuración del
controlador.
7808
Falla de MCD.
No se pudo crear el archivo MCD.
Restaure la configuración del
controlador.
7809
Falla de MCD.
No se pudo escribir el archivo MCD.
Restaure la configuración del
controlador.
7810
Falla de MPL.
No se pudo abrir el archivo MPL.
Vuelva a instalar el firmware.
7811
Falla de MPL.
No se pudo leer el archivo MPL.
Actualice el firmware.
7812
Falla de MPL.
No se pudo escribir el archivo MPL.
1.
Reinicie el controlador.
2.
Vuelva a instalar el firmware.
7815
Falla de IFS.
No se pudo abrir el archivo IFS.
Restaure la configuración del
controlador.
7816
Falla de IFS.
No se pudo leer el archivo IFS.
Restaure la configuración del
controlador.
7817
Falla de IFS.
No se pudo escribir el archivo IFS.
Restaure la configuración del
controlador.
7822
Falla de MTR.
No se pudo leer el archivo MTR.
1.
Reinicie el controlador.
2.
Vuelva a instalar el MT.
7824
Falla de MTR.
No se pudo guardar el archivo MTR.
Reinicie el controlador.
7825
Falla de PRM.
No se pudo crear el archivo PRM.
Restaure la configuración del
controlador.
7827
Falla de PRM.
No se pudo leer el archivo PRM.
Restaure la configuración del
controlador.
7829
Falla de PRM.
No se pudo guardar el archivo PRM.
Restaure la configuración del
controlador.
7830
Falla del archivo.
No se puede tener acceso al archivo.
1.
Reinicie el controlador.
2.
Vuelva a instalar el firmware.
7831 El tipo de motor no es válido. Revise el amplificador del motor.
7840
Falla de MCD.
Error de asignación de área.
Reinicie el controlador.
7845
Falla de FGI. No se pudo abrir el
archivo FGI.
Reinicie el controlador.
Vuelva a instalar el firmware.
-
-
7847
Falla de MDL. No se pudo abrir el
archivo MDL.
Reinicie el controlador.
Vuelva a instalar el firmware.
-
-
7848
Falla de MDL. No se pudo leer el
archivo MDL.
Reinicie el controlador.
Vuelva a instalar la última versión
del firmware.
-
-
7900 El bus de campo no está instalado.
7901
Parámetro de bus de campo no
válido.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 904
N.º Mensaje Solución Nota 1 Nota 2
7902
Defecto de línea del bus de campo.
Revise la conexión del cable de
comunicación del bus de campo.
Revise si el cable de comunicación
del bus de campo tiene
alimentación. (si el bus de campo
requiere una fuente de
alimentación)
Revise la conexión con el esclavo
del bus de campo.
7903
El dispositivo de bus de campo no
está configurado.
Revise que esté instalada la placa
del maestro del bus de campo.
Reinicie la computadora donde está
instalada la placa del maestro del
bus de campo.
Reemplace la placa del maestro del
bus de campo.
7904
Placa de bus de campo no válida.
Revise que esté instalada la placa
del maestro del bus de campo.
Reinicie la computadora donde está
instalada la placa del maestro del
bus de campo.
Reemplace la placa del maestro del
bus de campo.
7905
Conexión de bus de campo
denegada.
-
7906
Configuración de dispositivo no
válida de bus de campo.
Revise que esté instalada la placa
del maestro del bus de campo.
Reinicie la computadora donde está
instalada la placa del maestro del
bus de campo.
Reemplace la placa del maestro del
bus de campo.
7907
Error general de bus de campo.
Revise que esté instalada la placa
del maestro del bus de campo.
Reinicie la computadora donde está
instalada la placa del maestro del
bus de campo.
Reemplace la placa del maestro del
bus de campo.
7908
Error de configuración del bus de
campo.
Revise la configuración del maestro
del bus de campo.
7909
No se detectaron esclavos del bus
de campo.
Registre el esclavo del bus de
campo con el maestro según la
aplicación de consola applicomIO.
7950
Detección de fuerza. Sensor de
fuerza no válido.
-
7951
Detección de fuerza. Eje de sensor
de fuerza no válido.
-
7952
Detección de fuerza. Falló la lectura
del sensor.
-
7953
Detección de fuerza. Falló la
inicialización del sensor.
-
7954
Detección de fuerza. Sensor no
inicializado.
-
7955
Detección de fuerza. La fuerza o el
par superaron el nivel de saturación.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 905
N.º Mensaje Solución Nota 1 Nota 2
9001
Se detectó una falla del
circuito de parada de
emergencia. Se encontró una
desconexión u otra falla en
una de las entradas
redundantes.
Revise que no exista una
desconexión, error de conexión a
tierra o cortocircuito en la señal de
entrada de la parada de
emergencia. Luego reinicie el
controlador.
9002
Se detectó una falla del
circuito de protección.
Se encontró una desconexión
u otra falla en una de las
entradas redundantes.
Revise que no exista una
desconexión, error de conexión a
tierra o cortocircuito en la señal de
entrada de la protección. Luego
reinicie el controlador.
9003
Falla de inicialización.
No se pudo inicializar el
firmware.
Esto probablemente es a causa
de una falla de hardware del
controlador. Revise que el
cableado sea correcto. Si el error
no desaparece después de
reiniciar el controlador,
comuníquese con nosotros.
9004
Falla de inicialización.
No se pudo inicializar la DU.
Revise la alimentación de DU
y la conexión.
El número de unidades motrices
no coincide con el número de
unidades motrices reconocido.
Revise que el cableado de la
fuente de alimentación y entre la
unidad de control y la unidad
motriz esté correcto. Si el error
no desaparece después de
reiniciar el controlador,
comuníquese con nosotros.
9005
Falla de inicialización.
No se pudo inicializar la DU.
Revise la conexión.
Esto probablemente es a causa
de una falla de hardware de la
unidad motriz. Revise que el
cableado sea correcto. Si el error
no desaparece después de
reiniciar el controlador,
comuníquese con nosotros.
9006
Falla de inicialización.
No se puedo inicializar la E/S
remota.
Revise la configuración de
E/S remota.
Revise el valor de la configuración
de E/S remota.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 906
N.º Mensaje Solución Nota 1 Nota 2
9007
Ocurren los errores 2847 a
2857 de la unidad I/F del
sensor de fuerza o el sensor
de fuerza.
Nota 1: Información de error
detallada
Una vez tenga la información
de error detallada, tome las
medidas correspondientes.
Ocurrió el error 2847-2857 de la
unidad I/F del sensor de fuerza o
el sensor de fuerza.
Confirme el historial del sistema y
tome las medidas
correspondientes.
2847: Error de
configuración de DSW.
2848: La unidad I/F del
sensor de fuerza no está
conectada.
2849: Falla de
inicialización
2850: Falla de
inicialización
2851: El sensor de fuerza
es incoherente.
2852: El sensor de fuerza
no está conectado.
2853: No se pudo
actualizar el software de la
unidad I/F del sensor de
fuerza
2854: No se pudo
actualizar el software de la
unidad I/F del sensor de
fuerza
2855: No se pudo
actualizar el software de la
unidad I/F del sensor de
fuerza
2856: Error de versión no
admitida.
2857: El robot no está
conectado.
9011
El voltaje de batería del
respaldo de la placa del
procesador es menor que el
voltaje especificado.
Reemplace la batería de la
placa del procesador.
Reemplace la batería de la placa
del procesador de inmediato.
Mantenga el controlador
encendido por tanto tiempo como
sea posible hasta que haya
reemplazado la batería.
9012
El voltaje de entrada de 5 V
para la placa del procesador
es inferior al voltaje
especificado.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 5 V, reemplace la
fuente de alimentación.
9013
El voltaje de entrada de 24 V
para el freno del motor, el
codificador y el ventilador es
inferior al voltaje especificado.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 24 V, reemplace
la fuente de alimentación.
9014
La temperatura interna del
controlador es superior a la
temperatura especificada.
Detenga el controlador lo antes
posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no es
obstruido.
Valor actual
Valor de
límite
9015
La velocidad del ventilador
del controlador es inferior a la
velocidad especificada.
(FAN1)
Revise que el filtro del controlador
no esté obstruido. Reemplace el
ventilador.
Valor actual
Valor de
límite
9016
La velocidad del ventilador
del controlador es inferior a la
velocidad especificada.
(FAN2)
Revise que el filtro del controlador
no esté obstruido. Reemplace el
ventilador.
Valor actual
Valor de
límite
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 907
N.º Mensaje Solución Nota 1 Nota 2
9017
La temperatura interna del
controlador es superior a la
temperatura especificada.
Detenga el controlador lo antes
posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no esté
obstruido.
9021
El voltaje de entrada de 3,3 V
de DU1 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 3,3 V de la
unidad motriz 1, reemplace la
fuente de alimentación.
9022
El voltaje de entrada de 5 V
de DU1 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 1, reemplace la fuente de
alimentación.
9023
El voltaje de entrada de 24 V
de DU1 para el freno del
motor, el codificador y el
ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 1, reemplace la fuente de
alimentación.
9024
La temperatura interna de
DU1 del controlador es
superior a la temperatura
permitida.
Detenga la unidad motriz 1 lo
antes posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no esté
obstruido.
9025
La velocidad de rotación de
DU1 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 1 no esté obstruido.
Reemplace el ventilador.
9026
La velocidad de rotación de
DU1 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 1 no esté obstruido.
Reemplace el ventilador.
9031
El voltaje de entrada de 3,3 V
de DU2 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 3,3 V de la
unidad motriz 2, reemplace la
fuente de alimentación.
9032
El voltaje de entrada de 5 V
de DU2 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 2, reemplace la fuente de
alimentación.
9033
El voltaje de entrada de 24 V
de DU2 para el freno del
motor, el codificador y el
ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 2, reemplace la fuente de
alimentación.
9034
La temperatura interna de
DU2 del controlador es
superior a la temperatura
permitida.
Detenga la unidad motriz 2 lo
antes posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no esté
obstruido.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
908
N.º Mensaje Solución Nota 1 Nota 2
9035
La velocidad de rotación de
DU2 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 2 no esté obstruido.
Reemplace el ventilador.
9036
La velocidad de rotación de
DU2 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 2 no esté obstruido.
Reemplace el ventilador.
9041
El voltaje de entrada de 3,3 V
de DU3 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 3,3 V de la
unidad motriz 3, reemplace la
fuente de alimentación.
9042
El voltaje de entrada de 5 V
de DU3 para la placa es
inferior al voltaje mínimo
permitido.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 5 V de la unidad
motriz 3, reemplace la fuente de
alimentación.
9043
El voltaje de entrada de 24 V
de DU3 para el freno del
motor, el codificador y el
ventilador es inferior al voltaje
especificado.
Si el voltaje normal no se genera
a partir de una sola fuente de
alimentación de 24 V de la unidad
motriz 3, reemplace la fuente de
alimentación.
9044
La temperatura interna de
DU3 del controlador es
superior a la temperatura
permitida.
Detenga la unidad motriz 3 lo
antes posible y compruebe que la
temperatura ambiente del
controlador no sea alta.
Revise que el filtro no es
obstruido.
9045
La velocidad de rotación de
DU3 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN1)
Revise que el filtro de la unidad
motriz 3 no esté obstruido.
Reemplace el ventilador.
9046
La velocidad de rotación de
DU3 del ventilador del
controlador es inferior a la
velocidad permitida. (FAN2)
Revise que el filtro de la unidad
motriz 3 no esté obstruido.
Reemplace el ventilador.
9100
Falla de inicialización.
No se pudo asignar la
memoria.
Reinicie el controlador.
9101 La cola de mensajes se llenó.
-
9102
Falla de inicialización.
No se pudo inicializar
Modbus.
(Cuando se selecciona RTU)
Revise si el puerto seleccionado
está instalado.
(Cuando se selecciona TCP)
Revise si el número del puerto
seleccionado está siendo usado
por otro
9103
Falla de inicialización.
No se pudo inicializar la
salida del usuario.
Si se especificó el manipulador,
revise si el manipulador
especificado está registrado.
9104
Falla de salida remota del
usuario. No se puede
ejecutar el comando
especificado.
Revise la condición de la
expresión.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 909
N.º Mensaje Solución Nota 1 Nota 2
9233
El driver de E/S del bus de
campo es un estado anormal.
El módulo está roto o el software
del controlador está dañado.
Restaure el firmware del
controlador.
9234
Falla de inicialización del
driver de E/S del bus de
campo.
El módulo está roto o el software
del controlador está dañado.
Restaure el firmware del
controlador.
9610
El circuito RAS detectó un
mal funcionamiento del
sistema servo. Reinicie el
controlador.
Compruebe si hay ruidos.
Reemplace el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9611
Falla interna de RAM del
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9612
Falla de RAM para la
comunicación del procesador
principal y el
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9613
Falla interna de RAM del
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Reinicie el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
Para la serie T, no es la DMB,
sino la placa del procesador.
9614
Falla de inicialización de la
comunicación del procesador
principal y el
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Reinicie el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
Para la serie T, no es la DMB,
sino la placa del procesador.
9615
Falla de inicialización de la
comunicación del procesador
principal y el
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9616
Falla de comunicación del
procesador principal y el
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Reinicie el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
Para la serie T, no es la DMB,
sino la placa del procesador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
910
N.º Mensaje Solución Nota 1 Nota 2
9617
Falla de comunicación del
procesador principal y el
servoprocesador. Reinicie el
controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
Para la serie T, no es la DMB,
sino la placa del procesador.
9618
Exceso del comando de
tiempo prolongado del servo.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9619
Error de la suma de
comprobación del comando
de tiempo prolongado del
servo.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9620
El temporizador guardián del
sistema detectó una falla.
Reinicie el controlador.
Compruebe si hay ruidos.
Reemplace la DMB.
Reinicie el controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
Para la serie T, no es la DMB,
sino la placa del procesador.
9621
Falla de comprobación de la
unidad motriz.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9622
Falla de RAM del
servoprocesador. Reinicie el
controlador. Compruebe si
hay ruidos. Reemplace la
DMB.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9623
Falla de los circuitos
redundantes para la parada
de emergencia o la
protección. Revise el
cableado.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9624
Se detectó bajo voltaje del
suministro de alimentación
del circuito principal. Revise
el voltaje de la fuente de
alimentación. Reinicie el
controlador.
Revise las contramedidas para el
ruido.
Reemplace la DMB.
9625
El contacto del relé de control
de la fuente de alimentación
del circuito principal está
soldado firmemente.
Reemplace el DPB.
Reemplace la DMB.
9626
Detecte la diferencia de
reconocimiento del
procesador secundario y el
procesador principal.
Reinicie el controlador, tome
medidas contra el ruido o
reemplace la placa del
procesador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 911
N.º Mensaje Solución Nota 1 Nota 2
9627
La temperatura del resistor de
regeneración fue más alta
que la temperatura
especificada.
Especifique la configuración de
peso/inercia. Revise la carga.
Revise el robot. (Uniformidad,
juego, movimiento no uniforme,
tensión suelta de la correa, freno)
Revise la interferencia con el
equipo periférico. (Colisión,
contacto)
Revise la configuración del
modelo.
Revise la conexión del cable de
alimentación.
9628
Sobrevoltaje del procesador
secundario.
Reemplace la placa DPB.
9630
Falla de estado en tiempo
real del servo.
Error de la suma de
comprobación.
Reinicie el controlador.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
9632
Falla de estado en tiempo
real del servo.
Error de contador de
ejecución sin servo.
Reinicie el controlador.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
9633
Falla de estado en tiempo
real del servo.
Error de comunicación del
servoprocesador.
Reinicie el controlador.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
9640
Se detectó una interrupción
del control de movimiento
irregular.
Duplicado de interrupción.
Reinicie el controlador.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
9691
Falla de envío de datos en la
red de movimiento.
Revise la conexión del cable de la
unidad motriz.
9692
Falla de recepción de datos
en la red de movimiento.
Revise la conexión del cable de la
unidad motriz.
9700
Falla de matriz de la
compuerta de servocontrol.
Revise la DMB.
Compruebe si hay un cortocircuito
y una conexión incorrecta del
cableado del equipo periférico.
(Emergencia y conectores E/S de
expansión)
Reemplace la DMB.
Reemplace la unidad del eje
adicional.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la placa del
procesador y la unidad del motor.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
912
N.º Mensaje Solución Nota 1 Nota 2
9701
Desconexión de la señal del
codificador paralelo. Revise
la conexión del cable de señal
o el cableado interno del
robot.
Revise la señal del cable M/C.
Revise el cableado de la señal del
robot. (Clavija faltante,
desconexión, cortocircuito)
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB. (Falla del
circuito de detección)
Revise la conexión del conector
en el controlador. (Soltar,
conexión al terminal del
codificador de serie en DMB)
Revise la configuración del
modelo. (Configuración incorrecta
del codificador paralelo)
Revise el cableado del equipo
periférico. (Emergencia y E/S)
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9702
El driver del motor no es
instalado. Instale el driver del
motor. Revise la DMB o el
driver del motor.
Revise si el driver del motor está
montado.
Revise la configuración del
modelo y la configuración de
hardware.
Reemplace el driver del motor.
Reemplace la DMB.
Para la serie T, revise el cableado
de la unidad del motor.
9703
Falla de inicialización de la
comunicación del codificador
incremental. Revise la
conexión del cable de señal y
la configuración del robot.
Revise la configuración del
modelo.
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la placa del
procesador y la unidad del motor.
9704
Falla de inicialización del
codificador absoluto.
Revise la conexión del cable
de señal o la configuración
del robot.
Revise la configuración del
modelo.
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9705
Falla de configuración de la
división del codificador.
Revise la configuración del
robot.
Revise la configuración del
modelo.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 913
N.º Mensaje Solución Nota 1 Nota 2
9706
Error de datos durante la
inicialización del codificador
absoluto. Revise la conexión
del cable de señal, el
controlador o el motor.
Reemplace el motor. (Falla del
codificador)
Reemplace la DMB.
Revise las contramedidas para el
ruido.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9707
Los turnos múltiples del
codificador absoluto superan
el rango máximo. Reinicie el
codificador.
Reinicie el codificador.
Reemplace el motor. (Falla del
codificador)
9708
La posición está fuera de
rango. Reinicie el codificador.
Reinicie el codificador.
Reemplace la DMB.
Reemplace el motor. (Falla del
codificador)
9709
No hay respuesta del
codificador de serie.
Revise la conexión del cable
de señal, el motor, DMB o la
tarjeta IF del codificador.
Revise la configuración del
modelo. (Configuración incorrecta
del modelo de codificador
paralelo)
Revise la conexión del cable de
señal.
Reemplace la DMB y la tarjeta I/F
del codificador.
9710
Falla de inicialización del
codificador de serie.
Reinicie el controlador.
Revise el motor, la DMB o la
tarjeta IF del codificador.
Revise la configuración del robot.
Revise el cable de señal.
Reemplace la DMB y la tarjeta I/F
del codificador.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9711
Falla de comunicación del
codificador de serie.
Reinicie el controlador.
Revise el motor, la DMB o la
tarjeta IF del codificador.
Revise la configuración del robot.
Revise el cable de señal.
Reemplace la DMB y la tarjeta I/F
del codificador.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9712
Falla del temporizador
guardián del
servoprocesador.
Reinicie el controlador.
Revise el motor o la DMB.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
Para la serie T, revise la conexión
del cable de señal. Reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2
914
N.º Mensaje Solución Nota 1 Nota 2
9713
Falla de WDT del circuito de
control actual.
Reinicie el controlador.
Revise el controlador.
Revise la conexión del cable de
alimentación.
Revise la fuente de alimentación
de 15 V y la conexión del cable.
Reemplace la DMB.
Revise las contramedidas para el
ruido.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9714
La DMB no es para este
robot.
Revise la configuración del robot.
Reemplace por la DMB
compatible.
9715
El codificador se reinició.
Reinicie el controlador.
Reinicie el controlador.
9716
Falla de suministro de
alimentación del codificador
absoluto. Reemplace la
batería con una nueva.
Revise el cableado interno del
robot.
Reinicie el codificador.
Revise la conexión del cable de
señal.
9717
Error de datos de respaldo
del codificador absoluto.
Reinicie el codificador.
Reinicie el codificador.
Revise la conexión del cable de
señal.
9718
Alarma de la batería del
codificador absoluto.
Reemplace la batería.
Revise la conexión del cable de
señal.
9719
Falla de posición del
codificador absoluto.
Reinicie el codificador.
Reemplace el motor.
Reinicie el codificador.
Reemplace el motor. (Falla del
codificador)
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
9720
La velocidad es demasiado
alta durante el encendido del
controlador. Detenga el robot
y reinicie el controlador.
Reinicie el controlador.
Reinicie el codificador.
Para la serie T, reinicie el
controlador, tome medidas contra
el ruido y reemplace la unidad del
motor.
Revise la interferencia con otros
dispositivos.
9721
Sobrecalentamiento del
codificador absoluto.
Reduzca el trabajo de
movimiento.
Espere hasta que disminuya la
temperatura del codificador.
9722
Falla del transductor R/D.
Reinicie el codificador. Revise
la placa del solucionador o el
cableado interno del robot.
Reinicia el codificador.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Reemplace la placa del
solucionador.
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 915
N.º Mensaje Solución Nota 1 Nota 2
9723
Falla de comunicación del
sensor G. Revise la conexión
del cable de señal o el
cableado interno del robot.
Revise la conexión del cable de
señal.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Revise la contramedida para el
ruido.
Reemplace la placa de control.
Reemplace la DMB.
9724
Error de datos del sensor G.
Revise la placa de control.
Reemplace la placa de control.
9725
Los datos de rotación múltiple
y los datos de conversión R/D
son diferentes. Reinicie el
codificador.
Reinicie el solucionador.
Revise la contramedida para el
ruido.
Reemplace la placa del
solucionador.
9726
Desconexión de la señal de
excitación del solucionador.
Reinicie el codificador. Revise
la placa del solucionador o el
cableado interno del robot.
Revise el cableado de señal del
manipulador (clavija suelta,
desconexión, cortocircuito).
Reemplace la placa del
solucionador.
9727
Falla de comunicación de S-
DSP. Revise la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
9728
Error de datos de
realimentación actual. Revise
la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
Para la serie T, revise si existen
fallas de cortocircuito y conexión a
tierra en el cable de alimentación.
Reinicie el controlador o
reemplace la unidad del motor.
9729
Falla de comunicación de D-
DSP. Revise la DMB.
Reinicie el controlador.
Revise la contramedida para el
ruido.
Reemplace la DMB.
9730
La velocidad es demasiado
alta durante el apagado del
controlador. Reinicie el
codificador.
Reinicie el codificador.
Reemplace el motor.
9731
La velocidad es demasiado
alta. Reinicie el codificador.
Reinicie el codificador.
Reemplace el motor.
Para la serie T, reinicie el
controlador y reemplace la unidad
del motor.
9732 Servoalarma A.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 916
N.º Mensaje Solución Nota 1 Nota 2
10000 Comando cancelado por el usuario
-
10001
Se agotó el tiempo de espera del
comando.
-
10002
Sintaxis de línea de archivo de punto
incorrecta.
-
10003 El proyecto no se pudo compilar.
-
10004
No se puede inicializar la instancia de
la clase Spel.
-
10005 No se pudo inicializar el analizador.
-
10006 No se pudo inicializar wbproxy.
-
10007
El proyecto no existe.
Revise que el nombre y la ruta
del proyecto sean correctos.
10008 No se especificó un proyecto.
Especifique el proyecto.
10009
No se puede abrir el archivo.
Revise que el nombre y la ruta
del proyecto sean correctos.
10010 No se puede crear el archivo.
-
10011
No se encontró el archivo
Revise que el nombre y la ruta
del proyecto sean correctos.
10013
No se puede ejecutar LoadPoints con
Robot Manager abierto.
Cierre Robot Manager y
ejecútelo.
10014
No se puede bloquear el proyecto.
Está siendo usado por otra sesión.
Cierre otras aplicaciones.
10015 No se pudo sincronizar el proyecto.
-
10016
La unidad no está preparada
Revise si la designación de la
unidad es correcta.
10017
Dirección IP no válida
Revise la dirección IP.
10018
Máscara de IP no válida
Revise la máscara IP.
10019
puerta de IP no válida
Revise la puerta de IP.
10020
La dirección o puerta de IP no pueden
ser la dirección de subred.
Revise la dirección IP.
10021
La dirección o puerta de IP no pueden
ser la dirección de transmisión.
Revise la dirección IP.
10022
Dirección DNS no válida
Revise la DNS.
10023
No se pueden ejecutar los comandos
porque la compilación del proyecto no
está completa.
Ejecútelos una vez que la
compilación del proyecto esté
completa.
10024 Nombre de tarea no válido. Revise el nombre de la tarea.
10100 El comando ya se está ejecutando.
-
10101 Comando cancelado por el usuario. Ejecute ResetAbort.
10102 Instancia de servidor no válida.
Especifique la instancia
correcta.
10103 Valor CommandTask no válido.
Especifique el número de tarea
correcto.
10104
No se puede cambiar ServeInstance
después de la inicialización.
Defina ServerInstance después
de la inicialización.
10501 Conexión cancelada.
-
10502
No se puede conectar con el
controlador.
-
Mensajes de error de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 917
N.º Mensaje Solución Nota 1 Nota 2
10503
El firmware del controlador no es
compatible con esta versión de RC+.
Actualice la versión RC+.
10504
La conexión USB de este sistema está
reservada para el controlador RC620 y
no se puede usar para RC+7.0.
Instale RC+7.0 en otra
computadora.
10505 La conexión especificada no existe.
Revise el número de la
conexión.
10600
El driver del digitalizador de video no
está instalado.
Instale el driver.
Manual de referencia del lenguaje SPEL+ Rev.2
918
Precaución de compatibilidad con EPSON RC+ 6.0
Precaución de compatibilidad con EPSON RC+ 6.0
Descripción general
Esta sección contiene información para los clientes que usan EPSON RC+ 7.0 con
controladores RC700 que ya hayan usado EPSON RC+ 6.0 con RC620.
EPSON RC+ 7.0 y EPSON RC+ 6.0 son diferentes en cuanto a hardware, manipuladores
adaptables, número de articulaciones permitido y entorno de ejecución del software. Lea
esta sección y comprenda el contenido para usar el sistema de robot con seguridad.
EPSON RC+ 7.0 es un software mejorado compatible con productos previos a EPSON
RC+ 7.0 y está diseñado para innovar en cuanto a las tecnologías de software avanzado.
Sin embargo, algunas piezas no son compatibles con EPSON RC+ 6.0 o se eliminaron
para especializarse en el controlador del robot y para facilitar el uso.
Se indica la siguiente compatibilidad según EPSON RC+ 6.0 en comparación con EPSON
RC+ 7.0.
Manual de referencia del lenguaje SPEL+ Rev.2 919
Precaución de compatibilidad con EPSON RC+ 6.0
Diferencias generales
Las diferencias generales entre EPSON RC+ 6.0 y EPSON RC+ 7.0 son las siguientes.
Elemento EPSON RC+ 7.0 EPSON RC+ 6.0
Número de tarea Hasta 32 tareas
(Tarea en segundo plano: hasta 16
tareas)
Hasta 32 tareas
(Tarea en segundo plano: hasta 16
tareas)
Tipo de tarea
Se puede especificar la tarea NoPouse
Se puede especificar la tarea
NoEmgAbort
Se puede especificar la tarea
Background
Se puede especificar la tarea
NoPouse
Se puede especificar la tarea
NoEmgAbort
Se puede especificar la tarea
Background
TRAP especial
como TRAP ERROR
Compatible Compatible
La tarea se inicia mediante el
número TRAP
Número de tarea dedicado Número de tarea dedicado
Manipuladores múltiples Compatible Compatible
N
úmero del robot 1 a 16 1 a 16
Número de cifras significativas
para el tipo Real
6 dígitos 6 dígitos
Número de cifras significativas
para el tipo Double
14 dígitos 14 dígitos
Número de elementos de la
matriz
Aparte de la variable de cadena Aparte de la variable de cadena
Variable local 2,000 Variable local 2,000
Variable global
100,0000
Variable global
100,0000
Variable de módulo
100,0000
Variable de módulo
100,0000
Variable global
conservada
4,000
Variable global
conservada
4,000
Variable de cadena
Variable de cadena
Variable local
200
Variable local
200
Variable global
10,000
Variable global
10,000
Variable de módulo 10,000 Variable de módulo 10,000
Variable global
conservada
400
Variable global
conservada
400
Número de dispositivo 21:PC
22:REMOTE
24:TP
20:TP3
21:PC
22:REMOTE
24:TP
28:LCD
Dispositivo de control
E/S remota
Computadora
REMOTE COM
Ethernet REMOTO
TP3
E/S remota
Computadora
Rango de número del
temporizador
0 a 63 0 a 63
Capacidad del programa 8 MB 4 MB
Señal sin rango
para SyncLock, SyncUnlock
0 a 63 0 a 63
Señal sin rango
para WaitSig, señal
0 a 63 0 a 63
Puerto de E/S de memoria 1024 1024
N
úmero de puerto de E/S Común con EPSON RC+ 6.0
N
úmero de puerto de Ethernet 201 a 216 201 a 216
Asignación de E/S remota Asignado como predeterminado Predetermin.: --
Número de puerto de
comunicación RS-232C
1 a 8, 1001 a 1008 1 a 8
Ejecución de OpenCom del Obligatorio Obligatorio
Manual de referencia del lenguaje SPEL+ Rev.2
920
Precaución de compatibilidad con EPSON RC+ 6.0
Elemento EPSON RC+ 7.0 EPSON RC+ 6.0
puerto de comunicación RS-
232C
Entrada/salida a los archivos Compatible Compatible
N
úmero de archivo 30 a 63 30 a 63
Número de acceso para la base
de datos
501 a 508 No compatible
Vision Guide Tipo de cámara de red
Tipo de digitalizador de video
Tipo de cámara de red
Seguimiento del transportado
r
Compatible
N
o compatible
Robot PG Compatible
N
o compatible
OCR Compatible
N
o compatible
Segurida
d
Compatible
N
o compatible
VBGuide 6.0 (RC+ API 7.0) Compatible VBGuide Lite es compatible
E/S de bus de campo Usar comandos E/S normales Usar comandos E/S normales
Maestro del bus de campo
N
o se garantiza la respuesta
N
o compatible
Esclavo del bus de campo Se garantiza la respuesta Se garantiza la respuesta
GUI Builde
r
Compatible
N
o compatible
N
úmero de erro
r
Común con EPSON RC+ 6.0
Manual de referencia del lenguaje SPEL+ Rev.2 921
Precaución de compatibilidad con EPSON RC+ 6.0
Lista de compatibilidad de comandos

Se aplicó la expansión de función/cambios de función con compatibilidad con versiones
superiores.
 Sin cambios.
 Preste atención. Se aplicaron cambios de función o cambios de sintaxis.

Preste atención. Se aplicaron cambios significativos.

Eliminado.
Comando
Compatibilida
d
Nota
A
Abs Function

Accel Statement

Accel Function

AccelMax Statement

AccelR Statement

AccelR Function

AccelS Statement

AccelS Function

Acos Function

AglToPls Function

Agl Function

AlignECP Function

Align Function

And Statement

Arc Statement

Arc3 Statement

Arch Statement

Arch Function

Arm Statement

Arm Function

ArmClr Statement

ArmDef Function

ArmSet Statement

ArmSet Function

Asc Function

Asin Function

Atan Function

Atan2 Function

ATCLR Statement

ATRQ Statement

ATRQ Function

B
Base Statement

Base Function

BClr Function

BGo Statement
+
Se agregó parámetro PerformMode.
BMove Statement

Boolean Statement

Box Statement
+
Se agregó la designación lógica de salida
remota
Manual de referencia del lenguaje SPEL+ Rev.2
922
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
Box Function

BoxClr Function

BoxDef Function

Brake Statement

Brake Function

BSet Function

BTst Function

Byte Statement

C
Call Statement

ChkCom Function

ChkNet Function

Chr$ Function

ClearPoints Statement

CloseCom Statement

CloseNet Statement

Cls Statement

Cos Function

CP Statement

CP Function

CTReset Statement

Ctr Function

CtrlDev Function

CtrlInfo Function

CurPos Function

Curve Statement

CVMove Statement

CX to CW Statement

CX to CW Function

D
Date Statement

Date$ Function

DegToRad Function

DispDev Statement

DispDev Function

Dist Function

Do...Loop Statement

Double Statement

E
ECP Statement

ECP Function

ECPClr Statement

EcpDef Function

ECPSet Statement

ECPSet Function

Elbow Statement

Elbow Function

Era Function

Manual de referencia del lenguaje SPEL+ Rev.2 923
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
Erase Statement

EResume Statement

Erf$ Function

Erl Function

Err Function

ErrMsg$ Function

Error Statement

ErrorOn Function

Ert Function

EStopOn Function

Exit Statement

F
Find Statement

FindPos Function

Fine Statement

Fine Function

Fix Function

FmtStr$ Statement

For...Next

Function...Fend

G
Global Statement
+
Se agregó parámetro PerformMode.
Go Statement

Gosub...Return

Goto Statement

H
Halt Statement

Hand Statement

Hand Function

Here Statement

Here Function

Hex$ Function

Home Statement

HomeClr Statement

HomeDef Function

HomeSet Statement

HomeSet Function

HOrdr Statement

HOrdr Function

Hour Statement

Hour Function

I
If...EndIf

In Function

InBCD Function

Inertia Statement

Inertia Function

InPos Function

Input Statement

Manual de referencia del lenguaje SPEL+ Rev.2
924
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
Input# Statement

InsideBox Function

InsidePlane Function

InStr Function

Int Function

Integer Statement

InW Function

IOLabel$ Function

IONumber Function

IONumber Function

J
J1Flag Statement

J1Flag Function

J2Flag Statement

J2Flag Function

J4Flag Statement

J4Flag Function

J6Flag Statement

J6Flag Function

JA Function

Joint
JRange Statement

JRange Function

JS Function

JT Function

JTran Statement

Jump Statement
+
Se agregó parámetro PerformMode.
Jump3 Statement

Jump3CP Statement

L
LCase$ Function

Left$ Function

Len Function

LimZ Statement

LimZ Function

Line Input Statement

Line Input# Statement

LJM Function

LoadPoints

Local Statement

Local Function

LocalClr Statement

LocalDef Function

Lof Function

Long Statement

LSet$ Function

LShift Function

Manual de referencia del lenguaje SPEL+ Rev.2 925
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
LTrim$ Function

M
Mask Operator

MemIn Function

MemInW Function

MemOff Statement

MemOn Statement

MemOut Statement

MemOutW Statement

MemSw Function

Mid$ Function

Mod Operator

Motor Statement

Motor Function

Move Statement

MyTask Function

N
Not Operator

O
Off Statement

OLAccel Statement

OLAccel Function

OLRate Statement

OLRate Function

On Statement

OnErr

OpBCD Statement

OpenCom Statement

OpenNet Statement

Oport Function

Or Operator

Out Statement

Out Function

OutW Statement

OutW Function

P
PAgl Function

Pallet Statement
+
Designación de valor de coordenadas agregada
Pallet Function

ParsStr Statement

ParsStr Function

Pass Statement

Pause Statement

PauseOn Function

PDef Function

PDel

PLabel$ Function

PLabel Statement

Plane Statement

Manual de referencia del lenguaje SPEL+ Rev.2 926
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
Plane Function

PlaneClr Statement

PlaneDef Function

PList Statement

PLocal Statement

PLocal Function

Pls Function

PNumber Function

PosFound Function

Power Statement

Power Function

PPls Function

Print Statement

Print# Statement

PTCLR Statement

PTPBoost Statement

PTPBoost Function

PTPBoostOK Function

PTPTime Function

PTran Statement

PTRQ Statement

PTRQ Function

Pulse Statement

Pulse Function

Q
QP Statement

Quit Statement

R
RadToDeg Function

Randmize Statement

Range Statement

Read Statement

ReadBin Statement

Real Statement

RealPls Function

RealPos Function

RealTorque Statement

Redim Statement

Reset Statement

Resume Statement

Return Statement

RobotInfo Function

RobotInfo$ Function

RobotModel$ Function

RobotName$ Function

RobotSerial$ Function

RobotType Function

Manual de referencia del lenguaje SPEL+ Rev.2 927
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
RSet$ Function

RShift Function

RTrim$ Function

S
SafetyOn Function

SavePoints Statement

Select...Send Statement

Sense Statement

SetCom Statement

SetInW Statement

SetIn Statement

SetNet Statement

SetSw Statement

SFree Statement

SFree Function

Sgn Function

Signal Statement

Sin Function

SLock Statement

SoftCP Statement

SoftCP Function

Space$ Function

Speed Statement

Speed Function

SpeedR Statement

SpeedR Function

SpeedS Statement

SpeedS Function

SPELCom_Event
Statement

Sqr Function

Stat Function

Str$ Function

String Statement

Sw Function

SyncLock Statement

SyncUnlock Statement

SysConfig Statement

SysErr Function

T
Tab$ Function

Tan Function

TargetOK Function

TaskDone Function

TaskInfo Function

TaskInfo$ Function

TaskState Statement

Manual de referencia del lenguaje SPEL+ Rev.2 928
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
TaskState Function

TaskWait Statement

TC Statement

TCLim Statement

TCLim Function

TCSpeed Statement

TCSpeed Function

TGo Statement
+
Se agregó parámetro PerformMode.
TillOn Function

Time Command

Time Function

Time$ Function

TLClr Statement

TlDef Function

TLSet Statement

TLSet Function

TMOut Statement

TMove Statement

Tmr Function

TmReset Statement

Toff Statement

Ton Statement

Tool Statement

Tool Function

Trap Statement

Trim$ Function

Tw Function

U
UBound Function

UCase$ Function

V
Val Function

W
Wait Statement

WaitNet Statement

WaitPos Statement

WaitSig Statement

Weight Statement

Weight Function

Where Statement

Wrist Statement

Wrist Function

Write Statement

WriteBin Statement

X
Xor Operator

Xqt Statement

XY Function

XYLim Statement

Manual de referencia del lenguaje SPEL+ Rev.2 929
Precaución de compatibilidad con EPSON RC+ 6.0
Comando
Compatibilida
d
Nota
XYLim Function

XYLimClr Statement

XYLimDef Statement

XYLimDef Function

Manual de referencia del lenguaje SPEL+ Rev.2 930
Precaución de compatibilidad con EPSON RC+ 6.0
Lista de comandos nuevos de EPSON RC+ 7.2.0
CP_Offset
CP_Offset Function
HealthCtrlAlarmOn Function
HealthCtrlInfo
HealthCtrlInfo Function
HealthCtrlRateOffset
HealthCtrlReset
HealthRateCtrlInfo Function
HealthRateRBInfo Function
HealthRBAlarmOn Function
HealthRBAnalysis
HealthRBAnalysis Function
HealthRBDistance
HealthRBDistance Function
HealthRBInfo
HealthRBInfo Function
HealthRBRateOffset
HealthRBReset
HealthRBSpeed
HealthRBSpeed Function
HealthRBStart
HealthRBStop
HealthRBTRQ
HealthRBTRQ Function
J4Angle
JumpTLZ
LimitTorqueLP
LimitTorqueLP Function
LimitTorqueStop
LimitTorqueStop Function
LimitTorqueStopLP
LimitTorqueStopLP
Function
VSD
VSD Function
Lista de comandos nuevos de EPSON RC+ 7.1.4
CollisionDetect Function
Lista de comandos nuevos de EPSON RC+ 7.1.3
CollisionDetect
MHour Function
Lista de comandos nuevos de EPSON RC+ 7.1.2
SingularityDist
SingularityDist Function
ExportPoints
Lista de comandos eliminados de EPSON RC+ 7.1.2
SetLCD
Lista de comandos nuevos de EPSON RC+ 7.1.0
BClr64 Function
BSet64 Function
BTst64 Function
FineDist
FineDist Function
FineStatus Function
Fmtstr
IODef Function
LShift64 Function
RealAccel Function
RShift64 Function
WorkQue_Add
WorkQue_AutoRemove
WorkQue_AutoRemove Function
WorkQue_Get Function
WorkQue_Len Function
WorkQue_List
WorkQue_Reject
WorkQue_Reject Function
WorkQue_Remove
WorkQue_Sort
WorkQue_Sort Function
WorkQue_UserData
WorkQue_UserData
Function
Lista de comandos nuevos de EPSON RC+ 7.0.3
PerformMode
PerformMode Function
Manual de referencia del lenguaje SPEL+ Rev.2 931
Precaución de compatibilidad con EPSON RC+ 6.0
Lista de comandos nuevos de EPSON RC+ 7.0.0
AutoLJM
AutoLJM Function
AvoidSingularity
AvoidSingularity Function
Cnv_Accel
Cnv_Accel Function
Cnv_DownStream
Cnv_Mode
Cnv_Mode Function
Cnv_Upstream
DeleteDB
ElapsedTime Function
Errb Function
LimZMargin
LimZMargin Function
LimitTorque
LimitTorque Function
PalletClr
ResetElapsedTime
SingularityAngle
SingularityAngle Function
SingularitySpeed
SingularitySpeed Function
SpeedFactor
SpeedFactor Function
UpdateDB
Lista de comandos eliminados de EPSON RC+ 7.0.0
Dir
Type
Manual de referencia del lenguaje SPEL+ Rev.2 932
Precaución de compatibilidad con EPSON RC+ 5.0
Precaución de compatibilidad con EPSON RC+ 5.0
Descripción general
Esta sección contiene información para clientes que usan EPSON RC+ 7.0 con
controladores RC700 y RC90 que ya hayan usado EPSON RC+ 5.0 con RC180.
EPSON RC+ 7.0 y EPSON RC+ 5.0 son diferentes en cuanto a hardware, manipuladores
adaptables, número de articulaciones permitido y entorno de ejecución del software. Lea
esta sección y comprenda el contenido para usar el sistema de robot con seguridad.
EPSON RC+ 7.0 es un software mejorado compatible con productos previos a EPSON
RC+ 7.0 y está diseñado para innovar en cuanto a las tecnologías de software avanzado.
Sin embargo, algunas piezas no son compatibles con EPSON RC+ 5.0 o se eliminaron
para especializarse en el controlador del robot y para facilitar el uso.
Se indica la siguiente compatibilidad según EPSON RC+ 5.0 en comparación con EPSON
RC+ 7.0.
Manual de referencia del lenguaje SPEL+ Rev.2 933
Precaución de compatibilidad con EPSON RC+ 5.0
Diferencias generales
Las diferencias generales entre EPSON RC+ 5.0 y EPSON RC+ 7.0 son las siguientes.
Elemento EPSON RC+ 7.0 EPSON RC+ 5.0
Número de tarea Hasta 32 tareas
(Tarea en segundo plano: hasta 16
tareas)
Hasta 16 tareas
Tipo de tarea
Se puede especificar la tarea NoPouse
Se puede especificar la tarea
NoEmgAbort
Se puede especificar la tarea
Background
Se puede especificar la tarea
NoPouse
Se puede especificar la tarea
NoEmgAbort
TRAP especial
como TRAP ERROR
Compatible No compatible
La tarea se inicia mediante el
número TRAP
Número de tarea dedicado Número de tarea dedicado
Manipuladores múltiples Compatible
N
o compatible
N
úmero del robot 1 a 16
1
Número de cifras significativas
para el tipo Real
6 dígitos 6 dígitos
Número de cifras significativas
para el tipo Double
14 dígitos 14 dígitos
Número de elementos de la matriz
Aparte de la variable de cadena Aparte de la variable de cadena
Variable local 2,000 Variable local 1,000
Variable global
100,000
Variable global 10,000
Variable de módulo
100,000
Variable de módulo 10,000
Variable global
conservada
4,000
Variable global
conservada
1,000
Variable de cadena
Variable de cadena
Variable local
200
Variable local
100
Variable global
10,000
Variable global
1,000
Variable de módulo 10,000 Variable de módulo 1,000
Variable global
conservada
400
Variable global
conservada
100
Número de dispositivo 21:PC
22:REMOTE
24:TP
20:TP3
21:PC
22:REMOTE
23:OP
24:TP
Dispositivo de control
E/S remota
Computadora
REMOTE COM
Ethernet REMOTO
TP3
E/S remota
Computadora
OP1
Ethernet REMOTO
Rango de número del
temporizador
0 a 63 0 a 15
Capacidad del programa 8 MB 4 MB
Señal sin rango
para SyncLock, SyncUnlock
0 a 63 0 a 15
Señal sin rango
para WaitSig, señal
0 a 63 0 a 5
Puerto de E/S de memoria 1024 256
N
úmero de puerto de E/S Común con EPSON RC+ 5.0
N
úmero de puerto de Ethernet 201 a 216 201 a 208
Asignación de E/S remota Asignado como predeterminado Asignado como predeterminado
Número de puerto de
comunicación RS-232C
1 a 8, 1001, 1008 1 a 8
Ejecución de OpenCom del
puerto de comunicación RS-232C
Obligatorio Obligatorio
Manual de referencia del lenguaje SPEL+ Rev.2 934
Precaución de compatibilidad con EPSON RC+ 5.0
Elemento EPSON RC+ 7.0 EPSON RC+ 5.0
Entrada/salida a los archivos Com
p
atible
N
o com
p
atible
N
úmero de archivo 30 a 63
N
o compatible
Número de acceso para la base de
datos
501 a 508 No compatible
Vision Guide Tipo de cámara de red
Tipo de digitalizador de video
Tipo de cámara de red
Seguimiento del transportado
r
Compatible
N
o compatible
Robot PG Compatible
N
o compatible
OCR Compatible
N
o compatible
Segurida
d
Compatible
N
o compatible
VBGuide 5.0 (RC+ API 7.0) Compatible VBGuide Lite es compatible
E/S de bus de campo Usar comandos E/S normales Usar comandos E/S normales
Maestro del bus de campo
N
o se garantiza la respuesta
N
o compatible
Esclavo del bus de campo Se garantiza la respuesta Se garantiza la respuesta
GUI Builde
r
Compatible
N
o compatible
N
úmero de erro
r
Común con EPSON RC+ 5.0
Manual de referencia del lenguaje SPEL+ Rev.2 935
Precaución de compatibilidad con EPSON RC+ 5.0
Lista de compatibilidad de comandos

Se aplicó la expansión de función/cambios de función con compatibilidad con versiones
superiores.
 Sin cambios.
 Preste atención. Se aplicaron cambios de función o cambios de sintaxis.

Preste atención. Se aplicaron cambios significativos.

Eliminado.
Comando
Compatibilida
d
Nota
A
Abs Function

Accel Statement

Accel Function

AccelMax Statement

AccelR Statement

AccelR Function

AccelS Statement

AccelS Function

Acos Function

AglToPls Function

Agl Function

AlignECP Function

Align Function

And Statement

Arc Statement

Arc3 Statement

Arch Statement

Arch Function

Arm Statement

Arm Function

ArmClr Statement

ArmDef Function

ArmSet Statement

ArmSet Function

Asc Function

Asin Function

Atan Function

Atan2 Function

ATCLR Statement

ATRQ Statement

ATRQ Function

B
Base Statement

Base Function

BClr Function

BGo Statement
+
Se agregó parámetro PerformMode.
BMove Statement

Boolean Statement

Box Statement
+
Se agregó la designación del número de robot
Box Function
+
Se agregó la designación del número de robot
BoxClr Function
+
Se agregó la designación del número de robot
Manual de referencia del lenguaje SPEL+ Rev.2
936
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
BoxDef Function
+
Se agregó la designación del número de robot
Brake Statement

Brake Function

BSet Function

BTst Function

Byte Statement

C
Call Statement
+
La función Call de DLL está admitida.
ChkCom Function

ChkNet Function

Chr$ Function

ClearPoints Statement

CloseCom Statement

CloseNet Statement

Cls Statement

Cos Function

CP Statement

CP Function

CTReset Statement

Ctr Function

CtrlDev Function

Se cambió la ID del dispositivo
CtrlInfo Function

Se cambiaron los contenidos de obtención
CurPos Function

Curve Statement

CVMove Statement

CX to CW Statement
+
Se agregó CR, CS, CT
CX to CW Function
+
Se agregó CR, CS, CT
D
Date Statement
!
Solo se muestra
Date$ Function

DegToRad Function

DispDev Statement

DispDev Function

Dist Function

Do...Loop Statement

Double Statement

E
ECP Statement

ECP Function

ECPClr Statement

EcpDef Function

ECPSet Statement

ECPSet Function

ElapsedTime Function

Elbow Statement

Elbow Function

Era Function

Erase Statement

EResume Statement

Erf$ Function

Manual de referencia del lenguaje SPEL+ Rev.2 937
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
Erl Function

Err Function

ErrMsg$ Function

Error Statement

ErrorOn Function

Ert Function

EStopOn Function

Exit Statement

F
Find Statement

FindPos Function

Fine Statement

Fine Function

Fix Function

FmtStr$ Statement

For...Next

Function...Fend

G
Global Statement

Go Statement
+
Se agregó parámetro PerformMode.
Gosub...Return

Goto Statement

H
Halt Statement

Hand Statement

Hand Function

Here Statement

Here Function

Hex$ Function

Home Statement

HomeClr Statement

HomeDef Function

HomeSet Statement

HomeSet Function

HOrdr Statement

HOrdr Function

Hour Statement

Hour Function

I
If...EndIf

In Function

InBCD Function

Inertia Statement

Inertia Function

InPos Function

Input Statement

Input# Statement
+ Se agregó el número de dispositivo
InsideBox Function
!
Se agregó la designación del número de robot y
All no se puede usar con la instrucción Wait
Manual de referencia del lenguaje SPEL+ Rev.2 938
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
InsidePlane Function
!
Se agregó la designación del número de robot y
All
no se puede usar con la instrucción Wait
InStr Function

Int Function

Integer Statement

InW Function

IOLabel$ Function

IONumber Function

IONumber Function

J
J1Flag Statement

J1Flag Function
J2Flag Statement
J2Flag Function
J4Flag Statement
J4Flag Function

J6Flag Statement

J6Flag Function

JA Function

Joint

JRange Statement

JRange Function

JS Function

JT Function

JTran Statement

Jump Statement
+
Se agregó parámetro PerformMode.
Jump3 Statement
+
Jump3CP Statement
+
L
LCase$ Function

Left$ Function

Len Function

LimZ Statement

LimZ Function

Line Input Statement

Line Input# Statement
+
Se agregó el número de dispositivo
LJM Function

LoadPoints

Local Statement

Local Function

LocalClr Statement

LocalDef Function

Lof Function

Long Statement

LSet$ Function

LShift Function

LTrim$ Function

M
Mask Operator

Manual de referencia del lenguaje SPEL+ Rev.2 939
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
MemIn Function

MemInW Function

MemOff Statement

MemOn Statement

MemOut Statement

MemOutW Statement

MemSw Function

Mid$ Function

Mod Operator

Motor Statement

Motor Function

Move Statement

MyTask Function

N
Not Operator

O
Off Statement

OLAccel Statement

OLAccel Function

OLRate Statement

OLRate Function

On Statement

OnErr

OpBCD Statement

OpenCom Statement

OpenNet Statement

Oport Function

Or Operator

Out Statement

Out Function

OutW Statement

OutW Function

P
PAgl Function

Pallet Statement

Se agregó la designación de coordenadas
Pallet Function

ParsStr Statement

ParsStr Function

Pass Statement
+
Pause Statement

PauseOn Function

PDef Function

PDel

PLabel$ Function

PLabel Statement

Plane Statement
+
Se agregó la designación del número de robot
Plane Function
+
Se agregó la designación del número de robot
PlaneClr Statement
+
Se agregó la designación del número de robot
PlaneDef Function
+
Se agregó la designación del número de robot
PList Statement
!
Se cambió el tipo de visualización
Manual de referencia del lenguaje SPEL+ Rev.2 940
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
PLocal Statement

PLocal Function

Pls Function

PNumber Function

PosFound Function

Power Statement

Power Function

PPls Function

Print Statement

Print# Statement
+
Se cambió el número de dispositivo
PTCLR Statement

PTPBoost Statement

PTPBoost Function

PTPBoostOK Function

PTPTime Function

PTran Statement

PTRQ Statement

PTRQ Function

Pulse Statement

Pulse Function

Q
QP Statement

Quit Statement

R
RadToDeg Function

Randmize Statement

Range Statement

Read Statement

ReadBin Statement

Real Statement

RealPls Function

RealPos Function

RealTorque Statement

Redim Statement

Reset Statement

ResetElapsedTime
Statement
Resume Statement

Return Statement

RobotInfo Function
+
Se agregó información
RobotInfo$ Function
+
Se agregó la visualización del nombre del
archivo de punto predeterminado
RobotModel$ Function

RobotName$ Function

RobotSerial$ Function

RobotType Function

RSet$ Function

RShift Function

RTrim$ Function

Manual de referencia del lenguaje SPEL+ Rev.2 941
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
S
SafetyOn Function

SavePoints Statement

Select...Send Statement

Sense Statement

SetCom Statement

SetInW Statement

SetIn Statement

SetNet Statement

SetSw Statement

SFree Statement

SFree Function

Sgn Function

Signal Statement

Sin Function

SLock Statement

SoftCP Statement

SoftCP Function

Space$ Function

Speed Statement

Speed Function

SpeedR Statement

SpeedR Function

SpeedS Statement

SpeedS Function

SPELCom_Event
Statement

Sqr Function

Stat Function
+
Se agregó información
Str$ Function

String Statement

Sw Function

SyncLock Statement

Ocurre un error si se ejecuta SyncLock
repetidamente
SyncUnlock Statement

SysConfig Statement
+
Se agregó información
SysErr Function
+ Se agregó la función de recuperar las
advertencias
T
Tab$ Function

Tan Function

TargetOK Function

TaskDone Function

TaskInfo Function

TaskInfo$ Function

TaskState Statement
+
Se agregó la visualización de la tarea en
segundo plano.
TaskState Function

TaskWait Statement

Manual de referencia del lenguaje SPEL+ Rev.2 942
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
TC Statement

TCLim Statement

TCLim Function

TCSpeed Statement

TCSpeed Function

TGo Statement
+
Se agregó parámetro PerformMode.
TillOn Function

Time Command
!
Solo se muestra
Time Function

Time$ Function

TLClr Statement

TlDef Function

TLSet Statement

TLSet Function

TMOut Statement

TMove Statement

Tmr Function

TmReset Statement

Toff Statement

Ton Statement

Tool Statement

Tool Function

Trap Statement
!
Se agregó la Trap que interrumpe el estado del
controlador.
Trim$ Function

Tw Function

U
UBound Function

UCase$ Function

V
Val Function

W
Wait Statement
!
Se agregaron variables globales y otros como la
condición Wait
WaitNet Statement

WaitPos Statement

WaitSig Statement

Weight Statement
+
Se agregó la designación S, T
Weight Function
+
Se agregó la designación S, T
Where Statement

Wrist Statement

Wrist Function

Write Statement

WriteBin Statement

X
Xor Operator

Xqt Statement

XY Function

XYLim Statement

XYLim Function

XYLimClr Statement

Manual de referencia del lenguaje SPEL+ Rev.2 943
Precaución de compatibilidad con EPSON RC+ 5.0
Comando
Compatibilida
d
Nota
XYLimDef Statement

XYLimDef Function

Manual de referencia del lenguaje SPEL+ Rev.2 944
Precaución de compatibilidad con EPSON RC+ 5.0
Lista de comandos nuevos de EPSON RC+ 7.2.0
CP_Offset
CP_Offset Function
HealthCtrlAlarmOn Function
HealthCtrlInfo
HealthCtrlInfo Function
HealthCtrlRateOffset
HealthCtrlReset
HealthRateCtrlInfo Function
HealthRateRBInfo Function
HealthRBAlarmOn Function
HealthRBAnalysis
HealthRBAnalysis Function
HealthRBDistance
HealthRBDistance Function
HealthRBInfo
HealthRBInfo Function
HealthRBRateOffset
HealthRBReset
HealthRBSpeed
HealthRBSpeed Function
HealthRBStart
HealthRBStop
HealthRBTRQ
HealthRBTRQ Function
J4Angle
JumpTLZ
LimitTorqueLP
LimitTorqueLP Function
LimitTorqueStop
LimitTorqueStop Function
LimitTorqueStopLP
LimitTorqueStopLP Function
VSD
VSD Function
Lista de comandos nuevos de EPSON RC+ 7.1.4
CollisionDetect Function
Lista de comandos nuevos de EPSON RC+ 7.1.3
CollisionDetect
MHour Function
Lista de comandos nuevos de EPSON RC+ 7.1.2
SingularityDist
SingularityDist Function
ExportPoints
Lista de comandos eliminados de EPSON RC+ 7.1.2
SetLCD
Lista de comandos nuevos de EPSON RC+ 7.1.0
BClr64 Function
BSet64 Function
BTst64 Function
FineDist
FineDist Function
FineStatus Function
Fmtstr Statement
IODef Function
LShift64 Function
RealAccel Function
RShift64 Function
WorkQue_Add Statement
WorkQue_AutoRemove Statement
WorkQue_AutoRemove Function
WorkQue_Get Function
WorkQue_Len Function
WorkQue_List Statement
WorkQue_Reject Statement
WorkQue_Reject Function
WorkQue_Remove Statement
WorkQue_Sort Statement
WorkQue_Sort Function
WorkQue_UserData Statement
WorkQue_UserData Function
Lista de comandos nuevos de EPSON RC+ 7.0.3
PerformMode Statement
PerformMode Function
Manual de referencia del lenguaje SPEL+ Rev.2 945
Precaución de compatibilidad con EPSON RC+ 5.0
Lista de comandos nuevos de EPSON RC+ 7.0.0
AbortMotion Statement
AutoLJM Statement
AutoLJM Function
AvoidSingularity Statement
AvoidSingularity Function
ChDisk Statement
CloseDB Statement
Cnv_Accel Statement
Cnv_Accel Function
Cnv_DownStream Statement
Cnv_Mode Statement
Cnv_Mode Function
Cnv_Upstream Statement
CR Statement
CR Function
CS Statement
CS Function
CT Statement
CT Function
DeleteDB Statement
Errb Function
Flush Statement
GetRobotInsideBox Function
GetRobotInsidePlane Function
J1Angle Statement
J1Angle Function
LimZMargin Statement
LimZMargin Function
LimitTorque Statement
LimitTorque Function
OpenDB Statement
PalletClr Statement
PG_FastStop Statement
PG_LSpeed Statement
PG_LSpeed Function
PG_Scan Statement
PG_SlowStop Statement
QPDECELR Statement
QPDECELR Function
QPDECELS Statement
QPDECELS Function
RecoverPos Function
Recover Statement
SelectDB Statement
Shutdown Function
SingularityAngle Statement
SingularityAngle Function
SingularitySpeed Statement
SingularitySpeed Function
SpeedFactor Statement
SpeedFactor Function
StartMain Statement
SyncRobots Statement
SyncRobots Function
TeachOn Function
UpdateDB WindosStatus Function
Comandos de EPSON RC+ Ver.4.* (No admitidos en EPSON RC+ 5.0)
Aopen Statement
BOpen Statement
Calib Statement
CalPls Statement
ChDir Statement
ChDrive Statement
Close Statement
Cnv_AbortTrack Statement
Cnv_Downstream Statement
Cnv_Fine Statement
Cnv_Fine Function
Cnv_Name$ Function
Cnv_Number Function
Cnv_Point Function
Cnv_PosErr Function
Cnv_Pulse Function
Cnv_QueAdd Statement
Cnv_QueGet Function
Cnv_QueLen Function
Cnv_QueList Statement
Cnv_QueMove Statement
Cnv_QueReject Statement
Cnv_QueReject Function
Cnv_QueRemove Statement
Cnv_QueUserData Statement
Cnv_QueUserData Function
Cnv_RobotConveyor Function
Cnv_Speed Function
Cnv_Trigger Statement
Cnv_Upstream Function
Cont Statement
Copy Statement
CurDir$ Function
CurDrive$ Function
Declare Statement
Del Statement
Eof Function
Eval Function
FbusIO_GetBusStatus Function
FbusIO_GetDeviceStatus Function
FbusIO_SendMsg Statement
FileDateTime$ Function
FileExists Function
FileLen Function
FolderExists Function
FreeFile Function
GetCurrentUser$ Statement
Hofs Statement
Hofs Function
ImportPoints Statement
InputBox Statement
LogIn Function
MCalComplete Function
MCal Statement
MCordr Statement
MCordr Function
MKDir Statement
MsgBox Statement
Recover Function
Rename Statement
RenDir Statement
Restart Statement
RmDir Statement
Robot Statement
Robot Function
ROpen Statement
RunDialog Statement
Seek Statement
Shutdown Statement
UOpen Statement
WOpen Statement
Manual de referencia del lenguaje SPEL+ Rev.2
946
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Precaución de compatibilidad con EPSON RC+
Ver.4.*
Descripción general
Esta sección contiene información para clientes que usan EPSON RC+ 7.0 con
controladores RC700 que ya hayan usado EPSON RC+ Ver.4.* con RC520 o RC420.
EPSON RC+ 7.0 y EPSON RC+ Ver.4.* son diferentes en cuanto a hardware,
manipuladores adaptables, número de articulaciones permitido y entorno de ejecución del
software. Lea esta sección y comprenda el contenido para usar el sistema de robot con
seguridad.
EPSON RC+ 7.0 es un software mejorado compatible con productos previos a EPSON
RC+ 7.0 y está diseñado para innovar en cuanto a las tecnologías de software avanzado.
Sin embargo, algunas piezas no son compatibles con EPSON RC+ Ver.4.* o se eliminaron
para especializarse en el controlador del robot y para facilitar el uso.
Se indica la siguiente compatibilidad según EPSON RC+ Ver.4.* en comparación con
EPSON RC+ 7.0.
Manual de referencia del lenguaje SPEL+ Rev.2 947
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Diferencias generales
Las diferencias generales entre EPSON RC+ Ver.4.* y EPSON RC+ 7.0 son las siguientes.
Elemento EPSON RC+ 7.0 EPSON RC+ Ver.4.*
Número de tarea Hasta 32 tareas
(Tarea en segundo plano: hasta 16
tareas)
Hasta 32 tareas
Tipo de tarea
Se puede especificar la tarea NoPouse
Se puede especificar la tarea
NoEmgAbort
Se puede especificar la tarea
Background
Se puede especificar la tarea
NoPouse
TRAP especial
como TRAP ERROR
Compatible Compatible
La tarea se inicia mediante el
número TRAP
Número de tarea dedicado Números de tarea solo desde 1 a
32
Manipuladores múltiples Compatible Compatible
N
úmero del robot 1 a 16 1 a 16
Número de cifras significativas
para el tipo Real
6 dígitos 7 dígitos
Número de cifras significativas
para el tipo Double
14 dígitos 15 dígitos
Número de elementos de la
matriz
Aparte de la variable de cadena
Hasta la capacidad de la
memoria
Variable local
Variable global
Variable de módulo
Variable global
conservada
2000
1,000,000
1,000,000
4,000
Variable de cadena
Variable local
Variable global
Variable de módulo
Variable global
conservada
200
10,000
10,000
400
N
úmero de línea
N
o compatible Compatible
Número de dispositivo 21:PC
22:REMOTE
24:TP
20:TP3
1:Controller
2:REMOTE
3:OP
Dispositivo de control
E/S remota
Computadora
REMOTE COM
Ethernet REMOTO
TP3
E/S remota
Computadora
OP500RC
Rango de número del
temporizador
0 a 63 0 a 63
Capacidad del programa 8 MB 4 MB
Señal sin rango
para SyncLock, SyncUnlock
0 a 63 1 a 32
Señal sin rango
para WaitSig, señal
0 a 63 0 a 127
Puerto de E/S de memoria 1024 512
N
úmero de puerto de E/S Diferente con EPSON RC+ Ver.4.*
N
úmero de puerto de Ethernet 201 a 216 128 a 147
Asignación de E/S remota Asignado como predeterminado Predetermin.: --
Número de puerto de
comunicación RS-232C
1 a 8, 1001, 1008 1 a 16
Ejecución de OpenCom del
puerto de comunicación RS-
Obligatorio Opcional
Manual de referencia del lenguaje SPEL+ Rev.2 948
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Elemento EPSON RC+ 7.0 EPSON RC+ Ver.4.*
232C
Entrada/salida a los archivos Compatible Compatible
Número de archivo para acceso
del archivo
30 a 63 30 a 63
Número de acceso para la base
de datos
501 a 508 No compatible
Vision Guide Tipo de cámara de red
Tipo de digitalizador de video
Tipo de digitalizador de video
Seguimiento del transportado
r
Compatible Compatible
Robot PG Compatible Compatible
OCR Compatible Compatible
Segurida
d
Compatible Compatible
VBGuide (RC+ API 7.0) Compatible Compatible
E/S de bus de campo Usar comandos E/S normales Usar comandos especiales
Maestro del bus de campo
N
o se garantiza la respuesta
N
o se garantiza la respuesta
Esclavo del bus de campo Se garantiza la respuesta
N
o se garantiza la respuesta
GUI Builde
r
Compatible
N
o compatible
Agrupe el proyecto
N
o compatible Compatible
N
úmero de er
r
o
r
Diferente con EPSON RC+ Ver.4.*
Manual de referencia del lenguaje SPEL+ Rev.2 949
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Lista de compatibilidad de comandos

Se aplicó la expansión de función/cambios de función con compatibilidad con versiones
superiores.
 Sin cambios.
 Preste atención. Se aplicaron cambios de función o cambios de sintaxis.

Preste atención. Se aplicaron cambios significativos.

Eliminado.
Comando Compatibilidad Nota
A
Abs Function

Accel Statement
+
Se pueden especificar más de 100 para
algunos robots
Accel Function

AccelR Statement

AccelR Function

AccelS Statement

AccelS Function

Acos Function

Se agregó la comprobación del rango del
argumento
Agl Function

AglToPls Function

And Operator

AOpen Statement

Arc Statement

Arc3 Statement

Arch Statement

Arch Function

Arm Statement

Arm Function

ArmClr Statement

ArmSet Statement

ArmSet Function

Asc Function

Asin Function

Se agregó la comprobación del rango del
argumento
Atan Function

Atan2 Function

ATCLR Statement

ATRQ Statement

ATRQ Function

B
Base Statement

BClr Function

Se agregó la comprobación del rango del
argumento
Beep Statement

BGo Statement
+
Se agregó parámetro PerformMode.
BMove Statement

Boolean Statement

BOpen Statement

Brake Statement

Manual de referencia del lenguaje SPEL+ Rev.2 950
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
BSet Function

Se agregó la comprobación del rango del
argumento
BTst Function

Se agregó la comprobación del rango del
argumento
Byte Statement

C
Calib Statement

Call Statement

CalPls Statement

CalPls Function

Chain Statement

ChDir Statement

ChDrive Statement

ChkCom Function

ChkNet Function

Chr$ Function

Clear Statement

Se cambió el nombre a ClearPoints
Close Statement

CloseCom Statement

CloseNet Statement

Se puede especificar All
ClrScr Statement

Se cambió el nombre a Cls
Se puede especificar Device ID para
argumentos
Cnv_**

Cont Statement

Se puede ejecutar según la configuración
Copy Statement

Cos Function

CP Statement

CP Function

Ctr Function

CTReset Statement

CtrlDev Statement

CtrlDev Function

Se cambió la ID del dispositivo
CtrlInfo Function

Se cambiaron los contenidos de obtención
CurDir$ Function

CurDrive$ Function

CurPos Function

Curve Statement

CVMove Statement

CX to CW Statement
+
Se agregó CR, CS, CT
CX to CW Function
+
Se agregó CR, CS, CT
D
Date Statement
!
Solo se muestra
Date$ Function

Declare Statement
!
El procesamiento es lento
DegToRad Function

Del Statement

Dir Statement

Dist Function

Do...Loop Statement

Manual de referencia del lenguaje SPEL+ Rev.2 951
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Double Statement

La cifra significativa es de 14 dígitos
E
EClr Statement

ECP Statement

ECP Function

ECPClr Statement

ECPSet Statement

ECPSet Function

Elbow Statement

Elbow Function

ENetIO_****

Eof Function

EPrint Statement

Era Function

Erase Statement

EResume Statement

Erf$ Function

Se puede omitir el número de la tarea
Erl Function

Se puede omitir el número de la tarea
Err Function

ErrHist Statement

ErrMsg$ Function

El argumento tiene una ID de idioma
Error Statement

Se puede especificar el número de tarea para
los argumentos.
Ert Function

EStopOn Function
+
Se puede especificar Wait
Eval Function
!
Diferencias en la salida de error
Exit Statement

F
FbusIO_****

Comando de E/S normal disponible
FileDateTime$ Function

FileExists Function

FileLen Function

Find Statement

FindPos Function

Fine Statement

Fine Function

Fix Function

FmtStr$ Statement

La función está limitada de forma importante
FoldrExist Function

For...Next

FreeFile Function

Function...Fend

G
GetCurrentUser$ Function

Global Statement

Go Statement
+
Se agregó parámetro PerformMode.
Gosub...Return

Goto Statement

H
Halt Statement

Manual de referencia del lenguaje SPEL+ Rev.2 952
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Hand Statement

Hand Function

Here Statement

Here Function

Hex$ Function

Hofs Statement

Hofs Function

Home Statement

HomeSet Statement

HomeSet Function

HOrdr Statement

HOrdr Function

Hour Statement

Hour Function

HTest Statement

HTest Function

I
If...EndIf

ImportPoints Statement
!
La extensión “.pnt” cambió a “.pts”
In Function

In($n) Statement

Se reemplazó por MemIn
InBCD Function

Inertia Statement

Inertia Function

InPos Function

Input Statement

Input# Statement

La entrada está disponible desde los
dispositivos
InputBox Statement

InStr Function

Int Function

Integer Statement

InW Function

InW($n) Statement

Se reemplazó por MemInW
IONumber Function

J
J4Flag Statement

J4Flag Function

J6Flag Statement

J6Flag Function

JA Function

JRange Statement

JRange Function

JS Function

Arroja True/False
JT Function

JTran Statement

Jump Statement
+
Se agregó parámetro PerformMode.
Jump3 Statement

Manual de referencia del lenguaje SPEL+ Rev.2 953
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Jump3CP Statement

K
Kill Statement

Se reemplazó con Del
L
LCase$ Function

Left$ Function

Len Function

LimZ Statement

LimZ Function

Line Input Statement

Line Input# Statement

La entrada está disponible desde los
dispositivos
LoadPoints

La extensión “.pnt” cambió a “.pts”
Local Statement

El número local “0” es un error
Local Function

El número local “0” es un error
LocalClr Statement

Lof Function

LogIn Statement
!
Se cambió de instrucción a función
Long Statement

LPrint Statement

LSet$ Function

LShift Function

Se agregó la comprobación del rango del
argumento
LTrim$ Function

M
Mask Operator

MCal Statement

MCalComplete Function

MCofs Statement

MCofs Function

MCordr Statement

MCordr Function

Mcorg Statement

MemIn Function

MemInW Function

MemOff Statement

MemOn Statement

MemOut Statement

MemOutW Statement

MemSw Function

Mid$ Function

MKDir Statement

Mod Operator

Motor Statement

Motor Function

Move Statement

MsgBox Statement

MyTask Function

N
Not Operator

O
Off Statement

Manual de referencia del lenguaje SPEL+ Rev.2 954
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Off$ Statement

Se reemplazó por MemOff
OLRate Statement

OLRate Function

On Statement

On$ Statement

Se reemplazó por MemOn
OnErr

OP_*

OpBCD Statement

OpenCom Statement

OpenCom es obligatorio
OpenNet Statement

Oport Function

Or Operator

Out Statement

Out Function

Out$ Statement

Se reemplazó por MemOut
OutW Statement

OutW Function

OutW$ Statement

Se reemplazó por MemOutW
P
PAgl Function

Pallet Statement

Pallet Function

ParsStr Statement

ParsStr Function

Pass Statement

Se puede especificar un punto continuo
Pause Statement

PauseOn Function

PDef Function

PDel

Se agregó la comprobación del argumento
PLabel$ Function

PLabel Statement

PList

Se cambió el tipo de visualización
Se agregó la comprobación de argumento
Se eliminó la función de Plist*
PLocal Statement

PLocal Function

Pls Function

PNumber Function

Point Assignment

Point Expression

POrient Statement

POrient Function

PosFound Function

Arroja True/False
Power Statement

Power Function

PPls Function

Manual de referencia del lenguaje SPEL+ Rev.2 955
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Print Statement

Genera todos los indicadores en la salida de
punto
Define el número de dígito de salida del tipo
Double y del tipo Real en una cifra
significativa
Print# Statement

Igual que la instrucción Print
Activa Print en cada dispositivo
PTCLR Statement

PTPBoost Statement

PTPBoost Function

PTPBoostOK Function

Arroja True/False
PTPTime Function

PTran Statement

PTRQ Statement

PTRQ Function

Pulse Statement

Pulse Function

Q
QP Statement

Quit Statement

R
RadToDeg Function

Randmize Statement

Se puede especificar el valor Seed
Range Statement

Read Statement

ReadBin Statement

Se pueden leer bytes múltiples para la
variable de matriz
Real Statement

Cifra significativa de 6 dígitos
Recover Statement

Se puede ejecutar según la configuración
Redim Statement

El número de elemento está limitado
No se puede ejecutar la matriz llamada por
referencia
Rename Statement

RenDir Statement

Reset Statement

Resume Statement

Restart Statement

Reset Statement
+
Se agregó Reset Error
Return Statement

Right$ Function

RmDir Statement

Rnd Function

Robot Statement
+
Se agregó la serie RS
Robot Function

RobotModel$ Function

RobotType Function

ROpen Statement

RSet$ Function

RShift Function

Se agregó la comprobación del argumento
RTrim$ Function

RunDialog Statement

Manual de referencia del lenguaje SPEL+ Rev.2 956
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
S
SafetyOn Function
+
Se puede especificar Wait
SavePoints Statement

La extensión (.pnt) cambió a (.pts)
Seek Statement

Select...Send

Sense

SetCom Statement

No se puede especificar "56000" para la
velocidad de transferencia
N
o se
p
uede e
j
ecutar el
p
uerto con O
p
enCom
SetNet Statement

SFree Statement

SFree Function

Sgn Function

Shutdown Statement

Signal Statement

Sin Function

SLock Statement

Space$ Function

Speed Statement

Speed Function

Argumento opcional
SpeedR Statement

SpeedR Function

SpeedS Statement

SpeedS Function

SPELCom_Event
Statement

SPELCom_Return
Statement

Sqr Function

Stat Function

No se puede recuperar alguna información
Str$ Function

String Statement

Sw Function

Sw($) Function

Se reemplazó por MemSw
SyncLock Statement

Ocurre un error si se ejecuta SyncLock
repetidamente
Se libera el bloqueo cuando se completa la
tarea
SyncUnlock Statement

T
Tab$ Function

Tan Function

TargetOK Function

Arroja True/False
TaskDone Function

TaskState Function

No se arrojan 6 tareas especificadas durante
la ejecución de la instrucción Wait
TaskWait Statement

TGo Statement
+
Se agregó parámetro PerformMode.
TillOn Function

Time Command
!
Solo se muestra
Time Function

Manual de referencia del lenguaje SPEL+ Rev.2 957
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Comando Compatibilidad Nota
Time$ Function

TLClr Statement

TLSet Statement

TLSet Function

TMOut Statement

TMove Statement

Tmr Function

TmReset Statement

Tool Statement

Tool Function

Trap Statement

Compatibilidad con Trap Goto
Se prohibió Trap Gosub y se reemplazó con
Trap Call
Trap Call cambió de nombre a Trap Xqt
Se agregó Trap Finish
Trim$ Function

Tw Function

Arroja True/False
Type Statement

U
UBound Function

UCase$ Function

UOpen Statement

V
Val Function

Ver Statement

Se reemplazó por SysConfig
Verinit Statement

W
Wait Statement
+
Se agregaron variables globales y otros como
la condición Wait
WaitNet Statement

WaitPos Statement

WaitSig Statement

Weight Statement
+
Se agregó la designación S, T
Weight Function
+
Se agregó la designación S, T
Where Statement

El valor de coordenadas siempre muestra 6
ejes
While..Wend

Se reemplazó por Do...Loop
WOpen Statement

Wrist Statement

Wrist Function

Write Statement

WriteBin Statement

Se pueden enumerar bytes múltiples desde la
variable de matriz
X
Xor Operator

Xqt Statement
+
Se puede especificar NoEmgAbort
XY Function

XYLim Statement

XYLim Function

Z
ZeroFlg Function

Manual de referencia del lenguaje SPEL+ Rev.2 958
Precaución de compatibilidad con EPSON RC+ Ver.4.*
Lista de comandos nuevos
AbortMotion Statement
AccelMax Function
AglToPls Function
Align Function
AlignECP Function
ArmDef Function
ATCLR Statement
AtHome Function
ATRQ Statement
ATRQ Function
AutoLJM Statement
AutoLJM Function
AvoidSingularity Statement
AvoidSingularity Function
BClr Function
BClr64 Function
Box Statement
Box Function
BoxClr Function
BoxDef Function
Brake Function
BSet Function
BSet64 Function
BTst Function
BTst64 Function
ChDisk Statement
ChkCom Function
ChkNet Function
CloseCom Statement
CloseDB Statement
CloseNet Statement
Cls Statement
CP Statement
CP Function
CP_Offset Statement
CP_Offset Function
CR Statement
CR Function
CS Statement
CS Function
CT Statement
CT Function
CtrlDev Function
Curve Statement
CVMove Statement
Cnv_Accel Statement
Cnv_Accel Function
Cnv_DownStream Statement
Cnv_Mode Statement
Cnv_Mode Function
Cnv_OffsetAngle Statement
Cnv_OffsetAngle Function
Cnv_Upstream Statement
CollisionDetect Statement
CollisionDetect Function
DegToRad Function
DeleteDB Statement
DispDev Statement
DispDev Function
Dist Function
EcpDef Function
EResume Statement
Errb Function
ErrorOn Function
Error Statement
EStopOn Function
Exit Statement
ExportPoints Statement
FindPos Function
Find Statement
FineDist Statement
FineDist Function
FineStatus Function
Fix Function
Flush Statement
Fmtstr Statement
FunctionHere Statement
GetRobotInsideBox Function
GetRobotInsidePlane Statement
HealthCtrlAlarmOn Function
HealthCtrlInfo Statement
HealthCtrlInfo Function
HealthCtrlRateOffset Statement
HealthCtrlReset Statement
HealthRateCtrlInfo Function
HealthRateRBInfo Function
HealthRBAlarmOn Function
HealthRBAnalysis Statement
HealthRBAnalysis Function
HealthRBDistance Statement
HealthRBDistance Function
HealthRBInfo Statement
HealthRBInfo Function
HealthRBRateOffset Statement
HealthRBReset Statement
HealthRBSpeed Statement
HealthRBSpeed Function
HealthRBStart Statement
HealthRBStop Statement
HealthRBTRQ Statement
HealthRBTRQ Function
Here Function
Hex$ Function
HomeClr Statement
HomeDef Function
InReal Function
InsideBox Function
InsidePlane Function
InStr Function
IODef Function
IOLabel$ Function
IONumber Function
J1Angle Statement
J1Angle Function
J4Angle Statement
JA Function
Joint Statement
JumpTLZ Statement
JTran Statement
LatchEnable Statement
LatchState Function
LatchPos Function
LimZMargin Statement
LimZMargin Function
LimitTorque Statement
LimitTorque Function
LimitTorqueLP Statement
LimitTorqueLP Function
LimitTorqueStop Statement
LimitTorqueStop Function
LimitTorqueStopLP Statement
LimitTorqueStopLP Function
LJM Function
LocalDef Function
LShift64 Function
MemInW Function
MemOutW Statement
MHour Function
OLAccel Statement
OLAccel Function
OpenCom Statement
OpenCom Function
OpenDB Statement
OpenNet Statement
OpenNet Function
OutReal
OutReal Function
Manual de referencia del lenguaje SPEL+ Rev.2 959
Precaución de compatibilidad con EPSON RC+ Ver.4.*
P# Statement
PalletClr Statement
PauseOn Function
PDef Function
PDel Statement
PerformMode Statement
PerformMode Function
PG_FastStop Statement
PG_LSpeed Statement
PG_LSpeed Function
PG_Scan Statement
PG_SlowStop Statement
PLabel Statement
PLabel$ Function
PlaneClr Statement
PlaneDef Statement
Plane Statement
Plane Function
PList Statement
PLocal Statement
PLocal Function
PNumber Function
PosFound Function
PTCLR Statement
PTPBoostOK Function
PTPTime Function
PTran Statement
PTRQ Statement
PTRQ Function
QPDECELR Statement
QPDECELR Function
QPDECELS Statement
QPDECELS Function
RadToDeg Function
Randomize Statement
ReadBin Statement
Read Statement
RealAccel Function
RealPls Function
RealPos Function
RealTorque Function
RecoverPos Function
Recover Statement
Redim Statement
Rnd Function
RobotInfo Function
RobotInfo$ Function
RobotModel$ Function
RobotName$ Function
RobotSerial$ Function
RobotType Function
RShift64 Function
SafetyOn Function
SelectDB Statement
SetCom Statement
SetInW Statement
SetIn Statement
SetNet Statement
SetSw Statement
Shutdown Function
SingularityAngle
Statement
SingularityAngle Function
SingularityDist Statement
SingularityDist Function
SingularitySpeed
Statement
SingularitySpeed Function
SoftCP Statement
SoftCP Function
SpeedFactor Statement
SpeedFactor Function
StartMain Statement
SyncRobots Statement
SyncRobots Function
SysErr Function
Tab$ Function
TargetOK Function
TaskDone Function
TaskInfo Function
TaskInfo$ Function
TaskState Statement
TaskState Function
TaskWait Statement
TC Statement
TCLim Statement
TCLim Function
TCSpeed Statement
TCSpeed Function
TeachOn Function
TillOn Function
TlDef Function
Toff Statement
Ton Statement
UBound Function
UpdateDB Statement
VSD Statement
VSD Function
VxCalib Statement
VxCalDelete Statement
VxCalLoad Statement
VxCalInfo Function
VxCalSave Statement
VxTrans Function
WaitNet Statement
WaitPos Statement
Where Statement
WindosStatus Function
WriteBin Statement
Write Statement
WorkQue_Add Statement
WorkQue_AutoRemove Statement
WorkQue_AutoRemove Function
WorkQue_Get Function
WorkQue_Len Function
WorkQue_List Statement
WorkQue_Reject Statement
WorkQue_Reject Function
WorkQue_Remove Statement
WorkQue_Sort Statement
WorkQue_Sort Function
WorkQue_UserData Statement
WorkQue_UserData Function
XYLimClr Statement
XYLimDef Statement
XY Function
Manual de referencia del lenguaje SPEL+ Rev.2 960
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Ventana Command El comando se puede usar en la ventana Command.
Programa
El comando se puede usar como una instrucción en el
programa SPEL
+
.
Función El comando se puede usar como una función.
Comando
Ventana Command
Programa Función
RC+ TP3
A
AbortMotion
-
Abs
-
-
Accel
AccelMax
-
-
Accel
R
AccelS
Acos
-
-
Agl
-
-
AglToPls
-
-
Align
-
-
AlignECP
-
-
An
d
-
-
-
AOpen
-
Arc
-
Arc3
-
Arch
Arm
ArmCl
r
-
ArmDef
-
-
ArmSet
Asc
-
-
Asin
-
-
Atan
-
-
Atan2
-
-
ATCLR
-
AtHome
-
-
ATRQ
AutoLJM
AvoidSingularity
B
Base
BCl
r
-
-
BClr64
-
-
BGo
-
BMove
-
Boolean
-
-
-
BOpen
-
Box
BoxCl
r
-
BoxDef
-
-
Brake
(Solo función)
BSet
-
-
BSet64
-
-
BTst
-
-
BTst64
-
-
Byte
-
-
-
C
Calib
-
Call
-
-
-
Apéndice A: Lista de condiciones de uso de
comandos SPEL
+
Manual de referencia del lenguaje SPEL+ Rev.2 961
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
CalPls
ChDi
r
-
ChDis
k
-
ChDrive
-
ChkCom
-
-
ChkNet
-
-
Chr$
-
-
ClearPoints
-
Close
-
CloseCom
-
CloseDB
-
CloseNet
-
Cls
-
Cnv_AbortTrack
-
Cnv_Accel
Cnv_Downstream
Cnv_Fine
Cnv_LPulse
-
-
Cnv_Mode
Cnv_Name$
-
-
Cnv_Numbe
r
-
-
Cnv_OffsetAngle
Cnv_Point
-
-
Cnv_PosEr
r
-
-
Cnv_Pulse
-
-
Cnv_QueAdd
-
Cnv_QueGet
-
-
Cnv_QueLen
-
-
Cnv_QueList
-
-
Cnv_QueMove
-
Cnv_QueReject
Cnv_QueRemove
-
Cnv_QueUserData
Cnv_RobotConveyo
r
-
-
Cnv_Speed
-
-
Cnv_Trigge
r
-
Cnv_Upstream
CollisionDetect
Cont
-
-
Copy
-
Cos
-
-
CP
Ct
r
-
-
CTReset
-
CtrlDev
-
-
CtrlInfo
-
-
CurDir$
-
-
CurDisk$
-
-
CurDrive$
-
-
Cu
r
Pos
-
-
Curve
-
CVMove
-
CP_Offset
CR
CS
CT
CU
Manual de referencia del lenguaje SPEL+ Rev.2 962
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
CV
CW
CX
CY
CZ
D
Date
-
Date$
-
-
Declare
-
-
-
DegToRa
d
-
-
Del
-
DeleteDB
-
DispDev
Dist
-
-
Do...Loop
-
-
-
Double
-
-
-
E
ECP
ECPCl
r
-
ECPDef
-
-
ECPSet
ElapsedTime
-
-
Elbow
Eof
-
-
Era
-
-
EResume
-
Erf$
-
-
Erl
-
-
Er
r
-
-
Errb
ErrMsg$
-
-
Error
-
ErrorOn
-
-
Ert
-
-
EStopOn
-
-
Eval
-
-
Exit
-
-
-
ExportPoints
-
F
FbusIO_GetBusStatus
-
-
FbusIO_GetDeviceStatu
s
-
-
FbusIO_SendMsg
-
FileDataTime$
-
-
FileExists
-
-
FileLen
-
-
Fin
d
-
FindPos
-
-
Fine
FineDist
FineStatus
Fix
-
-
Flush
-
FmtSt
r
-
FmtStr$
-
-
FolderExists
-
-
For...Next
-
-
-
Force_Calibrate
-
Force_ClearTrigge
r
-
Force_GetForce
-
-
Manual de referencia del lenguaje SPEL+ Rev.2 963
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
Force_GetForces
-
Force_Senso
r
Force_SetTrigge
r
-
FreeFile
-
-
Function...Fen
d
-
-
-
G
GClose
-
GetCurrentUser$
-
-
GetRobotInsideBox
-
-
GetRobotInsidePlane
-
-
GGet
-
Global
-
-
-
Go
-
Gosub...Return
-
-
-
Goto
-
-
-
GSet
-
GShow
-
GShowDialog
-
-
H
Halt
-
-
-
Hand
HealthCtrlAlarmOn
HealthCtrlInfo
HealthCtrlRateOffset
-
HealthCtrlReset
-
HealthRateCtrlInfo
HealthRateRBInfo
HealthRBAlarmOn
HealthRBAnalysis
HealthRBDistance
HealthRBInfo
HealthRBRateOffset
-
HealthRBReset
-
HealthRBSpeed
HealthRBStart
-
HealthRBStop
-
HealthRBTRQ
Here
Hex$
-
-
Hofs
Home
-
HomeCl
r
-
HomeDef
-
-
HomeSet
Hord
r
Hou
r
I
If...Then..Else…EndIf
-
-
-
ImportPoints
-
In
-
-
InBCD
-
-
Inertia
InPos
-
-
Input
-
Input #
-
InputBox
-
InReal
-
-
InsideBox
-
-
InsidePlane
-
-
InSt
r
-
-
Manual de referencia del lenguaje SPEL+ Rev.2 964
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
Int
-
-
Int32
-
-
-
Intege
r
-
-
-
InW
-
-
IODef
-
-
IOLabel$
-
-
IONumbe
r
-
-
J
J1Angle
J4Angle
J1Flag
J2Flag
J4Flag
J6Flag
JA
-
-
Joint
-
JRange
JS
-
-
JT
-
-
JTran
-
Jump
-
Jump3
-
Jump3CP
-
JumpTLZ
-
L
LatchEnable
-
LatchPos
-
-
LatchState
-
-
LCase$
-
-
Left$
-
-
Len
-
-
LimitTorque
LimitTorqueLP
LimitTorqueStop
LimitTorqueStopLP
LimZ
LimZMargin
Line Input
-
Line Input #
-
LJM
-
-
LoadPoints
-
Local
LocalCl
r
-
LocalDef
-
-
Lof
-
-
LogIn
-
-
Long
-
-
-
LSet$
-
-
LShift
-
-
LShift64
-
-
LTrim$
-
-
M
Mas
k
-
-
-
MCal
-
MCalComplete
-
-
MCord
r
MemIn
-
-
MemInW
-
-
MemOff
-
MemOn
-
Manual de referencia del lenguaje SPEL+ Rev.2 965
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
MemOut
-
MemOutW
-
MemSw
-
-
Mid$
-
-
MHou
r
-
-
MkDi
r
-
Mod
-
-
-
Moto
r
Move
-
MsgBox
MyTask
-
-
N
N
ext
-
-
-
N
ot
-
-
-
O
Off
-
OLAccel
OLRate
On
-
OnEr
r
-
-
-
OpBCD
-
OpenCom
OpenDB
-
OpenNet
Oport
-
-
O
r
-
-
-
Out
OutReal
OutW
P
P#
-
PAgl
-
-
Pallet
PalletCl
r
-
ParseSt
r
Pass
-
Pause
-
-
-
PauseOn
-
-
PDef
-
-
PDel
-
PerformMode
PG_FastStop
-
PG_LSpeed
PG_Scan
-
PG_SlowStop
-
PLabel
-
PLabel$
-
-
Plane
PlaneCl
r
-
PlaneDef
-
-
PList
-
PLocal
Pls
-
-
PNumber
-
-
PosFound
-
-
Powe
r
PPls
-
-
Preserve
-
-
-
Print
-
Print #
-
Manual de referencia del lenguaje SPEL+ Rev.2 966
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
PTCLR
-
PTPBoost
PTPBoostO
K
-
-
PTPTime
-
-
PTran
-
PTRQ
Pulse
Q
QP
-
QPDecelR
QPDecelS
Quit
-
-
-
R
RadToDeg
-
-
Randmize
-
Range
-
Rea
d
-
ReadBin
-
Real
-
-
-
RealAccel
-
-
RealPls
-
-
RealPos
-
-
RealTorque
-
-
Recove
r
-
RecoverPos
-
-
Redi
m
-
Rename
-
RenDi
r
-
Reset
-
ResetElapsedTime
-
Restart
-
-
Resume
-
-
-
Return
-
-
-
Right$
-
-
RmDi
r
-
Rnd
-
-
Robot
RobotInfo
-
-
RobotInfo$
-
-
RobotModel$
-
-
RobotName$
-
-
RobotSerial$
-
-
RobotType
-
-
ROpen
-
RSet$
-
-
RShift64
-
-
RShift
-
-
RTrim$
-
-
RunDialog
-
-
-
S
SafetyOn
-
-
SavePoints
-
See
k
-
Select...Send
-
-
-
SelectDB
Sense
-
SetCom
-
SetIn
-
SetInReal
-
SetInW
-
Manual de referencia del lenguaje SPEL+ Rev.2 967
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
SetLatch
-
SetNet
-
SetSw
-
SFree
Sgn
-
-
Short
-
-
-
Shutdown
Signal
-
Sin
-
-
SingularityAngle
SingularityDist
SingularitySpeed
SLock
-
SoftCP
Space$
-
-
Speed
SpeedFacto
r
Speed
R
SpeedS
SPELCom_Event
-
Sqr
-
-
ST
-
-
StartMain
-
-
-
Stat
-
-
Str$
-
-
String
-
-
-
Sw
-
-
SyncLoc
k
-
-
-
SyncUnlock
-
-
-
SyncRobots
SysConfig
-
-
SysErr
-
-
T
Tab$
-
-
Tan
-
-
TargetO
K
-
-
TaskDone
-
-
TaskInfo
-
-
TaskInfo$
-
-
TaskState
TaskWait
-
TC
-
TCLim
TCPSpeed
-
-
TCSpeed
TeachOn
-
-
TGo
-
Till
-
TillOn
-
-
Time
Time$
-
-
TLCl
r
-
TLDef
-
-
TLSet
TMOut
-
TMove
-
Tm
r
-
-
TmReset
-
Manual de referencia del lenguaje SPEL+ Rev.2 968
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Comando
Ventana Command
Programa Función
RC+ TP3
Toff
-
Ton
-
Tool
Trap
-
-
-
Trim$
-
-
TW
-
-
U
UBound
-
-
UByte
-
-
-
UCase$
-
-
UInt32
-
-
-
UOpen
-
UpdateDB
-
UShort
-
-
-
V
Val
-
-
VCal
-
VCalPoints
-
VCls
-
-
-
VCreateCalibration
-
-
-
VCreateObject
-
-
-
VCreateSequence
-
-
-
VDeleteCalibration
-
-
-
VDeleteObject
-
-
-
VDeleteSequence
-
-
-
VGet
-
-
-
VisCalib
-
-
-
-
VisCalInfo
-
-
-
VisCalLoad
-
-
-
-
VisCalSave
-
-
-
-
VisTrans
-
-
-
VLoad
-
-
-
VRun
-
-
-
VSave
-
-
-
VSaveImage
-
-
-
VSD
VSet
-
-
-
VShowModel
-
-
-
-
VStatsReset
-
-
-
VStatsResetAll
-
-
-
VStatsSave
-
-
-
VStatsShow
-
VTeach
-
-
-
VTrain
-
-
-
VxCalib
-
VxCalDelete
-
VxCalLoa
d
-
VxCalInfo
-
-
VxCalSave
-
VxTrans
-
-
W
Wait
-
WaitNet
-
WaitPos
-
WaitSig
-
Weight
Where
-
-
WindowStatus
-
-
WorkQue_Add
-
WorkQue_AutoRemove
Apéndice A: Lista de condiciones de uso de comandos de SPEL+
Manual de referencia del lenguaje SPEL+ Rev.2 969
Comando
Ventana Command
Programa Función
RC+ TP3
WorkQue_Get
WorkQue_Len
WorkQue_List
-
-
WorkQue_Reject
WorkQue_Remove
-
WorkQue_Sort
WorkQue_UserData
WOpen
-
Wrist
Write
-
WriteBin
-
X
Xo
r
-
-
-
Xqt
-
-
-
XY
-
-
XYLim
XYLimCl
r
-
XYLimDef
-
-
  • Page 1 1
  • Page 2 2
  • Page 3 3
  • Page 4 4
  • Page 5 5
  • Page 6 6
  • Page 7 7
  • Page 8 8
  • Page 9 9
  • Page 10 10
  • Page 11 11
  • Page 12 12
  • Page 13 13
  • Page 14 14
  • Page 15 15
  • Page 16 16
  • Page 17 17
  • Page 18 18
  • Page 19 19
  • Page 20 20
  • Page 21 21
  • Page 22 22
  • Page 23 23
  • Page 24 24
  • Page 25 25
  • Page 26 26
  • Page 27 27
  • Page 28 28
  • Page 29 29
  • Page 30 30
  • Page 31 31
  • Page 32 32
  • Page 33 33
  • Page 34 34
  • Page 35 35
  • Page 36 36
  • Page 37 37
  • Page 38 38
  • Page 39 39
  • Page 40 40
  • Page 41 41
  • Page 42 42
  • Page 43 43
  • Page 44 44
  • Page 45 45
  • Page 46 46
  • Page 47 47
  • Page 48 48
  • Page 49 49
  • Page 50 50
  • Page 51 51
  • Page 52 52
  • Page 53 53
  • Page 54 54
  • Page 55 55
  • Page 56 56
  • Page 57 57
  • Page 58 58
  • Page 59 59
  • Page 60 60
  • Page 61 61
  • Page 62 62
  • Page 63 63
  • Page 64 64
  • Page 65 65
  • Page 66 66
  • Page 67 67
  • Page 68 68
  • Page 69 69
  • Page 70 70
  • Page 71 71
  • Page 72 72
  • Page 73 73
  • Page 74 74
  • Page 75 75
  • Page 76 76
  • Page 77 77
  • Page 78 78
  • Page 79 79
  • Page 80 80
  • Page 81 81
  • Page 82 82
  • Page 83 83
  • Page 84 84
  • Page 85 85
  • Page 86 86
  • Page 87 87
  • Page 88 88
  • Page 89 89
  • Page 90 90
  • Page 91 91
  • Page 92 92
  • Page 93 93
  • Page 94 94
  • Page 95 95
  • Page 96 96
  • Page 97 97
  • Page 98 98
  • Page 99 99
  • Page 100 100
  • Page 101 101
  • Page 102 102
  • Page 103 103
  • Page 104 104
  • Page 105 105
  • Page 106 106
  • Page 107 107
  • Page 108 108
  • Page 109 109
  • Page 110 110
  • Page 111 111
  • Page 112 112
  • Page 113 113
  • Page 114 114
  • Page 115 115
  • Page 116 116
  • Page 117 117
  • Page 118 118
  • Page 119 119
  • Page 120 120
  • Page 121 121
  • Page 122 122
  • Page 123 123
  • Page 124 124
  • Page 125 125
  • Page 126 126
  • Page 127 127
  • Page 128 128
  • Page 129 129
  • Page 130 130
  • Page 131 131
  • Page 132 132
  • Page 133 133
  • Page 134 134
  • Page 135 135
  • Page 136 136
  • Page 137 137
  • Page 138 138
  • Page 139 139
  • Page 140 140
  • Page 141 141
  • Page 142 142
  • Page 143 143
  • Page 144 144
  • Page 145 145
  • Page 146 146
  • Page 147 147
  • Page 148 148
  • Page 149 149
  • Page 150 150
  • Page 151 151
  • Page 152 152
  • Page 153 153
  • Page 154 154
  • Page 155 155
  • Page 156 156
  • Page 157 157
  • Page 158 158
  • Page 159 159
  • Page 160 160
  • Page 161 161
  • Page 162 162
  • Page 163 163
  • Page 164 164
  • Page 165 165
  • Page 166 166
  • Page 167 167
  • Page 168 168
  • Page 169 169
  • Page 170 170
  • Page 171 171
  • Page 172 172
  • Page 173 173
  • Page 174 174
  • Page 175 175
  • Page 176 176
  • Page 177 177
  • Page 178 178
  • Page 179 179
  • Page 180 180
  • Page 181 181
  • Page 182 182
  • Page 183 183
  • Page 184 184
  • Page 185 185
  • Page 186 186
  • Page 187 187
  • Page 188 188
  • Page 189 189
  • Page 190 190
  • Page 191 191
  • Page 192 192
  • Page 193 193
  • Page 194 194
  • Page 195 195
  • Page 196 196
  • Page 197 197
  • Page 198 198
  • Page 199 199
  • Page 200 200
  • Page 201 201
  • Page 202 202
  • Page 203 203
  • Page 204 204
  • Page 205 205
  • Page 206 206
  • Page 207 207
  • Page 208 208
  • Page 209 209
  • Page 210 210
  • Page 211 211
  • Page 212 212
  • Page 213 213
  • Page 214 214
  • Page 215 215
  • Page 216 216
  • Page 217 217
  • Page 218 218
  • Page 219 219
  • Page 220 220
  • Page 221 221
  • Page 222 222
  • Page 223 223
  • Page 224 224
  • Page 225 225
  • Page 226 226
  • Page 227 227
  • Page 228 228
  • Page 229 229
  • Page 230 230
  • Page 231 231
  • Page 232 232
  • Page 233 233
  • Page 234 234
  • Page 235 235
  • Page 236 236
  • Page 237 237
  • Page 238 238
  • Page 239 239
  • Page 240 240
  • Page 241 241
  • Page 242 242
  • Page 243 243
  • Page 244 244
  • Page 245 245
  • Page 246 246
  • Page 247 247
  • Page 248 248
  • Page 249 249
  • Page 250 250
  • Page 251 251
  • Page 252 252
  • Page 253 253
  • Page 254 254
  • Page 255 255
  • Page 256 256
  • Page 257 257
  • Page 258 258
  • Page 259 259
  • Page 260 260
  • Page 261 261
  • Page 262 262
  • Page 263 263
  • Page 264 264
  • Page 265 265
  • Page 266 266
  • Page 267 267
  • Page 268 268
  • Page 269 269
  • Page 270 270
  • Page 271 271
  • Page 272 272
  • Page 273 273
  • Page 274 274
  • Page 275 275
  • Page 276 276
  • Page 277 277
  • Page 278 278
  • Page 279 279
  • Page 280 280
  • Page 281 281
  • Page 282 282
  • Page 283 283
  • Page 284 284
  • Page 285 285
  • Page 286 286
  • Page 287 287
  • Page 288 288
  • Page 289 289
  • Page 290 290
  • Page 291 291
  • Page 292 292
  • Page 293 293
  • Page 294 294
  • Page 295 295
  • Page 296 296
  • Page 297 297
  • Page 298 298
  • Page 299 299
  • Page 300 300
  • Page 301 301
  • Page 302 302
  • Page 303 303
  • Page 304 304
  • Page 305 305
  • Page 306 306
  • Page 307 307
  • Page 308 308
  • Page 309 309
  • Page 310 310
  • Page 311 311
  • Page 312 312
  • Page 313 313
  • Page 314 314
  • Page 315 315
  • Page 316 316
  • Page 317 317
  • Page 318 318
  • Page 319 319
  • Page 320 320
  • Page 321 321
  • Page 322 322
  • Page 323 323
  • Page 324 324
  • Page 325 325
  • Page 326 326
  • Page 327 327
  • Page 328 328
  • Page 329 329
  • Page 330 330
  • Page 331 331
  • Page 332 332
  • Page 333 333
  • Page 334 334
  • Page 335 335
  • Page 336 336
  • Page 337 337
  • Page 338 338
  • Page 339 339
  • Page 340 340
  • Page 341 341
  • Page 342 342
  • Page 343 343
  • Page 344 344
  • Page 345 345
  • Page 346 346
  • Page 347 347
  • Page 348 348
  • Page 349 349
  • Page 350 350
  • Page 351 351
  • Page 352 352
  • Page 353 353
  • Page 354 354
  • Page 355 355
  • Page 356 356
  • Page 357 357
  • Page 358 358
  • Page 359 359
  • Page 360 360
  • Page 361 361
  • Page 362 362
  • Page 363 363
  • Page 364 364
  • Page 365 365
  • Page 366 366
  • Page 367 367
  • Page 368 368
  • Page 369 369
  • Page 370 370
  • Page 371 371
  • Page 372 372
  • Page 373 373
  • Page 374 374
  • Page 375 375
  • Page 376 376
  • Page 377 377
  • Page 378 378
  • Page 379 379
  • Page 380 380
  • Page 381 381
  • Page 382 382
  • Page 383 383
  • Page 384 384
  • Page 385 385
  • Page 386 386
  • Page 387 387
  • Page 388 388
  • Page 389 389
  • Page 390 390
  • Page 391 391
  • Page 392 392
  • Page 393 393
  • Page 394 394
  • Page 395 395
  • Page 396 396
  • Page 397 397
  • Page 398 398
  • Page 399 399
  • Page 400 400
  • Page 401 401
  • Page 402 402
  • Page 403 403
  • Page 404 404
  • Page 405 405
  • Page 406 406
  • Page 407 407
  • Page 408 408
  • Page 409 409
  • Page 410 410
  • Page 411 411
  • Page 412 412
  • Page 413 413
  • Page 414 414
  • Page 415 415
  • Page 416 416
  • Page 417 417
  • Page 418 418
  • Page 419 419
  • Page 420 420
  • Page 421 421
  • Page 422 422
  • Page 423 423
  • Page 424 424
  • Page 425 425
  • Page 426 426
  • Page 427 427
  • Page 428 428
  • Page 429 429
  • Page 430 430
  • Page 431 431
  • Page 432 432
  • Page 433 433
  • Page 434 434
  • Page 435 435
  • Page 436 436
  • Page 437 437
  • Page 438 438
  • Page 439 439
  • Page 440 440
  • Page 441 441
  • Page 442 442
  • Page 443 443
  • Page 444 444
  • Page 445 445
  • Page 446 446
  • Page 447 447
  • Page 448 448
  • Page 449 449
  • Page 450 450
  • Page 451 451
  • Page 452 452
  • Page 453 453
  • Page 454 454
  • Page 455 455
  • Page 456 456
  • Page 457 457
  • Page 458 458
  • Page 459 459
  • Page 460 460
  • Page 461 461
  • Page 462 462
  • Page 463 463
  • Page 464 464
  • Page 465 465
  • Page 466 466
  • Page 467 467
  • Page 468 468
  • Page 469 469
  • Page 470 470
  • Page 471 471
  • Page 472 472
  • Page 473 473
  • Page 474 474
  • Page 475 475
  • Page 476 476
  • Page 477 477
  • Page 478 478
  • Page 479 479
  • Page 480 480
  • Page 481 481
  • Page 482 482
  • Page 483 483
  • Page 484 484
  • Page 485 485
  • Page 486 486
  • Page 487 487
  • Page 488 488
  • Page 489 489
  • Page 490 490
  • Page 491 491
  • Page 492 492
  • Page 493 493
  • Page 494 494
  • Page 495 495
  • Page 496 496
  • Page 497 497
  • Page 498 498
  • Page 499 499
  • Page 500 500
  • Page 501 501
  • Page 502 502
  • Page 503 503
  • Page 504 504
  • Page 505 505
  • Page 506 506
  • Page 507 507
  • Page 508 508
  • Page 509 509
  • Page 510 510
  • Page 511 511
  • Page 512 512
  • Page 513 513
  • Page 514 514
  • Page 515 515
  • Page 516 516
  • Page 517 517
  • Page 518 518
  • Page 519 519
  • Page 520 520
  • Page 521 521
  • Page 522 522
  • Page 523 523
  • Page 524 524
  • Page 525 525
  • Page 526 526
  • Page 527 527
  • Page 528 528
  • Page 529 529
  • Page 530 530
  • Page 531 531
  • Page 532 532
  • Page 533 533
  • Page 534 534
  • Page 535 535
  • Page 536 536
  • Page 537 537
  • Page 538 538
  • Page 539 539
  • Page 540 540
  • Page 541 541
  • Page 542 542
  • Page 543 543
  • Page 544 544
  • Page 545 545
  • Page 546 546
  • Page 547 547
  • Page 548 548
  • Page 549 549
  • Page 550 550
  • Page 551 551
  • Page 552 552
  • Page 553 553
  • Page 554 554
  • Page 555 555
  • Page 556 556
  • Page 557 557
  • Page 558 558
  • Page 559 559
  • Page 560 560
  • Page 561 561
  • Page 562 562
  • Page 563 563
  • Page 564 564
  • Page 565 565
  • Page 566 566
  • Page 567 567
  • Page 568 568
  • Page 569 569
  • Page 570 570
  • Page 571 571
  • Page 572 572
  • Page 573 573
  • Page 574 574
  • Page 575 575
  • Page 576 576
  • Page 577 577
  • Page 578 578
  • Page 579 579
  • Page 580 580
  • Page 581 581
  • Page 582 582
  • Page 583 583
  • Page 584 584
  • Page 585 585
  • Page 586 586
  • Page 587 587
  • Page 588 588
  • Page 589 589
  • Page 590 590
  • Page 591 591
  • Page 592 592
  • Page 593 593
  • Page 594 594
  • Page 595 595
  • Page 596 596
  • Page 597 597
  • Page 598 598
  • Page 599 599
  • Page 600 600
  • Page 601 601
  • Page 602 602
  • Page 603 603
  • Page 604 604
  • Page 605 605
  • Page 606 606
  • Page 607 607
  • Page 608 608
  • Page 609 609
  • Page 610 610
  • Page 611 611
  • Page 612 612
  • Page 613 613
  • Page 614 614
  • Page 615 615
  • Page 616 616
  • Page 617 617
  • Page 618 618
  • Page 619 619
  • Page 620 620
  • Page 621 621
  • Page 622 622
  • Page 623 623
  • Page 624 624
  • Page 625 625
  • Page 626 626
  • Page 627 627
  • Page 628 628
  • Page 629 629
  • Page 630 630
  • Page 631 631
  • Page 632 632
  • Page 633 633
  • Page 634 634
  • Page 635 635
  • Page 636 636
  • Page 637 637
  • Page 638 638
  • Page 639 639
  • Page 640 640
  • Page 641 641
  • Page 642 642
  • Page 643 643
  • Page 644 644
  • Page 645 645
  • Page 646 646
  • Page 647 647
  • Page 648 648
  • Page 649 649
  • Page 650 650
  • Page 651 651
  • Page 652 652
  • Page 653 653
  • Page 654 654
  • Page 655 655
  • Page 656 656
  • Page 657 657
  • Page 658 658
  • Page 659 659
  • Page 660 660
  • Page 661 661
  • Page 662 662
  • Page 663 663
  • Page 664 664
  • Page 665 665
  • Page 666 666
  • Page 667 667
  • Page 668 668
  • Page 669 669
  • Page 670 670
  • Page 671 671
  • Page 672 672
  • Page 673 673
  • Page 674 674
  • Page 675 675
  • Page 676 676
  • Page 677 677
  • Page 678 678
  • Page 679 679
  • Page 680 680
  • Page 681 681
  • Page 682 682
  • Page 683 683
  • Page 684 684
  • Page 685 685
  • Page 686 686
  • Page 687 687
  • Page 688 688
  • Page 689 689
  • Page 690 690
  • Page 691 691
  • Page 692 692
  • Page 693 693
  • Page 694 694
  • Page 695 695
  • Page 696 696
  • Page 697 697
  • Page 698 698
  • Page 699 699
  • Page 700 700
  • Page 701 701
  • Page 702 702
  • Page 703 703
  • Page 704 704
  • Page 705 705
  • Page 706 706
  • Page 707 707
  • Page 708 708
  • Page 709 709
  • Page 710 710
  • Page 711 711
  • Page 712 712
  • Page 713 713
  • Page 714 714
  • Page 715 715
  • Page 716 716
  • Page 717 717
  • Page 718 718
  • Page 719 719
  • Page 720 720
  • Page 721 721
  • Page 722 722
  • Page 723 723
  • Page 724 724
  • Page 725 725
  • Page 726 726
  • Page 727 727
  • Page 728 728
  • Page 729 729
  • Page 730 730
  • Page 731 731
  • Page 732 732
  • Page 733 733
  • Page 734 734
  • Page 735 735
  • Page 736 736
  • Page 737 737
  • Page 738 738
  • Page 739 739
  • Page 740 740
  • Page 741 741
  • Page 742 742
  • Page 743 743
  • Page 744 744
  • Page 745 745
  • Page 746 746
  • Page 747 747
  • Page 748 748
  • Page 749 749
  • Page 750 750
  • Page 751 751
  • Page 752 752
  • Page 753 753
  • Page 754 754
  • Page 755 755
  • Page 756 756
  • Page 757 757
  • Page 758 758
  • Page 759 759
  • Page 760 760
  • Page 761 761
  • Page 762 762
  • Page 763 763
  • Page 764 764
  • Page 765 765
  • Page 766 766
  • Page 767 767
  • Page 768 768
  • Page 769 769
  • Page 770 770
  • Page 771 771
  • Page 772 772
  • Page 773 773
  • Page 774 774
  • Page 775 775
  • Page 776 776
  • Page 777 777
  • Page 778 778
  • Page 779 779
  • Page 780 780
  • Page 781 781
  • Page 782 782
  • Page 783 783
  • Page 784 784
  • Page 785 785
  • Page 786 786
  • Page 787 787
  • Page 788 788
  • Page 789 789
  • Page 790 790
  • Page 791 791
  • Page 792 792
  • Page 793 793
  • Page 794 794
  • Page 795 795
  • Page 796 796
  • Page 797 797
  • Page 798 798
  • Page 799 799
  • Page 800 800
  • Page 801 801
  • Page 802 802
  • Page 803 803
  • Page 804 804
  • Page 805 805
  • Page 806 806
  • Page 807 807
  • Page 808 808
  • Page 809 809
  • Page 810 810
  • Page 811 811
  • Page 812 812
  • Page 813 813
  • Page 814 814
  • Page 815 815
  • Page 816 816
  • Page 817 817
  • Page 818 818
  • Page 819 819
  • Page 820 820
  • Page 821 821
  • Page 822 822
  • Page 823 823
  • Page 824 824
  • Page 825 825
  • Page 826 826
  • Page 827 827
  • Page 828 828
  • Page 829 829
  • Page 830 830
  • Page 831 831
  • Page 832 832
  • Page 833 833
  • Page 834 834
  • Page 835 835
  • Page 836 836
  • Page 837 837
  • Page 838 838
  • Page 839 839
  • Page 840 840
  • Page 841 841
  • Page 842 842
  • Page 843 843
  • Page 844 844
  • Page 845 845
  • Page 846 846
  • Page 847 847
  • Page 848 848
  • Page 849 849
  • Page 850 850
  • Page 851 851
  • Page 852 852
  • Page 853 853
  • Page 854 854
  • Page 855 855
  • Page 856 856
  • Page 857 857
  • Page 858 858
  • Page 859 859
  • Page 860 860
  • Page 861 861
  • Page 862 862
  • Page 863 863
  • Page 864 864
  • Page 865 865
  • Page 866 866
  • Page 867 867
  • Page 868 868
  • Page 869 869
  • Page 870 870
  • Page 871 871
  • Page 872 872
  • Page 873 873
  • Page 874 874
  • Page 875 875
  • Page 876 876
  • Page 877 877
  • Page 878 878
  • Page 879 879
  • Page 880 880
  • Page 881 881
  • Page 882 882
  • Page 883 883
  • Page 884 884
  • Page 885 885
  • Page 886 886
  • Page 887 887
  • Page 888 888
  • Page 889 889
  • Page 890 890
  • Page 891 891
  • Page 892 892
  • Page 893 893
  • Page 894 894
  • Page 895 895
  • Page 896 896
  • Page 897 897
  • Page 898 898
  • Page 899 899
  • Page 900 900
  • Page 901 901
  • Page 902 902
  • Page 903 903
  • Page 904 904
  • Page 905 905
  • Page 906 906
  • Page 907 907
  • Page 908 908
  • Page 909 909
  • Page 910 910
  • Page 911 911
  • Page 912 912
  • Page 913 913
  • Page 914 914
  • Page 915 915
  • Page 916 916
  • Page 917 917
  • Page 918 918
  • Page 919 919
  • Page 920 920
  • Page 921 921
  • Page 922 922
  • Page 923 923
  • Page 924 924
  • Page 925 925
  • Page 926 926
  • Page 927 927
  • Page 928 928
  • Page 929 929
  • Page 930 930
  • Page 931 931
  • Page 932 932
  • Page 933 933
  • Page 934 934
  • Page 935 935
  • Page 936 936
  • Page 937 937
  • Page 938 938
  • Page 939 939
  • Page 940 940
  • Page 941 941
  • Page 942 942
  • Page 943 943
  • Page 944 944
  • Page 945 945
  • Page 946 946
  • Page 947 947
  • Page 948 948
  • Page 949 949
  • Page 950 950
  • Page 951 951
  • Page 952 952
  • Page 953 953
  • Page 954 954
  • Page 955 955
  • Page 956 956
  • Page 957 957
  • Page 958 958
  • Page 959 959
  • Page 960 960
  • Page 961 961
  • Page 962 962
  • Page 963 963
  • Page 964 964
  • Page 965 965
  • Page 966 966
  • Page 967 967
  • Page 968 968
  • Page 969 969
  • Page 970 970
  • Page 971 971
  • Page 972 972
  • Page 973 973
  • Page 974 974
  • Page 975 975

Epson T3 SCARA Robots Manual de usuario

Tipo
Manual de usuario
Este manual también es adecuado para