Está en la página 1de 472

Manual de referencia de RAPID

BaseWare
Manual de referencia de RAPID la parte 1, Instrucciones A-Z

RobotWare-OS 4.0
Manual de referencia de RAPID
3HAC 7778-1
La revisin A

BaseWare
Manual de referencia de RAPID la parte 1, ndice
Instrucciones A-Z

Instrucctiones A-Z

ndice alfabtico

Manual de referencia de RAPID la parte 1, Instrucciones A-Z


La informacin de este manual puede cambiar sin previo aviso y no puede entenderse como un compromiso por
parte de ABB. ABB no se hace responsable de ningn error que pueda aparecer en este manual.

Excepto en los casos en que se indica expresamente en este manual, ninguna parte del mismo debe entenderse
como ninguna garanta por parte de ABB por las prdidas, lesiones, daos materiales, idoneidad para un fin
determinado ni garantas similares.

Se prohibe la reproduccin o la copia de este manual o cualquiera de sus partes si no se cuenta con una
autorizacin escrita de ABB. Ninguna parte de este manual debe ser entregada a terceros ni utilizada para fines
no autorizados. Cualquier incumplimiento de esta norma ser perseguida legalmente.

Usted puede obtener copias adicionales de este manual a travs de ABB, con el coste aplicable en el momento
de su solicitud.

2003 ABB Reservados todos los derechos.

ABB Automation Technology Products AB


Robotics
SE-721 68 Vsters
Suecia

Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ndice

AccSet - Reduce la aceleracin................................................................................................... 1


ActUnit - Activa una unidad mecnica ..................................................................................... 3
Add - Suma un valor numrico.................................................................................................. 5
:= - Asigna un valor................................................................................................................. 7
Break - Interrumpir la ejecucin del programa....................................................................... 9
CallByVar - Llamar a un procedimiento mediante una variable ......................................... 11
CancelLoad - Cancelar la carga de un mdulo ...................................................................... 15
CirPathMode - Reorientacin de la herramienta durante trayectorias circulares............. 17
Clear - Borrar el valor .............................................................................................................. 21
ClearIOBuff - Vaca el bfer de entrada de un canal serie ................................................... 23
ClearPath - Eliminar la trayectoria actual ............................................................................. 25
ClkReset - Pone a cero un reloj utilizado como temporizador ............................................. 27
ClkStart - Pone en marcha un reloj utilizado para la temporizacin .................................. 29
ClkStop - Detiene un reloj utilizado para la temporizacin .................................................. 31
comment - Comentario ............................................................................................................. 33
Compact IF (IF compacto) - Si se cumple una condicin, entonces... (una instruccin).... 35
ConfJ - Controla la configuracin durante el movimiento de los ejes ................................. 37
ConfL - Monitoriza la configuracin durante el movimiento lineal..................................... 39
Close - Cierra un archivo o un canal serie .............................................................................. 43
CONNECT - Conecta una interrupcin a una rutina TRAP ............................................... 45
DeactUnit - Desactiva una unidad mecnica .......................................................................... 47
Decr - Reduce un nmero en 1................................................................................................. 49
DitherAct - Activa la funcin de oscilacin del servo suave.................................................. 51
DitherDeact - Desactiva la funcin de oscilacin del servo suave......................................... 55
EOffsOff - Desactiva un offset de ejes externos...................................................................... 57
EOffsOn - Activa un offset de ejes externos ........................................................................... 59
EOffsSet - Activa un offset de ejes externos a partir de un valor......................................... 61
ErrWrite - Escribir un mensaje de error................................................................................ 63
EXIT - Finaliza la ejecucin del programa............................................................................. 65
ExitCycle - Interrumpir el ciclo actual y pasar al siguiente.................................................. 67
FOR - Repite una operacin un nmero determinado de veces ........................................... 69
GetSysData - Obtencin de datos del sistema......................................................................... 73
GetTrapData - Obtencin de datos de interrupcin para la rutina TRAP actual .............. 75
GOTO - Salta a otra instruccin.............................................................................................. 77
GripLoad - Define la carga til del robot ............................................................................... 79
IDelete - Cancela una interrupcin ......................................................................................... 81
IDisable - Desactiva todas las interrupciones ......................................................................... 83
IEnable - Habilita el uso de interrupciones ............................................................................ 85

Manual de referencia de RAPID la parte 1, Instrucciones A-Z I


ndice

IError - Solicita una interrupcin para errores ..................................................................... 87


IF - Si se cumple una condicin, ...; de lo contrario, ... .......................................................... 91
Incr - Aumenta en 1 un valor ................................................................................................... 93
InvertDO - Invierte el valor de una seal de salida digital ................................................... 95
IODisable - Desactiva una unidad de E/S ............................................................................... 97
IODNGetAttr - Obtiene un atributo de una unidad de E/S ................................................ 101
IODNSetAttr - Establece un atributo para una unidad de E/S .......................................... 103
IOEnable - Activa una unidad de E/S ................................................................................... 107
ISignalAI - Interrupciones a partir de una seal analgica de entrada..............................111
ISignalAO - Interrupciones a partir de una seal analgica de salida .............................. 123
ISignalDI - Solicita interrupciones a partir de una seal digital de entrada..................... 127
ISignalDO - Interrupciones a partir de una seal digital de salida.................................... 131
ISleep - Desactiva una interrupcin ...................................................................................... 135
ITimer - Solicita una interrupcin temporizada .................................................................. 137
IVarValue - Solicita una interrupcin a partir del valor de una variable.......................... 141
IWatch - Activar una interrupcin........................................................................................ 143
Etiqueta - Nombre de lnea..................................................................................................... 145
Load - Carga un mdulo de programa durante la ejecucin.............................................. 147
MechUnitLoad - Define una carga til para una unidad mecnica ................................... 151
MoveAbsJ - Mueve el robot a una posicin de ejes absoluta .............................................. 155
MoveC - Mueve el robot en crculo........................................................................................ 161
MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la
esquina ................................................................................................................................ 167
MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de
RAPID................................................................................................................................. 171
MoveJ - Mueve el robot mediante un movimiento de ejes .................................................. 175
MoveJDO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en
la esquina ............................................................................................................................ 179
MoveJSync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de
RAPID................................................................................................................................. 183
MoveL - Mueve el robot siguiendo una trayectoria lineal................................................... 187
MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina...... 191
MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID..... 195
MToolRotCalib - Calibracin de la rotacin de una herramienta mvil........................... 199
MToolTCPCalib - Calibracin del TCP de una herramienta mvil .................................. 203
Open - Abre un archivo o un canal serie............................................................................... 207
PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria........................ 211
PathResol - Ajusta la resolucin de la trayectoria ............................................................... 215
PDispOff - Desactiva el desplazamiento de programa......................................................... 219

Manual de referencia de RAPID la parte 1, Instrucciones A-Z II


ndice

PDispOn - Activa el desplazamiento de programa .............................................................. 221


PDispSet - Activa un desplazamiento de programa a partir de un valor .......................... 225
ProcCall - Llama a un nuevo procedimiento ........................................................................ 229
PulseDO - Genera un pulso en una seal digital de salida .................................................. 231
RAISE - Llama a un gestor de errores.................................................................................. 235
ReadAnyBin - Lee datos de un canal serie o un archivo binario........................................ 237
ReadErrData - Obtiene informacin sobre un error........................................................... 241
Reset - Pone a cero una seal digital de salida ..................................................................... 245
RestoPath - Restablece la trayectoria despus de una interrupcin .................................. 247
RETRY - Reanuda la ejecucin despus de un error .......................................................... 249
RETURN - Finaliza la ejecucin de una rutina.................................................................... 251
Rewind - Rebobina la posicin del archivo........................................................................... 253
Save - Guarda un mdulo de programa................................................................................ 255
SearchC - Realiza una bsqueda en crculo usando el robot .............................................. 259
SearchL - Realiza una bsqueda lineal usando el robot...................................................... 267
Set - Activa una seal digital de salida .................................................................................. 275
SetAO - Cambia el valor de una seal analgica de salida ................................................. 277
InvertDO - Invierte el valor de una seal digital de salida ................................................. 279
SetGO - Cambia el valor de un grupo de seales digitales de salida.................................. 281
SingArea - Define el mtodo de interpolacin alrededor de puntos singulares................. 283
SkipWarn - Omitir la ltima advertencia............................................................................. 285
SoftAct - Activa el servo suave............................................................................................... 287
SoftDeact - Desactiva el servo suave...................................................................................... 289
SpyStart - Comienza la grabacin de los datos de tiempo de ejecucin............................. 291
SpyStop - Detiene la grabacin de los datos de tiempo de ejecucin.................................. 295
StartLoad - Carga un mdulo de programa durante la ejecucin ..................................... 297
StartMove - Reanuda el movimiento del robot..................................................................... 301
SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta estacionaria303
SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria......................... 307
Stop - Detiene la ejecucin del programa.............................................................................. 311
StopMove - Detiene el movimiento del robot........................................................................ 313
StorePath - Almacena la trayectoria cuando se produce una interrupcin....................... 315
TEST - En funcin del valor de una expresin..................................................................... 317
TestSignDefine - Define una seal de prueba ....................................................................... 319
TestSignReset - Restablece todas las definiciones de seales de prueba ............................ 323
TPErase - Borra el texto mostrado en la unidad de programacin ................................... 325
TPReadFK - Lee las teclas de funcin................................................................................... 327
TPReadNum - Lee un nmero de la unidad de programacin........................................... 331

Manual de referencia de RAPID la parte 1, Instrucciones A-Z III


ndice

TPShow - Cambia de ventana en la unidad de programacin............................................ 335


TPWrite - Escribe en la unidad de programacin ............................................................... 337
TriggC - Movimiento circular del robot con eventos ........................................................... 339
TriggCheckIO - Define una comprobacin de E/S en una posicin fija ............................ 345
TriggEquip - Define un evento de E/S basado en la posicin y el tiempo .......................... 351
TriggInt - Define una interrupcin dependiente de una posicin....................................... 357
TriggIO - Define un evento de E/S basado en la posicin.................................................... 363
TriggJ - Movimientos de ejes del robot a partir de eventos ................................................ 369
TriggL - Movimiento lineal del robot con eventos ............................................................... 375
TRYNEXT - Salta sobre una instruccin que ha provocado un error............................... 381
TuneReset - Restablecimiento del ajuste del servo............................................................... 383
TuneServo - Ajuste de servos ................................................................................................. 385
UnLoad - Descarga un mdulo de programa durante la ejecucin.................................... 391
WaitDI - Espera hasta que se activa una seal digital de entrada...................................... 395
WaitDO - Espera hasta que se activa una seal digital de salida ....................................... 397
WaitLoad - Conecta el mdulo cargado a una tarea ........................................................... 399
WaitTime - Espera una cantidad de tiempo determinado .................................................. 403
WaitUntil - Espera hasta que se cumple una condicin....................................................... 405
VelSet - Cambia la velocidad programada............................................................................ 409
WHILE - Repite una o varias operaciones siempre y cuando... ......................................... 411
WorldAccLim - Control de aceleracin en el sistema de coordenadas mundo ................. 413
Write - Escribe en un archivo o un canal serie alfanumrico ............................................. 415
WriteAnyBin - Escribe datos en un canal serie o un archivo binario ................................ 419
WriteBin - Escribe en un canal serie binario........................................................................ 421
WriteStrBin - Escribe una cadena de caracteres en un canal serie binario....................... 423
WZBoxDef - Define una zona mundo con forma de prisma ............................................... 425
WZCylDef - Define una zona mundo con forma cilndrica................................................. 429
WZDisable - Desactiva la supervisin de las zonas mundo temporales............................. 433
WZDOSet - Activacin de salidas digitales basadas en zonas mundo ............................... 435
WZEnable - Activa la supervisin de las zonas mundo temporales................................... 439
WZFree - Elimina la supervisin de las zonas mundo temporales..................................... 441
WZHomeJointDef - Define una zona mundo para las posiciones iniciales de los ejes ..... 443
WZLimJointDef - Define una zona mundo para la limitacin de los ejes ......................... 447
WZLimSup - Activa la supervisin de lmites de las zonas mundo.................................... 451
WZSphDef - Define una zona mundo con forma esfrica ................................................... 455

Manual de referencia de RAPID la parte 1, Instrucciones A-Z IV


AccSet
Instruccin

AccSet - Reduce la aceleracin


AccSet se utiliza para manejar cargas frgiles. Permite obtener aceleraciones y
deceleraciones ms lentas, lo que da lugar a movimientos ms suaves en el robot.

Ejemplos
AccSet 50, 100;

La aceleracin se limita al 50% del valor normal.

AccSet 100, 50;

La pendiente de aceleracin se limita al 50% del valor normal.

Argumentos
AccSet Acc Ramp
Acc Tipo de dato: num

Aceleracin y deceleracin como porcentaje de los valores normales.


El 100% es la aceleracin mxima. Valor mximo: 100%.
Un valor de entrada < 20% proporciona un 20% de la aceleracin mxima.

Ramp Tipo de dato: num

La proporcin en que la aceleracin y deceleracin aumentan como porcentaje


de los valores normales (consulte la Figura 1). La reduccin de este valor permite
limitar la vibracin.
El 100% es el valor mximo. Valor mximo: 100%.
Un valor de entrada < 10% proporciona un 10% del valor mximo.

Aceleracin

Tiempo
AccSet 100, 100, es decir, aceleracin normal
Aceleracin Aceleracin

Tiempo Tiempo
AccSet 30, 100 AccSet 100, 30
Figura 1 La reduccin de la aceleracin da como resultados unos movimientos ms suaves.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 1


AccSet
Instruccin

Ejecucin de programas
La aceleracin se aplica tanto a los ejes del robot como a los ejes externos hasta que se
ejecuta una nueva instruccin AccSet.

Los valores predeterminados (100%) se establecen automticamente en los casos


siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio.

Sintaxis
AccSet
[ Acc := ] < expresin (IN) de num > ,
[ Ramp := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento

2 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ActUnit
Instruccin

ActUnit - Activa una unidad mecnica


ActUnit se utiliza para activar una unidad mecnica.

Puede usarse para determinar qu unidad debe estar activa, por ejemplo cuando se
utilizan unidades de accionamiento comunes.

Ejemplo
ActUnit orbit_a;

Activacin de la unidad mecnica orbit_a.

Argumentos
ActUnit MechUnit

MechUnit (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica que debe activarse.

Ejecucin de programas
Cuando los ejes del robot y los ejes externos se han detenido, se activa la unidad
mecnica especificada. Esto significa que es controlada y monitorizada por el robot.

Si varias unidades mecnicas comparten una misma unidad de accionamiento, la


activacin de una de estas unidades mecnicas tambin conecta la unidad a la unidad
de accionamiento comn.

Limitaciones
La instruccin ActUnit no puede usarse en los casos siguientes:

- Secuencia de programa StorePath ... RestoPath


- Rutina de evento RESTART

Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe


programarse con un punto de paro (zonedata fino), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 3


ActUnit
Instruccin

Sintaxis
ActUnit
[MechUnit := ] < variable (VAR) de mecunit> ;

Informacin relacionada
Descrito en:
Desactivacin de unidades mecnicas Instrucciones - DeactUnit
Unidades mecnicas Tipos de datos - mecunit
Ms ejemplos Instrucciones - DeactUnit

4 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Add
Instruccin

Add - Suma un valor numrico


Add se utiliza para sumar o restar un valor a o de una variable o una variable persistente
de tipo numrico.

Ejemplos
Add reg1, 3;

3 se suma a reg1, es decir reg1:=reg1+3.

Add reg1, -reg2;

El valor de reg2 se resta de reg1, es decir reg1:=reg1-reg2.

Argumentos
Add Name AddValue
Name Tipo de dato: num

El nombre de la variable o de la variable persistente que se desea cambiar.

AddValue Tipo de dato: num

El valor a sumar.

Sintaxis
Add
[ Name := ] < variable o variable persistente (INOUT) de num > ,
[ AddValue := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Decremento de una variable en 1 Instrucciones - Decr
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 5


Add
Instruccin

6 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


:=
Instruccin

:= - Asigna un valor
La instruccin := se utiliza para asignar un nuevo valor a un dato. Este valor puede
ser desde un valor constante hasta una expresin aritmtica, por ejemplo reg1+5*reg3.

Ejemplos
reg1 := 5;

Se asigna a reg1 el valor 5.

reg1 := reg2 - reg3;

Se asigna a reg1 el valor que devuelve el clculo reg2-reg3.

counter := counter + 1;

counter aumenta en 1.

Argumentos
Dato := Valor
Dato Tipo de dato: todos

El dato al que se desea asignar un nuevo valor.

Valor Tipo de dato: igual que el de Data

El valor deseado.

Ejemplos
tool1.tframe.trans.x := tool1.tframe.trans.x + 20;

El TCP de tool1 se desplaza 20 mm en la direccin X.

pallet{5,8} := Abs(value);

Se asigna a un elemento de la matriz pallet un valor igual al valor absoluto de la


variable value.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 7


:=
Instruccin

Limitaciones
El dato (cuyo valor se desea cambiar) no debe ser ninguno de los siguientes:

- Una constante
- Un tipo de dato sin valor

El dato y el valor deben tener tipos de dato similares (el mismo tipo o el mismo alias).

Sintaxis
(EBNF)
<destino de la asignacin> := <expresin> ;
<destino de la asignacin> ::=
<variable>
| <variable persistente>
| <parmetro>
| <VAR>

Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Tipos de datos sin valor Caractersticas bsicas - Tipos de datos
Asignacin de un valor inicial a un dato Caractersticas bsicas - Datos
Programacin y testing
Asignacin manual de un valor a un dato Programacin y testing

8 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Break
Instruccin

Break - Interrumpir la ejecucin del programa


Break se utiliza para provocar la interrupcin inmediata de la ejecucin de un programa
con fines de depuracin del cdigo de un programa de RAPID.

Ejemplo
..
Break;
...

La ejecucin del programa se detiene y es posible analizar variables, valores, etc.


con fines de depuracin.

Ejecucin de programas
La instruccin detiene inmediatamente la ejecucin del programa, sin esperar a que los
ejes del robot o los ejes externos alcancen sus puntos de destino programados para el
movimiento que se est realizando. Posteriormente es posible reanudar la ejecucin del
programa a partir de la instruccin siguiente.

Si alguna rutina de evento contiene una instruccin Break, la rutina se ejecuta desde el
principio del siguiente evento.

Sintaxis
Break;

Informacin relacionada
Descrito en:
Paro para acciones de programa Instrucciones - Stop
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro de los movimientos del robot nicamente Instrucciones - StopMove

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 9


Break
Instruccin

10 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CallByVar
Instruccin

CallByVar - Llamar a un procedimiento mediante una


variable
CallByVar (llamar mediante variable) puede usarse para llamar a procedimientos que
tienen nombres especficos, como proc_name1, proc_name2, proc_name3 ...
proc_namex a travs de una variable.

Ejemplo
reg1 := 2;
CallByVar proc, reg1;

Se llama al procedimiento proc2.

Argumentos
CallByVar Name Number
Name Tipo de dato: string

La primera parte del nombre del procedimiento, por ejemplo proc_name.

Number Tipo de dato: num

El valor numrico del nmero del procedimiento. Este valor se convierte en una
cadena y constituye la segunda parte del nombre del procedimiento, por ejemplo
1. El valor debe ser nmero entero positivo.

Ejemplo
Seleccin esttica de llamadas a procedimientos

TEST reg1
CASE 1:
lf_door door_loc;
CASE 2:
rf_door door_loc;
CASE 3:
lr_door door_loc;
CASE 4:
rr_door door_loc;
DEFAULT:
EXIT;
ENDTEST

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 11


CallByVar
Instruccin

En funcin de si el valor del registro reg1 es 1, 2, 3 4, se llama a procedimientos


distintos que realizan el tipo adecuado de trabajo para la puerta seleccionada.
La ubicacin de la puerta se indica en el argumento door_loc.

Seleccin dinmica de llamadas a procedimientos con sintaxis de RAPID

reg1 := 2;
%proc+NumToStr(reg1,0)% door_loc;

Se llama al procedimiento proc2 con el argumento door_loc.

Limitacin: Todos los procedimientos deben tener un nombre especfico, como


proc1, proc2, proc3.

Seleccin dinmica de llamadas a procedimientos con CallByVar

reg1 := 2;
CallByVar proc,reg1;

Se llama al procedimiento proc2.

Limitacin: Todos los procedimientos deben tener un nombre especfico, como


proc1, proc2, proc3 y no puede usarse ningn argumento.

Limitaciones
Slo puede usarse para llamar a procedimientos que no utilizan parmetros.

La ejecucin de CallByVar requiere un poco ms de tiempo que la ejecucin de una


llamada normal a un procedimiento.

Gestin de errores
Si se hace referencia a un procedimiento desconocido, la variable de sistema ERRNO
cambia al valor ERR_REFUNKPRC.

En caso de un error en la llamada a un procedimiento (cuando no es un procedimiento),


la variable de sistema ERRNO cambia a ERR_CALLPROC.

Estos errores pueden ser gestionados en el gestor de errores.

Sintaxis
CallByVar
[Name :=] <expresin (IN) de string>,
[Number :=] <expresin (IN) de num>;

12 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CallByVar
Instruccin

Informacin relacionada
Descrito en:
Llamadas a procedimientos Caractersticas bsicas - Rutinas
Gua del usuario - El lenguaje de
programacin RAPID

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 13


CallByVar
Instruccin

14 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CancelLoad
Instruccin

CancelLoad - Cancelar la carga de un mdulo


CancelLoad se utiliza para cancelar la carga de un mdulo que se est cargando o se
ha cargado con la instruccin StartLoad.

CancelLoad slo puede usarse entre instrucciones Startload ... WaitLoad.

Ejemplo
CancelLoad load1;

Se cancela la sesin de carga load1.

Argumentos
CancelLoad LoadNo
LoadNo Tipo de dato: loadsession

Una referencia a la sesin de carga, capturada por la instruccin StartLoad.

Ejemplos
VAR loadsession load1;

StartLoad HOME:\File:=PART_B.MOD,load1;
...
IF .................
CancelLoad load1;
StartLoad HOME:\File:=PART_C.MOD,load1;
ENDIF
...
WaitLoad load1;

La instruccin CancelLoad cancela la carga en curso del mdulo PART_B.MOD


y permite cargar en su lugar el mdulo PART_C.MOD.

Gestin de errores
Si la variable especificada en el argumento LoadNo no se est utilizando, lo que
significa que no hay ninguna sesin de carga vigente, la variable de sistema ERRNO
cambia a ERR_LOADNO_NOUSE. A continuacin, este error puede ser gestionado
en el gestor de errores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 15


CancelLoad
Instruccin

Sintaxis
CancelLoad
[ LoadNo := ] < variable (VAR) de loadsession > ;

Informacin relacionada
Descrito en:
Carga de mdulos de programa durante Instrucciones - StartLoad
la ejecucin
Conexin de un mdulo cargado a una tarea Instrucciones - WaitLoad
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Aceptacin de referencias no resueltas Parmetros del sistema - Controller/
Task/BindRef

16 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CirPathMode
Instruccin

CirPathMode - Reorientacin de la herramienta durante


trayectorias circulares
CirPathMode (modo de trayectoria circular) permite seleccionar formas distintas de
reorientar la herramienta durante los movimientos circulares.

Ejemplo
CirPathMode \PathFrame;

El modo estndar de reorientacin de la herramienta en la base de coordenadas


de la trayectoria actual, desde el punto de inicio hasta el ToPoint durante todos
los movimientos circulares posteriores.
ste es el modo predeterminado del sistema.

CirPathMode \ObjectFrame;

El modo modificado de reorientacin de la herramienta en la base de


coordenadas del objeto actual, desde el punto de inicio hasta el ToPoint durante
todos los movimientos circulares posteriores.

CirPathMode \CirPointOri;

El modo modificado de reorientacin de la herramienta desde el punto de inicio


a travs de la orientacin CirPoint programada hasta el ToPoint durante todos los
movimientos circulares posteriores.

Descripcin

PathFrame

La imagen muestra la reorientacin de la herramienta del modo estndar \PathFrame.

Las flechas representan la posicin de la


herramienta respecto del punto central de
la mueca hasta el punto central de la
herramienta, para los puntos
programados.
La trayectoria del punto central de la
mueca se representa con una lnea de
puntos en la figura.

El modo \PathFrame permite conseguir


fcilmente el mismo ngulo de la
herramienta alrededor del cilindro. La
mueca del robot no pasa a travs de la
orientacin programada en CirPoint.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 17


CirPathMode
Instruccin

Uso del modo estndar \PathFrame con una orientacin fija de la herramienta:

En la figura siguiente se representa la


orientacin obtenida para la herramienta
en la mitad de la trayectoria circular,
utilizando una herramienta de
programacin y el modo \PathFrame.

Comprela con la figura que aparece ms


abajo para el modo \ObjectFrame.

ObjectFrame

Uso del modo modificado \ObjectFrame con una orientacin fija de la herramienta:

En la figura siguiente se representa la


orientacin obtenida para la herramienta
en la mitad de la trayectoria circular,
utilizando una herramienta de
programacin y el modo \ObjectFrame.

Este modo realizar una reorientacin


lineal de la herramienta de la misma forma
que con MoveL.
La mueca del robot no pasa a travs de la
orientacin programada en CirPoint.

Comprela con la figura que aparece ms arriba para el modo \PathFrame.

CirPointOri

La figura siguiente representa las diferencias de reorientacin de la herramienta


existentes entre el modo estndar \PathFrame y el modo modificado \CirPointOri.

Las flechas representan la posicin de la


herramienta respecto del punto central de
la mueca hasta el punto central de la
\Pathframe herramienta, para los puntos programados.
Las distintas trayectorias del punto central
\CirPointOri de la mueca se representan con lneas de
puntos en la figura.

El modo \CirPointOri hace que la mueca


del robot atraviese la orientacin
programada en CirPoint.

18 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CirPathMode
Instruccin

Argumentos
CirPathMode [\PathFrame] | [\ObjectFrame] | [\CirPointOri]
[\PathFrame] Tipo de dato: switch

Durante el movimiento circular, la reorientacin de la herramienta se realiza de


forma continua desde la orientacin en el punto de inicio hasta la orientacin en
ToPoint, respecto de la base de coordenadas de la trayectoria actual.
ste es el modo estndar del sistema.

[\ObjectFrame] Tipo de dato: switch

Durante el movimiento circular, la reorientacin de la herramienta se realiza de


forma continua desde la orientacin en el punto de inicio hasta la orientacin en
ToPoint, respecto de la base de coordenadas del objeto actual.

[\CirPointOri] Tipo de dato: switch

Durante el movimiento circular, la reorientacin de la herramienta se realiza de


forma continua desde la orientacin en el punto de inicio hasta la orientacin
programada en CirPoint y ms adelante hasta la orientacin de ToPoint.

Si slo se utiliza la instruccin CirPathMode; sin ningn modificador, se


consigue el mismo efecto que con CirPointOri \PathFrame;

Ejecucin de programas
El modo especificado para la reorientacin de la herramienta en una trayectoria
circular se aplica a los siguientes movimientos circulares del robot, sean del tipo que
sean (MoveC, SearchC, TriggC, MoveCDO, MoveCSync, ArcC, PaintC ... ), y
permanece vigente hasta que se ejecuta una nueva instruccin CirPathMode (o una
instruccin CirPathReori, ahora obsoleta).

El modo estndar de reorientacin en trayectorias circulares (CirPathMode


\PathFrame) se establece automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 19


CirPathMode
Instruccin

Limitaciones
Esta instruccin slo afecta a los movimientos circulares.

Cuando se utiliza el modo \CirPointOri, el valor de CirPoint debe encontrarse entre los
puntos A y B que se representan en la figura siguiente, para que el movimiento circular
atraviese la orientacin programada en CirPoint.

A 1 /4 1 /4 B
1 /4 1 /4

CirPoint

Si se trabaja en un rea de singularidad de mueca y se ha ejecutado la instruccin


SingArea \Wrist, la instruccin CirPathMode no tiene ningn efecto porque el sistema
selecciona en este caso otro modo de reorientacin de la herramienta para los
movimientos circulares (la interpolacin de ejes).

Esta instruccin sustituye a la instruccin CirPathReori (sta seguir funcionando en


adelante pero ya no se recomienda ni se documenta).

Sintaxis
CirPathMode
[\PathFrame] | [\ObjectFrame] | [\CirPointOri] ;

Informacin relacionada
Descrito en:
Interpolacin Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Datos de parmetros de movimiento Tipos de datos - motsetdata
Instruccin para movimiento circular Instrucciones - MoveC

20 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Clear
Instruccin

Clear - Borrar el valor


Clear se utiliza para borrar el contenido de una variable numrica o una variable
persistente, es decir, asignarle el valor 0.

Ejemplo
Clear reg1;

Se borra el valor de Reg1, con lo que reg1:=0.

Argumentos
Clear Name
Name Tipo de dato: num

El nombre de la variable o de la variable persistente cuyo contenido se desea


borrar.

Sintaxis
Clear
[ Name := ] < variable o variable persistente (INOUT) de num > ;

Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Decremento de una variable en 1 Instrucciones - Decr

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 21


Clear
Instruccin

22 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ClearIOBuff
Instruccin Advanced functions (Funciones avanzadas)

ClearIOBuff - Vaca el bfer de entrada de un canal serie


ClearIOBuff (vaciar bfer de E/S) se utiliza para vaciar el bfer de entrada de un canal
serie. Se desechan todos los caracteres almacenados en el bfer del canal serie de
entrada.

Ejemplo
VAR iodev channel2;
...
Open "com2:", channel2 \Bin;
ClearIOBuff channel2;

Se vaca el bfer de entrada del canal serie al que se hace referencia con
channel2.

Argumentos
ClearIOBuff IODevice
IODevice Tipo de dato: iodev

El nombre (la referencia) del canal serie cuyo bfer de entrada se desea vaciar.

Ejecucin de programas
Se desechan todos los caracteres almacenados en el bfer del canal serie de entrada.
Las instrucciones de lectura siguientes esperarn nuevos datos recibidos a travs del
canal.

Limitaciones
Esta instruccin slo puede usarse con los canales serie.

Gestin de errores
Si se intenta usar la instruccin con un archivo, la variable de sistema ERRNO cambia
a ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 23


ClearIOBuff
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
ClearIOBuff
[IODevice :=] <variable (VAR) de iodev>;

Informacin relacionada
Descrito en:
Apertura de un canal serie Resumen sobre RAPID - Comunicacin

24 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ClearPath
Instruccin

ClearPath - Eliminar la trayectoria actual


ClearPath (eliminar trayectoria) elimina toda la trayectoria de movimientos del nivel
de trayectoria de movimiento actual (nivel base o nivel StorePath).

La expresin trayectoria de movimientos se refiere a todos los segmentos de


movimiento de cualquier instruccin de movimiento que se ejecute en RAPID pero
que no ha sido realizado an en el momento de la ejecucin de ClearPath.

El robot debe encontrarse en un punto de paro o debe ser parado por una instruccin
StopMove para poder ejecutar la instruccin ClearPath.

Ejemplo

Punto de inicio home


MoveL p1, v500, fine, gripper; Punto final p1

px

El robot suelta aqu la carga til y


la ejecucin contina en la rutina
TRAP

En el ejemplo de programa siguiente, el robot se mueve desde la posicin home hasta


la posicin p1. En el punto px, la seal di1 indicar que se ha soltado la carga til. La
ejecucin contina en la rutina TRAP gohome. El robot detiene el movimiento
(comienza el frenado) en el punto px, se borra la trayectoria y el robot se traslada a la
posicin home. El error se eleva hacia la rutina desde la que se hace la llamada,
minicycle, y todo el ciclo de programa definido por el usuario proc1 .. proc2 se ejecuta
desde el principio una vez ms.

VAR intnum drop_payload;


CONST errnum ERR_DROP_LOAD := 1;

PROC minicycle()
..........
proc1;
..........
ERROR (ERR_DROP_LOAD)
RETRY;
ENDPROC

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 25


ClearPath
Instruccin

PROC proc1()
..........
proc2;
..........
ENDPROC

PROC proc2()
CONNECT drop_payload WITH gohome;
ISignalDI \Single, di1, 1, drop_payload;
MoveL p1, v500, fine, gripper;
...........
IDelete drop_payload
ENDPROC

TRAP gohome
StopMove \Quick;
ClearPath;
IDelete drop_payload;
MoveL home, v500, fine, gripper;
RAISE ERR_DROP_LOAD;
ERROR
RAISE;
ENDTRAP

Si se ejecuta el mismo programa pero sin StopMove ni ClearPath en la rutina


TRAP gohome, el robot contina hacia la posicin p1 antes de volver a la
posicin home.

Si se programa MoveL home con un punto (zona) de paso en lugar de un punto


de paro (fine), el movimiento contina durante la instruccin RAISE para volver
al gestor de errores del procedimiento minicycle y ms all hasta que el
movimiento est preparado.

Sintaxis
ClearPath ;

Informacin relacionada
Descrito en:
Detencin de los movimientos del robot Instrucciones - StopMove
Recuperacin en caso de error Resumen sobre RAPID -
Recuperacin en caso de error
Caractersticas bsicas - Recuperacin
en caso de error

26 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ClkReset
Instruccin

ClkReset - Pone a cero un reloj utilizado como temporizador


ClkReset se utiliza para poner a cero un reloj que funciona como un cronmetro para
funciones de temporizacin.

Esta instruccin puede usarse antes de usar un reloj, para garantizar que est puesto a
cero.

Ejemplo
ClkReset clock1;

Se pone a cero el reloj clock1.

Argumentos
ClkReset Clock
Clock Tipo de dato: clock

El nombre del reloj que se desea poner a cero.

Ejecucin de programas
Tras poner a cero un reloj, su valor es 0.

Si el reloj est en marcha, se detendr y se pondr a cero.

Sintaxis
ClkReset
[ Clock := ] < variable (VAR) de clock > ;

Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 27


ClkReset
Instruccin

28 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ClkStart
Instruccin

ClkStart - Pone en marcha un reloj utilizado para la


temporizacin
ClkStart se utiliza para poner en marcha un reloj que funciona como un cronmetro
para funciones de temporizacin.

Ejemplo
ClkStart clock1;

Se pone en marcha el reloj clock1.

Argumentos
ClkStart Clock
Clock Tipo de dato: clock

El nombre del reloj que se desea poner en marcha.

Ejecucin de programas
Cuando se pone en marcha el reloj, ste sigue contando segundos hasta que se decide
detenerlo.

El reloj sigue en marcha incluso cuando se detiene el programa que lo puso en marcha.
Sin embargo, es posible que el evento que se intenta temporizar ya no sea vlido. Por
ejemplo, si el programa estaba midiendo el tiempo de espera de una entrada, es posible
que la entrada se haya recibido mientras el programa estaba parado. En este caso, el
programa no podr ser consciente de que el evento se ha producido mientras la
ejecucin estuvo parada.

Los relojes siguen funcionando cuando se apaga el robot, siempre y cuando la energa
de respaldo de la batera proteja al programa que contiene la variable de reloj.

Mientras est en marcha, cualquier reloj puede ser ledo, parado o puesto a cero.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 29


ClkStart
Instruccin

Ejemplo
VAR clock clock2;

ClkReset clock2;
ClkStart clock2;
WaitUntil DInput(di1) = 1;
ClkStop clock2;
time:=ClkRead(clock2);

Se mide el tiempo que se espera a que di1 tenga el valor 1.

Gestin de errores
Si el reloj funciona de forma continuada durante 4.294.967 segundos (49 das, 17 horas,
2 minutos y 47 segundos), se desborda y la variable de sistema ERRNO cambia a
ERR_OVERFLOW.

El error puede ser gestionado en el gestor de errores.

Sintaxis
ClkStart
[ Clock := ] < variable (VAR) de clock > ;

Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo

30 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ClkStop
Instruccin

ClkStop - Detiene un reloj utilizado para la temporizacin


ClkStop se utiliza para parar un reloj que funciona como un cronmetro para funciones
de temporizacin.

Ejemplo
ClkStop clock1;

Se detiene el reloj clock1.

Argumentos
ClkStop Clock
Clock Tipo de dato: clock

El nombre del reloj a detener.

Ejecucin de programas
Cuando se detiene un reloj, ste deja de funcionar.

Cuando un reloj est parado, puede ser ledo, puesto en marcha de nuevo o puesto a
cero.

Gestin de errores
Si el reloj funciona de forma continuada durante 4.294.967 segundos (49 das, 17
horas, 2 minutos y 47 segundos), se desborda y la variable de sistema ERRNO cambia
a ERR_OVERFLOW.

El error puede ser gestionado en el gestor de errores.

Sintaxis
ClkStop
[ Clock := ] < variable (VAR) de clock > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 31


ClkStop
Instruccin

Informacin relacionada
Descrito en:
Otras instrucciones de reloj Resumen sobre RAPID - Sistema y tiempo
Ms ejemplos Instrucciones - ClkStart

32 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


comment
Instruccin

comment - Comentario
Esta instruccin slo se utiliza para facilitar la comprensin del programa. No tiene
ningn efecto sobre la ejecucin del programa.

Ejemplo
! Ir a la posicin que se encuentra por encima del pal
MoveL p100, v500, z20, tool1;

Se inserta un comentario en el programa para facilitar su comprensin.

Argumentos
! Comentario
Comentario Text string

Cualquier texto.

Ejecucin de programas
Cuando se ejecuta esta instruccin, no ocurre nada.

Sintaxis
(EBNF)
! {<carcter>} <nueva lnea>

Informacin relacionada
Descrito en:
Caracteres permitidos en los comentarios Caractersticas bsicas - Elementos
bsicos
Comentarios dentro de declaraciones de Caractersticas bsicas - datos y
rutinas Elementos bsicos

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 33


comment
Instruccin

34 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Compact IF
Instruccin

Compact IF (IF compacto) - Si se cumple una condicin,


entonces... (una instruccin)
El Compact IF (IF compacto) se utiliza cuando slo es necesario ejecutar una
instruccin si se cumple una condicin determinada.

Si es necesario ejecutar distintas instrucciones en funcin de si se cumple o no una


condicin especificada, se utiliza la instruccin IF normal.

Ejemplos
IF reg1 > 5 GOTO next;

Si reg1 es mayor que 5, la ejecucin del programa contina en la etiqueta next.

IF counter > 10 Set do1;

La seal do1 se activa si counter > 10.

Argumentos
IF Condicin ...
Condicin Tipo de dato: bool

La condicin que debe cumplirse para que se ejecute la instruccin.

Sintaxis
(EBNF)
IF <expresin condicional> ( <instruccin> | <SMT>) ;

Informacin relacionada
Descrito en:
Condiciones (expresiones lgicas) Caractersticas bsicas - Expresiones
IF con varias instrucciones Instrucciones - IF

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 35


Compact IF
Instruccin

36 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ConfJ
Instruccin

ConfJ - Controla la configuracin durante el movimiento de


los ejes
ConfJ (configuracin de ejes) se utiliza para especificar si es necesario controlar la
configuracin del robot durante el movimiento de los ejes. Si no se controla, es posible
que el robot utilice en ocasiones una configuracin distinta de la programada.

Con ConfJ\Off, el robot no puede cambiar de configuracin de ejes principales, sino


que busca una solucin con la misma configuracin de ejes principales que la actual.
Se mueve hacia la configuracin de ejes ms cercana para los ejes 4 y 6.

Ejemplos
ConfJ \Off;
MoveJ *, v1000, fine, tool1;

El robot se mueve hacia la posicin y la orientacin programadas. Si es posible


alcanzar esta posicin de varias formas con distintas configuraciones de ejes, se
elige la posicin ms cercana posible.

ConfJ \On;
MoveJ *, v1000, fine, tool1;

El robot se mueve hacia la posicin, la orientacin y la configuracin de ejes


programadas. Si no es posible, se detiene la ejecucin del programa.

Argumentos
ConfJ [\On] | [\Off]
\On Tipo de dato: switch

El robot se mueve siempre hacia la configuracin de ejes programada. Si no es


posible hacerlo con la posicin y la orientacin programadas, se detiene la
ejecucin del programa.

El robot IRB5400 se mueve hacia la configuracin de ejes programada o hacia


una configuracin de ejes cercana a la programada. La ejecucin del programa
no se detiene si es imposible alcanzar la configuracin de ejes programada.

\Off Tipo de dato: switch

El robot se mueve siempre hacia la configuracin de ejes ms cercana.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 37


ConfJ
Instruccin

Ejecucin de programas
Si se elige el argumento \On (o no se especifica ningn argumento), el robot se mueve
siempre hacia la configuracin de ejes programada. Si no es posible hacerlo con la
posicin y la orientacin programadas, se detiene la ejecucin del programa antes de
que comience el movimiento.

Si se elige el argumento \Off, el robot se mueve siempre hacia la configuracin de ejes


ms cercana. Esta configuracin puede ser distinta de la programada si la configuracin
se ha especificado incorrectamente de forma manual o si se ha realizado un
desplazamiento de programa.

De forma predeterminada, el control est activado. Se activa automticamente en los


casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
ConfJ
[ \ On] | [ \ Off] ;

Informacin relacionada
Descrito en:
Gestin de distintas configuraciones Principios de movimiento -
Configuracin del robot
Configuracin del robot durante Instrucciones - ConfL
el movimiento lineal

38 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ConfL
Instruccin

ConfL - Monitoriza la configuracin durante el movimiento


lineal
ConfL (configuracin lineal) se utiliza para especificar si es necesario controlar la
configuracin del robot durante los movimientos lineales o circulares. Si no se
controla, la configuracin utilizada en el momento de la ejecucin puede ser distinta
de la configuracin programada. Esto tambin puede dar lugar a movimientos de
barrido inesperados en el robot cuando se cambia el modo al movimiento de ejes.

NOTA: En el caso del robot IRB 5400, la monitorizacin est siempre


desactivada, independientemente de lo que se especifique en la instruccin ConfL.

Ejemplos
ConfL \On;
MoveL *, v1000, fine, tool1;

La ejecucin del programa se detiene si no es posible alcanzar la configuracin


programada desde la posicin actual.

SingArea \Wrist;
ConfL \On;
MoveL *, v1000, fine, tool1;

El robot se mueve hacia la posicin, la orientacin y la configuracin de ejes de


mueca programadas. Si no es posible, se detiene la ejecucin del programa.

ConfL \Off;
MoveL *, v1000, fine, tool1;

El robot se mueve hacia la posicin y la orientacin programadas, pero usando


la configuracin de ejes ms cercana posible, que puede ser distinta de la
programada.

Argumentos
ConfL [\On] | [\Off]
\On Tipo de dato: switch

Se monitoriza la configuracin del robot.

\Off Tipo de dato: switch

No se monitoriza la configuracin del robot.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 39


ConfL
Instruccin

Ejecucin de programas
Durante un movimiento lineal o circular, el robot se mueve siempre hacia la posicin y
la orientacin programadas que presenten la configuracin de ejes ms cercana posible.
Si se elige el argumento \On (o no se utiliza ningn argumento), la ejecucin del
programa se detiene tan pronto como aparezca el riesgo de que la configuracin de la
posicin programada no pueda alcanzarse desde la posicin actual.

Sin embargo, es posible reanudar el programa, si bien los ejes de la mueca pueden
continuar movindose hacia la configuracin incorrecta. En los puntos de paro, el robot
comprobar que se han alcanzado las configuraciones de todos los ejes, no slo de los
ejes de la mueca.

Si se usa adems SingArea\Wrist, el robot se mueve siempre hacia la configuracin


programada para los ejes de la mueca y, en los puntos de paro, se comprueban las
dems configuraciones de ejes.

Si se utiliza el argumento \Off, no se realiza ninguna monitorizacin.

De forma predeterminada, la monitorizacin est activada. Se activa automticamente


en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio
- Una regla simple para evitar problemas, tanto para ConfL\On como para \Off,
es insertar puntos intermedios para que el movimiento de cada eje sea menor a
los 90 grados entre dos puntos. Para ser ms exactos, la suma de movimientos
de cualquiera de los pares (1+4), (1+6), (3+4) (3+6) no debe exceder de 180
grados. Si se utiliza ConfL\Off con un movimiento grande, ste puede causar
paros en ese mismo momento o despus en el programa, generando el error
50050 Posicin Fuera de rea o 50080 Posicin no compatible.
En programas que utilizan ConfL\Off, se recomienda usar movimientos hacia
puntos de configuracin conocidos mediante ConfJ\On + MoveJ o
ConfL\On + SingArea\Wrist + MoveL, como puntos de partida de las distintas
partes del programa.

Sintaxis
ConfL
[ \ On] | [ \ Off] ;

40 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ConfL
Instruccin

Informacin relacionada
Descrito en:
Gestin de distintas configuraciones Principios de movimiento y E/S -
Configuracin del robot
Configuracin del robot durante Instrucciones - ConfJ
el movimiento de ejes

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 41


ConfL
Instruccin

42 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Close
Instruccin Advanced functions (Funciones avanzadas)

Close - Cierra un archivo o un canal serie


Close se utiliza para cerrar un archivo o un canal serie.

Ejemplo
Close channel2;

Se cierra el canal serie al que se hace referencia con channel2.

Argumentos
Close IODevice
IODevice Tipo de dato: iodev

El nombre (la referencia) del archivo o del canal serie que debe cerrarse.

Ejecucin de programas
El archivo o el canal serie especificado se cierra y es necesario abrirlo de nuevo antes
de leer o escribir en l. Si ya est cerrado, la instruccin no se tiene en cuenta.

Sintaxis
Close
[IODevice :=] <variable (VAR) de iodev>;

Informacin relacionada
Descrito en:
Apertura de un archivo o un canal serie Resumen sobre RAPID -
Comunicacin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 43


Close
Advanced functions (Funciones avanzadas) Instruccin

44 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


CONNECT
Instruccin

CONNECT - Conecta una interrupcin a una rutina TRAP


CONNECT se utiliza para determinar la identidad de una interrupcin y conectarla a
una rutina TRAP.

La interrupcin se define mediante la peticin de un evento de interrupcin y la


especificacin de su identidad. Por tanto, cuando se produce un evento, la rutina TRAP
se ejecuta automticamente.

Ejemplo
VAR intnum feeder_low;
CONNECT feeder_low WITH feeder_empty;
ISignalDI di1, 1 , feeder_low;

Se crea una identidad de interrupcin feeder_low que se conecta a la rutina


TRAP feeder_empty. La interrupcin se define como la entrada di1 pasa al
modo activo. En otras palabras, cuando la seal pasa al modo activo, se ejecuta
la rutina TRAP feeder_empty.

Argumentos
CONNECT Interrupcin WITH Rutina TRAP
Interrupcin Tipo de dato: intnum

La variable a la que se desea asignar la identidad de la interrupcin.


La declaracin NO DEBE hacerse dentro de una rutina (como dato de la rutina).

Rutina TRAP Identificador

El nombre de la rutina TRAP.

Ejecucin de programas
Se asigna a la variable una identidad de interrupcin que puede usarse a partir de ese
momento para pedir o desactivar interrupciones. Esta identidad tambin se conecta a
la rutina TRAP especificada.

Recuerde que antes de poder gestionar un evento, tambin es necesario pedir una
interrupcin, es decir, debe especificarse el evento.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 45


CONNECT
Instruccin

Limitaciones
No es posible conectar una interrupcin (una identidad de interrupcin) a ms de una
rutina TRAP a la vez. Sin embargo, es posible conectar varias interrupciones a una
misma rutina TRAP.

Cuando se conecta una interrupcin a una rutina TRAP, no es posible conectarla de


nuevo ni transferirla a otra rutina. Es necesario eliminarla en primer lugar mediante la
instruccin IDelete.

Gestin de errores
Si la variable utilizada para especificar la interrupcin ya est conectada a una rutina
TRAP, la variable de sistema ERRNO cambia a ERR_ALRDYCNT.

Si la variable utilizada para especificar la interrupcin no es una referencia a una


variable, la variable de sistema ERRNO cambia a ERR_CNTNOTVAR.

Si no hay ms nmeros de interrupcin disponibles, la variable de sistema ERRNO


cambia a ERR_INOMAX.

Estos errores pueden ser gestionados en el gestor de errores.

Sintaxis
(EBNF)
CONNECT <destino de la conexin> WITH <rutina TRAP>;

<destino de la conexin> ::= <variable>


| <parmetro>
| <VAR>
<rutina TRAP> ::= <identificador>

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones

46 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


DeactUnit
Instruccin

DeactUnit - Desactiva una unidad mecnica


DeactUnit se utiliza para desactivar una unidad mecnica.

Puede usarse para determinar qu unidad debe estar activa, por ejemplo cuando se
utilizan unidades de accionamiento comunes.

Ejemplos
DeactUnit orbit_a;

Desactivacin de la unidad mecnica orbit_a.

MoveL p10, v100, fine, tool1;


DeactUnit track_motion;
MoveL p20, v100, z10, tool1;
MoveL p30, v100, fine, tool1;
ActUnit track_motion;
MoveL p40, v100, z10, tool1;

La unidad track_motion quedar estacionaria cuando el robot se mueve hacia


p20 y p30. A continuacin, tanto el robot como track_motion se mueven hacia
p40.

MoveL p10, v100, fine, tool1;


DeactUnit orbit1;
ActUnit orbit2;
MoveL p20, v100, z10, tool1;

Se desactiva la unidad orbit1 y se activa orbit2.

Argumentos
DeactUnit MechUnit

MechUnit (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica que debe desactivarse.

Ejecucin de programas
Cuando los ejes del robot y los ejes externos se han detenido, se desactiva la unidad
mecnica especificada. Esto significa que no se controlar ni monitorizar hasta que se
reactive.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 47


DeactUnit
Instruccin

Si varias unidades mecnicas comparten una misma unidad de accionamiento, la


desactivacin de una de estas unidades mecnicas tambin desconecta la unidad de la
unidad de accionamiento comn.

Limitaciones
La instruccin DeactUnit no puede usarse en los casos siguientes:

- Secuencia de programa StorePath ... RestoPath


- Rutina de evento RESTART
- Cuando uno de los ejes de la unidad mecnica se encuentra en el modo
independiente

Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe


programarse con un punto de paro (zonedata fino), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.

Sintaxis
DeactUnit
[MechUnit := ] < variable (VAR) de mecunit> ;

Informacin relacionada
Descrito en:
Activacin de unidades mecnicas Instrucciones - ActUnit
Unidades mecnicas Tipos de datos - mecunit

48 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Decr
Instruccin

Decr - Reduce un nmero en 1


Decr se utiliza para restar 1 a una variable o una variable persistente de tipo numrico.

Ejemplo
Decr reg1;

Se resta 1 a reg1, es decir reg1:=reg1-1.

Argumentos
Decr Name
Name Tipo de dato: num

El nombre de la variable o de la variable persistente cuyo valor se desea reducir.

Ejemplo
TPReadNum no_of_parts, "Cuntas piezas hay que producir? ";
WHILE no_of_parts>0 DO
produce_part;
Decr no_of_parts;
ENDWHILE

Se pregunta al operador cuntas piezas deben producirse. La variable


no_of_parts se utiliza para contar el nmero de piezas que quedan por producir.

Sintaxis
Decr
[ Name := ] < variable o variable persistente (INOUT) de num > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 49


Decr
Instruccin

Informacin relacionada
Descrito en:
Incremento de una variable en 1 Instrucciones - Incr
Sustraccin de cualquier valor a una variable Instrucciones - Add
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin

50 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


DitherAct
Instruccin

DitherAct - Activa la funcin de oscilacin del servo suave


DitherAct se utiliza para activar la funcin de oscilacin, que reduce la friccin del
servo suave en el modelo IRB 7600.

Ejemplos
SoftAct \MechUnit:=IRB, 2, 100;
WaitTime 2;
DitherAct \MechUnit:=IRB, 2;
WaitTime 1;
DitherDeact;
SoftDeact;

La oscilacin slo permanece activada durante un segundo durante el servo


suave.

DitherAct \MechUnit:=IRB, 2;
SoftAct \MechUnit:=IRB, 2, 100;
WaitTime 1;
MoveL p1, v50, z20, tool1;
SoftDeact;
DitherDeact;

Se activa la oscilacin para el eje 2. El movimiento se retarda un segundo para


permitir un tiempo de transicin suficiente para la pendiente de SoftAct. Si se
llama a DitherAct antes de SoftAct, la oscilacin comenzar tan pronto como se
ejecuta SoftAct para el eje. Si no se realiza ninguna llamada a DitherDeact, la
oscilacin permanece activada para todas las llamadas posteriores a SoftAct.

Argumentos
DitherAct [ \MechUnit ] Axis [ \Level ]
[ \MechUnit ] (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica. Si se omite este argumento, significa la


activacin del servo suave para el eje especificado del robot.

Axis Tipo de dato: num

Nmero de eje (1-6).

[ \Level ] Tipo de dato: num

La amplitud de la oscilacin (del 50% al 150%). Con el 50%, las oscilaciones se


reducen (la friccin aumenta). Con el 150%, se utiliza la mxima oscilacin
(puede dar lugar a vibraciones en el elemento terminal). El valor predeterminado
es el 100%.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 51
DitherAct
Instruccin

Ejecucin de programas
La llamada a DitherAct puede hacerse antes o despus de SoftAct. La llamada a
DitherAct despus de SoftAct resulta ms rpida, pero presenta otras limitaciones.

Normalmente, el eje 1 del sistema IRB 7600 no requiere oscilacin. El mximo efecto
de la reduccin de la friccin se produce en los ejes 2 y 3.

Los parmetros de oscilacin se ajustan automticamente. El mximo rendimiento de


la oscilacin se consigue despus de tres o cuatro ejecuciones de SoftAct en una
posicin de proceso.

Limitaciones
La llamada a DitherAct despus de SoftAct puede dar lugar a un movimiento no
deseado del robot. La nica forma de eliminar este comportamiento es llamar a
DitherAct antes de SoftAct. Si sigue habiendo movimiento, es necesario aumentar el
tiempo de pendiente de SoftAct.

Sin embargo, al llamar a DitherAct antes de SoftAct, el robot debe encontrarse en un


punto fino. Adems, no se permite abandonar el punto fino hasta que ha
transcurrido el tiempo de transicin de la pendiente. Si se hiciera, podran causarse
daos en las cajas de engranajes.

El tiempo de transicin es el tiempo de pendiente, que vara de un robot a otro,


multiplicado por el factor de pendiente de la instruccin SoftAct.

La oscilacin no est disponible para el eje 6.

La oscilacin se desactiva siempre que se produce una cada de alimentacin elctrica.

La instruccin slo debe utilizarse con el sistema IRB 7600.

Sintaxis
DitherAct
[ \ MechUnit := < variable (VAR) de mecunit > ]
[Axis := ] < expresin (IN) de num >
[ \ Level := < expresin (IN) de num > ] ;

52 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


DitherAct
Instruccin

Informacin relacionada
Descrito en:
Activacin del servo suave Instrucciones - SoftAct
Comportamiento con el servo suave activado Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Desactivacin de la oscilacin Instrucciones - DitherDeact

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 53


DitherAct
Instruccin

54 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


DitherDeact
Instruccin

DitherDeact - Desactiva la funcin de oscilacin del servo


suave
DitherDeact se utiliza para desactivar la funcin de oscilacin del servo suave en el
modelo IRB 7600.

Ejemplos
DitherDeact;

Desactiva la oscilacin de todos los ejes.

Ejecucin de programas
DitherDeact puede usarse en cualquier momento. Si el servo suave est activado, la
oscilacin se detiene inmediatamente en todos los ejes. Si el servo suave no est
activado, la oscilacin no estar activada cuando se ejecute SoftAct posteriormente.

Sintaxis
DitherDeact ;

Informacin relacionada
Descrito en:

Activacin de la oscilacin Instrucciones - DitherAct

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 55


DitherDeact
Instruccin

56 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


EOffsOff
Instruccin

EOffsOff - Desactiva un offset de ejes externos


EOffsOff (apagar offset externo) se utiliza para desactivar un offset de los ejes
externos.

El offset de los ejes externos se activa con la instruccin EOffsSet o EOffsOn y se


aplica a todos los movimientos hasta que se activa otro offset para los ejes externos o
hasta que se desactiva el offset de todos los ejes externos.

Ejemplos
EOffsOff;

Desactivacin del offset de los ejes externos.

MoveL p10, v500, z10, tool1;


EOffsOn \ExeP:=p10, p11;
MoveL p20, v500, z10, tool1;
MoveL p30, v500, z10, tool1;
EOffsOff;
MoveL p40, v500, z10, tool1;

Se define un offset como la diferencia entre la posicin de cada eje en p10 y p11.
El desplazamiento afecta al movimiento hacia p20 y p30, pero no hacia p40.

Ejecucin de programas
Se desactivan los offsets activos para los ejes externos.

Sintaxis
EOffsOff ;

Informacin relacionada
Descrito en:
Definicin de offsets a partir de dos posiciones Instrucciones - EOffsOn
Definicin de offsets a partir de valores Instrucciones - EOffsSet
Desactivacin del desplazamiento de movimiento Instrucciones - PDispOff
del robot

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 57


EOffsOff
Instruccin

58 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


EOffsOn
Instruccin

EOffsOn - Activa un offset de ejes externos


EOffsOn (activar offset externo) se utiliza para definir y activar un offset de ejes
externos a partir de dos posiciones.

Ejemplos
MoveL p10, v500, z10, tool1;
EOffsOn \ExeP:=p10, p20;

Se activa un offset para los ejes externos. El offset se calcula para cada eje, a
partir de la diferencia entre las posiciones p10 y p20.

MoveL p10, v500, fine \Inpos := inpos50, tool1;


EOffsOn *;

Se activa un offset para los ejes externos. Dado que en la instruccin anterior se
ha utilizado un punto de paro bien definido, no es necesario utilizar el argumento
\ExeP. El desplazamiento se calcula a partir de la diferencia existente entre la
posicin real de cada eje y el punto programado (*) almacenado en la
instruccin.

Argumentos
EOffsOn [ \ExeP ] ProgPoint

[\ExeP ] (punto ejecutado) Tipo de dato: robtarget

La nueva posicin de los ejes en el momento de la ejecucin del programa. Si se


omite el argumento, se utiliza la posicin actual de los ejes en el momento de la
ejecucin del programa.

ProgPoint (punto programado) Tipo de dato: robtarget

La posicin original de los ejes en el momento de la programacin.

Ejecucin de programas
El offset se calcula como la diferencia entre ExeP y ProgPoint en cada eje externo por
separado. Si no se ha especificado el valor de ExeP, se utiliza en su lugar la posicin
actual de los ejes en el momento de la ejecucin del programa. Dado que es la posicin
real de los ejes que se utiliza, los ejes no deben estar en movimiento cuando se ejecuta
EOffsOn.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 59


EOffsOn
Instruccin

A continuacin, se utiliza este offset para desplazar la posicin de los ejes externos en
las instrucciones de posicionamiento posteriores. El offset permanece activo hasta que
se activa un offset diferente (con la instruccin EOffsSet o EOffsOn) o hasta que se
desactiva el offset de los ejes externos (la instruccin EOffsOff).

Slo es posible activar un offset para cada eje individual en un momento dado. Por otro
lado, es posible programar varios EOffsOn uno tras otro y, si se hace, se suman los
distintos offsets.

El offset de los ejes externos se desactiva automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Ejemplo
SearchL sen1, psearch, p10, v100, tool1;
PDispOn \ExeP:=psearch, *, tool1;
EOffsOn \ExeP:=psearch, *;

Se realiza una bsqueda en la cual la posicin buscada tanto de los ejes del robot
como de los ejes externos se almacena en la posicin psearch. Cualquier
movimiento realizado a continuacin parte de esta posicin utilizando un
desplazamiento de programa tanto de los ejes del robot como de los ejes externos.
El desplazamiento se calcula a partir de la diferencia existente entre la posicin
buscada y el punto programado (*) almacenado en la instruccin.

Sintaxis
EOffsOn
[ \ ExeP := < expresin (IN) de robtarget > ,]
[ ProgPoint := ] < expresin (IN) de robtarget > ;

Informacin relacionada
Descrito en:
Desactivacin de offsets para los ejes externos Instrucciones - EOffsOff
Definicin de offsets a partir de valores Instrucciones - EOffsSet
Desplazamiento de los movimientos del robot Instrucciones - PDispOn
Sistemas de coordenadas Principios de movimiento -
Sistemas de coordenadas

60 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


EOffsSet
Instruccin

EOffsSet - Activa un offset de ejes externos a partir de un


valor
EOffsSet (definir offset externo) se utiliza para definir y activar un offset de ejes
externos a partir de valores.

Ejemplo
VAR extjoint eax_a_p100 := [100, 0, 0, 0, 0, 0];
.
EOffsSet eax_a_p100;

Activacin de un offset eax_a_p100 para los ejes externos, lo que implica que
(siempre y cuando el eje externo a sea lineal):

- El sistema de coordenadas ExtOffs se desplaza 100 mm para el eje lgico a


(consulte la Figura 2).
- Siempre y cuando est activado este offset, todas las posiciones se desplazan
100 mm en la direccin del eje x.
.

100
Sistema de coordenadas normal

0 +X
Sistema de coordenadas ExtOffs

0 +X
Figura 2 Desplazamiento de un eje externo.

Argumentos
EOffsSet EAxOffs

EAxOffs (offset de ejes externos) Tipo de dato: extjoint

El offset de los ejes externos se define como un dato del tipo extjoint,
expresado en:

- mm en el caso de los ejes lineales


- Grados en el caso de los ejes de rotacin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 61


EOffsSet
Instruccin

Ejecucin de programas
El offset de los ejes externos se activa cuando se activa la instruccin EOffsSet y
permanece activo hasta que se activa otro offset (la instruccin EOffsSet o EOffsOn) o
hasta que se desactiva el offset de los ejes externos (EOffsOff).

Slo es posible activar un offset para los ejes externos en un momento dado. No es
posible sumar un offset a otro mediante EOffsSet.

El offset de los ejes externos se desactiva automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
EOffsSet
[ EAxOffs := ] < expresin (IN) de extjoint> ;

Informacin relacionada
Descrito en:
Desactivacin de offsets para los ejes externos Instrucciones - EOffsOff
Definicin de offsets a partir de dos posiciones Instrucciones - EOffsSet
Desplazamiento de los movimientos del robot Instrucciones - PDispOn
Definicin de datos del tipo extjoint Tipos de datos - extjoint
Sistemas de coordenadas Principios de movimiento -
Sistemas de coordenadas

62 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ErrWrite
Instruccin

ErrWrite - Escribir un mensaje de error


ErrWrite (escribir error) se utiliza para mostrar un mensaje de error en la unidad de
programacin y escribirla en el registro de mensajes del robot.

Ejemplo
ErrWrite Error de PLC, Error no recuperable en el PLC \RL2:=Llame al servicio
tcnico.;
Stop;

Se almacena un mensaje en el registro del robot. Tambin se muestra en la


pantalla de la unidad de programacin.

ErrWrite \ W, Error de bsqueda, La primera bsqueda no tuvo xito.;


RAISE try_search_again;

Slo se almacena un mensaje en el registro del robot. Despus la ejecucin del


programa contina.

Argumentos
ErrWrite [ \W ] Header Reason [ \RL2] [ \RL3] [ \RL4]

[ \W ] (Advertencia) Tipo de dato: switch

Genera una advertencia que slo se almacena en el registro de mensajes del robot (no
se muestra directamente en la pantalla de la unidad de programacin).

Header Tipo de dato: string

El ttulo del mensaje de error (mximo 24 caracteres).

Reason Tipo de dato: string

Motivo del error (lnea 1, mximo 40 caracteres).

[ \RL2] (lnea 2 del motivo) Tipo de dato: string

Motivo del error (lnea 2, mximo 40 caracteres).

[ \RL3] (lnea 3 del motivo) Tipo de dato: string

Motivo del error (lnea 3, mximo 40 caracteres).

[ \RL4] (lnea 4 del motivo) Tipo de dato: string

Motivo del error (lnea 4, mximo 40 caracteres).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 63


ErrWrite
Instruccin

Ejecucin de programas
Un mensaje de error (mximo 5 lneas) se muestra en la unidad de programacin y se
escribe en el registro de mensajes del robot.

ErrWrite genera siempre el n de error de programa 80001 o, en el caso de las


advertencias (con el argumento \W), el n 80002.

Limitaciones
La longitud total de la cadena (ttulo+motivo+\RL2+\RL3+\RL4) est limitada a 145
caracteres.

Sintaxis
ErrWrite
[ \ W , ]
[ Header := ] < expresin (IN) de string> ,
[ Reason := ] < motivo (IN) de string>
[ \ RL2 := < expresin (IN) de string> ]
[ \ RL3 := < expresin (IN) de string> ]
[ \ RL4 := < expresin (IN) de string> ]

Informacin relacionada
Descrito en:
Visualizacin de un mensaje slo en Instrucciones - TPWrite
la unidad de programacin
Registros de mensajes Servicio

64 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


EXIT
Instruccin

EXIT - Finaliza la ejecucin del programa


EXIT se utiliza para finalizar la ejecucin de un programa. Se impide la reanudacin
del programa, es decir, ste slo puede ejecutarse empezando de nuevo desde la
primera instruccin de la rutina main (si no se mueve manualmente el punto de inicio).

La instruccin EXIT debe usarse cuando se producen errores no recuperables o cuando


se debe detener definitivamente la ejecucin del programa. Para detener
temporalmente la ejecucin del programa, se utiliza la instruccin Stop.

Ejemplo
ErrWrite "Error no recuperable", "Estado no vlido";
EXIT;

La ejecucin del programa se detiene y no puede reanudarse en la posicin en la


que se detiene el programa.

Sintaxis
EXIT ;

Informacin relacionada
Descrito en:
Detencin temporal de la ejecucin del programa Instrucciones - Stop

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 65


EXIT
Instruccin

66 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ExitCycle
Instruccin

ExitCycle - Interrumpir el ciclo actual y pasar al siguiente


ExitCycle se utiliza para interrumpir el ciclo actual y trasladar el puntero de programa
a la primera instruccin de la rutina principal.

Si el programa se ejecuta en modo continuo, se empezar a ejecutar el ciclo siguiente.


Si la ejecucin se encuentra en el modo cclico, la ejecucin se detiene en la primera
instruccin de la rutina principal.

Ejemplo
VAR num cyclecount:=0;
VAR intnum error_intno;

PROC main()
IF cyclecount = 0 THEN
CONNECT error_intno WITH error_trap;
ISignalDI di_error,1,error_intno;
ENDIF
cyclecount:=cyclecount+1;
! Empezar a hacer algo inteligente
....

ENDPROC

TRAP error_trap
TPWrite ERROR. Se empieza en el elemento siguiente;
ExitCycle;
ENDTRAP

En este programa, se ejecuta el ciclo siguiente si se activa la seal di_error.

Ejecucin de programas
La ejecucin de ExitCycle en la tarea de programa MAIN da lugar a lo siguiente en la
tarea MAIN:

- Se detienen los movimientos en curso del robot.


- Se eliminan todas las trayectorias del robot que no se hayan realizado an en
los distintos niveles de trayectoria (tanto en el nivel normal como en el nivel
StorePath).
- Se interrumpen todas las instrucciones iniciadas pero no terminadas en todos
los niveles de ejecucin (tanto en la ejecucin normal como en las rutinas
TRAP).
- El puntero de programa se traslada a la primera instruccin de la rutina
principal.
- La ejecucin del programa contina y pasa a ejecutar el ciclo siguiente.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 67


ExitCycle
Instruccin

La ejecucin de ExitCycle en cualquier otra tarea de programa (aparte de MAIN) da


lugar a lo siguiente en la tarea actual:

- Se interrumpen todas las instrucciones iniciadas pero no terminadas en todos los


niveles de ejecucin (tanto en la ejecucin normal como en las rutinas TRAP).
- El puntero de programa se traslada a la primera instruccin de la rutina
principal.
- La ejecucin del programa contina y pasa a ejecutar el ciclo siguiente.

Los dems elementos modales del programa y del sistema no se ven afectados por la
instruccin ExitCycle. Entre ellos se encuentran los siguientes:

- El valor actual de las variables o variables persistentes


- Cualquier parmetro de movimiento, como secuencias StorePath-RestoPath,
zonas mundo, etc.
- Archivos abiertos, directorios, etc.
- Interrupciones definidas, etc.

Cuando se utiliza ExitCycle en llamadas a rutinas y la rutina de entrada se define como


Mover el puntero de programa a la rutina... o Llamar a la rutina..., ExitCycle
interrumpe el ciclo actual y devuelve el puntero de programa a la primera instruccin
de la rutina de entrada (en lugar de la rutina principal como se especificaba
anteriormente).

Sintaxis
ExitCycle;

Informacin relacionada
Descrito en:
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro para acciones de programa Instrucciones - Stop
Finalizacin de la ejecucin de una rutina Instrucciones - RETURN

68 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


FOR
Instruccin

FOR - Repite una operacin un nmero determinado de veces


FOR se utiliza cuando es necesario repetir una o varias instrucciones un nmero
determinado de veces.

Ejemplo
FOR i FROM 1 TO 10 DO
routine1;
ENDFOR

Repite el procedimiento routine1 10 veces.

Argumentos
FOR Contador del bucle FROM Valor inicial TO Valor final
[STEP valor de paso] DO ... ENDFOR
Contador del bucle Identificador

El nombre del dato que contendr el valor del contador del bucle actual.
Este dato se declara automticamente.

Si el nombre del contador del bucle es el mismo que cualquier otro dato que
exista dentro del mbito actual, el dato existente se oculta dentro del bucle FOR
y no se ve afectado de ningn modo.

Valor inicial Tipo de dato: Num

El valor inicial deseado para el contador del bucle.


(normalmente valores enteros)

Valor final Tipo de dato: Num

El valor final deseado para el contador del bucle.


(normalmente valores enteros)

Valor de paso Tipo de dato: Num

El valor en el que debe incrementarse (o reducirse) el contador del bucle con


cada bucle.
(normalmente valores enteros)

Si no se especifica este valor, el valor de paso es automticamente 1 (o -1 si el


valor inicial es mayor que el valor final).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 69


FOR
Instruccin

Ejemplo
FOR i FROM 10 TO 2 STEP -1 DO
a{i} := a{i-1};
ENDFOR

Se ajustan hacia arriba los valores de una matriz a{10}:=a{9}, a{9}:=a{8}, etc.

Ejecucin de programas
1. Se evalan las expresiones usadas para los valores inicial, final y de paso.
2. Se asigna al contador del bucle el valor inicial.
3. El valor del contador del bucle se comprueba para comprobar si se encuentra entre
el valor inicial y el final o si es igual al valor inicial o final. Si el valor de un contador
de bucle queda fuera de este rango, el bucle FOR se detiene y la ejecucin del
programa contina en la instruccin que aparece a continuacin de ENDFOR.
4. Se ejecutan las instrucciones incluidas dentro del bucle FOR.
5. Se incrementa (o reduce) el contador del bucle acorde con el valor de paso.
6. El bucle FOR se repite, empezando por el punto 3.

Limitaciones
El contador del bucle (del tipo de dato num) slo est disponible desde dentro del bucle
FOR y por tanto supone la ocultacin de otros datos y rutinas que tengan el mismo
nombre. Slo pueden leerlo (pero no actualizarlo) las instrucciones del bucle FOR.

No es posible utilizar valores decimales para los valores de inicio, final o paso en
combinacin con condiciones de finalizacin exactas para el bucle FOR (sin una
definicin de si se est utilizando o no la ltima pasada del bucle).

Comentarios
Si el nmero de repeticiones de las operaciones depende de que una expresin
determinada d como resultado el valor TRUE, se deben utilizar instrucciones WHILE
en lugar de FOR.

70 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


FOR
Instruccin

Sintaxis
(EBNF)
FOR <variable de bucle> FROM <expresin> TO <expresin>
[ STEP <expresin> ] DO
<lista de instrucciones>
ENDFOR
<variable de bucle> ::= <identificador>

Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Repeticin siempre y cuando se cumpla Instrucciones - WHILE
una condicin
Identificadores Caractersticas bsicas - Elementos
bsicos

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 71


FOR
Instruccin

72 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


GetSysData
Instruccin

GetSysData - Obtencin de datos del sistema


GetSysData captura el valor y, opcionalmente, el nombre de smbolo de un dato de
sistema actual del tipo de dato especificado.

Esta instruccin permite capturar datos y de la herramienta, el objeto de trabajo o la


carga til (del robot), adems de su nombre.

Ejemplo
PERS tooldata curtoolvalue := [TRUE, [[0, 0, 0], [1, 0, 0, 0]],
[0, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0]];
VAR string curtoolname;

GetSysData curtoolvalue;

Copia el valor actual del dato de la herramienta a la variable persistente


curtoolvalue.

GetSysData curtoolvalue \ObjectName := curtoolname;

Tambin copia el nombre de la herramienta activa a la curtoolname.

Argumentos
GetSysData DestObject [\ ObjectName ]
DestObject Tipo de dato: anytype

La variable persistente para el almacenamiento del valor actual del dato de


sistema.

El tipo de dato de este argumento tambin especifica el tipo de dato de sistema


(herramienta, objeto de trabajo o carga til) que se desea capturar.

[\ObjectName] Tipo de dato: string

El argumento opcional (variable o variable persistente) para capturar tambin el


nombre del dato de sistema activo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 73


GetSysData
Instruccin

Ejecucin de programas
Cuando se ejecuta la instruccin GetSysData, el valor actual del dato se almacena en la
variable persistente especificada en el argumento DestObject.

Si se utiliza el argumento \ObjectName, el nombre del dato actual se almacena en la


variable o la variable persistente especificada en el argumento ObjectName.

El dato de sistema actual para la herramienta o el objeto de trabajo se activa mediante


la ejecucin de cualquier instruccin de movimiento. Tambin puede establecerse
manualmente en la ventana de movimiento.

Sintaxis
GetSysData
[ DestObject:=] < variable persistente (PERS) de anytype>
[\ObjectName:= < expresin (INOUT) de string> ] ;

Informacin relacionada
Descrito en:
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Establecimiento de datos del sistema Instrucciones - SetSysData

74 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


GetTrapData
Instruccin Advanced functions (Funciones avanzadas)

GetTrapData - Obtencin de datos de interrupcin para la


rutina TRAP actual
GetTrapData se utiliza en rutinas TRAP para obtener todos los datos sobre la
interrupcin que caus la ejecucin de la rutina TRAP.

Debe utilizarse en las rutinas TRAP generadas por la instruccin IError, antes del uso
de la instruccin ReadErrData.

Ejemplo
VAR trapdata err_data;

GetTrapData err_data;

La informacin de las interrupciones se almacenan en la variable sin valor


err_data.

Argumentos
GetTrapData TrapEvent
TrapEvent Tipo de dato: trapdata

La variable en la que se desea almacenar la informacin de qu hecho provoc


la ejecucin de la rutina TRAP.

Limitacin
Esta instruccin slo puede usarse desde dentro de una rutina TRAP.

Ejemplo
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
VAR trapdata err_data;
.
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
ENDTRAP
Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el nmero
y el tipo de error se almacenan en las variables adecuadas sin valor, del tipo
trapdata.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 75


GetTrapData
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
GetTrapData
[TrapEvent :=] <variable (VAR) de trapdata>;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Datos de interrupciones para la rutina Tipos de datos - trapdata
TRAP actual
Peticin de una interrupcin en caso de error Instrucciones - IError
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual
Obtencin de informacin sobre un error Instrucciones - ReadErrData

76 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


GOTO
Instruccin

GOTO - Salta a otra instruccin


GOTO se utiliza para transferir la ejecucin del programa a otra lnea (una etiqueta)
creada dentro de la misma rutina.

Ejemplos
GOTO next;
.
next:

La ejecucin del programa contina en la instruccin que sigue a la etiqueta


next.

reg1 := 1;
next:
.
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;

Se ejecuta cinco veces el bucle de programa next.

IF reg1>100 GOTO highvalue;


lowvalue:
.
GOTO ready;
highvalue:
.
ready:

Si reg1 es mayor que 100, se ejecuta el bucle de programa highvalue. De lo


contrario, se ejecuta el bucle lowvalue.

Argumentos
GOTO Label
Label Identificador

La etiqueta que indica dnde debe continuar la ejecucin del programa.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 77


GOTO
Instruccin

Limitaciones
Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentra
dentro de la misma rutina.

Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentre
dentro de una instruccin IF o TEST si la instruccin GOTO se encuentra tambin
dentro de la misma bifurcacin de la instruccin.

Slo es posible transferir la ejecucin del programa a una etiqueta que se encuentre
dentro de una instruccin FOR o WHILE si la instruccin GOTO se encuentra tambin
dentro de la instruccin.

Sintaxis
(EBNF)
GOTO <identificador>;

Informacin relacionada
Descrito en:
Etiqueta Instrucciones - etiqueta
Otras instrucciones que modifican el flujo Resumen sobre RAPID - Control del
del programa flujo del programa

78 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


GripLoad
Instruccin

GripLoad - Define la carga til del robot


GripLoad se utiliza para definir la carga til que se sostiene con la pinza del robot.

Descripcin
Es importante definir siempre la carga real de la herramienta y, si se usa, tambin la
carga til del robot. Una definicin incorrecta de los datos de carga puede dar lugar a
la sobrecarga de la estructura mecnica del robot.

Cuando se especifican datos de carga incorrectos, este hecho suele tener las
consecuencias siguientes:

- Si el valor de los datos de carga especificados es mayor que el valor de la carga


real:
-> El robot no funcionar a su capacidad mxima
-> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones

Si el valor de los datos de carga especificados es menor que el valor de la carga real:
-> Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
-> Riesgo de sobrecarga de la estructura mecnica

Ejemplos
GripLoad piece1;

La pinza del robot sostiene una carga denominada piece1.

GripLoad load0;

La pinza del robot suelta todas las cargas.

Argumentos
GripLoad Load
Load Tipo de dato: loaddata

El dato de carga que describe la carga til actual.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 79


GripLoad
Instruccin

Ejecucin de programas
La carga especificada afecta al rendimiento del robot.

La carga predeterminada, de 0 kg, se establecen automticamente en los casos


siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
GripLoad
[ Load := ] < variable persistente (PERS) de loaddata > ;

Informacin relacionada
Descrito en:
Definicin de datos de carga Tipos de datos - loaddata
Definicin de cargas de herramienta Tipos de datos - tooldata

80 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IDelete
Instruccin

IDelete - Cancela una interrupcin


IDelete (eliminar interrupcin) se utiliza para cancelar (eliminar) una interrupcin.

Si slo se desea desactivar temporalmente la interrupcin, deben utilizarse las


instrucciones ISleep o IDisable.

Ejemplo
IDelete feeder_low;

Se cancela la interrupcin feeder_low.

Argumentos
IDelete Interrupt
Interrupt Tipo de dato: intnum

La identidad de la interrupcin.

Ejecucin de programas
La definicin de la interrupcin se elimina completamente. Para definirla de nuevo, es
necesario reconectarla primero a la rutina TRAP.

La instruccin debe ir precedida por un punto de paro. De lo contrario, la interrupcin


se desactivar antes de alcanzar el punto final.

No es imprescindible eliminar las interrupciones, ya que esto se produce


automticamente en los casos siguientes:

- Cuando se carga un nuevo programa


- Cuando se reinicia el programa desde el principio
- Cuando se traslada el puntero de programa al principio de una rutina

Sintaxis
IDelete
[ Interrupt := ] < variable (VAR) de intnum > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 81


IDelete
Instruccin

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Desactivacin temporal de una interrupcin Instrucciones - ISleep
Desactivacin temporal de todas Instrucciones - IDisable
las interrupciones

82 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IDisable
Instruccin

IDisable - Desactiva todas las interrupciones


IDisable (desactivar interrupciones) se utiliza para desactivar temporalmente todas las
interrupciones. Por ejemplo, puede usarse en una parte especialmente delicada del
programa en la que no debe permitirse que se produzcan interrupciones, si stas
impiden la ejecucin normal del programa.

Ejemplo
IDisable;
FOR i FROM 1 TO 100 DO
character[i]:=ReadBin(sensor);
ENDFOR
IEnable;

No se permite ninguna interrupcin mientras se est leyendo el canal serie.

Ejecucin de programas
Las interrupciones que se produzcan durante el periodo en el que est vigente la
instruccin IDisable se almacenan en una cola. Cuando vuelven a permitirse las
interrupciones, se empiezan a generar inmediatamente las interrupciones de la cola,
que se ejecutan en un orden FIFO.

IEnable est activado de forma predeterminada. IEnable se activa automticamente en


los casos siguientes:

- En los arranques en fro


- Cuando se inicia la ejecucin del programa desde el principio de main
- Despus de ejecutar un ciclo (ms all de main) o tras ejecutar ExitCycle

Sintaxis
IDisable;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID - Interrupciones
Activacin de interrupciones Instrucciones - IEnable

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 83


IDisable
Instruccin

84 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IEnable
Instruccin

IEnable - Habilita el uso de interrupciones


IEnable (habilitar interrupciones) se utiliza para permitir el uso de interrupciones
durante la ejecucin del programa.

Ejemplo
IDisable;
FOR i FROM 1 TO 100 DO
character[i]:=ReadBin(sensor);
ENDFOR
IEnable;

No se permite ninguna interrupcin mientras se est leyendo el canal serie.


Cuando se completa la lectura, las interrupciones vuelven a permitirse.

Ejecucin de programas
Las interrupciones que se produzcan durante el periodo en el que est vigente la
instruccin IDisable se almacenan en una cola. Cuando vuelven a permitirse las
interrupciones (con IEnable), se empiezan a generar inmediatamente las
interrupciones de la cola, que se ejecutan en un orden FIFO. A partir de ese momento,
la ejecucin del programa contina del modo normal y las interrupciones que se
produzcan a continuacin se procesan tan pronto como se producen.

De forma predeterminada, se permite el uso de interrupciones siempre que se empieza


a ejecutar un programa. Las interrupciones desactivadas por la instruccin ISleep no se
ven afectadas por la instruccin IEnable.

Sintaxis
IEnable;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID - Interrupciones
Desactivacin de interrupciones Instrucciones - IDisable

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 85


IEnable
Instruccin

86 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IError
Instruccin Advanced functions (Funciones avanzadas)

IError - Solicita una interrupcin para errores


IError (interrupciones para errores) se utiliza para solicitar y activar una interrupcin
cuando se produce un error.

IError permite registrar los errores, advertencias o cambios de estado.


Consulte la Gua del usuario - Gestin de errores, Mensajes del sistema y de error para
obtener ms informacin.

Ejemplo
VAR intnum err_int;
...
CONNECT err_int WITH err_trap;
IError COMMON_ERR, TYPE_ALL, err_int;

Solicita una interrupcin de RAPID y la ejecucin de la rutina TRAP err_trap


cada vez que el sistema genera un error, una advertencia o un cambio de estado.

Argumentos
IError ErrorDomain [\ErrorId] ErrorType Interrupt
ErrorDomain Tipo de dato: errdomain

El dominio de error que debe monitorizarse.


Consulte el tipo de dato predefinido errdomain.
Para especificar cualquier dominio, utilice COMMON_ERR.

[\ErrorId] Tipo de dato: num

Opcionalmente, el nmero de un error concreto que se desea monitorizar.


El nmero de error debe especificarse sin el primer dgito (el que corresponde al
dominio del error) del nmero de error completo.
Por ejemplo, el error 10008 Program restarted, debe especificarse como 0008 o
simplemente 8.

ErrorType Tipo de dato: errtype

El tipo de evento, por ejemplo un error, una advertencia o un cambio de estado,


que se desea monitorizar.
Consulte los datos predefinidos del tipo errtype.
Para especificar cualquier tipo, utilice TYPE_ALL.

Interrupt Tipo de dato: intnum

La identidad de la interrupcin. La identidad debe estar ya conectada a una rutina


TRAP mediante la instruccin CONNECT.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 87


IError
Advanced functions (Funciones avanzadas) Instruccin

Ejecucin de programas
La llamada a la rutina TRAP correspondiente se realiza automticamente cuando se
produce un error, en el dominio especificado, del tipo especificado y opcionalmente
con el nmero de error especificado. Una vez ejecutada la rutina, la ejecucin del
programa contina a partir del punto en el que se produjo la interrupcin.

Ejemplo
VAR intnum err_interrupt;
VAR trapdata err_data;
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
...
CONNECT err_interrupt WITH trap_err;
IError COMMON_ERR, TYPE_ERR, err_interupt;
...
IDelete err_interrupt;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
! Seleccionar el dominio n 1 ... 13
SetGO go_err1, err_domain;
! Seleccionar el error n 1 ...9999
SetGO go_err2, err_number;
ENDTRAP

Cuando se produce un error (slo en el caso de los errores, no las advertencias ni


los cambios de estado), el nmero de error se obtiene en la rutina TRAP y su valor
se utiliza para activar dos grupos de salidas digitales.

Limitacin
No es posible solicitar interrupciones para los errores internos.

No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla


previamente. Por tanto, las interrupciones deben tratarse de la forma mostrada, con una
de las alternativas siguientes.

VAR intnum err_interrupt;

88 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IError
Instruccin Advanced functions (Funciones avanzadas)

PROC main ( )
CONNECT err_interrupt WITH err_trap;
IError COMMON_ERR, TYPE_ERR, err_interupt;
WHILE TRUE DO
:
:
ENDWHILE
ENDPROC

Las interrupciones estn activadas cuando se empieza a ejecutar el programa. En


este caso, las instrucciones se mantienen fuera del flujo principal del programa.

PROC main ( )
VAR intnum err_interrupt;
CONNECT err_interrupt WITH err_trap;
IError COMMON_ERR, TYPE_ERR, err_interupt;
:
:
IDelete err_interrupt;
ENDPROC

La interrupcin se elimina al final del programa y se activa de nuevo. En este


caso, es importante recordar que la interrupcin permanece inactiva durante un
periodo breve.

Sintaxis
IError
[ErrorDomain :=] <expresin (IN) de errdomain>
[\ErrorId:= <expresin (IN) de num>] ,
[ErrorType :=] <expresin (IN) de errtype> ,
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Dominios de error, constantes predefinidas Tipos de datos - errdomain
Tipos de error, constantes predefinidas Tipos de datos - errtype
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual
Obtencin de informacin sobre un error Instrucciones - ReadErrData

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 89


IError
Advanced functions (Funciones avanzadas) Instruccin

90 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IF
Instruccin

IF - Si se cumple una condicin, ...; de lo contrario, ...


IF se utiliza cuando es necesario ejecutar instrucciones diferentes en funcin de si se
cumple una condicin.

Ejemplos
IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF

Las seales do1 y do2 slo se activan si reg1 es mayor que 5.

IF reg1 > 5 THEN


Set do1;
Set do2;
ELSE
Reset do1;
Reset do2;
ENDIF

Las seales do1 y do2 se activan o desactivan en funcin de si reg1 es mayor


que 5.

Argumentos
IF Condicin THEN ...
{ELSEIF Condicin THEN ...}
[ELSE ...]
ENDIF
Condicin Tipo de dato: bool

La condicin que debe cumplirse para que se ejecuten las instrucciones que se
encuentran entre THEN y ELSE/ELSEIF.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 91


IF
Instruccin

Ejemplo
IF counter > 100 THEN
counter := 100;
ELSEIF counter < 0 THEN
counter := 0;
ELSE
counter := counter + 1;
ENDIF

Se incrementa Counter en 1. Sin embargo, si el valor de counter se encuentra


fuera de los lmites 0 y 100, se asigna a counter el valor de lmite correspondiente.

Ejecucin de programas
Las condiciones se comprueban una tras otra hasta que una de ellas se cumple. La
ejecucin del programa contina con las instrucciones asociadas con la condicin. Si
no se cumple ninguna de las condiciones, la ejecucin del programa contina con las
instrucciones que aparecen a continuacin de ELSE. Si se cumple ms de una
condicin, slo se ejecutan las instrucciones asociadas con la primera de las
condiciones.

Sintaxis
(EBNF)
IF <expresin condicional> THEN
<lista de instrucciones>
{ELSEIF <expresin condicional> THEN <lista de instrucciones> | <EIF>}
[ELSE
<lista de instrucciones>]
ENDIF

Informacin relacionada
Descrito en:
Condiciones (expresiones lgicas) Caractersticas bsicas - Expresiones

92 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Incr
Instruccin

Incr - Aumenta en 1 un valor


Incr se utiliza para sumar 1 a una variable o una variable persistente de tipo numrico.

Ejemplo
Incr reg1;

Se suma 1 a reg1, es decir, reg1:=reg1+1.

Argumentos
Incr Name
Name Tipo de dato: num

El nombre de la variable o de la variable persistente que se desea cambiar.

Ejemplo
WHILE stop_production=0 DO
produce_part;
Incr no_of_parts;
TPWrite "Nmero de piezas producidas = "\Num:=no_of_parts;
ENDWHILE

Con cada ciclo, se actualiza en la unidad de programacin el nmero de piezas.


La produccin sigue en marcha siempre y cuando no se active la seal
stop_production.

Sintaxis
Incr
[ Name := ] < variable o variable persistente (INOUT) de num > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 93


Incr
Instruccin

Informacin relacionada
Descrito en:
Decremento de una variable en 1 Instrucciones - Decr
Suma de cualquier valor a una variable Instrucciones - Add
Cambio de un dato mediante una expresin Instrucciones - :=
arbitraria, por ejemplo una multiplicacin

94 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


InvertDO
Instruccin

InvertDO - Invierte el valor de una seal de salida digital


InvertDO (invertir salida digital) invierte el valor de una seal digital de salida
(0 -> 1 y 1 -> 0).

Ejemplo
InvertDO do15;

Se invierte el valor de la seal do15.

Argumentos
InvertDO Signal
Signal Tipo de dato: signaldo

El nombre de la seal a invertir.

Ejecucin de programas
Se invierte el valor actual de la seal (consulte la Figura 3).
:

1
Nivel de la seal
0
Ejecucin de la instruccin InvertDO
Ejecucin de la instruccin InvertDO
1
Nivel de la seal
0
Figura 3 Inversin de una seal digital de salida.

Sintaxis
InvertDO
[ Signal := ] < variable (VAR) de signaldo > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 95


InvertDO
Instruccin

Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Parmetros del sistema

96 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IODisable
Instruccin

IODisable - Desactiva una unidad de E/S


IODisable se utiliza para desactivar una unidad de E/S durante la ejecucin del
programa.

Las unidades de E/S estn activadas de forma automtica despus del inicio, si estn
definidas en los parmetros del sistema. En las ocasiones en que sea necesario, es
posible desactivar o activar las unidades de E/S durante la ejecucin del programa.

Ejemplos
CONST string cell1:=cell1;

IODisable cell1, 5;

Se desactiva la unidad de E/S denominada cell1. El tiempo mximo de espera es


de 5 seg.

Argumentos
IODisable UnitName MaxTime
UnitName Tipo de dato: string

El nombre de la unidad de E/S que se desea desactivar (con el mismo nombre


con el que se configur).

MaxTime Tipo de dato: num

El periodo mximo permitido para el tiempo de espera, expresado en segundos.


Si se agota este tiempo antes de que la unidad de E/S haya finalizado los pasos
de desactivacin, es posible llamar al gestor de errores, si lo hay, con el cdigo
de error ERR_IODISABLE. Si no hay ningn gestor de errores, se detiene la
ejecucin.

La desactivacin de una unidad de E/S requiere de 0 a 5 segundos


aproximadamente.

Ejecucin de programas
La unidad de E/S especificada inicia los pasos de desactivacin. La instruccin queda
finalizada tan pronto como terminan los pasos de la desactivacin. Si se agota el
tiempo lmite MaxTime antes de que la unidad de E/S haya finalizado los pasos de
desactivacin, se genera un error recuperable.

Despus de la desactivacin de una unidad de E/S, el establecimiento de salidas de esta


unidad da lugar a errores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 97


IODisable
Instruccin

Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:

ERR_IODISABLE si se agota el tiempo lmite antes de que la unidad


se desactive.
ERR_CALLIO_INTER Si una peticin IOEnable o IODisable es
interrumpida por otra peticin a la misma unidad.
ERR_NAME_INVALID Si el nombre de la unidad no existe o si no se
permite la desactivacin de la unidad.

Ejemplo
PROC go_home()
VAR num recover_flag :=0;
...
! Iniciar la desactivacin de la unidad de E/S cell1
recover_flag := 1;
IODisable cell1, 0;
! Desplazarse hacia la posicin inicial home
MoveJ home, v1000,fine,tool1;
! Esperar hasta que la desactivacin de la unidad de E/S cell1 se haya completado
recover_flag := 2;
IODisable cell1, 5;
...
ERROR
IF ERRNO = ERR_IODISABLE THEN
IF recover_flag = 1 THEN
TRYNEXT;
ELSEIF recover_flag = 2 THEN
RETRY;
ENDIF
ELSEIF ERRNO = ERR_EXCRTYMAX THEN
ErrWrite Error de IODisable, Imposible desactivar la unidad de E/S
cell1;
Stop;
ENDIF
ENDPROC

Con el fin de ahorrar tiempo de ciclo, se desactiva la unidad de E/S cell1 durante
el movimiento del robot hacia la posicin home. Cuando el robot se encuentra en
la posicin home, se realiza una comprobacin para determinar si la unidad de
E/S cell1 se ha desactivado completamente. Despus del nmero mximo de
reintentos (5 con un tiempo de espera de 5 segundos), la ejecucin del robot se
detiene con un mensaje de error.

98 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IODisable
Instruccin

El mismo principio puede usarse con IOEnable (de esta forma, se ahorra tiempo
de ciclo en comparacin con IODisable).

Sintaxis
IODisable
[ UnitName := ] < expresin (IN) de string > ,
[ MaxTime := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Activacin de una unidad de E/S Instrucciones - IOEnable
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 99


IODisable
Instruccin

100 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IODNGetAttr
Instruccin

IODNGetAttr - Obtiene un atributo de una unidad de E/S


IODNGetAttr (obtener atributo de red de dispositivos DeviceNet de E/S) se utiliza para
obtener un atributo de una unidad de E/S de la red de dispositivos DeviceNet.

Ejemplos
VAR string name;
...
IODNGetAttr "dsqc328", "6,20 01 24 01 30 07,17,20", name \Timeout:=3;

Esta operacin obtiene el nombre de producto de la unidad de E/S dsqc328. El


nombre de producto se almacena en la variable de cadena de caracteres name. El
tiempo lmite se establece en 3 segundos.

VAR string serialno;


...
IODNGetAttr "dsqc328", "6,20 01 24 01 30 06,9,4", serialno;

Esta operacin obtiene el nmero de serie de la unidad de E/S dsqc328. El valor


se almacena en la variable de cadena de caracteres serialno. Se usa el tiempo
lmite predeterminado, de 5 segundos.

Argumentos
IODNGetAttr UnitName Path GetValue [ \Timeout ]
UnitName Tipo de dato: string

El nombre de la unidad de E/S (el mismo nombre con el que se configur).

Path Tipo de dato: string

Los valores de la trayectoria se almacenan en el archivo EDS. Para obtener una


descripcin ms detallada, consultar el documento DeviceNet Specification rev.
2.0 (Especificacin de DeviceNet versin 2.0) de la Open DeviceNet Vendor
Association.

GetValue Tipo de dato: string

El valor del atributo se almacena en esta variable de cadena. La longitud total de


la cadena est limitada a 30 caracteres.

[ \Timeout] Tipo de dato: num

El periodo permitido para el tiempo de espera, expresado en segundos.

Si se omite este argumento, el tiempo lmite predeterminado es de 5 segundos.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 101


IODNGetAttr
Instruccin

Ejecucin de programas
El programa sigue esperando hasta que la unidad de E/S responda.

Si se agota el tiempo lmite Timeout antes de que la unidad de E/S responda, se llama
al gestor de errores, si lo hay, con el cdigo de error ERR_IODN_TIMEOUT.
Si no hay ningn gestor de errores, la ejecucin se detiene.

Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:

ERR_IODN_TIMEOUT Si se agota el tiempo lmite antes de que la unidad


haya respondido para confirmar que est preparada.
ERR_NAME_INVALID Si el nombre de la unidad no existe.
ERR_MSG_PENDING Ya se ha enviado un mensaje a la unidad. Se debe
esperar un instante (por ejemplo 100 mseg)
e intentarlo de nuevo.

Sintaxis
IODNGetAttr
[ UnitName := ] < expresin (IN) de string > ,
[ Path := ] < expresin (IN) de string > ,
[ GetValue := ] < variable (VAR) de string >
[ \ Timeout := < expresin (IN) de num > ] ;

Informacin relacionada
Descrito en:
Open DeviceNet Vendor Association DeviceNet Specification rev. 2.0
(Especificacin de DeviceNet versin 2.0)
Configuracin de E/S Gua del usuario - Parmetros del
sistema
Configuracin de E/S Gua del usuario de IO Plus
Configuracin de E/S Manual del programador de RAPID -
Parmetros del sistema
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Establecimiento de atributos Instrucciones - IODNSetAttr
de las unidades de E/S

102 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IODNSetAttr
Instruccin

IODNSetAttr - Establece un atributo para una unidad de E/S


IODNSetAttr (establecer atributo de red de dispositivos DeviceNet de E/S) se utiliza
para establecer un atributo en una unidad de E/S de la red de dispositivos DeviceNet.

Ejemplos
IODNSetAttr "dsqc328", "6,20 1D 24 01 30 65,8,1", 5 \Timeout:=3;

Esta instruccin establece un tiempo de filtro de 5 para el momento de


desactivacin de la seal de entrada 1 de la unidad dsqc328. El tiempo lmite se
establece en 3 segundos.

IODNSetAttr "dsqc328", "6,20 1D 24 01 30 64,8,1", 4;

Esta instruccin establece un tiempo de filtro de 4 para el momento de activacin


de la seal de entrada 1 de la unidad dsqc328. Se usa el tiempo lmite
predeterminado, de 5 segundos.

Argumentos
IODNSetAttr UnitName Path SetValue [ \Timeout ]
UnitName Tipo de dato: string

El nombre de la unidad de E/S (el mismo nombre con el que se configur).

Path Tipo de dato: string

Los valores de la trayectoria se almacenan en el archivo EDS. Para obtener una


descripcin ms detallada, consultar el documento DeviceNet Specification rev.
2.0 (Especificacin de DeviceNet versin 2.0) de la Open DeviceNet Vendor
Association.

SetValue Tipo de dato: string

El valor al que se cambia el atributo. La longitud total de la cadena est limitada


a 30 caracteres.

[ \Timeout] Tipo de dato: num

El periodo permitido para el tiempo de espera, expresado en segundos.

Si se omite este argumento, el tiempo lmite predeterminado es de 5 segundos.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 103


IODNSetAttr
Instruccin

Ejecucin de programas
El programa sigue esperando hasta que la unidad de E/S responda.

Si se agota el tiempo lmite Timeout antes de que la unidad de E/S responda, se llama
al gestor de errores, si lo hay, con el cdigo de error ERR_IODN_TIMEOUT. Si no hay
ningn gestor de errores, se detiene la ejecucin.

Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:

ERR_IODN_TIMEOUT Si se agota el tiempo lmite antes de que la unidad


haya respondido para confirmar que est
preparada.
ERR_NAME_INVALID Si el nombre de la unidad no existe.
ERR_MSG_PENDING Ya se ha enviado un mensaje a la unidad. Se debe
esperar un instante (por ejemplo 100 mseg) e
intentarlo de nuevo.

Sintaxis
IODNSetAttr
[ UnitName := ] < expresin (IN) de string > ,
[ Path := ] < expresin (IN) de string > ,
[ SetValue:= ] < expresin (IN) de string >
[ \ Timeout := < expresin (IN) de num > ] ;

104 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IODNSetAttr
Instruccin

Informacin relacionada
Descrito en:
Open DeviceNet Vendor Association DeviceNet Specification rev. 2.0
(Especificacin de DeviceNet versin 2.0)
Configuracin de E/S Gua del usuario - Parmetros del sistema
Configuracin de E/S Gua del usuario de IO Plus
Configuracin de E/S Manual del programador de RAPID -
Parmetros del sistema
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Obtencin de atributos de las unidades Instrucciones - IODNGetAttr
de E/S

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 105


IODNSetAttr
Instruccin

106 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IOEnable
Instruccin

IOEnable - Activa una unidad de E/S


IOEnable se utiliza para activar una unidad de E/S durante la ejecucin del programa.

Las unidades de E/S estn activadas de forma automtica despus del inicio, si estn
definidas en los parmetros del sistema. En las ocasiones en que sea necesario, es
posible desactivar o activar las unidades de E/S durante la ejecucin del programa.

Ejemplos
CONST string cell1:=cell1;

IOEnable cell1, 5;

Se activa la unidad de E/S con el nombre cell1. El tiempo de espera es de 5


segundos.

Argumentos
IOEnable UnitName MaxTime
UnitName Tipo de dato: string

El nombre de la unidad de E/S que se desea activar (con el mismo nombre con
el que se configur).

MaxTime Tipo de dato: num

El periodo mximo permitido para el tiempo de espera, expresado en segundos.


Si se agota este tiempo antes de que la unidad de E/S haya finalizado los pasos
de activacin, es posible llamar al gestor de errores, si lo hay, con el cdigo de
error ERR_IOENABLE. Si no hay ningn gestor de errores, se detiene la
ejecucin.

La activacin de una unidad de E/S requiere de 2 a 5 segundos


aproximadamente.

Ejecucin de programas
La unidad de E/S especificada inicia los pasos de activacin. La instruccin queda
finalizada tan pronto como terminan los pasos de la activacin. Si se agota el tiempo
lmite MaxTime antes de que la unidad de E/S haya finalizado los pasos de activacin,
se genera un error recuperable.

Despus de una secuencia IODisable - IOEnable, todas las salidas de la unidad de E/


S actual vuelven a los valores anteriores (los que tenan antes de la instruccin
IODisable).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 107


IOEnable
Instruccin

Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser
gestionados en un gestor de errores. La variable de sistema ERRNO cambia a:

ERR_IOENABLE si se agota el tiempo lmite antes de que la unidad


se active.
ERR_CALLIO_INTER Si una peticin IOEnable o IODisable es
interrumpida por otra peticin a la misma unidad.
ERR_NAME_INVALID Si el nombre de la unidad no existe o si no se
permite la desactivacin de la unidad.

Ejemplo
IOEnable tambin puede usarse para comprobar si una unidad de E/S est desconectada
por algn motivo.

VAR num max_retry:=0;


...
IOEnable cell1, 0;
SetDO cell1_sig3, 1;
...
ERROR
IF ERRNO = ERR_IOENABLE THEN
IF max_retry < 5 THEN
WaitTime 1;
max_retry := max_retry + 1;
RETRY;
ELSE
RAISE;
ENDIF
ENDIF

Antes de usar seales de la unidad de E/S cell1, se realiza una comprobacin


mediante un intento de activacin de la unidad de E/S con un tiempo lmite de 0
segundos. Si la comprobacin falla, se salta al gestor de errores. En el gestor de
errores, la ejecucin del programa espera durante 1 segundo y se hace un nuevo
intento. Despus de 5 reintentos, el error ERR_IOENABLE se propaga hacia la
rutina desde la que se llama a esta rutina de prueba.

Sintaxis
IOEnable
[ UnitName := ] < expresin (IN) de string > ,
[ MaxTime := ] < expresin (IN) de num > ;

108 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IOEnable
Instruccin

Informacin relacionada
Descrito en:
Ms ejemplos Instrucciones - IODisable
Desactivacin de una unidad de E/S Instrucciones - IODisable
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 109


IOEnable
Instruccin

110 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

ISignalAI - Interrupciones a partir de una seal analgica de


entrada
ISignalAI (interrupcin de seal analgica de entrada) se utiliza para solicitar y
activar interrupciones a partir de una seal analgica de entrada.

Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalAI \Single, ai1, AIO_BETWEEN, 1.5, 0.5, 0, sig1int;

Solicita una interrupcin que debe producirse la primera vez que el valor lgico
de la seal analgica de entrada ai1 se encuentre entre 0,5 y 1,5. En este caso, se
realiza una llamada a la rutina TRAP iroutine1.

ISignalAI ai1, AIO_BETWEEN, 1.5, 0.5, 0.1, sig1int;

Solicita una interrupcin que debe producirse cada vez que el valor lgico de la
seal analgica de entrada ai1 se encuentre entre 0,5 y 1,5 y cuando la diferencia
absoluta de la seal respecto del valor de referencia almacenado sea superior
a 0,1.

ISignalAI ai1, AIO_OUTSIDE, 1.5, 0.5, 0.1, sig1int;

Se solicita una interrupcin que debe producirse cada vez que el valor lgico de
la seal analgica de entrada ai1 sea inferior a 0,5 o superior a 1,5 y cuando la
diferencia absoluta de la seal respecto del valor de referencia almacenado sea
superior a 0,1.

Argumentos
ISignalAI [\Single] Signal Condition HighValue LowValue
DeltaValue [\DPos] | [\DNeg] Interrupt
[\Single] Tipo de dato: switch

Especifica si la interrupcin debe producirse una sola vez o de forma cclica.

Si se utiliza el argumento Single, la interrupcin se produce como mximo una


sola vez. Si se omite el argumento, se genera una interrupcin cada vez que se
cumpla la condicin.

Signal Tipo de dato: signalai

El nombre de la seal a partir de la cual deben generarse las interrupciones.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 111


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

Condicin Tipo de dato: aiotrigg

Especifica cmo HighValue y LowValue definen la condicin que debe


cumplirse:

- AIO_ABOVE_HIGH: Valor lgico de la seal por encima de HighValue


- AIO_BELOW_HIGH: Valor lgico de la seal por debajo de HighValue
- AIO_ABOVE_LOW: Valor lgico de la seal por encima de LowValue
- AIO_BELOW_LOW: Valor lgico de la seal por debajo de LowValue
- AIO_BETWEEN: Valor lgico de la seal entre LowValue y HighValue
- AIO_OUTSIDE: Valor lgico de la seal por encima de HighValue o por debajo
de LowValue
- AIO_ALWAYS: Independiente de HighValue y LowValue

HighValue Tipo de dato: num

El valor lgico de lmite mximo utilizado para definir la condicin.

LowValue Tipo de dato: num

El valor lgico de lmite mnimo utilizado para definir la condicin.

DeltaValue Tipo de dato: num

Define la diferencia mnima entre dos seales lgicas antes de que se genere una
nueva interrupcin. El valor actual de la seal, comparado con el valor de
referencia almacenado, debe ser mayor que el valor especificado en DeltaValue
para que se genere una nueva interrupcin.

[\DPos] Tipo de dato: switch

Especifica que slo las diferencias positivas entre seales lgicas suponen la
generacin de nuevas interrupciones.

[\DNeg] Tipo de dato: switch

Especifica que slo las diferencias negativas entre seales lgicas suponen la
generacin de nuevas interrupciones.

Si no se utiliza el argumento \DPos ni el argumento \DNeg tanto las diferencias


positivas como las negativas suponen la generacin de nuevas interrupciones.

Interrupt Tipo de dato: intnum

La identidad de la interrupcin. La interrupcin debe estar ya conectada a una


rutina TRAP mediante la instruccin CONNECT.

112 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

Ejecucin de programas
En el momento en el que la seal satisface las condiciones especificadas (tanto
Condition como DeltaValue), se realiza una llamada a la rutina TRAP correspondiente.
Una vez ejecutada la rutina, la ejecucin del programa contina a partir del punto en el
que se produjo la interrupcin.

Condiciones para la generacin de interrupciones

Antes de solicitar la suscripcin a una interrupcin, cada vez que se muestre la seal,
el valor de sta se lee, se guarda y se utiliza posteriormente como valor de referencia
para la condicin DeltaValue.

En el momento de la suscripcin de la interrupcin, si se especifica DeltaValue = 0 y


cada vez que se muestre la seal despus del momento de la interrupcin, su valor se
compara con HighValue y LowValue teniendo en cuenta el tipo de condicin
establecido en Condition. En funcin del valor de DeltaValue, se genera o no la
interrupcin. Si el nuevo valor ledo satisface los valores especificados en HighValue,
LowValue y Condition, pero su diferencia respecto del ltimo valor de referencia
almacenado es menor o igual al valor del argumento DeltaValue, no se produce
ninguna interrupcin.
Si la diferencia entre las seales no se produce en el sentido especificado, no se genera
ninguna interrupcin (argumento \DPos o \DNeg).

El valor de referencia almacenado para la condicin DeltaValue se actualiza con un


nuevo valor ledo para su uso en los muestreos posteriores, siempre y cuando se
cumplan las condiciones siguientes:

- Argumento Condition con valores HighValue y LowValue especificados (dentro


de lmites)
- Argumento DeltaValue (variacin suficiente de la seal en cualquier sentido,
independientemente del modificador \DPos o \DNeg especificado)

El valor de referencia slo se actualiza en el momento del muestreo, no en el momento


de la suscripcin de la interrupcin.

Tambin se genera una interrupcin en el momento del muestreo que se hace para
actualizar el valor de referencia, siempre y cuando la diferencia entre las seales
cumpla el argumento especificado (en cualquier sentido \DPos o \DNeg).

Si se utiliza el modificador \Single, slo se genera una interrupcin como mximo.


Si no se utiliza el modificador \Single (lo que supone una interrupcin cclica), se
realiza una nueva comprobacin de las condiciones especificadas (tanto Condition
como DeltaValue) con cada muestreo del valor original, comparado con el valor actual
de la seal y con el ltimo valor de referencia almacenado, para generar o no generar
la interrupcin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 113


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

Condicin para la generacin de una interrupcin en el momento de la suscripcin

Muestreo antes de la suscripcin de la interrupcin

RefValue := CurrentValue

Suscripcin de la interrupcin
Falso
CurrentValue comparado con Condition
HighValue y LowValue

Verdadero

Falso
DeltaValue = 0

Verdadero

Se genera una interrupcin

Continuar

114 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

Condicin para la generacin de una interrupcin con cada muestreo a partir del
momento de la suscripcin

Nuevo muestreo

Falso
CurrentValue comparado con Condition
HighValue y LowValue
Verdadero

Verdadero
No se especifica DPos ni DNeg y
ABS(CurrentValue - RefValue) > DeltaValue
Falso

Verdadero
Se especifica DPos y
(CurrentValue - RefValue) > DeltaValue

Falso
Verdadero
Se especifica DNeg y
(RefValue - CurrentValue) > DeltaValue

Falso
RefValue := CurrentValue

ABS(CurrentValue - RefValue) > DeltaValue Se genera una


interrupcin

Falso
Verdadero

RefValue := CurrentValue

Continuar

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 115


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

Ejemplo 1 de generacin de interrupciones

Valor lgico de la seal

HighValue

Valor de la seal

LowValue

0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia

Suponiendo que la interrupcin se solicita entre el muestreo 0 y el 1, la instruccin


siguiente da lugar a los resultados siguientes:

ISignalAI ai1, AIO_BETWEEN, 6.1, 2,2, 1.0, sig1int;

El muestreo 1 genera una interrupcin, ya que el valor de la seal se encuentra


entre HighValue y LowValue y la diferencia entre las seales respecto del
muestreo 0 es superior a DeltaValue.

El muestreo 2 genera una interrupcin, ya que el valor de la seal se encuentra


entre HighValue y LowValue y la diferencia entre las seales respecto del
muestreo 1 es superior a DeltaValue.

Ni el muestreo 3, el 4 ni el 5 generan interrupciones, ya que la diferencia entre las


seales es inferior a DeltaValue.

El muestreo 6 genera una interrupcin.

Los muestreos del 7 al 10 no generan ninguna interrupcin, porque la seal se


encuentra por encima de HighValue

El muestreo 11 no genera ninguna interrupcin, porque la diferencia entre las


seales respecto del muestreo 6 es igual a DeltaValue.

El muestreo 12 no genera ninguna interrupcin, porque la diferencia entre las


seales respecto del muestreo 6 es inferior a DeltaValue.

116 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

Ejemplo 2 de generacin de interrupciones

Valor lgico de la seal

HighValue

Valor de la seal

LowValue

0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia

Suponiendo que la interrupcin se solicita entre el muestreo 0 y el 1, la instruccin


siguiente da lugar a los resultados siguientes:

ISignalAI ai1, AIO_BETWEEN, 6.1, 2,2, 1.0 \DPos, sig1int;

Se almacena un nuevo valor de referencia en los muestreos 1 y 2, ya que la seal


se encuentra dentro de los lmites y el valor absoluto de la diferencia entre el
valor actual y el ltimo valor de referencia almacenado es superior a 1,0.
No se genera ninguna interrupcin porque las variaciones de la seal se producen
en sentido negativo.

El muestreo 6 genera una interrupcin, ya que el valor de la seal se encuentra


entre HighValue y LowValue y la diferencia en sentido positivo entre las seales
respecto del muestreo 2 es superior a DeltaValue.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 117


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

Ejemplo 3 de generacin de interrupciones

Valor lgico de la seal

HighValue

Valor de la seal

LowValue

0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia

Suponiendo que la interrupcin se solicita entre el muestreo 0 y el 1, la instruccin


siguiente da lugar a los resultados siguientes:

ISignalAI \Single, ai1, AIO_OUTSIDE, 6.1, 2,2, 1.0 \DPos, sig1int;

Se almacena un nuevo valor de referencia en el muestreo 7, ya que la seal se


encuentra dentro de los lmites y el valor absoluto de la diferencia entre el valor
actual y el ltimo valor de referencia almacenado es superior a 1,0.

El muestreo 8 genera una interrupcin, ya que el valor de la seal se encuentra


por encima de HighValue y la diferencia en sentido positivo entre las seales
respecto del muestreo 7 es superior a DeltaValue.

118 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

Ejemplo 4 de generacin de interrupciones

Valor lgico de la seal

HighValue

Valor de la seal

LowValue

0 1 2 3 4 5 6 7 8 9 10 11 12 Muestreos
Tiempo de solicitud de suscripcin de la interrupcin
Almacenamiento del valor de referencia

Suponiendo que la interrupcin se solicita entre el muestreo 0 y el 1, la instruccin


siguiente da lugar a los resultados siguientes:

ISignalAI ai1, AIO_ALWAYS, 6.1, 2,2, 1.0 \DPos, sig1int;

Se almacena un nuevo valor de referencia en los muestreos 1 y 2, ya que la seal


se encuentra dentro de los lmites y el valor absoluto de la diferencia entre el
valor actual y el ltimo valor de referencia almacenado es superior a 1,0.

El muestreo 6 genera una interrupcin, ya que la diferencia entre las seales en


sentido positivo respecto del muestreo 2 es superior a DeltaValue.

Los muestreos 7 y 8 generan una interrupcin, ya que la diferencia entre las


seales en sentido positivo respecto del muestreo anterior es superior a
DeltaValue.

Se almacena un nuevo valor de referencia en los muestreos 11 y 12, ya que la


seal se encuentra dentro de los lmites y el valor absoluto de la diferencia entre
el valor actual y el ltimo valor de referencia almacenado es superior a 1,0.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 119


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

Gestin de errores
Si se produce la suscripcin de una interrupcin para una seal analgica de entrada,
se genera una interrupcin para cada variacin en el valor analgico que cumpla la
condicin especificada al solicitar la suscripcin de la interrupcin. Si el valor
analgico presenta ruido, es posible que se generen muchas interrupciones, incluso a
pesar de que slo varen uno o dos bits del valor analgico.

Para evitar la generacin de interrupciones para pequeos cambios del valor de la


entrada analgica, utilice en DeltaValue un nivel superior a 0. A partir de ese momento,
no se genera ninguna interrupcin hasta que el cambio del valor analgico sea superior
al valor especificado para DeltaValue.

Limitaciones
Los argumentos HighValue y LowValue deben estar dentro del rango: valor lgico
mximo y valor lgico mnimo definidos para la seal.

HighValue debe ser superior a LowValue.

DeltaValue debe ser 0 o un valor positivo.

Las limitaciones de la identidad de la interrupcin son las mismas que en el caso de


ISignalDI.

Sintaxis
ISignalAI
[ \Single,]
[ Signal:= ]<variable (VAR) de signalai>,
[ Condition:= ]<expresin (IN) de aiotrigg>,
[ HighValue:= ]<expresin (IN) de num>,
[ LowValue:= ]<expresin (IN) de num>,
[ DeltaValue:= ]<expresin (IN) de num>
[ \DPos] | [ \DNeg] ,
[ Interrupt := ] < variable (VAR) de intnum > ;

120 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAI
Instruccin Advanced functions (Funciones avanzadas)

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Definicin de constantes Tipos de datos - aiotrigg
Interrupcin a partir de una seal analgica de salida Instrucciones - ISignalAO
Interrupcin a partir de una seal digital de entrada Instrucciones - ISignalDI
Interrupcin a partir de una seal de salida digital Instrucciones - ISignalDO
Ms informacin sobre la gestin de interrupciones Caractersticas bsicas -
Interrupciones
Ms ejemplos Tipos de datos - intnum
Parmetros de sistema relacionados (filtro) Parmetros del sistema -
Seales de E/S

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 121


ISignalAI
Advanced functions (Funciones avanzadas) Instruccin

122 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAO
Instruccin Advanced functions (Funciones avanzadas)

ISignalAO - Interrupciones a partir de una seal analgica de


salida
ISignalAO (interrupcin de seal analgica de salida) se utiliza para solicitar y activar
interrupciones a partir de una seal analgica de salida.

Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalAO \Single, ao1, AIO_BETWEEN, 1.5, 0.5, 0, sig1int;

Solicita una interrupcin que debe producirse la primera vez que el valor lgico
de la seal analgica de salida ao1 se encuentre entre 0,5 y 1,5. En este caso, se
realiza una llamada a la rutina TRAP iroutine1.

ISignalAO ao1, AIO_BETWEEN, 1.5, 0.5, 0.1, sig1int;

Solicita una interrupcin que debe producirse cada vez que el valor lgico de la
seal de salida analgica ao1 se encuentre entre 0,5 y 1,5 y cuando la diferencia
absoluta de la seal respecto del valor de referencia almacenado anteriormente
sea superior a 0,1.

ISignalAO ao1, AIO_OUTSIDE, 1.5, 0.5, 0.1, sig1int;

Se solicita una interrupcin que debe producirse cada vez que el valor lgico de
la seal de salida analgica ao1 sea inferior a 0,5 o superior a 1,5 y cuando la
diferencia absoluta de la seal respecto del valor de referencia almacenado sea
superior a 0,1.

Argumentos
ISignalAO [\Single] Signal Condition HighValue LowValue
DeltaValue [\DPos] | [\DNeg] Interrupt
[\Single] Tipo de dato: switch

Especifica si la interrupcin debe producirse una sola vez o de forma cclica.

Si se utiliza el argumento Single, la interrupcin se produce como mximo una


sola vez. Si se omite el argumento, se genera una interrupcin cada vez que se
cumpla la condicin.

Signal Tipo de dato: signalao

El nombre de la seal a partir de la cual deben generarse las interrupciones.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 123


ISignalAO
Advanced functions (Funciones avanzadas) Instruccin

Condicin Tipo de dato: aiotrigg

Especifica cmo HighValue y LowValue definen la condicin que debe


cumplirse:

AIO_ABOVE_HIGH: Valor lgico de la seal por encima de HighValue


AIO_BELOW_HIGH: Valor lgico de la seal por debajo de HighValue
AIO_ABOVE_LOW: Valor lgico de la seal por encima de LowValue
AIO_BELOW_LOW: Valor lgico de la seal por debajo de LowValue
AIO_BETWEEN: Valor lgico de la seal entre LowValue y HighValue
AIO_OUTSIDE: Valor lgico de la seal por encima de HighValue o
por debajo de LowValue
AIO_ALWAYS: Independiente de HighValue y LowValue

HighValue Tipo de dato: num

El valor lgico de lmite mximo utilizado para definir la condicin.

LowValue Tipo de dato: num

El valor lgico de lmite mnimo utilizado para definir la condicin.

DeltaValue Tipo de dato: num

Define la diferencia mnima entre dos seales lgicas antes de que se genere una
nueva interrupcin. El valor actual de la seal, comparado con el valor de
referencia almacenado anteriormente, debe ser mayor que el valor especificado
en DeltaValue para que se genere una nueva interrupcin.

[\DPos] Tipo de dato: switch

Especifica que slo las diferencias positivas entre seales lgicas suponen la
generacin de nuevas interrupciones.

[\DNeg] Tipo de dato: switch

Especifica que slo las diferencias negativas entre seales lgicas suponen la
generacin de nuevas interrupciones.

Si no se utilizan los argumentos \DPos ni \DNeg, tanto las diferencias positivas


como las negativas suponen la generacin de nuevas interrupciones.

Interrupt Tipo de dato: intnum

La identidad de la interrupcin. La interrupcin debe estar ya conectada a una


rutina TRAP mediante la instruccin CONNECT.

124 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalAO
Instruccin Advanced functions (Funciones avanzadas)

Ejecucin de programas
Consulte la instruccin ISignalAI para obtener ms informacin sobre:

- Ejecucin de programas
- Condiciones para la generacin de interrupciones
- Ms ejemplos

Los principios en los que se basa ISignalAO son los mismos que se aplican a ISignalAI.

Limitaciones
Los argumentos HighValue y LowValue deben estar dentro del rango: valor lgico
mximo y valor lgico mnimo definidos para la seal.

HighValue debe ser superior a LowValue.

DeltaValue debe ser 0 o un valor positivo.

Las limitaciones de la identidad de la interrupcin son las mismas que en el caso de


ISignalDO.

Sintaxis
ISignalAO
[ \Single,]
[ Signal:= ]<variable (VAR) de signalao>,
[ Condition:= ]<expresin (IN) de aiotrigg>,
[ HighValue:= ]<expresin (IN) de num>,
[ LowValue:= ]<expresin (IN) de num>,
[ DeltaValue:= ]<expresin (IN) de num>
[ \DPos] | [ \DNeg] ,
[ Interrupt := ] < variable (VAR) de intnum > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 125


ISignalAO
Advanced functions (Funciones avanzadas) Instruccin

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Definicin de constantes Tipos de datos - aiotrigg
Interrupcin a partir de una seal analgica de entrada Instrucciones - ISignalAI
Interrupcin a partir de una seal digital de entrada Instrucciones - ISignalDI
Interrupcin a partir de una seal digital de salida Instrucciones - ISignalDO
Ms informacin sobre la gestin de interrupciones Caractersticas bsicas -
Interrupciones
Ms ejemplos Tipos de datos - intnum
Parmetros de sistema relacionados (filtro) Parmetros del sistema -
Seales de E/S

126 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalDI
Instruccin

ISignalDI - Solicita interrupciones a partir de una seal


digital de entrada
ISignalDI (interrupcin de seal digital de entrada) se utiliza para solicitar y activar
interrupciones a partir de una seal digital de entrada.

Las seales de sistema tambin pueden generar interrupciones.

Ejemplos
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1,1,sig1int;

Solicita una interrupcin que debe producirse cada vez que la seal digital de
entrada di1 cambie a 1. En este caso, se realiza una llamada a la rutina TRAP
iroutine1.

ISignalDI di1,0,sig1int;

Solicita una interrupcin que debe producirse cada vez que la seal digital de
entrada di1 cambie a 0.

ISignalDI \Single, di1,1,sig1int;

Solicita una interrupcin que debe producirse slo la primera vez que la seal
digital de entrada di1 cambie a 1.

Argumentos
ISignalDI [ \Single ] Signal TriggValue Interrupt
[\Single] Tipo de dato: switch

Especifica si la interrupcin debe producirse una sola vez o de forma cclica.

Si se utiliza el argumento Single, la interrupcin se produce como mximo una


sola vez. Si se omite el argumento, se genera una interrupcin cada vez que se
cumpla la condicin.

Signal Tipo de dato: signaldi

El nombre de la seal a partir de la cual deben generarse las interrupciones.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 127


ISignalDI
Instruccin

TriggValue Tipo de dato: dionum

El valor al que debe cambiar la seal para que se produzca la interrupcin.

El valor se especifica como 0 1 o como un valor simblico (por ejemplo high/


low). La seal se dispara en el momento del cambio a 0 1.

En TriggValue es posible usar el valor 2 o el valor simblico edge para la


generacin de interrupciones tanto en el flanco positivo (0 -> 1) como en el flanco
negativo (1 -> 0).

Interrupt Tipo de dato: intnum

La identidad de la interrupcin. La interrupcin debe estar ya conectada a una


rutina TRAP mediante la instruccin CONNECT.

Ejecucin de programas
En el momento en el que la seal recibe el valor especificado, se realiza una llamada a
la rutina TRAP correspondiente. Una vez ejecutada la rutina, la ejecucin del programa
contina a partir del punto en el que se produjo la interrupcin.

Si la seal cambia al valor especificado antes de la solicitud de la interrupcin, no se


produce ninguna interrupcin (consulte la Figura 4).
:

1
Nivel de la seal
0
Se produce una interrupcin
Se solicita una interrupcin

Se solicita una interrupcin


1
Nivel de la seal
0
Se produce una interrupcin
Figura 4 Interrupciones de una seal digital de entrada a partir del nivel de seal 1.

Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Por tanto, las interrupciones deben tratarse de la forma mostrada, con una
de las alternativas siguientes.

128 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalDI
Instruccin

PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1, 1, sig1int;
WHILE TRUE DO
:
:
ENDWHILE
ENDPROC

Al principio del programa se produce la activacin de todas las interrupciones.


En este caso, las instrucciones se mantienen fuera del flujo principal del
programa.

PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1, 1, sig1int;
:
:
IDelete sig1int;
ENDPROC

La interrupcin se elimina al final del programa y se activa de nuevo. En este


caso, es importante recordar que la interrupcin permanece inactiva durante un
periodo breve.

Sintaxis
ISignalDI
[ \Single,]
[ Signal := ] < variable (VAR) de signaldi > ,
[ TriggValue := ] < expresin (IN) de dionum >,
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Interrupcin a partir de una seal de salida Instrucciones - ISignalDO
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Ms ejemplos Tipos de datos - intnum

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 129


ISignalDI
Instruccin

130 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalDO
Instruccin

ISignalDO - Interrupciones a partir de una seal digital de


salida
ISignalDO (interrupcin de seal digital de salida) se utiliza para solicitar y activar
interrupciones a partir de una seal digital de salida.

Las seales de sistema tambin pueden generar interrupciones.

Ejemplos
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDO do1,1,sig1int;

Solicita una interrupcin que debe producirse cada vez que la seal de salida
digital do1 cambie a 1. En este caso, se realiza una llamada a la rutina TRAP
iroutine1.

ISignalDO do1,0,sig1int;

Solicita una interrupcin que debe producirse cada vez que la seal de salida
digital do1 cambie a 0.

ISignalDO\Single, do1,1,sig1int;

Solicita una interrupcin que debe producirse slo la primera vez que la seal de
salida digital do1 cambie a 1.

Argumentos
ISignalDO [ \Single ] Signal TriggValue Interrupt
[\Single] Tipo de dato: switch

Especifica si la interrupcin debe producirse una sola vez o de forma cclica.

Si se utiliza el argumento Single, la interrupcin se produce como mximo una


sola vez. Si se omite el argumento, se genera una interrupcin cada vez que se
cumpla la condicin.

Signal Tipo de dato: signaldo

El nombre de la seal a partir de la cual deben generarse las interrupciones.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 131


ISignalDO
Instruccin

TriggValue Tipo de dato: dionum

El valor al que debe cambiar la seal para que se produzca la interrupcin.

El valor se especifica como 0 1 o como un valor simblico (por ejemplo high/


low). La seal se dispara en el momento del cambio a 0 1.

En TriggValue es posible usar el valor 2 o el valor simblico edge para la


generacin de interrupciones tanto en el flanco positivo (0 -> 1) como en el flanco
negativo (1 -> 0).

Interrupt Tipo de dato: intnum

La identidad de la interrupcin. La interrupcin debe estar ya conectada a una


rutina TRAP mediante la instruccin CONNECT.

Ejecucin de programas
En el momento en el que la seal recibe el valor especificado, 0 1, se realiza una
llamada a la rutina TRAP correspondiente. Una vez ejecutada la rutina, la ejecucin del
programa contina a partir del punto en el que se produjo la interrupcin.

Si la seal cambia al valor especificado antes de la solicitud de la interrupcin, no se


produce ninguna interrupcin (consulte la Figura 5).

1
Nivel de la seal
0
Se produce una interrupcin
Se solicita una interrupcin

Se solicita una interrupcin


1
Nivel de la seal
0
Se produce una interrupcin
Figura 5 Interrupciones de una seal de salida digital a partir del nivel de seal 1.

Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Por tanto, las interrupciones deben tratarse de la forma mostrada, con una
de las alternativas siguientes.

VAR intnum sig1int;

132 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISignalDO
Instruccin

PROC main ( )
CONNECT sig1int WITH iroutine1;
ISignalDO do1, 1, sig1int;
WHILE TRUE DO
:
:
ENDWHILE
ENDPROC

Al principio del programa se produce la activacin de todas las interrupciones.


En este caso, las instrucciones se mantienen fuera del flujo principal del
programa.

PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDO do1, 1, sig1int;
:
:
IDelete sig1int;
ENDPROC

La interrupcin se elimina al final del programa y se activa de nuevo. En este


caso, es importante recordar que la interrupcin permanece inactiva durante un
periodo breve.

Sintaxis
ISignalDO
[ \Single,]
[ Signal := ] < variable (VAR) de signaldo > ,
[ TriggValue := ] < expresin (IN) de dionum >,
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Interrupcin a partir de una seal digital Instrucciones - ISignalDI
de entrada
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Ms ejemplos Tipos de datos - intnum

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 133


ISignalDO
Instruccin

134 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ISleep
Instruccin

ISleep - Desactiva una interrupcin


ISleep (interrupcin en reposo) se utiliza para desactivar temporalmente una
interrupcin determinada.

Durante el periodo en el que una interrupcin est desactivada, su aparicin no se


detecta y se desecha, sin ejecutar ninguna rutina TRAP.

Ejemplo
ISleep sig1int;

Se desactiva la interrupcin sig1int.

Argumentos
ISleep Interrupt
Interrupt Tipo de dato: intnum

La variable (la identidad) de la interrupcin.

Ejecucin de programas
Cualquier interrupcin del tipo especificado que se genere despus de ejecutar la
instruccin se desecha sin ejecutar ninguna rutina TRAP, hasta que se reactive la
interrupcin mediante la instruccin IWatch. No se procesa ninguna interrupcin
generada mientras ISleep.

Ejemplo
VAR intnum timeint;
CONNECT timeint WITH check_serialch;
ITimer 60, timeint;
.
ISleep timeint;
WriteBin ch1, buffer, 30;
IWatch timeint;
.
TRAP check_serialch
WriteBin ch1, buffer, 1;
IF ReadBin(ch1\Time:=5) < 0 THEN
TPWrite Se interrumpe la comunicacin serie;
EXIT;
ENDIF
ENDTRAP
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 135
ISleep
Instruccin

Se monitoriza la comunicacin a travs del canal serie ch1, mediante


interrupciones generadas cada 60 segundos. La rutina TRAP comprueba si la
comunicacin est funcionando. Sin embargo, si hay una comunicacin en curso,
no se permiten estas interrupciones.

Gestin de errores
No se permite ninguna interrupcin que no se haya solicitado ni activado. Si se
desconoce el nmero de la interrupcin, la variable de sistema ERRNO cambiar a
ERR_UNKINO (consulte Tipos de datos - errnum). El error puede ser gestionado en
el gestor de errores.

Sintaxis
ISleep
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Activacin de una interrupcin Instrucciones - IWatch
Desactivacin de todas las interrupciones Instrucciones - IDisable
Cancelacin de una interrupcin Instrucciones - IDelete

136 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ITimer
Instruccin

ITimer - Solicita una interrupcin temporizada


ITimer (interrupcin con temporizador) se utiliza para solicitar y activar una
interrupcin temporizada.

Por ejemplo, esta instruccin puede utilizarse para comprobar el estado de los equipos
perifricos una vez por minuto.

Ejemplos
VAR intnum timeint;
CONNECT timeint WITH iroutine1;
ITimer 60, timeint;

Solicita una interrupcin que debe producirse cclicamente cada 60 segundos. En


este caso, se realiza una llamada a la rutina TRAP iroutine1.

ITimer \Single, 60, timeint;

Solicita una interrupcin que debe producirse una vez cada 60 segundos.

Argumentos
ITimer [ \Single ] Time Interrupt
[\Single] Tipo de dato: switch

Especifica si la interrupcin debe producirse una sola vez o de forma cclica.

Si se utiliza el argumento Single, la interrupcin se produce una sola vez. Si se


omite el argumento, se genera una interrupcin cada vez que se alcanza el
momento especificado.

Time Tipo de dato: num

La cantidad de tiempo que debe transcurrir antes de que se produzca la


interrupcin.

El valor se especifica en segundos si se usa Single. No puede ser inferior a 0,05


segundos. El tiempo correspondiente para las interrupciones cclicas es de 0,25
segundos.

Interrupt Tipo de dato: intnum

La variable (la identidad) de la interrupcin. La interrupcin debe estar ya


conectada a una rutina TRAP mediante la instruccin CONNECT.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 137


ITimer
Instruccin

Ejecucin de programas
Se llama automticamente a la rutina TRAP correspondiente en un momento
determinado a partir de la solicitud de la interrupcin. Una vez ejecutada la rutina, la
ejecucin del programa contina a partir del punto en el que se produjo la interrupcin.

Si la interrupcin se produce de forma cclica, comienza un nuevo clculo del tiempo


a partir del momento en que se produce.

Ejemplo
VAR intnum timeint;
CONNECT timeint WITH check_serialch;
ITimer 60, timeint;
.
TRAP check_serialch
WriteBin ch1, buffer, 1;
IF ReadBin(ch1\Time:=5) < 0 THEN
TPWrite Se interrumpe la comunicacin serie;
EXIT;
ENDIF
ENDTRAP

Se monitoriza la comunicacin a travs del canal serie ch1, mediante


interrupciones generadas cada 60 segundos. La rutina TRAP comprueba si la
comunicacin est funcionando. Si no es as, la ejecucin del programa se
interrumpe y aparece un mensaje de error.

Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Consulte Instrucciones - ISignalDI.

Sintaxis
ITimer
[ \Single,]
[ Time := ] < expresin (IN) de num >,
[ Interrupt := ] < variable (VAR) de intnum > ;

138 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ITimer
Instruccin

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 139


ITimer
Instruccin

140 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IVarValue
Instruccin

IVarValue - Solicita una interrupcin a partir del valor de una


variable
IVarVal (interrupcin a partir del valor de una variable) se utiliza para solicitar y
activar una interrupcin cuando cambia al valor de una variable consultada a travs de
la interfaz serie de sensores.

Por ejemplo, esta instruccin puede usarse para obtener valores de volumen de cordn
o de espacios no soldados desde un palpador electrnico de guiado de una pistola de
soldadura.

Ejemplos
LOCAL PERS num adtVlt{25}:=[1,1.2,1.4,1.6,1.8,2,2.16667,2.33333,2.5,...];
LOCAL PERS num adptWfd{25}:=[2,2.2,2.4,2.6,2.8,3,3.16667,3.33333,3.5,...];
LOCAL PERS num adptSpd{25}:=10,12,14,16,18,20,21.6667,23.3333,25[,...];
LOCAL CONST num GAP_VARIABLE_NO:=11;
PERS num gap_value;
VAR intnum IntAdap;

PROC main()
! Creacin de la interrupcin. Se llama a la rutina TRAP AdapTrp
! cuando cambia el valor de la variable de espacio no soldado
! GAP_VARIABLE_NO en la interfaz de sensores. El nuevo valor estar
! disponible en la variable PERS gp_value.
CONNECT IntAdap WITH AdapTrp;
IVarValue GAP_VARIABLE_NO, gap_value, IntAdap;

! Empezar a soldar
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ENDPROC

TRAP AdapTrap
VAR num ArrInd;

! Correlacionar con una escala el valor de espacio no soldado recibido


ArrInd:=ArrIndx(gap_value);

! Actualizar la variable persistente activa de datos de soldado adaptWd con


! nuevos datos de las matrices de parmetros predefinidos.
! El valor de espacio no soldado ajustado a la escala se utiliza como ndice de las
! matrices de voltaje, alimentacin de material de soldadura y velocidad.
adaptWd.weld_voltage:=adptVlt{ArrInd};
adaptWd.weld_wirefeed:=adptWfd{ArrInd};
adaptWd.weld_speed:=adptSpd{ArrInd};

! Solicitar una actualizacin de los parmetros AW con los nuevos datos de


! adaptWd
ArcRefresh;
ENDTRAP

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 141


IVarValue
Instruccin

Argumentos
IVarValue VarNo Value, Interrupt
VarNo Tipo de dato: num

El nmero de la variable a controlar.

Value Tipo de dato: num

Una variable persistente que contendr el nuevo valor de Varno.

Interrupt Tipo de dato: intnum

La variable (la identidad) de la interrupcin. La interrupcin debe estar ya


conectada a una rutina TRAP mediante la instruccin CONNECT.

Ejecucin de programas
Se llama automticamente a la rutina TRAP correspondiente en un momento
determinado a partir de la solicitud de la interrupcin. Una vez ejecutada la rutina, la
ejecucin del programa contina a partir del punto en el que se produjo la interrupcin.

Limitaciones
No es posible utilizar la misma variable para una identidad de interrupcin ms de
cinco veces sin eliminarla primero.

Sintaxis
IVarValue
[ VarNo := ] < expresin (IN) de num >,
[ Value := ] < variable persistente (PERS) de num >,
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones

142 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


IWatch
Instruccin

IWatch - Activar una interrupcin


IWatch (control de interrupcin) se utiliza para activar una interrupcin que se ha
solicitado anteriormente pero que ha sido desactivada mediante ISleep.

Ejemplo
IWatch sig1int;

Se activa la interrupcin sig1int que fue desactivada anteriormente.

Argumentos
IWatch Interrupt
Interrupt Tipo de dato: intnum

La variable (la identidad) de la interrupcin.

Ejecucin de programas
Vuelve a reactivar las interrupciones del tipo especificado. Sin embargo, las
interrupciones generadas durante el periodo en el que est vigente la instruccin ISleep
no se procesan.

Ejemplo
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalDI di1,1,sig1int;
.
ISleep sig1int;
weldpart1;
IWatch sig1int;

Durante la ejecucin de la rutina weldpart1, no se permite ninguna interrupcin


a partir de la seal di1.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 143


IWatch
Instruccin

Gestin de errores
No se permite utilizar con esta instruccin ninguna interrupcin que no se haya
solicitado anteriormente. Si se desconoce el nmero de la interrupcin, la variable de
sistema ERRNO cambiar a ERR_UNKINO (consulte Tipos de datos - errnum). El
error puede ser gestionado en el gestor de errores.

Sintaxis
IWatch
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Desactivacin de una interrupcin Instrucciones - ISleep

144 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


label
Instruccin

Etiqueta - Nombre de lnea


Una etiqueta se utiliza para asignar un nombre a una lnea del programa. Cuando se
usa la instruccin GOTO, este nombre puede usarse para trasladar la ejecucin del
programa a otro punto.

Ejemplo
GOTO next;
.
next:

La ejecucin del programa contina en la instruccin que sigue a la etiqueta next.

Argumentos
Etiqueta:
Label Identificador

El nombre que desea asignar a la lnea.

Ejecucin de programas
Cuando se ejecuta esta instruccin, no ocurre nada.

Limitaciones
La etiqueta no debe tener el mismo nombre que ninguno de los elementos siguientes:

- Cualquier otra etiqueta dentro de la misma rutina


- Cualquier nombre de dato dentro de la misma rutina

El uso de una etiqueta supone la ocultacin de los datos globales y las rutinas que
tengan el mismo nombre dentro de la rutina en la que se define.

Sintaxis
(EBNF)
<identificador>:

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 145


label
Instruccin

Informacin relacionada
Descrito en:
Identificadores Caractersticas bsicas -
Elementos bsicos
Trasladar la ejecucin del programa a una Instrucciones - GOTO
etiqueta

146 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Load
Instruccin

Load - Carga un mdulo de programa durante la ejecucin


Load se utiliza para cargar un mdulo de programa en la memoria durante la ejecucin.

El mdulo de programa cargado se aade a los mdulos que ya existen en la memoria


de programa.

Los programas o mdulos de sistema pueden cargarse en el modo esttico


(predeterminado) o en el modo dinmico:

Modo esttico
Tabla 1 Cmo afectan las distintas operaciones a los programas o mdulos de sistema cargados en el
modo esttico

Trasladar el puntero de Abrir un nuevo programa de


programa a main desde TP RAPID

Mdulo de programa No se ve afectado Se descarga


Mdulo de sistema No se ve afectado No se ve afectado

Modo dinmico
Tabla 2 Cmo afectan las distintas operaciones a los programas o mdulos de sistema cargados en
el modo dinmico

Trasladar el puntero de Abrir un nuevo programa de


programa a main desde TP RAPID

Mdulo de programa Se descarga Se descarga


Mdulo de sistema Se descarga Se descarga

Tanto los mdulos cargados en modo esttico como los cargados en modo dinmico se
descargan al utilizar la instruccin UnLoad.

Ejemplo
Load \Dynamic, diskhome \File:="PART_A.MOD";

Se carga en la memoria de programa el mdulo PART_A.MOD, desde diskhome.


diskhome es una constante predefinida de cadena de caracteres con el contenido
"HOME:". Cargar el mdulo de programa en modo dinmico.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 147


Load
Instruccin

Argumentos
Load [\Dynamic] FilePath [\File]
[\Dynamic] Tipo de dato: switch

El modificador permite cargar un mdulo de programa en modo dinmico. De lo


contrario, la carga se realiza en modo esttico.

FilePath Tipo de dato: string

La ruta y el nombre del archivo que se cargar en la memoria de programa. El


nombre de archivo se excluye cuando se utiliza el argumento \File.

[\File] Tipo de dato: string

Cuando se excluye el nombre del archivo en el argumento FilePath, es necesario


definirlo con este argumento.

Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de cargarse
antes de continuar en la instruccin siguiente.

Para conseguir una estructura de programa idnea, fcil de comprender y mantener,


todas las operaciones de carga y descarga de mdulos de programa deben hacerse en el
mdulo principal (main) que siempre est presente en la memoria de programa
durante la ejecucin.

Una vez que el mdulo de programa queda cargado, se vincula e inicializa. La


inicializacin del mdulo cargado devuelve todas las variables del nivel de mdulo en
sus valores iniciales. Las referencias no resueltas se aceptarn si el parmetro de
sistema Tasks est definido (BindRef = NO). Por ejemplo, cuando se inicia el programa
o se usa la funcin Programa/Archivo/Comprobar de la unidad de programacin, no se
realiza ninguna comprobacin de referencias no resueltas si el parmetro BindRef tiene
el valor NO. Cuando se ejecuta una referencia no resuelta, se produce un error de
tiempo de ejecucin.

Otra forma de usar referencias a procedimientos que no se encuentran en la tarea desde


un principio es mediante enlazamiento en tiempo de ejecucin. Esto permite usar una
expresin de cadena de caracteres para especificar el procedimiento al que se desea
llamar. La expresin se encierra entre dos smbolos % (consulte el ejemplo). En este
caso, el parmetro BindRef puede recibir el valor YES (el comportamiento
predeterminado). La posibilidad de enlazamiento en tiempo de ejecucin es preferible.

Para la carga de un programa que contiene un procedimiento principal desde un


programa principal (que tiene su propio procedimiento principal), consulte el ejemplo
siguiente.

148 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Load
Instruccin

Ejemplos

Ms ejemplos generales

Load \Dynamic, "HOME:/DOORDIR/DOOR1.MOD";

Carga el mdulo de programa DOOR1.MOD desde HOME: en el directorio


DOORDIR en la memoria de programa. Se carga el mdulo de programa en el
modo dinmico.

Load "HOME:" \File:="DOORDIR/DOOR1.MOD";

Lo mismo que en el ejemplo anterior pero con otra sintaxis. El mdulo se carga
en el modo esttico.

Load\Dynamic, "HOME:/DOORDIR/DOOR1.MOD";
%routine_x%;
UnLoad "HOME:/DOORDIR/DOOR1.MOD";

El mdulo de programa DOOR1.MOD se enlaza durante la ejecucin


(enlazamiento en tiempo de ejecucin).

El programa cargado contiene un procedimiento principal

car.prg door.prg
MODULE car MODULE door
PROC main() PROC main()
................ .................
TEST part .................
CASE door_part: ENDPROC
Load \Dynamic, HOME:/door.prg; ENDMODULE
%door:main%;
UnLoad HOME:/door.prg;
CASE window_part:
window.prg
Load \Dynamic, HOME:/window.prg;
%window:main%; MODULE window
UnLoad \Save, HOME:/window.prg; PROC main()
ENDTEST ..................
ENDPROC ..................
ENDMODULE ENDPROC
ENDMODULE

En el ejemplo anterior se muestra cmo es posible cargar un programa que


incluye un procedimiento main. Este programa puede haber sido desarrollado y
probado por separado para su carga posterior con Load o StartLoad ... WaitLoad
en el sistema, a travs de un marco de trabajo del programa principal. En este
ejemplo se trata de car.prg, que carga los programas secundarios door.prg o
window.prg.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 149
Load
Instruccin

En el programa car.prg, se carga con load el programa door.prg o el programa


window.prg que se encuentra en HOME:. Dado que los procedimientos main
de door.prg y window.prg se consideran como locales (LOCAL) tras la carga del
mdulo del sistema, las llamadas a los procedimientos se realizan de la forma
siguiente: %door:main% o %window: main%. Esta sintaxis se utiliza
cuando se desea tener acceso a los procedimientos de tipo LOCAL de otros
mdulos, en este ejemplo el procedimiento main del mdulo door o del mdulo
window.

La descarga de los mdulos con el argumento \Save har que los procedimientos
main sean de nuevo globales en el programa guardado.

Si tras la carga de los mdulos car o window se traslada el puntero de programa


a main desde cualquier parte del programa, el puntero de programa siempre se
traslada al procedimiento main global del programa principal, en este ejemplo
car.prg.

Limitaciones
Evite tener movimientos en curso durante la carga.

Evite usar disquetes para la carga, ya que la lectura de un disquete es muy lenta.

Gestin de errores
Si no es posible encontrar los archivos a los que se hace referencia en las instrucciones
Load, la variable de sistema ERRNO cambia a ERR_FILNOTFND. Si el mdulo ya
est cargado en la memoria de programa, la variable de sistema ERRNO cambia a
ERR_LOADED (consulte "Tipos de datos - errnum"). Estos errores pueden ser
gestionados en un gestor de errores.

Sintaxis
Load
[\Dynamic ,]
[FilePath :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>];

Informacin relacionada
Descrito en:
Descarga de un mdulo de programa Instrucciones - UnLoad
Carga de mdulos de programa en paralelo Instrucciones - StartLoad-WaitLoad
con la ejecucin de otro programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controller /
Tasks / BindRef

150 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MechUnitLoad
Instruccin

MechUnitLoad - Define una carga til para una unidad


mecnica
MechUnitLoad se utiliza para definir una carga til para una unidad mecnica externa.
(La carga til del robot se define con la instruccin GripLoad)

Esta instruccin debe usarse con todas las unidades mecnicas que tengan un modelo
dinmico en servo, para conseguir el mximo rendimiento de los movimientos.

La instruccin MechUnitLoad debe ejecutarse siempre despus de ejecutar la


instruccin ActUnit.

Ejemplo
IRBP_L

Eje 1

Figura 6 Una unidad mecnica con el nombre IRBP_L y del tipo IRBP L.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, load0;

Se activa la unidad mecnica IRBP_L y se define la carga til load0 que


corresponde a ninguna carga (en absoluto) montada en el eje 1.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, fixture1;

Se activa la unidad mecnica IRBP_L y se define la carga til fixture1 que


corresponde al til fixture1 montado en el eje 1.

ActUnit IRBP_L;
MechUnitLoad IRBP_L, 1, workpiece1;

Se activa la unidad mecnica IRBP_L y se define la carga til workpiece1 que


corresponde al til y a la pieza de trabajo de nombre workpiece1, montada en el
eje 1.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 151


MechUnitLoad
Instruccin

Argumentos
MechUnitLoad MechUnit AxisNo Load

MechUnit (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica.

AxisNo (nmero de eje) Tipo de dato: num

El nmero del eje, dentro de la unidad mecnica, que sostiene la carga.

Load Tipo de dato: loaddata

El dato de carga que describe la carga til actual que se desea definir.

Ejecucin de programas
Despus de la ejecucin de MechUnitLoad, cuando los ejes del robot y los ejes externos
se han detenido, se define la carga especificada para la unidad mecnica y el eje
especificados. Esto significa que la carga til es controlada y monitorizada por el
sistema de control.

La carga til predeterminada en un arranque en fro para un tipo de unidad mecnica


determinada, es la carga til mxima predefinida para dicho tipo de unidad mecnica.

Cuando se utiliza otra carga til, es necesario redefinir con esta instruccin la carga til
real de la unidad mecnica y del eje. Esto debe hacerse siempre despus de la activacin
de la unidad mecnica.

La carga til definida permanece definida despus de reanudaciones tras cadas de


alimentacin. La carga til definida tambin permanece vigente despus de reanudar el
programa tras la activacin manual de otras unidades mecnicas mediante la pantalla
de movimientos.

X til
Sistema de coordenadas del elemento terminal
para la unidad mecnica

Pieza de trabajo

Centro de gravedad de la carga til (til + pieza de trabajo)


Y Unidad mecnica

Figura 7 Carga til montada en el elemento terminal de una unidad mecnica.

152 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MechUnitLoad
Instruccin

Ejemplo

IRBP_K

Eje 2

Eje 1

Eje 3

Figura 8 Una unidad mecnica con el nombre IRBP_K y del tipo IRBP K con tres ejes.

MoveL homeside1, v1000, fine, gun1;


...
ActUnit IRBP_K;

Se activa la totalidad de la unidad mecnica IRBP_K.

MechUnitLoad IRBP_K, 2, workpiece1;

Define la carga til workpiece1 en el eje 2 de la unidad mecnica IRBP_K.

MechUnitLoad IRBP_K, 3, workpiece2;

Define la carga til workpiece2 en el eje 3 de la unidad mecnica IRBP_K.

MoveL homeside2, v1000, fine, gun1

Los ejes de la unidad mecnica IRBP_K se mueven a la posicin de cambio


homeside2 con la carga til montada en los dos ejes, 2 y 3.

Limitaciones
La instruccin de movimiento anterior a esta instruccin debe terminar con un punto
de paro para hacer posible la reanudacin en esta instruccin en caso de cada de
alimentacin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 153


MechUnitLoad
Instruccin

Sintaxis
MechUnitLoad
[MechUnit := ] < variable (VAR) de mecunit> ,
[AxisNo := ] <expresin (IN) de num ,
[ Load := ] < variable persistente (PERS) de loaddata > ;

Informacin relacionada
Descrito en:
Identificacin de cargas tiles para LoadID y CollDetect
unidades mecnicas externas - Programa muloadid.prg
Unidades mecnicas Tipos de datos - mecunit
Definicin de datos de carga Tipos de datos - loaddata
Definicin de una carga til para el robot Instrucciones - GripLoad
Tipos de datos - tooldata

154 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveAbsJ
Instruccin

MoveAbsJ - Mueve el robot a una posicin de ejes absoluta


MoveAbsJ (mover ejes de forma absoluta) se utiliza para mover el robot hacia una
posicin absoluta definida en posiciones de ejes.

Ejemplo de uso:

- El punto final es un punto singular.


- Para posiciones ambiguas en el caso del IRB 6400C, por ejemplo para
movimientos con la herramienta situada sobre el robot.

La posicin final del robot durante un movimiento con MoveAbsJ no se ve afectada


por la herramienta, por el objeto de trabajo ni por el desplazamiento de programa. Sin
embargo, el robot utiliza estos datos para calcular la carga, la velocidad del TCP y la
trayectoria de esquina. Es posible usar las mismas herramientas en instrucciones de
movimiento adyacentes.

Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.

Ejemplos
MoveAbsJ p50, v1000, z50, tool2;

El robot que tiene montada la herramienta tool2 se mueve a lo largo de una


trayectoria no lineal hacia la posicin absoluta de ejes, p50, con los datos de
velocidad v1000 y los datos de zona z50.

MoveAbsJ *, v1000\T:=5, fine, grip3;

El robot que tiene montada la herramienta grip3 se mueve siguiendo una


trayectoria lineal hasta un punto de paro que se almacena como una posicin
absoluta de ejes en la instruccin (se marca con *). Todo el movimiento requiere
5 segundos.

Argumentos
MoveAbsJ [ \Conc ] ToJointPos [\NoEOffs] Speed [ \V ] | [ \T ]
Zone [ \Z ] [ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan mientras el robot est en movimiento.


El argumento se utiliza para acortar el tiempo de ciclo, por ejemplo cuando se
realiza una comunicacin con equipos externos, si no se requiere sincronizacin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 155


MoveAbsJ
Instruccin

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de movimiento


seguidas est limitado a 5. En secciones de programa que incluyen StorePath-
RestoPath, no se permite el uso de instrucciones con el argumento \Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

ToJointPos (posicin de destino de ejes) Tipo de dato: jointtarget

La posicin absoluta de destino de los ejes del robot y de los ejes externos Se
define como una posicin con nombre o se almacena directamente en la
instruccin (marcada con un asterisco * en la instruccin).

[ \NoEOffs ] (sin offsets externos) Tipo de dato: switch

Si se utiliza el argumento NoEOffs, el movimiento con MoveAbsJ no se ve


afectado por los offsets activos para los ejes externos.

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[ \Z ] (zona) Tipo de dato: num

Este argumento se utiliza para especificar la exactitud de la posicin del TCP del
robot, directamente en la instruccin. La longitud de la trayectoria de esquina se
indica en mm y es sustituida por la zona correspondiente especificada en los datos
de zona.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

156 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveAbsJ
Instruccin

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento.

La posicin del TCP y la carga de la herramienta se definen en los datos de la


herramienta. La posicin del TCP se utiliza para decidir la velocidad y la
trayectoria de esquina del movimiento.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo en uso durante el movimiento.

Este argumento puede ser omitido si la herramienta es sostenida por el robot. Sin
embargo, si el robot sostiene el objeto de trabajo, es decir, si la herramienta es
estacionaria, o si se utilizan ejes externos coordinados, es necesario especificar
este argumento.

En el caso de las herramientas estacionarias o los ejes externos coordinados, los


datos utilizados por el sistema para decidir la velocidad y la trayectoria de
esquinas del movimiento se definen en el objeto de trabajo.

Ejecucin de programas
Los movimientos realizados con MoveAbsJ no se ven afectados por el desplazamiento
activo del programa. Adems, si se ejecutan con el modificador \NoEOffs, no se
utilizar ningn offset para los ejes externos. Si no se utiliza el modificador \NoEOffs,
los ejes externos del destino del movimiento se ven afectados por el offset activo en los
ejes externos.

La herramienta se traslada a la posicin absoluta de destino de los ejes, con


interpolacin de los ngulos de los ejes. Esto significa que cada eje se mueve a una
velocidad constante y que todos los ejes alcanzan al mismo tiempo el punto de destino
de ejes, lo que da lugar a una trayectoria no lineal.

En trminos generales, el TCP se mueve a una velocidad aproximada a la programada.


La herramienta se reorienta y los ejes externos se mueven al mismo tiempo que se
mueve el TCP. Si no es posible alcanzar la velocidad programada para la orientacin o
para los ejes externos, se reduce la velocidad del TCP.

Normalmente se generan trayectorias de esquina cuando se transfiere el movimiento a


la siguiente seccin de la trayectoria. Si se especifica un punto de paro en los datos de
zona, la ejecucin del programa slo contina una vez que los ejes del robot y los ejes
externos han alcanzado la posicin de ejes adecuada.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 157


MoveAbsJ
Instruccin

Ejemplos
MoveAbsJ *, v2000\V:=2200, z40 \Z:=45, grip3;

La herramienta, grip3, se mueve siguiendo una trayectoria no lineal hasta una


posicin absoluta de ejes almacenada en la instruccin. El movimiento se realiza
con los datos establecidos en v2000 y z40. La velocidad y el tamao de la zona
del TCP son de 2.200 mm/seg y 45 mm respectivamente.

MoveAbsJ p5, v2000, fine \Inpos := inpos50, grip3;

La herramienta, grip3, se mueve siguiendo una trayectoria no lineal hasta la


posicin absoluta de ejes p5. El robot considera que se encuentra en el punto
cuando se satisface el 50% de la condicin de posicin y el 50% de la condicin
de velocidad de un punto de paro fine. Espera al menos 2 segundos a que se
satisfagan las condiciones. Consulte los datos predefinidos inpos50 del tipo de
dato stoppointdata.

MoveAbsJ \Conc, *, v2000, z40, grip3;

La herramienta, grip3, se mueve siguiendo una trayectoria no lineal hasta una


posicin absoluta de ejes almacenada en la instruccin. Las instrucciones lgicas
posteriores se ejecutan mientras el robot est en movimiento.

MoveAbsJ \Conc, * \NoEOffs, v2000, z40, grip3;

El mismo movimiento que el anterior, pero con la diferencia de que no se ve


afectado por los offsets activos para los ejes externos.

GripLoad obj_mass;
MoveAbsJ start, v2000, z40, grip3 \WObj:= obj;

El robot mueve el objeto de trabajo obj respecto de la herramienta fija grip3,


siguiendo una trayectoria no lineal hasta una posicin absoluta de ejes, start.

Gestin de errores
Cuando se ejecuta el programa, se comprueba que los argumentos Tool y \WObj no
contengan datos contradictorios respecto de una herramienta mvil o estacionaria.

Limitaciones
Para poder ejecutar hacia atrs la instruccin MoveAbsJ y evitar problemas con puntos
singulares o reas ambiguas, resulta esencial que las instrucciones posteriores cumplan
determinados requisitos, como se indica a continuacin (consulte la Figura 1).

158 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveAbsJ
Instruccin

Punto singular

MoveJ
MoveAbsJ

rea ambigua

Cualquier
instruccin de
MoveAbsJ movimiento
MoveAbsJ

Figura 9 Limitacin para la ejecucin hacia atrs con MoveAbsJ.

Sintaxis
MoveAbsJ
[ \ Conc , ]
[ ToJointPos := ] < expresin (IN) de jointtarget >
[ \ NoEoffs ] ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 159


MoveAbsJ
Instruccin

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de jointtarget Tipos de datos - jointtarget
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

160 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveC
Instruccin

MoveC - Mueve el robot en crculo


MoveC se utiliza para trasladar el punto central de la herramienta (TCP) en sentido
circular hacia un punto de destino determinado. Durante el movimiento, la orientacin
suele permanecer sin cambios respecto del crculo.

Ejemplos
MoveC p1, p2, v500, z30, tool2;

El TCP de la herramienta, tool2, se mueve en crculo hacia la posicin p2, con


los datos de velocidad v500 y los datos de zona z30. El crculo se define a partir
de la posicin inicial, el punto de crculo p1 y el punto de destino p2.

MoveC *, *, v500 \T:=5, fine, grip3;

El TCP de la herramienta, grip3, se mueve en crculo hasta un punto fino


almacenado en la instruccin (marcado por el segundo asterisco *). El punto del
crculo tambin est almacenado en la instruccin (marcado por el primer
asterisco *). Todo el movimiento requiere 5 segundos.

MoveL p1, v500, fine, tool1;


MoveC p2, p3, v500, z20, tool1;
MoveC p4, p1, v500, fine, tool1;

Se realiza un crculo completo si las posiciones son las mismas que las mostradas
en la Figura 10.

p1

p4 p2

p3
Figura 10 Se realiza un crculo completo mediante dos instrucciones MoveC.

Argumentos
MoveC [ \Conc ] CirPoint ToPoint Speed [ \V ] | [ \T ] Zone [ \Z]
[ \Inpos ] Tool [ \WObj ] [ \Corr ]

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 161


MoveC
Instruccin

[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan inmediatamente. Este argumento se


utiliza para acortar el tiempo de ciclo, por ejemplo cuando se realiza una
comunicacin con equipos externos, si no se requiere sincronizacin.

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de movimiento


seguidas est limitado a 5. En secciones de programa que incluyen StorePath-
RestoPath, no se permite el uso de instrucciones con el argumento \Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

CirPoint Tipo de dato: robtarget

El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos de inicio y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el robot
genere una advertencia. El punto de crculo se define como una posicin con
nombre o se almacena directamente en la instruccin (marcada con un asterisco
* en la instruccin). No se utiliza la posicin de los ejes externos.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot y de los ejes externos. A continuacin, se sustituye por los
datos de velocidad correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

162 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveC
Instruccin

[ \Z ] (zona) Tipo de dato: num

Este argumento se utiliza para especificar la exactitud de la posicin del TCP del
robot, directamente en la instruccin. La longitud de la trayectoria de esquina se
indica en mm y es sustituida por la zona correspondiente especificada en los
datos de zona.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas de objeto) con el que est


relacionada la posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para que se ejecute un
crculo respecto del objeto de trabajo.

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y la posicin de destino si se
utiliza este argumento.

Ejecucin de programas
Las unidades del robot y las externas se trasladan hacia el punto de destino de la forma
siguiente:

- El TCP de la herramienta se mueve en crculo a una velocidad constante


programada.
- La herramienta se reorienta a una velocidad constante, desde la orientacin de
la posicin inicial hasta la orientacin del punto de destino.
- La reorientacin se realiza respecto de la trayectoria circular. Por tanto, si la
orientacin respecto de la trayectoria es la misma en los puntos inicial y final,
la orientacin relativa permanece sin cambios durante el movimiento (consulte
la Figura 11).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 163


MoveC
Instruccin

Orientacin de CirPoint
la herramienta

Punto de inicio

ToPoint

Figura 11 Orientacin de la herramienta durante un movimiento circular.

La orientacin del punto circular no es esencial. Slo se usa para distinguir entre dos
sentidos de orientacin posibles. La exactitud de la reorientacin a lo largo de la
trayectoria slo depende de la orientacin en los puntos inicial y de destino.

- Los ejes externos no coordinados se ejecutan a una velocidad constante para que
alcancen el punto de destino al mismo tiempo que los ejes del robot. No se
utiliza la posicin de la posicin de crculo.

Si no es posible alcanzar la velocidad programada para la reorientacin o para los ejes


externos, se reduce la velocidad del TCP.

Normalmente se general trayectorias de esquina cuando se transfiere el movimiento a


la siguiente seccin de una trayectoria. Si se especifica un punto de paro en los datos
de zona, la ejecucin del programa slo contina una vez que los ejes del robot y los
ejes externos han alcanzado la posicin adecuada.

Ejemplos
MoveC *, *, v500 \V:=550, z40 \Z:=45, grip3;

El TCP de la herramienta, grip3, se mueve en crculo hacia una posicin


almacenada en la instruccin. El movimiento se realiza con los datos establecidos
en v500 y z40. La velocidad y el tamao de zona del TCP son 550 mm/seg y 45
mm, respectivamente.

MoveC p5, p6, v2000, fine \Inpos := inpos50, grip3;

El TCP de la herramienta, grip3, se mueve en crculo hacia un punto de paro p6.


El robot considera que se encuentra en el punto cuando se satisface el 50% de la
condicin de posicin y el 50% de la condicin de velocidad de un punto de paro
fine. Espera al menos 2 segundos a que se satisfagan las condiciones. Consulte
los datos predefinidos inpos50 del tipo de dato stoppointdata.

164 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveC
Instruccin

MoveC \Conc, *, *, v500, z40, grip3;

El TCP de la herramienta, grip3, se mueve en crculo hacia una posicin


almacenada en la instruccin. El punto del crculo tambin est almacenado en
la instruccin. Las instrucciones lgicas posteriores se ejecutan mientras el robot
est en movimiento.

MoveC cir1, p15, v500, z40, grip3 \WObj:=fixture;

El TCP de la herramienta, grip3, se mueve en crculo hacia una posicin, p15, a


travs del punto de crculo cir1. Estas posiciones se especifican en el sistema de
coordenadas de objeto de fixture.

Limitaciones
Existen algunas limitaciones en cuanto a las posibilidades de posicionamiento de
CirPoint y ToPoint, como se muestra en la figura siguiente.

x
CirPoint
0,1 mm x CirPoint

x Inicio x ToPoint

Inicio ToPoint
x x x CirPoint
x a x
0,1 mm Inicio a > 1 grado ToPoint

- La distancia mnima entre el punto de inicio y ToPoint es de 0,1 mm.


- La distancia mnima entre el punto de inicio y CirPoint es de 0,1 mm.
- El ngulo mnimo entre CirPoint y ToPoint a partir del punto de inicio es de 1
grado.

La exactitud puede ser baja cerca de los lmites, es decir, si el punto de inicio y el punto
ToPoint del crculo estn muy cerca el uno del otro, el error causado por la inclinacin
del crculo puede ser mucho mayor que la exactitud con la que se programaron los
puntos.

Los cambios del modo de ejecucin de la ejecucin hacia adelante a la ejecucin hacia
atrs, o viceversa, mientras el robot se detiene en una trayectoria circular no se
permiten y generan un mensaje de error.

La instruccin MoveC (o cualquier otra instruccin que incluya un movimiento


circular) no debe empezarse en ningn caso desde el principio, con un TCP entre el
punto de crculo y el punto final. De lo contrario, el robot no toma la trayectoria
programada (posicionamiento alrededor de la trayectoria circular en otra direccin, en
comparacin con la programada).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 165


MoveC
Instruccin

Asegrese de que el robot pueda alcanzar el punto de crculo durante la ejecucin del
programa y dividir el segmento del crculo si es necesario.

Sintaxis
MoveC
[ \ Conc , ]
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

166 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveCDO
Instruccin

MoveCDO - Mueve el robot en una trayectoria circular y


establece una salida digital en la esquina
MoveCDO (mover en crculo y salida digital) se utiliza para mover el punto central de
la herramienta (TCP) en crculo hacia un punto de destino determinado. La salida
digital especificada se activa o desactiva en el centro de la trayectoria de esquina del
punto de destino. Durante el movimiento, la orientacin suele permanecer sin cambios
respecto del crculo.

Ejemplos
MoveCDO p1, p2, v500, z30, tool2, do1,1;

El TCP de la herramienta, tool2, se mueve en crculo hacia la posicin p2, con


los datos de velocidad v500 y los datos de zona z30. El crculo se define a partir
de la posicin inicial, el punto de crculo p1 y el punto de destino p2. La salida
do1 se activa en el centro de la trayectoria de esquina de p2.

Argumentos
MoveCDO CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ]
Signal Value
CirPoint Tipo de dato: robtarget

El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos de inicio y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el
robot genere una advertencia. El punto de crculo se define como una posicin
con nombre o se almacena directamente en la instruccin (marcada con un
asterisco * en la instruccin). No se utiliza la posicin de los ejes externos.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 167


MoveCDO
Instruccin

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot y de los ejes externos. A continuacin, se sustituye por los
datos de velocidad correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas de objeto) con el que est


relacionada la posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para que se ejecute un
crculo respecto del objeto de trabajo.

Signal Tipo de dato: signaldo

El nombre de la seal digital de salida que debe cambiar de valor.

Value Tipo de dato: dionum

El valor deseado para la seal (0 1).

Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.

La seal digital de salida se activa o desactiva en el centro de la trayectoria de esquina


en el caso de los puntos de paso, como se muestra en la Figura 12.
.

CirPoint

Punto de inicio Activar/desactivar


la seal

Siguiente
ToPoint punto
Zona
Figura 12 Activacin/desactivacin de una seal digital de salida en la trayectoria de esquina con
MoveCDO.
168 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
MoveCDO
Instruccin

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveC + SetDO. Sin embargo, cuando se utiliza un punto de
paro en la instruccin MoveCDO, la seal digital de salida se activa o desactiva cuando
el robot alcanza el punto de paro.

La seal de E/S especificada se activa o desactiva en el modo de ejecucin continua y


paso a paso hacia adelante, pero no en la ejecucin paso a paso hacia atrs.

Limitaciones
Limitaciones generales acorde con la instruccin MoveC.

Sintaxis
MoveCDO
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 169


MoveCDO
Instruccin

170 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveCSync
Instruccin Advanced functions (Funciones avanzadas)

MoveCSync - Mueve el robot en una trayectoria circular y


ejecuta un procedimiento de RAPID
MoveCSync (mover en crculo de forma sincronizada) se utiliza para mover el punto
central de la herramienta (TCP) en crculo hacia un punto de destino determinado. En el
centro de la trayectoria de esquina del punto de destino, se ejecuta el procedimiento de
RAPID especificado. Durante el movimiento, la orientacin suele permanecer sin
cambios respecto del crculo.

Ejemplos
MoveCSync p1, p2, v500, z30, tool2, proc1;

El TCP de la herramienta, tool2, se mueve en crculo hacia la posicin p2, con


los datos de velocidad v500 y los datos de zona z30. El crculo se define a partir
de la posicin inicial, el punto de crculo p1 y el punto de destino p2. Se ejecuta
el procedimiento proc1 en el centro de la trayectoria de esquina de p2.

Argumentos
MoveCSync CirPoint ToPoint Speed [ \T ] Zone Tool [\WObj ]
ProcName
CirPoint Tipo de dato: robtarget

El punto de crculo del robot. El punto de crculo es una posicin del crculo entre
el punto de inicio y el punto de destino. Para conseguir la mxima exactitud, debe
estar situado a mitad de camino entre los puntos inicial y de destino. Si lo sita
demasiado cerca del punto de inicio o del punto de destino, es posible que el
robot genere una advertencia. El punto de crculo se define como una posicin
con nombre o se almacena directamente en la instruccin (marcada con un
asterisco * en la instruccin). No se utiliza la posicin de los ejes externos.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del TCP, la reorientacin de la herramienta y los ejes
externos.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 171


MoveCSync
Advanced functions (Funciones avanzadas) Instruccin

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot y de los ejes externos. A continuacin, se sustituye por los
datos de velocidad correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas de objeto) con el que est


relacionada la posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

ProcName (nombre de procedimiento) Tipo de dato: string

El nombre del procedimiento de RAPID que debe ejecutarse en el centro de la


trayectoria de esquina del punto de destino.

Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca de los
movimientos circulares.

El procedimiento de RAPID especificado se ejecuta cuando el TCP alcanza el centro


de la trayectoria de esquina del punto de destino de la instruccin MoveCSync, como
se muestra en la Figura 13:

172 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveCSync
Instruccin Advanced functions (Funciones avanzadas)

MoveCSync p2, p3, v1000, z30, tool2, my_proc;


Cuando el TCP se encuentra aqu, p4
se ejecuta my_proc
p1
Zona
p3
p2

Figura 13 Al llegar al centro de la trayectoria de esquina, se ejecuta el procedimiento de


RAPID definido por el usuario.

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveC y otras instrucciones de RAPID una tras otra.

Ejecucin del procedimiento de RAPID con distintos modos de ejecucin:

Modo de ejecucin: Ejecucin del procedimiento de RAPID:


Continua o cclica Acorde con esta descripcin
Paso hacia adelante En el punto de paro
Paso hacia atrs No se permite

Limitacin
Limitaciones generales acorde con la instruccin MoveC.

Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.

No es posible usar la instruccin MoveCSync en rutinas TRAP.


No es posible comprobar el procedimiento de RAPID con la ejecucin paso a paso.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 173


MoveCSync
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
MoveCSync
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas

174 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJ
Instruccin

MoveJ - Mueve el robot mediante un movimiento de ejes


MoveJ se utiliza para mover el robot rpidamente de un punto a otro cuando no es
imprescindible que el movimiento siga una lnea recta.

Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.

Ejemplos
MoveJ p1, vmax, z30, tool2;

El punto central de la herramienta (TCP), tool2, se mueve siguiendo una


trayectoria no lineal hacia la posicin p1, con los datos de velocidad vmax y los
datos de zona z30.

MoveJ *, vmax \T:=5, fine, grip3;

El TCP de la herramienta, grip3, se mueve siguiendo una trayectoria no lineal


hacia un punto de paro almacenado en la instruccin (marcado con un asterisco
*). Todo el movimiento requiere 5 segundos.

Argumentos
MoveJ [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ]
[ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan mientras el robot est en movimiento.


El argumento se utiliza para acortar el tiempo de ciclo, por ejemplo cuando se
realiza una comunicacin con equipos externos, si no se requiere sincronizacin.

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de


movimiento seguidas est limitado a 5. En secciones de programa que incluyen
StorePath-RestoPath, no se permite el uso de instrucciones con el argumento
\Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 175


MoveJ
Instruccin

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[ \Z ] (zona) Tipo de dato: num

Este argumento se utiliza para especificar la exactitud de la posicin del TCP del
robot, directamente en la instruccin. La longitud de la trayectoria de esquina se
indica en mm y es sustituida por la zona correspondiente especificada en los datos
de zona.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

176 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJ
Instruccin

Ejecucin de programas
El punto central de la herramienta se mueve hacia el punto de destino mediante la
interpolacin de los ngulos de los ejes. Esto significa que cada eje se mueve a una
velocidad constante y que todos los ejes alcanzan al mismo tiempo el punto de destino,
lo que da lugar a una trayectoria no lineal.

En trminos generales, el TCP se traslada a la velocidad programada aproximada


(independientemente de si los ejes externos estn coordinados). La herramienta se
reorienta y los ejes externos se mueven al mismo tiempo que se mueve el TCP. Si no
es posible alcanzar la velocidad programada para la orientacin o para los ejes
externos, se reduce la velocidad del TCP.

Normalmente se generan trayectorias de esquina cuando se transfiere el movimiento a


la siguiente seccin de la trayectoria. Si se especifica un punto de paro en los datos de
zona, la ejecucin del programa slo contina una vez que los ejes del robot y los ejes
externos han alcanzado la posicin adecuada.

Ejemplos
MoveJ *, v2000\V:=2200, z40 \Z:=45, grip3;

El TCP de la herramienta, grip3, se mueve siguiendo una trayectoria no lineal


hacia una posicin almacenada en la instruccin. El movimiento se realiza con
los datos establecidos en v2000 y z40. La velocidad y el tamao de zona del TCP
son 2200 mm/seg y 45 mm, respectivamente.

MoveJ p5, v2000, fine \Inpos := inpos50, grip3;

El TCP de la herramienta, grip3, se mueve siguiendo una trayectoria no lineal


hacia un punto de paro p5. El robot considera que se encuentra en el punto
cuando se satisface el 50% de la condicin de posicin y el 50% de la condicin
de velocidad de un punto de paro fine. Espera al menos 2 segundos a que se
satisfagan las condiciones. Consulte los datos predefinidos inpos50 del tipo de
dato stoppointdata.

MoveJ \Conc, *, v2000, z40, grip3;

El TCP de la herramienta, grip3, se mueve siguiendo una trayectoria no lineal


hacia una posicin almacenada en la instruccin. Las instrucciones lgicas
posteriores se ejecutan mientras el robot est en movimiento.

MoveJ start, v2000, z40, grip3 \WObj:=fixture;

El TCP de la herramienta, grip3, se mueve siguiendo una trayectoria no lineal


hacia la posicin start. Esta posicin se especifica en el sistema de coordenadas
de objeto de fixture.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 177


MoveJ
Instruccin

Sintaxis
MoveJ
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

178 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJDO
Instruccin

MoveJDO - Mueve el robot mediante el movimiento de los


ejes y activa una salida digital en la esquina
MoveJDO (mover mediante ejes y establecer una salida digital) se utiliza para mover
el robot rpidamente de un punto a otro cuando no es imprescindible que se siga una
lnea recta. La seal digital de salida especificada se activa o desactiva en el centro de la
trayectoria de esquina.

Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.

Ejemplos
MoveJDO p1, vmax, z30, tool2, do1, 1;

El punto central de la herramienta (TCP), tool2, se mueve siguiendo una


trayectoria no lineal hacia la posicin p1, con los datos de velocidad vmax y los
datos de zona z30. La salida do1 se activa en el centro de la trayectoria de esquina
de p1.

Argumentos
MoveJDO ToPoint Speed [ \T ] Zone Tool [ \WObj ] Signal Value
ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 179


MoveJDO
Instruccin

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

Signal Tipo de dato: signaldo

El nombre de la seal digital de salida que debe cambiar de valor.

Value Tipo de dato: dionum

El valor deseado para la seal (0 1).

Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca del movimiento de
ejes.

La seal digital de salida se activa o desactiva en el centro de la trayectoria de esquina


en el caso de los puntos de paso, como se muestra en la Figura 14.

p3

Cambia la seal do1 a 1

MoveJDO p2, v1000, z30, tool2, do1, 1;

p1 p2
Zona

Figura 14 Activacin/desactivacin de una seal digital de salida en la trayectoria de


esquina con MoveJDO.

180 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJDO
Instruccin

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveJ + SetDO. Sin embargo, cuando se utiliza un punto de
paro en la instruccin MoveJDO, la seal digital de salida se activa o desactiva cuando
el robot alcanza el punto de paro.

La seal de E/S especificada se activa o desactiva en el modo de ejecucin continua y


paso a paso hacia adelante, pero no en la ejecucin paso a paso hacia atrs.

Sintaxis
MoveJDO
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 181


MoveJDO
Instruccin

182 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJSync
Instruccin Advanced functions (Funciones avanzadas)

MoveJSync - Mueve el robot con un movimiento de ejes y


ejecuta un procedimiento de RAPID
MoveJSync (mover ejes de forma sincronizada) se utiliza para mover el robot
rpidamente de un punto a otro cuando no es imprescindible que se siga una lnea recta.
En el centro de la trayectoria de esquina del punto de destino, se ejecuta el procedimiento
de RAPID especificado.

Los ejes del robot y los ejes externos se desplazan hasta la posicin de destino a lo
largo de una trayectoria no lineal. Todos los ejes alcanzan la posicin de destino al
mismo tiempo.

Ejemplos
MoveJSync p1, vmax, z30, tool2, proc1;

El punto central de la herramienta (TCP), tool2, se mueve siguiendo una


trayectoria no lineal hacia la posicin p1, con los datos de velocidad vmax y los
datos de zona z30. Se ejecuta el procedimiento proc1 en el centro de la trayectoria
de esquina de p1.

Argumentos
MoveJSync ToPoint Speed [ \T ] Zone Tool [ \WObj ]
ProcName
ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 183


MoveJSync
Advanced functions (Funciones avanzadas) Instruccin

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia el punto de destino especificado.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

ProcName (nombre de procedimiento) Tipo de dato: string

El nombre del procedimiento de RAPID que debe ejecutarse en el centro de la


trayectoria de esquina del punto de destino.

Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca de los
movimientos de ejes.

El procedimiento de RAPID especificado se ejecuta cuando el TCP alcanza el centro


de la trayectoria de esquina del punto de destino de la instruccin MoveJSync, como se
muestra en la Figura 15:

MoveJSync p2, v1000, z30, tool2, my_proc;


p3

Cuando el TCP se encuentra aqu,


se ejecuta my_proc
Zona
p2

p1

Figura 15 Al llegar al centro de la trayectoria de esquina, se ejecuta el procedimiento de


RAPID definido por el usuario.

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveJ y otras instrucciones de RAPID una tras otra.

184 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveJSync
Instruccin Advanced functions (Funciones avanzadas)

Ejecucin del procedimiento de RAPID con distintos modos de ejecucin:

Modo de ejecucin: Ejecucin del procedimiento de RAPID:


Continua o cclica Acorde con esta descripcin
Paso hacia adelante En el punto de paro
Paso hacia atrs No se permite

Limitacin
Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.

No es posible usar la instruccin MoveJSync en rutinas TRAP.


No es posible comprobar el procedimiento de RAPID con la ejecucin paso a paso.

Sintaxis
MoveJSync
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 185


MoveJSync
Advanced functions (Funciones avanzadas) Instruccin

186 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveL
Instruccin

MoveL - Mueve el robot siguiendo una trayectoria lineal


MoveL se utiliza para trasladar el punto central de la herramienta (TCP) en sentido
lineal hacia un punto de destino determinado. Cuando se desea que el TCP permanezca
estacionario, esta instruccin puede usarse tambin para reorientar la herramienta.

Ejemplo
MoveL p1, v1000, z30, tool2;

El TCP de la herramienta, tool2, se mueve a lo largo de una lnea hacia la


posicin p1, con los datos de velocidad v1000 y los datos de zona z30.

MoveL *, v1000\T:=5, fine, grip3;

El TCP de la herramienta, grip3, se mueve linealmente hacia un punto fino


almacenado en la instruccin (marcado con un asterisco *). Todo el movimiento
requiere 5 segundos.

Argumentos
MoveL [ \Conc ] ToPoint Speed [ \V ] | [ \T ] Zone [ \Z ]
[ \Inpos ] Tool [ \WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan inmediatamente. Este argumento se


utiliza para acortar el tiempo de ciclo, por ejemplo cuando se realiza una
comunicacin con equipos externos, si no se requiere sincronizacin.

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de


movimiento seguidas est limitado a 5. En secciones de programa que incluyen
StorePath-RestoPath, no se permite el uso de instrucciones con el argumento
\Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 187


MoveL
Instruccin

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[ \Z ] (zona) Tipo de dato: num

Este argumento se utiliza para especificar la exactitud de la posicin del TCP del
robot, directamente en la instruccin. La longitud de la trayectoria de esquina se
indica en mm y es sustituida por la zona correspondiente especificada en los datos
de zona.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa una herramienta estacionaria o ejes
externos coordinados, es necesario especificar el argumento para realizar un
movimiento lineal respecto del objeto de trabajo.

188 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveL
Instruccin

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y la posicin de destino si se
utiliza este argumento.

Ejecucin de programas
Las unidades del robot y las externas se trasladan hacia la posicin de destino de la
forma siguiente:

- El TCP de la herramienta se mueve linealmente a una velocidad constante


programada.
- La herramienta se reorienta en intervalos iguales a lo largo de la trayectoria.
- Los ejes externos no coordinados se ejecutan a una velocidad constante para
que alcancen el punto de destino al mismo tiempo que los ejes del robot.

Si no es posible alcanzar la velocidad programada para la reorientacin o para los ejes


externos, se reduce la velocidad del TCP.

Normalmente se general trayectorias de esquina cuando se transfiere el movimiento a


la siguiente seccin de una trayectoria. Si se especifica un punto de paro en los datos
de zona, la ejecucin del programa slo contina una vez que los ejes del robot y los
ejes externos han alcanzado la posicin adecuada.

Ejemplos
MoveL *, v2000 \V:=2200, z40 \Z:=45, grip3;

El TCP de la herramienta, grip3, se mueve linealmente hacia una posicin


almacenada en la instruccin. El movimiento se realiza con los datos
establecidos en v2000 y z40. La velocidad y el tamao de la zona del TCP son de
2.200 mm/seg y 45 mm respectivamente.

MoveL p5, v2000, fine \Inpos := inpos50, grip3;

El TCP de la herramienta, grip3, se mueve linealmente hacia un punto de paro


p5. El robot considera que se encuentra en el punto cuando se satisface el 50%
de la condicin de posicin y el 50% de la condicin de velocidad de un punto
de paro fine. Espera al menos 2 segundos a que se satisfagan las condiciones.
Consulte los datos predefinidos inpos50 del tipo de dato stoppointdata.

MoveL \Conc, *, v2000, z40, grip3;

El TCP de la herramienta, grip3, se mueve linealmente hacia una posicin


almacenada en la instruccin. Las instrucciones lgicas posteriores se ejecutan
mientras el robot est en movimiento.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 189


MoveL
Instruccin

MoveL start, v2000, z40, grip3 \WObj:=fixture;

El TCP de la herramienta, grip3, se mueve linealmente hacia una posicin, start.


Esta posicin se especifica en el sistema de coordenadas de objeto de fixture.

Sintaxis
MoveL
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Z := < expresin (IN) de num > ]
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Ejecucin simultnea de programas Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

190 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveLDO
Instruccin

MoveLDO - Mueve el robot linealmente y establece una salida


digital en la esquina.
MoveLDO (mover linealmente y salida digital) se utiliza para mover linealmente el
punto central de la herramienta (TCP) hacia un punto de destino determinado. La seal
digital de salida especificada se activa o desactiva en el centro de la trayectoria de
esquina.

Cuando se desea que el TCP permanezca estacionario, esta instruccin puede usarse
tambin para reorientar la herramienta.

Ejemplo
MoveLDO p1, v1000, z30, tool2, do1,1;

El TCP de la herramienta, tool2, se mueve a lo largo de una lnea hacia la


posicin p1, con los datos de velocidad v1000 y los datos de zona z30. La salida
do1 se activa en el centro de la trayectoria de esquina de p1.

Argumentos
MoveLDO ToPoint Speed [ \T ] Zone Tool
[ \WObj ] Signal Value
ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 191


MoveLDO
Instruccin

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

Signal Tipo de dato: signaldo

El nombre de la seal digital de salida que debe cambiar de valor.

Value Tipo de dato: dionum

El valor deseado para la seal (0 1).

Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca de los
movimientos lineales.

La seal digital de salida se activa o desactiva en el centro de la trayectoria de esquina


en el caso de los puntos de paso, como se muestra en la Figura 16.

p3

Cambia la seal do1 a 1

MoveLDO p2, v1000, z30, tool2, do1, 1;

p1 p2
Zona

Figura 16 Activacin/desactivacin de una seal digital de salida en la trayectoria de


esquina con MoveLDO.

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveL y SetDO. Sin embargo, cuando se utiliza un punto de
paro en la instruccin MoveLDO, la seal digital de salida se activa o desactiva cuando
el robot alcanza el punto de paro.

192 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveLDO
Instruccin

La seal de E/S especificada se activa o desactiva en el modo de ejecucin continua y


paso a paso hacia adelante, pero no en la ejecucin paso a paso hacia atrs.

Sintaxis
MoveLDO
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ Signal := ] < variable (VAR) de signaldo>] ,
[ Value := ] < expresin (IN) de dionum > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas
Movimientos con parmetros de E/S Principios de movimiento y E/S -
Sincronizacin con instrucciones
lgicas

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 193


MoveLDO
Instruccin

194 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveLSync
Instruccin Advanced functions (Funciones avanzadas)

MoveLSync - Mueve el robot de forma lineal y ejecuta un


procedimiento de RAPID
MoveLSync (mover linealmente de forma sincronizada) se utiliza para mover
linealmente el punto central de la herramienta (TCP) hacia un destino determinado. El
procedimiento de RAPID especificado se ejecuta en el centro de la trayectoria de esquina
del punto de destino.

Cuando se desea que el TCP permanezca estacionario, esta instruccin puede usarse
tambin para reorientar la herramienta.

Ejemplo
MoveLSync p1, v1000, z30, tool2, proc1;

El TCP de la herramienta, tool2, se mueve a lo largo de una lnea hacia la


posicin p1, con los datos de velocidad v1000 y los datos de zona z30. Se ejecuta
el procedimiento proc1 en el centro de la trayectoria de esquina de p1.

Argumentos
MoveLSync ToPoint Speed [ \T ] Zone Tool
[ \WObj ] ProcName
ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 195


MoveLSync
Advanced functions (Funciones avanzadas) Instruccin

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si, por otro lado, se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

ProcName (nombre de procedimiento) Tipo de dato: string

El nombre del procedimiento de RAPID que debe ejecutarse en el centro de la


trayectoria de esquina del punto de destino.

Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca de los
movimientos lineales.

El procedimiento de RAPID especificado se ejecuta cuando el TCP alcanza el centro


de la trayectoria de esquina del punto de destino de la instruccin MoveLSync, como se
muestra en la Figura 17:

MoveLSync p2, v1000, z30, tool2, my_proc;


p3

Cuando el TCP se encuentra aqu,


se ejecuta my_proc
Zona
p2

p1

Figura 17 Al llegar al centro de la trayectoria de esquina, se ejecuta el procedimiento de


RAPID definido por el usuario.

En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa


normal, con el uso de MoveL y otras instrucciones de RAPID una tras otra.

196 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MoveLSync
Instruccin Advanced functions (Funciones avanzadas)

Ejecucin del procedimiento de RAPID con distintos modos de ejecucin:

Modo de ejecucin: Ejecucin del procedimiento de RAPID:


Continua o cclica Acorde con esta descripcin
Paso hacia adelante En el punto de paro
Paso hacia atrs No se permite

Limitacin
Si tras un punto de paro se cambia el modo de ejecucin del modo continuo o cclico
al modo de ejecucin paso a paso hacia adelante o hacia atrs, se genera un error. Este
error informa al usuario de que el cambio de modo de ejecucin puede dar lugar a que
no llegue a ejecutarse el procedimiento de RAPID que est en cola para su ejecucin
en la trayectoria. Este error puede evitarse si el programa se detiene con StopInstr antes
del cambio de modo.

No es posible usar la instruccin MoveLSync en rutinas TRAP.


No es posible comprobar el procedimiento de RAPID con la ejecucin paso a paso.

Sintaxis
MoveLSync
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[ Zone := ] < expresin (IN) de zonedata > ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ,
[ ProcName := ] < expresin (IN) de string > ] ;

Informacin relacionada
Descrito en:
Otras instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento y E/S
Sistemas de coordenadas Principios de movimiento y E/S -
Sistemas de coordenadas

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 197


MoveLSync
Advanced functions (Funciones avanzadas) Instruccin

198 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MToolRotCalib
Instruccin

MToolRotCalib - Calibracin de la rotacin de una


herramienta mvil
MToolRotCalib (calibracin de rotacin de herramienta mvil) se utiliza para calibrar
la rotacin de una herramienta mvil.

La posicin del robot y sus movimientos dependen siempre de su sistema de


coordenadas de herramienta, es decir, del TCP y de la orientacin de la herramienta.
Para conseguir la mxima exactitud, es importante definir con la mayor correccin
posible el sistema de coordenadas de la herramienta.

La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describen en el Manual del usuario - Calibracin).

Descripcin
Para definir la orientacin de la herramienta, necesita una punta de referencia fija en el
espacio de trabajo del robot.

Antes de usar la instruccin MToolRotCalib, es necesario satisfacer algunas


condiciones previas:

- La herramienta que se desea calibrar debe estar montada en el robot y definida


con el componente robhold correcto (TRUE).
- Si se utiliza el robot con una exactitud total, la carga y el centro de gravedad de
la herramienta ya deben estar definidos.
Para la definicin de la carga, puede usar LoadIdentify.
- El valor de TCP de la herramienta debe estar ya definido. La calibracin puede
hacerse con la instruccin MToolTCPCalib.
- Es necesario activar Tool0, wobj0 y PDispOff antes de empezar los
movimientos del robot.
- Mueva el TCP de la herramienta actual hasta el lugar ms cercano posible de la
punta de referencia fija (el origen del sistema de coordenadas de la
herramienta) y definir un jointtarget para el punto de referencia RefTip.
- Mueva el robot sin cambiar la orientacin de la herramienta, de forma que la
punta de referencia fija apunte hacia algn punto del eje z positivo del sistema
de coordenadas de herramienta y defina un jointtarget para el punto ZPos.
- Opcionalmente, mueva el robot sin cambiar la orientacin de la herramienta, de
forma que la punta de referencia fija apunte hacia algn punto del eje x positivo
del sistema de coordenadas de herramienta y defina un jointtarget para el punto
XPos.

Como ayuda para apuntar hacia el eje x y el eje x positivos, puede usarse algn
tipo de herramienta alargadora.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 199


MToolRotCalib
Instruccin

z
x
RefTip XPos
Herramienta x
alargadora
ZPos Punta de referencia
fija
z

Figura 18 Definicin jointtarget para RefTip, ZPos y, opcionalmente, XPos

Ejemplo
! Creado con la punta de referencia fija en el origen, eje x positivo y
! eje x positivo.
CONST jointtarget pos_tip := [...];
CONST jointtarget pos_z := [...];
CONST jointtarget pos_x := [...];

PERS tooldata tool1:= [ TRUE, [[20, 30, 100], [1, 0, 0 ,0]],


[0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0]];

! Instrucciones para la creacin o ModPos de pos_tip, pos_z y pos_x


MoveAbsJ pos_tip, v10, fine, tool0;
MoveAbsJ pos_z, v10, fine, tool0;
MoveAbsJ pos_x, v10, fine, tool0;

Slo calibracin de la herramienta en la direccin x


MToolRotCalib pos_tip, pos_z, tool1;

Se calcula la orientacin de la herramienta (tframe.rot) en la direccin z de tool1.


Las direcciones x e y de la orientacin de la herramienta se calculan de forma que
coincidan con el sistema de coordenadas de la mueca.

Calibracin con la orientacin completa de la herramienta


MToolRotCalib pos_tip, pos_z \XPos:=pos_x, tool1;

Se calcula la orientacin (tframe.rot) de tool1.

200 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MToolRotCalib
Instruccin

Argumentos
MToolRotCalib RefTip ZPos [\XPos]Tool
RefTip Tipo de dato: jointtarget

La posicin de la punta de referencia fija.

ZPos Tipo de dato: jointtarget

El punto de alargador que define la direccin z positiva.

[\XPos] Tipo de dato: jointtarget

El punto de alargador que define la direccin x positiva. Si se omite este punto,


las direcciones x e y de la herramienta coincidirn con los ejes correspondientes
del sistema de coordenadas de la mueca.

Tool Tipo de dato: tooldata

El nombre de la herramienta a calibrar.

Ejecucin de programas
El sistema calcula y actualiza la orientacin de la herramienta (tfame.rot) en los datos
tooldata. El clculo se basa en los 2 3 jointtarget especificados. El resto de los datos
de la herramienta, por ejemplo el TCP (tframe.trans), permanece sin cambios.

Sintaxis
MToolRotCalib
[ RefTip := ] < expresin (IN) de jointtarget > ,
[ ZPos := ] < expresin (IN) de jointtarget >
[ \XPos := < expresin (IN) de jointtarget > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata > ;

Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta mvil Instrucciones - MToolTCPCalib
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 201


MToolRotCalib
Instruccin

202 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MToolTCPCalib
Instruccin

MToolTCPCalib - Calibracin del TCP de una herramienta


mvil
MToolTCPCalib (calibracin del TCP de herramienta mvil) se utiliza para calibrar el
punto central de la herramienta (TCP) de una herramienta mvil.

La posicin del robot y sus movimientos dependen siempre de su sistema de


coordenadas de herramienta, es decir, del TCP y de la orientacin de la herramienta.
Para conseguir la mxima exactitud, es importante definir con la mayor correccin
posible el sistema de coordenadas de la herramienta.

La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describen en el Manual del usuario - Calibracin).

Descripcin
Para definir el TCP de una herramienta, necesita una punta de referencia fija en el
espacio de trabajo del robot.

Antes de usar la instruccin MToolTCPCalib, es necesario satisfacer algunas


condiciones previas:

- La herramienta que se desea calibrar debe estar montada en el robot y definida


con el componente robhold correcto (TRUE).
- Si se utiliza el robot con una exactitud total, la carga y el centro de gravedad de
la herramienta ya deben estar definidos.
Para la definicin de la carga, puede usar LoadIdentify.
- Es necesario activar Tool0, wobj0 y PDispOff antes de empezar los
movimientos del robot.
- Mueva el TCP de la herramienta actual hasta el lugar ms cercano posible de la
punta de referencia fija y definir un jointtarget para el primer punto, p1.
- Defina tres posiciones adicionales, p2, p3 y p4, todas con orientaciones
diferentes.

3
1

Punta de referencia fija

2 4

Figura 19 Definicin de 4 jointtarget, de p1 a p4.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 203


MToolTCPCalib
Instruccin

Ejemplo
! Creado con el TCP real apuntando hacia la punta de referencia fija
CONST jointtarget p1 := [...];
CONST jointtarget p2 := [...];
CONST jointtarget p3 := [...];
CONST jointtarget p4 := [...];

PERS tooldata tool1:= [ TRUE, [[0, 0, 0], [1, 0, 0 ,0]],


[0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0]];
VAR num max_err;
VAR num mean_err;
...
! Instrucciones para la creacin o ModPos de p1 a p4
MoveAbsJ p1, v10, fine, tool0;
MoveAbsJ p2, v10, fine, tool0;
MoveAbsJ p3, v10, fine, tool0;
MoveAbsJ p4, v10, fine, tool0;
...
MToolTCPCalib p1, p2, p3, p4, tool1, max_err, mean_err;

Se calibra y actualiza el valor del TCP (tframe.trans) de tool1.


max_err y mean_err contendrn el error mximo en mm a partir del TCP
calculado y el error medio en mm a partir del TCP calculado, respectivamente.

Argumentos
MToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr
Pos1 Tipo de dato: jointtarget

El primer punto de aproximacin.

Pos2 Tipo de dato: jointtarget

El segundo punto de aproximacin.

Pos3 Tipo de dato: jointtarget

El tercer punto de aproximacin.

Pos4 Tipo de dato: jointtarget

El cuarto punto de aproximacin.

Tool Tipo de dato: tooldata

El nombre de la herramienta a calibrar.

204 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


MToolTCPCalib
Instruccin

MaxErr Tipo de dato: num

El error mximo en mm para un punto de aproximacin.

MeanErr Tipo de dato: num

La distancia media que separa los puntos de aproximacin del TCP calculado, es
decir, la exactitud con la que el robot se posicion respecto de la punta.

Ejecucin de programas
El sistema calcula y actualiza el valor del TCP en el sistema de coordenadas de la
mueca (tfame.trans) en el valor especificado tooldata. El clculo se basa en los 4
valores especificados de jointtarget. Los dems datos de tooldata, por ejemplo la
orientacin de la herramienta (tframe.rot), permanecen sin cambios.

Sintaxis
MToolTCPCalib
[ Pos1 := ] < expresin (IN) de jointtarget > ,
[ Pos2 := ] < expresin (IN) de jointtarget > ,
[ Pos3 := ] < expresin (IN) de jointtarget > ,
[ Pos4 := ] < expresin (IN) de jointtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ,
[ MaxErr := ] < variable (VAR) de num > ,
[ MeanErr := ] < variable (VAR) de num > ;

Informacin relacionada
Descrito en:
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 205


MToolTCPCalib
Instruccin

206 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Open
Instruccin Advanced functions (Funciones avanzadas)

Open - Abre un archivo o un canal serie


Open se utiliza para abrir un archivo o un canal serie para su lectura o escritura.

Ejemplo
VAR iodev logfile;
...
Open "HOME:" \File:= "LOGFILE1.DOC", logfile \Write;

Se abre el archivo LOGFILE1.DOC de la unidad HOME:, para escritura. El


nombre de referencia logfile se utiliza ms tarde en el programa al escribir en el
archivo.

Argumentos
Open Object [\File] IODevice [\Read] | [\Write] | [\Append] [\Bin]
Object Tipo de dato: string

El objeto de E/S (dispositivo de E/S) que se desea abrir, por ejemplo "HOME:",
"TEMP:", "flp1:"(opcional), com2: o pc:(opcional).
Tabla 3 Distintos dispositivos de E/S del sistema

Nombre del dispositivo Tipo de dispositivo


Ruta completa del archivo
de E/S de E/S

"HOME:" "/hd0a:/xxxx/" 1) Disco Flash


"TEMP:" "/hd0a:/temp/" Disco Flash
"flp1:" "flp1:" Disquete
"com2:" 2) - Canal serie
pc: 3) /c:/temp/ 4) Disco montado

1) xxxx indica el nombre del sistema, definido al arrancar el sistema


2) Nombre de canal serie definido por el usuario en los parmetros del sistema
3) Protocolo de aplicacin, ruta local, definido en los parmetros del sistema
4) Protocolo de aplicacin, ruta de servidor, definido en los parmetros del
sistema

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 207


Open
Advanced functions (Funciones avanzadas) Instruccin

[\File] Tipo de dato: string

El nombre del archivo que se desea abrir, por ejemplo "LOGFILE1.DOC" o


"LOGDIR/LOGFILE1.DOC".

La ruta completa tambin puede especificarse en el argumento Object, HOME:/


LOGDIR/LOGFILE.DOC".

IODevice Tipo de dato: iodev

Una referencia al archivo o canal serie que se desea abrir. A continuacin, esta
referencia se utiliza para las operaciones de lectura y escritura del archivo o canal
serie.

[\Read] Tipo de dato: switch

Abre un archivo o un canal serie para lectura. Al leer el archivo, la lectura


comienza al principio de ste.

[\Write] Tipo de dato: switch

Abre un archivo o un canal serie para escritura. Si el archivo seleccionado ya


existe, su contenido se elimina. Cualquier informacin que se escriba a partir de
ese momento se escribe al principio del archivo.

[\Append] Tipo de dato: switch

Abre un archivo o un canal serie para escritura. Si el archivo seleccionado ya


existe, cualquier informacin que se escriba a partir de ese momento se escribe
al final del archivo.

Si se abre un archivo o un canal serie con el argumento \Append pero sin el


argumento \Bin: la instruccin abre un archivo o un canal serie alfanumrico para
escritura.

Si se abre un archivo o un canal serie con los argumentos \Append y \Bin: la


instruccin abre un archivo o un canal serie para lectura y escritura.

Los argumentos \Read, \Write, \Append son excluyentes entre s. Si no se especifica


ninguno de estos argumentos, la instruccin acta de la misma forma que el argumento
\Write en el caso de los archivos o canales serie alfanumricos (instruccin sin el
argumento \Bin) y de la misma forma que el argumento \Append en el caso de los
archivos o canales serie binarios (instruccin con el argumento \Bin).

[\Bin] Tipo de dato: switch

El archivo o canal serie se abre en el modo binario.


Si no se especifica ninguno de los argumentos \Read, \Write ni \Append, la
instruccin abre un archivo o un canal serie binario, tanto para lectura como para
escritura, con el puntero del archivo situado en el final de ste.

El conjunto de instrucciones que se usa para el acceso de un archivo o un canal serie


binario es distinto del conjunto de instrucciones que se usa con los archivos
alfanumricos.

208 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Open
Instruccin Advanced functions (Funciones avanzadas)

Ejemplo
VAR iodev printer;
...
Open "com2:", printer \Bin;
WriteStrBin printer, "Este mensaje se enva a la impresora\0D";
Close printer;

Se abre el canal serie com2: para lectura y escritura binarias.


El nombre de referencia printer se utiliza ms tarde al escribir y cerrar el canal
serie.

Ejecucin de programas
El archivo o canal serie especificado se abre de forma que sea posible leer su contenido
o escribir en l.

Es posible abrir el mismo archivo fsico varias veces simultneamente, pero cada
ejecucin de la instruccin Open devuelve una referencia distinta al archivo (tipo de
dato iodev). Por ejemplo, es posible tener un puntero para escribir y otro puntero para
leer del mismo archivo de forma simultnea.

La variable iodev utilizada al abrir un archivo o canal serie debe estar libre para su uso.
Si se ha usado anteriormente para abrir un archivo, es necesario cerrar el archivo antes
de ejecutar una nueva instruccin Open con la misma variable iodev.

Gestin de errores
Si no es posible abrir un archivo, la variable de sistema ERRNO cambia a
ERR_FILEOPEN. A continuacin, este error puede ser gestionado en el gestor de
errores.

Sintaxis
Open
[Object :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>] ,
[IODevice :=] <variable (VAR) de iodev>
[\Read] | [\Write] | [\Append]
[\Bin] ;

Informacin relacionada
Descrito en:
Escritura y lectura a travs de Resumen sobre RAPID - Comunicacin
archivos o canales serie

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 209


Open
Advanced functions (Funciones avanzadas) Instruccin

210 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PathAccLim
Instruccin

PathAccLim - Reduce la aceleracin del TCP a lo largo de la


trayectoria
PathAccLim (limitacin de aceleracin de trayectoria) se utiliza para establecer o
eliminar limitaciones de la aceleracin y/o la deceleracin del TCP a lo largo de la
trayectoria de movimiento.

La limitacin se realiza a lo largo de la trayectoria de movimiento, es decir, la


aceleracin en la base de coordenadas de la trayectoria. La aceleracin/deceleracin
que se limita es la aceleracin/deceleracin tangencial en la direccin de la trayectoria.

Esta instruccin no limita la aceleracin total del equipo, es decir, la aceleracin en la


base de coordenadas mundo, de forma que no es posible usarla directamente para
proteger al equipo de grandes aceleraciones.

PROGRAMMED PATH

ROBOT TCP WITH LINACC LIMITATION

ROBOT TCP

Ejemplo
PathAccLim TRUE \AccMax := 4, TRUE \AccMin := 4;

Se limita a 4 la aceleracin y la deceleracin del TCP. m s 2 .

PathAccLim FALSE, FALSE;

Se devuelven la aceleracin y deceleracin del TCP a sus valores mximos


(predeterminados).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 211


PathAccLim
Instruccin

Argumentos
PathAccLim AccLim [\AccMax] DecelLim [\DecelMax]
AccLim Tipo de dato: bool

TRUE si debe haber una limitacin de la aceleracin; de lo contrario, FALSE.

[\AccMax] Tipo de dato: num

El valor absoluto de la limitacin de aceleracin en m s 2 . Slo debe usarse si


AccLim tiene el valor TRUE.

DecelLim Tipo de dato: bool

TRUE si debe haber una limitacin de la deceleracin; de lo contrario, FALSE.

[\DecelMax] Tipo de dato: num

El valor absoluto de la limitacin de deceleracin en m s 2 . Slo debe usarse si


DecelLim tiene el valor TRUE.

Ejecucin de programas
Las limitaciones de aceleracin/deceleracin se aplican al siguiente segmento
ejecutado por el robot y es vlido hasta que se ejecuta una nueva instruccin
PathAccLim.

La aceleracin/deceleracin mxima (PathAccLim FALSE, FALSE) se establece


automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Si se usan de forma combinada las instrucciones AccSet y PathAccLim, el sistema


reduce la aceleracin/deceleracin en el orden siguiente:

- Segn AccSet
- Segn PathAccLim

212 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PathAccLim
Instruccin

Ejemplo
p2 p3
p2

p1
MoveL p1, v1000, fine, tool0;
PathAccLim TRUE\AccMax := 4, FALSE;
MoveL p2, v1000, z30, tool0;
MoveL p3, v1000, fine, tool0;
PathAccLim FALSE, FALSE;

Se limita a 4 la aceleracin del TCP m s 2 entre p1 y p3.

MoveL p1, v1000, fine, tool0;


MoveL p2, v1000, z30, tool0;
PathAccLim TRUE\AccMax :=3, TRUE\DecelMax := 4;
MoveL p3, v1000, fine, tool0;
PathAccLim FALSE, FALSE;

Se limita a 3 la aceleracin del TCP m s 2 entre p2 y p3


Se limita a 4 la deceleracin del TCP m s 2 entre p2 y p3

Limitaciones
La aceleracin/deceleracin mnima permitida es de 0,5 m s 2 .

Gestin de errores
Si se establece un valor demasiado bajo para los parmetros AccMax o DecelMax, la
variable de sistema ERRNO cambia a ERR_ACC_TOO_LOW. A continuacin, este
error puede ser gestionado en el gestor de errores.

Sintaxis
PathAccLim
[ AccLim := ] < expresin (IN) de bool >
[\AccMax := <expresin (IN) de num >],
[DecelLim := ] < expresin (IN) de bool>
[\DecelMax := <expresin (IN) de num >];

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 213


PathAccLim
Instruccin

Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Datos de parmetros de movimiento Tipos de datos - motsetdata
Reduccin de la aceleracin Instrucciones - AccSet

214 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PathResol
Instruccin

PathResol - Ajusta la resolucin de la trayectoria


PathResol (resolucin de la trayectoria) se utiliza para ajustar el tiempo configurado
de muestreo de trayectoria geomtrica, definido en los parmetros de sistema para el
micromanipulador.

Descripcin
La resolucin de la trayectoria afecta a la exactitud de la trayectoria interpolada y el
tiempo de ciclo de programa. Aumenta la exactitud de la trayectoria y, con frecuencia,
el tiempo de ciclo se reduce cuando se reduce el valor del parmetro PathSampleTime.
Sin embargo, si se usa un valor demasiado bajo para el parmetro PathSampleTime,
pueden aparecer problemas de exceso de carga en las aplicaciones que consumen ms
recursos del sistema. Sin embargo, el uso del valor estndar configurado para la
resolucin de la trayectoria (PathSampleTime 100%) evita problemas de sobrecarga de
la CPU y proporciona una exactitud de trayectoria adecuada para la mayora de las
situaciones.

Ejemplo de uso de PathResol:

Los movimientos crticos desde el punto de vista dinmico (carga til mxima, alta
velocidad, movimientos combinados de los ejes cerca del borde del rea de trabajo)
puede causar problemas de carga en la CPU. Aumente el parmetro PathSampleTime.

El uso de ejes externos con un rendimiento bajo puede generar problemas de


sobrecarga de la CPU durante la coordinacin. Aumente el parmetro
PathSampleTime.

La soldadura al arco con una oscilacin de alta frecuencia puede requerir una alta
resolucin de la trayectoria interpolada. Reduzca el valor del parmetro
PathSampleTime.

La realizacin de pequeos crculos o movimientos pequeos combinados con


cambios de direccin pueden reducir la calidad del rendimiento de la trayectoria y
pueden suponer tiempos de ciclo mayores. Reduzca el valor del parmetro
PathSampleTime.

La aplicacin de adhesivo con grandes reorientaciones y zonas de esquina pequeas


puede provocar variaciones de velocidad. Reduzca el valor del parmetro
PathSampleTime.

Ejemplo
MoveJ p1,v1000,fine,tool1;
PathResol 150;

Con el robot en un punto de paro, el tiempo de muestreo de la trayectoria


aumenta al 150% del valor configurado.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 215


PathResol
Instruccin

Argumentos
PathResol PathSampleTime

PathSampleTime Tipo de dato: num

El ajuste, como porcentaje del tiempo de muestreo de trayectoria configurado.


El 100% corresponde al tiempo de muestreo configurado para la trayectoria.
Dentro del rango del 25% al 400%.

Un valor inferior en el parmetro PathSampleTime aumenta la resolucin de la


trayectoria (exactitud de la trayectoria).

Ejecucin de programas
Las resoluciones de la trayectoria en todas las instrucciones posteriores de
posicionamiento se ven afectadas hasta que se ejecuta una nueva instruccin
PathResol. Esto afectar a la resolucin de la ruta durante todas las operaciones de
movimiento del programa (el nivel de trayectoria predeterminado y el nivel de
trayectoria despus de StorePath) y tambin durante el movimiento.

El valor predeterminado para la redefinicin del tiempo de muestreo de la trayectoria


es el 100%. Este valor se configura automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

El ajuste actual del tiempo de muestreo puede leerse a travs de la variable C_MOTSET
(tipo de dato motsetdata), en el componente pathresol.

Limitaciones
Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe
programarse con un punto de paro (zonedata fino), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.

Sintaxis
PathResol
[PathSampleTime := ] < expresin (IN) de num> ;

216 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PathResol
Instruccin

Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Principios de movimiento y E/S -
Movimientos
Parmetros de movimiento Resumen sobre RAPID -
Parmetros de movimiento
Configuracin de la resolucin de la trayectoria Parmetros del sistema -
Optimizacin de la CPU

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 217


PathResol
Instruccin

218 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PDispOff
Instruccin

PDispOff - Desactiva el desplazamiento de programa


PDispOff (desactivar desplazamiento de programa) se utiliza para desactivar un
desplazamiento de programa.

El desplazamiento de programa se activa mediante la instruccin PDispSet o PDispOn


y se aplica a todos los movimientos hasta que se activa otro desplazamiento de
programa o hasta que se desactiva el desplazamiento de programa.

Ejemplos
PDispOff;

Desactivacin del desplazamiento de programa.

MoveL p10, v500, z10, tool1;


PDispOn \ExeP:=p10, p11, tool1;
MoveL p20, v500, z10, tool1;
MoveL p30, v500, z10, tool1;
PDispOff;
MoveL p40, v500, z10, tool1;

El desplazamiento de programa se define como la diferencia entre las posiciones


p10 y p11. El desplazamiento afecta al movimiento hacia p20 y p30, pero no
hacia p40.

Ejecucin de programas
Se elimina el desplazamiento de programa que est activado. Esto significa que el
sistema de coordenadas del desplazamiento de programa es el mismo que el sistema de
coordenadas de objeto y por tanto todas las posiciones programadas estn relacionadas
entre s.

Sintaxis
PDispOff ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 219


PDispOff
Instruccin

Informacin relacionada
Descrito en:
Definicin del desplazamiento de programa Instrucciones - PDispOn
mediante dos posiciones
Definicin del desplazamiento de programa Instrucciones - PDispSet
mediante valores

220 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PDispOn
Instruccin

PDispOn - Activa el desplazamiento de programa


PDispOn (activar desplazamiento de programa) se utiliza para definir y activar un
nuevo desplazamiento de programa usando dos posiciones del robot.

El desplazamiento de programa se utiliza, por ejemplo, despus de realizar una


bsqueda o cuando se repiten patrones de movimiento similares en partes distintas del
programa.

Ejemplos
MoveL p10, v500, z10, tool1;
PDispOn \ExeP:=p10, p20, tool1;

Activacin de un desplazamiento de programa (movimiento en paralelo). El


offset se calcula a partir de la diferencia entre las posiciones p10 y p20.

MoveL p10, v500, fine \Inpos := inpos50, tool1;


PDispOn *, tool1;

Activacin de un desplazamiento de programa (movimiento en paralelo). Dado


que en la instruccin anterior se ha utilizado un punto de paro bien definido, no
es necesario utilizar el argumento \ExeP. El desplazamiento se calcula a partir de
la diferencia existente entre la posicin real del robot y el punto programado (*)
almacenado en la instruccin.

PDispOn \Rot \ExeP:=p10, p20, tool1;

Activacin de un desplazamiento de programa con una rotacin. El offset se


calcula a partir de la diferencia entre las posiciones p10 y p20.

Argumentos
PDispOn [ \Rot ] [ \ExeP ] ProgPoint Tool [ \WObj ]

[\Rot ] (rotacin) Tipo de dato: switch

La diferencia de orientacin de la herramienta se tiene en cuenta, lo cual implica


una rotacin del programa.

[\ExeP ] (punto ejecutado) Tipo de dato: robtarget

La nueva posicin del robot en el momento de la ejecucin del programa.


Si se omite el argumento, se utiliza la posicin actual del robot en el momento
de la ejecucin del programa.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 221


PDispOn
Instruccin

ProgPoint (punto programado) Tipo de dato: robtarget

La posicin original del robot en el momento de la programacin.

Tool Tipo de dato: tooldata

La herramienta utilizada durante la programacin, es decir, el TCP con el que est


relacionada la posicin ProgPoint.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin ProgPoint.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Sin embargo, si se utiliza un TCP estacionario o ejes
externos coordinados, es necesario especificar este argumento.

Los argumentos Tool y \WObj se utilizan en conjunto para calcular la posicin


ProgPoint durante la programacin y para calcular la posicin actual durante la
ejecucin del programa si no se programa ningn argumento ExeP.

Ejecucin de programas
El desplazamiento de programa implica que el sistema de coordenadas ProgDisp se
traslada respecto del sistema de coordenadas de objeto. Dado que todas las posiciones
dependen del sistema de coordenadas ProgDisp, se desplazan tambin todas las
posiciones programadas. Consulte la Figura 20.

y
Nueva
posicin, ExeP

y
Posicin
original, ProgPoint

Desplazamiento del programa


x
Sistema de coordenadas de desplazamiento del programa
(ProgDisp)
x
Sistema de coordenadas de objeto
Figura 20 Desplazamiento de una posicin de programa mediante un desplazamiento de
programa.

El desplazamiento de programa se activa cuando la instruccin PDispOn se ejecuta y


permanece activa hasta que se activa otro desplazamiento de programa (la instruccin
PDispSet o PDispOn) o hasta que se desactiva el desplazamiento de programa (la
instruccin PDispOff).

Slo puede estar activado un nico desplazamiento de programa cada vez. Por otro
lado, es posible programar varias instrucciones PDispOn, una tras otra y, en este caso,
se suman los distintos desplazamientos de programa.

222 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PDispOn
Instruccin

El desplazamiento de programa se calcula como la diferencia entre ExeP y ProgPoint.


Si no se ha especificado el valor de ExeP, se utiliza en su lugar la posicin actual del
robot en el momento de la ejecucin del programa. Dado que es la posicin real del
robot que se utiliza, el robot no debe estar en movimiento cuando se ejecuta PDispOn.

Si se utiliza el argumento \Rot la rotacin se calcula tambin a partir de la orientacin


de la herramienta en las dos posiciones. El desplazamiento se calcula de forma que la
nueva posicin (ExeP) tendr la misma posicin y orientacin respecto del sistema de
coordenadas desplazado, ProgDisp, que las que tena la posicin anterior (ProgPoint)
respecto del sistema de coordenadas original (consulte la Figura 21).

Nueva
y posicin, ExeP

y
Nueva
Orientacin
original, ProgPoint
original x

Desplazamiento del
Posicin
original programa Sistema de coordenadas de desplazamiento del programa
(ProgDisp)
x
Sistema de coordenadas de objeto

Figura 21 Traslacin y rotacin de una posicin programada.

El desplazamiento de programa se elimina automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Ejemplo
PROC draw_square()
PDispOn *, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
MoveL *, v500, z10, tool1;
PDispOff;
ENDPROC
.
MoveL p10, v500, fine \Inpos := inpos50, tool1;
draw_square;
MoveL p20, v500, fine \Inpos := inpos50, tool1;
draw_square;
MoveL p30, v500, fine \Inpos := inpos50, tool1;
draw_square;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 223


PDispOn
Instruccin

La rutina draw_square se utiliza para ejecutar el mismo patrn de movimiento en


tres posiciones diferentes, basndose en las posiciones p10, p20 y p30. Consulte
la Figura 22.

p30
p10
p20

Figura 22 Gracias al desplazamiento de programa, es posible reutilizar patrones de


movimiento.

SearchL sen1, psearch, p10, v100, tool1\WObj:=fixture1;


PDispOn \ExeP:=psearch, *, tool1 \WObj:=fixture1;

Se realiza una bsqueda en la cual la posicin buscada por el robot se almacena


en la posicin psearch. Cualquier movimiento realizado a continuacin parte de
esta posicin utilizando un desplazamiento de programa (movimiento paralelo).
El desplazamiento se calcula a partir de la diferencia existente entre la posicin
buscada y el punto programado (*) almacenado en la instruccin. Todas las
posiciones se basan en el sistema de coordenadas de objeto de fixture1.

Sintaxis
PDispOn
[ [ \ Rot ]
[ \ ExeP := < expresin (IN) de robtarget >] ,]
[ ProgPoint := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata>
[ \WObj := < variable persistente (PERS) de wobjdata> ] ;

Informacin relacionada
Descrito en:
Desactivacin de un desplazamiento Instrucciones - PDispOff
de programa
Definicin del desplazamiento de programa Instrucciones - PDispSet
mediante valores
Sistemas de coordenadas Principios de movimiento - Sistemas
de coordenadas
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Ms ejemplos Instrucciones - PDispOff

224 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PDispSet
Instruccin

PDispSet - Activa un desplazamiento de programa a partir de


un valor
PDispSet (activar desplazamiento de programa) se utiliza para definir y activar un
desplazamiento de programa mediante valores.

El desplazamiento de programa se utiliza, por ejemplo, cuando se repiten patrones de


movimiento similares en partes distintas del programa.

Ejemplo
VAR pose xp100 := [ [100, 0, 0], [1, 0, 0, 0] ];
.
PDispSet xp100;

Activacin del desplazamiento de programa xp100, que implica que:

- El sistema de coordenadas ProgDisp se desplaza 100 mm respecto del sistema


de coordenadas del objeto en la direccin del eje x positivo (consulte
la Figura 23).
- Siempre y cuando est activado este desplazamiento de programa, todas las
posiciones se desplazan 100 mm en la direccin del eje x.

Objeto ProgDisp

100 X
Figura 23 Un desplazamiento de programa de 100 mm a lo largo del eje x.

Argumentos
PDispSet DispFrame

DispFrame (base de coordenadas de desplazamiento) Tipo de dato: pose

El desplazamiento de programa se define mediante un dato del tipo pose.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 225


PDispSet
Instruccin

Ejecucin de programas
El desplazamiento de programa implica la traslacin y/o la rotacin del sistema de
coordenadas ProgDisp respecto del sistema de coordenadas de objeto. Dado que todas
las posiciones dependen del sistema de coordenadas ProgDisp, se desplazan tambin
todas las posiciones programadas. Consulte la Figura 24.
.

Nueva
y posicin

y
Nueva
Posicin
original
original x
Desplazamiento del
Orientacin programa
original Sistema de coordenadas de desplazamiento del programa
(ProgDisp)
x
Sistema de coordenadas de objeto

Figura 24 Traslacin y rotacin de una posicin programada.

El desplazamiento de programa se activa cuando la instruccin PDispSet se ejecuta y


permanece activa hasta que se activa otro desplazamiento de programa (la instruccin
PDispSet o PDispOn) o hasta que se desactiva el desplazamiento de programa (la
instruccin PDispOff).

Slo puede estar activado un nico desplazamiento de programa cada vez. No es


posible sumar desplazamientos de programa mediante PDispSet.

El desplazamiento de programa se elimina automticamente en los casos siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
PDispSet
[ DispFrame := ] < expresin (IN) de pose> ;

226 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PDispSet
Instruccin

Informacin relacionada
Descrito en:
Desactivacin de un desplazamiento Instrucciones - PDispOff
de programa
Definicin del desplazamiento de programa Instrucciones - PDispOn
mediante dos posiciones
Definicin de datos del tipo pose Tipos de datos - pose
Sistemas de coordenadas Principios de movimiento - Sistemas
de coordenadas
Ejemplos de cmo puede usarse el Instrucciones - PDispOn
desplazamiento de programa

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 227


PDispSet
Instruccin

228 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ProcCall
Instruccin

ProcCall - Llama a un nuevo procedimiento


Las llamadas a procedimientos se utilizan para transferir la ejecucin del programa a
otro procedimiento. Una vez ejecutado en su totalidad el procedimiento, la ejecucin
del programa contina con la instruccin que aparece a continuacin de la llamada al
procedimiento.

Normalmente, es posible enviar un conjunto de argumentos al nuevo procedimiento.


Estos argumentos controlan el comportamiento del procedimiento y permiten utilizar
un mismo procedimiento para distintas operaciones.

Ejemplos
weldpipe1;

Llama al procedimiento weldpipe1.

errormessage;
Set do1;
.

PROC errormessage()
TPWrite "ERROR";
ENDPROC

Se llama al procedimiento errormessage. Cuando el procedimiento se completa,


la ejecucin del programa vuelve a la instruccin que aparece a continuacin de
la llamada al procedimiento, Set do1.

Argumentos
Procedure { Argument }
Procedure Identificador

El nombre del procedimiento al que se llama.

Argument Tipo de dato: Segn la declaracin


del procedimiento

Los argumentos del procedimiento (segn los parmetros del procedimiento).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 229


ProcCall
Instruccin

Ejemplo
weldpipe2 10, lowspeed;

Llama al procedimiento weldpipe2, con dos argumentos.

weldpipe3 10 \speed:=20;

Llama al procedimiento weldpipe3, con un argumento obligatorio y un


argumento opcional.

Limitaciones
Los argumentos deben coincidir con sus parmetros:

- Todos los argumentos obligatorios deben incluirse.


- Es necesario situarlos en el mismo orden.
- Deben ser del mismo tipo de datos.
- Deben ser del tipo correcto en cuanto al modo de acceso (entrada, variable o
persistente).

Una rutina puede llamar a otra rutina, que a su vez puede llamar a otra, etc. Una rutina
tambin puede llamarse a s misma, lo que se conoce como llamada recursiva. El
nmero de niveles de rutinas permitido depende del nmero de parmetros, pero
normalmente se permiten ms de 10 niveles.

Sintaxis
(EBNF)
<procedimiento> [ <lista de argumentos> ] ;

<procedimiento> ::= <identificador>

Informacin relacionada
Descrito en:
Argumentos, parmetros Caractersticas bsicas - Rutinas
Ms ejemplos Ejemplos de programa

230 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PulseDO
Instruccin

PulseDO - Genera un pulso en una seal digital de salida


PulseDO se utiliza para generar un pulso en una seal digital de salida.

Ejemplos
PulseDO do15;

Se genera un pulso con una duracin de 0,2 seg en la seal de salida do15.

PulseDO \PLength:=1.0, ignition;

Se genera un pulso con una duracin de 1,0 seg en la seal ignition.

! Tarea de programa MAIN


PulseDO \High, do3;
! Casi al mismo tiempo en la tarea de programa BCK1
PulseDO \High, do3;

Se genera el valor positivo (valor 1) en la seal do3 desde dos tareas de programa
casi al mismo tiempo. El resultado es un pulso positivo con una duracin ms
larga que la duracin predeterminada de 0,2 seg o dos pulsos positivos uno
despus del otro, con una duracin de pulso de 0,2 seg.

Argumentos
PulseDO [ \High ] [ \PLength ] Signal
[ \High ] (nivel alto) Tipo de dato: switch

Especifica que el valor de la seal debe ser siempre el valor alto (valor 1) cuando
se ejecuta la instruccin, independientemente de su estado actual.

[ \PLength ] (duracin de pulso) Tipo de dato: num

La duracin del pulso en segundos (de 0,1 a 32 seg).


Si se omite el argumento, se genera un pulso de 0,2 segundos.

Signal Tipo de dato: signaldo

El nombre de la seal en la que se desea generar el pulso.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 231


PulseDO
Instruccin

Ejecucin de programas
Se genera un pulso con una duracin especificada (consulte la Figura 25).
:

Duracin del pulso

1
Nivel de la seal
0
Ejecucin de la instruccin PulseDO
Ejecucin de la instruccin PulseDO
1
Nivel de la seal
0

Duracin del pulso

1
Nivel de la seal
0
Ejecucin de la instruccin PulseDO \High
Ejecucin de la instruccin PulseDO \High
1
Nivel de la seal
0

y
x
1
Nivel de la seal
0

Ejecucin de la instruccin Ejecucin de la instruccin


PulseDO \High \PLength:=x, do5 PulseDO \High \PLength:=y, do5
desde task1 desde task2

Figura 25 Generacin de un pulso en una seal digital de salida.

La instruccin siguiente se ejecuta directamente despus del inicio del pulso. A


continuacin, el pulso puede activarse o desactivarse sin afectar al resto de la ejecucin
del programa.

232 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


PulseDO
Instruccin

Limitaciones
La duracin del pulso tiene una resolucin de 0,01 segundos. Los valores programados
que difieran de esta resolucin se redondean.

Sintaxis
PulseDO
[ [ \High]
[ \PLength := < expresin (IN) de num >] , ]
[ Signal := ] < variable (VAR) de signaldo > ;

Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 233


PulseDO
Instruccin

234 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


RAISE
Instruccin

RAISE - Llama a un gestor de errores


RAISE se utiliza para crear un error en el programa y llamar a continuacin al gestor
de errores de la rutina. RAISE tambin puede usarse en el gestor de errores para
propagar el error actual hacia el gestor de errores de la rutina desde la que se llam a
la rutina actual.

Por ejemplo, esta instruccin puede usarse para volver a un nivel ms alto de la
estructura del programa, por ejemplo al gestor de errores de la rutina principal, si se
produce un error en el nivel inferior.

Ejemplo
IF ...
IF ...
IF ...
RAISE escape1;
.
ERROR
IF ERRNO=escape1 RAISE;

La rutina se interrumpe para permitir que pueda eliminarse a s misma de un


nivel inferior del programa. Se produce un salto hacia el gestor de errores de la
rutina llamada.

Argumentos
RAISE [ N de error ]
N de error Tipo de dato: errnum

Nmero de error: Cualquier nmero de 1 a 90 que pueda usar el gestor de errores


para localizar el error que se ha producido (la variable de sistema ERRNO).

Tambin es posible registrar un nmero de error fuera del rango de 1 a 90 con la


instruccin BookErrNo.

El nmero de error debe especificarse fuera del gestor de errores en una


instruccin RAISE, para poder transferir la ejecucin al gestor de errores que se
encuentra fuera de la rutina.

Si la instruccin se incluye en el gestor de errores de una rutina, es posible que


el nmero del error no est especificado. En este caso, el error se propaga hacia
el gestor de errores de la rutina desde la que se llam a la rutina actual.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 235


RAISE
Instruccin

Ejecucin de programas
La ejecucin del programa contina en el gestor de errores de la rutina. Despus de
ejecutar el gestor de errores, la ejecucin del programa puede continuar con:

- La rutina que llam a la rutina actual (RETURN)


- El gestor de errores de la rutina que llam a la rutina actual (RAISE)

Si la instruccin RAISE est presente en el gestor de errores de una rutina, la ejecucin


del programa contina en el gestor de errores de la rutina desde la que se llam a la
rutina actual. El mismo nmero de error permanece activo. La instruccin RAISE del
gestor de errores de una rutina tambin presenta otra caracterstica que puede usarse
para saltos largos (consulte Recuperacin en caso de error con un salto largo). Con
un salto largo, es posible propagar un error desde un gestor de errores que se encuentra
a gran profundidad dentro de una cadena de llamadas anidadas, hasta un nivel superior,
en un solo paso.

Si la instruccin RAISE est presente en una rutina TRAP, el error se gestiona en el


gestor de errores del sistema.

Gestin de errores
Si el nmero de error est fuera de rango, la variable de sistema ERRNO cambia a
ERR_ILLRAISE (consulte Tipos de datos - errnum). El error puede ser gestionado
en el gestor de errores.

Sintaxis
(EBNF)
RAISE [<nmero de error>] ;

<nmero de error> ::= <expresin>

Informacin relacionada
Descrito en:
Gestin de errores Caractersticas bsicas - Recuperacin
en caso de error
Recuperacin en caso de error con Caractersticas bsicas -
un salto largo Recuperacin en caso de error
Registro de nmeros de error Instruccin - BookErrNo

236 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ReadAnyBin
Instruccin Advanced functions (Funciones avanzadas)

ReadAnyBin - Lee datos de un canal serie o un archivo


binario
ReadAnyBin (leer cualquier binario) se utiliza para leer cualquier tipo de dato de un
canal serie o un archivo binario.

Ejemplo
VAR iodev channel2;
VAR robtarget next_target;
...
Open "com2:", channel2 \Bin;
ReadAnyBin channel2, next_target;

Se lee del canal al que se hace referencia con channel2 el siguiente objetivo que
debe ejecutar el robot, next_target.

Argumentos
ReadAnyBin IODevice Data [\Time])
IODevice Tipo de dato: iodev

El nombre (la referencia) del canal serie o el archivo binario del que se desea leer.

Data Tipo de dato: ANYTYPE

La variable de tipo VAR o PERS en la que se desea almacenar la informacin.

[\Time] Tipo de dato: num

El tiempo mximo para la operacin de lectura (tiempo lmite) en segundos. Si


no se especifica este argumento, el tiempo mximo es de 60 segundos.

Si se agota este tiempo antes de que se complete la operacin de lectura, se llama


al gestor de errores con el cdigo de error ERR_DEV_MAXTIME. Si no hay
ningn gestor de errores, se detiene la ejecucin.

La funcin de tiempo lmite se utiliza tambin durante un paro de programa y se


observar en el programa de RAPID al poner en marcha el programa.

Ejecucin de programas
Se lee del canal serie o del archivo binario especificado el nmero de bytes necesario
para los datos especificados.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 237


ReadAnyBin
Advanced functions (Funciones avanzadas) Instruccin

Limitaciones
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para lectura binaria.

Los datos que se desea leer con esta instruccin deben tener un tipo de dato de valor
atomic, string o record. No se permite el uso de tipos de datos de semivalor ni sin valor.

No se permite el uso de datos de matriz.

Recuerde que la variable VAR o PERS, que se usa para almacenar los datos ledos,
puede actualizarse en varios pasos. Por tanto, espere siempre hasta que se actualice toda
la estructura de datos antes de leer la informacin desde una rutina TRAP o desde otra
tarea de programa.

Gestin de errores
Si se produce un error durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.

Si se agota el tiempo lmite antes de que se complete la operacin de lectura, la variable


de sistema ERRNO cambia a ERR_DEV_MAXTIME.

Si se produce un error de suma de comprobacin en los datos ledos, la variable de


sistema ERRNO cambia a ERR_RANYBIN_CHK.

Si se detecta el final del archivo antes de completar la lectura de todos los bytes, la
variable de sistema ERRNO cambia a ERR_RANYBIN_EOF.

A continuacin, estos errores pueden ser gestionados en el gestor de errores.

238 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ReadAnyBin
Instruccin Advanced functions (Funciones avanzadas)

Ejemplo
CONST num NEW_ROBT:=12;
CONST num NEW_WOBJ:=20;
VAR iodev channel;
VAR num input;
VAR robtarget cur_robt;
VAR wobjdata cur_wobj;

Open "com2:", channel\Bin;

! Esperar el carcter de opcode


input := ReadBin (channel \Time:= 0.1);
TEST input
CASE NEW_ROBT:
ReadAnyBin channel, cur_robt;
CASE NEW_WOBJ:
ReadAnyBin channel, cur_wobj;
ENDTEST

Close channel;

Como primer paso, se lee del canal serie el cdigo de operacin (opcode) del
mensaje. Acorde con el cdigo de operacin, se lee el dato robtarget o wobjdata
del canal serie.

Sintaxis
ReadAnyBin
[IODevice:=] <variable (VAR) de iodev>,
[Data:=] <variable o variable persistente (INOUT) de ANYTYPE>
[\Time:= <expresin (IN) de num>];

Informacin relacionada
Descrito en:
Apertura y otras operaciones Resumen sobre RAPID - Comunicacin
con canales serie o archivos

Escritura de datos en canales serie Instrucciones - WriteAnyBin


o archivos binarios

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 239


ReadAnyBin
Advanced functions (Funciones avanzadas) Instruccin

240 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ReadErrData
Instruccin Advanced functions (Funciones avanzadas)

ReadErrData - Obtiene informacin sobre un error


ReadErrData debe utilizarse en rutinas TRAP para obtener informacin (dominio,
tipo, nmero y cadenas entremezcladas %s) sobre el error, el cambio de estado o la
advertencia que provoc la ejecucin de la rutina TRAP.

Consulte la Gua del usuario - Gestin de errores, Mensajes del sistema y de error para
obtener ms informacin.

Ejemplo
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
VAR trapdata err_data;
VAR string string1;
VAR string string2;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number,
err_type \Str1:=string1 \Str2:=string2;
ENDTRAP

Cuando se detecta un error con la rutina TRAP trap_err, el dominio, el nmero,


el tipo y las dos primeras cadenas entremezcladas del mensaje de error se
almacenan en las variables adecuadas.

Argumentos
ReadErrData TrapEvent ErrorDomain ErrorId ErrorType
[\Str1] [\Str2] [\Str3] [\Str4] [\Str5]
TrapEvent Tipo de dato: trapdata

La variable que contiene la informacin sobre qu hecho provoc la ejecucin


de la rutina TRAP.

ErrorDomain Tipo de dato: errdomain

El dominio de error al que pertenece el error, el cambio de estado o la


advertencia. Consulte el tipo de dato predefinido errdomain.

ErrorId Tipo de dato: num

El nmero del error que se ha producido. El nmero del error se devuelve sin el
primer dgito (el dominio del error) y sin los ceros iniciales que s aparecen en el
nmero de error completo. Por ejemplo, el error 10008 Program restarted, se
devuelve como 8.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 241
ReadErrData
Advanced functions (Funciones avanzadas) Instruccin

ErrorType Tipo de dato: errtype

El tipo de evento que se ha producido, por ejemplo un error, un cambio de estado


o una advertencia. Consulte los datos predefinidos del tipo errtype.

[\Str1] ... [\Str5] Tipo de dato: string

La cadena que contiene la informacin que se entremezcla en el mensaje de error.


Cada mensaje puede contener un mximo de cinco cadenas. Str1 contiene la
primera cadena, Str2 contiene la segunda cadena, etc. La informacin acerca de
cuntas cadenas puede contener un mensaje aparece en la Gua del usuario -
Gestin de errores, Mensajes del sistema y de error.
Las cadenas entremezcladas aparecen marcadas como %s, %d o %f en dicho
documento.

Ejecucin de programas
Las variables ErrorDomain, ErrorId, ErrorType y Str1 ... Str5 se actualizan acorde con
el contenido de TrapEvent.

Si hay varios eventos conectados a una misma rutina TRAP, el programa debe
asegurarse de que el evento est relacionado con la monitorizacin de errores. Esto
puede hacerse comprobando que INTNO coincide con el nmero de interrupcin
utilizado en la instruccin IError.

Ejemplo
VAR intnum err_interrupt;
VAR trapdata err_data;
VAR errdomain err_domain;
VAR num err_number;
VAR errtype err_type;
...
CONNECT err_interrupt WITH trap_err;
IError COMMON_ERR, TYPE_ERR, err_interupt;
...
IDelete err_interrupt;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
! Seleccionar el dominio n 1 ... 13
SetGO go_err1, err_domain;
! Seleccionar el error n 1 ...9999
SetGO go_err2, err_number;
ENDTRAP

Cuando se produce un error (slo en el caso de los errores, no las advertencias ni


los cambios de estado), el nmero de error se obtiene en la rutina TRAP y su valor
se utiliza para activar dos grupos de salidas digitales.

242 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ReadErrData
Instruccin Advanced functions (Funciones avanzadas)

Limitacin
No es posible obtener informacin sobre los errores internos.

Sintaxis
ReadErrData
[TrapEvent :=] <variable (VAR) de trapdata>,
[ErrorDomain :=] <variable (VAR) de errdomain>,
[ErrorId:=] <variable (VAR) de num>,
[ErrorType :=] <variable (VAR) de errtype>
[\Str1 :=<variable (VAR) de string>]
[\Str2 :=<variable (VAR) de string>]
[\Str3 :=<variable (VAR) de string>]
[\Str4 :=<variable (VAR) de string>]
[\Str5 :=<variable (VAR) de string>];

Informacin relacionada
Descrito en:
Resumen de interrupciones Resumen sobre RAPID -
Interrupciones
Ms informacin sobre la gestin Caractersticas bsicas -
de interrupciones Interrupciones
Dominios de error, constantes predefinidas Tipos de datos - errdomain
Tipos de error, constantes predefinidas Tipos de datos - errtype
Peticin de una interrupcin en caso de error Instrucciones - IError
Obtencin de datos de interrupcin para Instrucciones - GetTrapData
la rutina TRAP actual

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 243


ReadErrData
Advanced functions (Funciones avanzadas) Instruccin

244 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Reset
Instruccin

Reset - Pone a cero una seal digital de salida


Reset se utiliza para poner a cero el valor de una seal digital de salida.

Ejemplos
Reset do15;

Se pone a cero la seal do15.

Reset weld;

Se pone a cero la seal weld.

Argumentos
Reset Signal
Signal Tipo de dato: signaldo

El nombre de la seal que se desea poner a cero.

Ejecucin de programas
El valor real depende de la configuracin de la seal. Si la seal est invertida en los
parmetros del sistema, esta instruccin hace que el canal fsico cambie a 1.

Sintaxis
Reset
[ Signal := ] < variable (VAR) de signaldo > ;

Informacin relacionada
Descrito en:
Activacin de una seal digital de salida Instrucciones - Set
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 245


Reset
Instruccin

246 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


RestoPath
Instruccin Advanced functions (Funciones avanzadas)

RestoPath - Restablece la trayectoria despus de una


interrupcin
RestoPath se utiliza para restablecer una trayectoria almacenada en un momento
anterior con la instruccin StorePath.

Ejemplo
RestoPath;

Restablece la trayectoria almacenada anteriormente mediante StorePath.

Ejecucin de programas
La trayectoria de movimiento actual de los ejes del robot y de los ejes externos se
elimina y la trayectoria almacenada anteriormente con la instruccin StorePath se
restablece. Sin embargo, no se produce ningn movimiento hasta que se ejecuta la
instruccin StartMove o se reanuda la ejecucin mediante RETRY en un gestor de
errores.

Ejemplo
ArcL p100, v100, seam1, weld5, weave1, z10, gun1;
...
ERROR
IF ERRNO=AW_WELD_ERR THEN
gun_cleaning;
RETRY;
ENDIF
...
PROC gun_cleaning()
VAR robtarget p1;
StorePath;
p1 := CRobT();
MoveL pclean, v100, fine, gun1;
...
MoveL p1, v100, fine, gun1;
RestoPath;
ENDPROC

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 247


RestoPath
Advanced functions (Funciones avanzadas) Instruccin

En caso de un error de soldadura, la ejecucin del programa contina en el gestor


de errores de la rutina, lo cual llama a su vez a gun_cleaning. A continuacin, se
almacena la trayectoria de movimiento que se estaba ejecutando y el robot se
traslada a la posicin pclean, en la que se soluciona el error. Una vez hecho esto,
el robot vuelve a la posicin en la que se produjo el error, p1, y almacena de
nuevo el movimiento original. A continuacin, la soldadura se reanuda
automticamente, lo que significa que el robot invierte su movimiento a lo largo
de la trayectoria antes de que comience la soldadura, tras lo cual puede continuar
la ejecucin normal del programa.

Limitaciones
Con la instruccin StorePath slo se almacenan los datos de la trayectoria de
movimiento. Si el usuario desea solicitar movimientos en un nuevo nivel de trayectoria,
es necesario almacenar la posicin de paro directamente despus de que StorePath y
antes de que RestoPath hacen el movimiento hacia la posicin de paro almacenada en
la trayectoria.

Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe


programarse con un punto de paro (zonedata fino), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.

Sintaxis
RestoPath;

Informacin relacionada
Descrito en:
Almacenamiento de trayectorias Instrucciones - StorePath
Ms ejemplos Instrucciones - StorePath

248 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


RETRY
Instruccin

RETRY - Reanuda la ejecucin despus de un error


La instruccin RETRY se utiliza para reanudar la ejecucin del programa despus de
un error, empezando por (y ejecutando de nuevo) la instruccin que provoc el error.

Ejemplo
reg2 := reg3/reg4;
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg4 := 1;
RETRY;
ENDIF

Se intenta dividir reg3 por reg4. Si reg4 es igual a 0 (lo cual da lugar a una
divisin por cero), se salta al gestor de errores, que inicializa reg4. A
continuacin, se usa la instruccin RETRY para saltar desde el gestor de errores
y se hace otro intento de completar la divisin.

Ejecucin de programas
La ejecucin del programa contina en (y ejecuta de nuevo) la instruccin que provoc
el error.

Gestin de errores
Si se supera el nmero mximo de reintentos (4 reintentos), la ejecucin del programa
se detiene y se genera un mensaje de error. El nmero mximo de reintentos puede
configurarse en los Parmetros del sistema (Otros parmetros del sistema).

Limitaciones
La instruccin slo puede existir en el gestor de errores de la rutina. Si el error se cre
usando una instruccin RAISE, no es posible reanudar la ejecucin del programa con
una instruccin RETRY, debe utilizarse la instruccin TRYNEXT.

Sintaxis
RETRY ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 249


RETRY
Instruccin

Informacin relacionada
Descrito en:
Gestores de errores Caractersticas bsicas - Recuperacin
en caso de error
Configuracin del nmero mximo Parmetros del sistema - Otros
de reintentos parmetros del sistema
Continuacin en la instruccin siguiente Instrucciones - TRYNEXT

250 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


RETURN
Instruccin

RETURN - Finaliza la ejecucin de una rutina


RETURN se utiliza para finalizar la ejecucin de una rutina. Si la rutina es una funcin,
el valor tambin se devuelve.

Ejemplos
errormessage;
Set do1;
.

PROC errormessage()
TPWrite "ERROR";
RETURN;
ENDPROC

Se llama al procedimiento errormessage. Cuando el procedimiento llega a la


instruccin RETURN, la ejecucin del programa vuelve a la instruccin que
sigue a la llamada al procedimiento, Set do1.

FUNC num abs_value(num value)


IF value<0 THEN
RETURN -value;
ELSE
RETURN value;
ENDIF
ENDFUNC

La funcin devuelve el valor absoluto de un nmero.

Argumentos
RETURN [ Valor de retorno ]
Valor de retorno Tipo de dato: Segn la declaracin
de la funcin

El valor de retorno de una funcin.

El valor de retorno debe especificarse en una instruccin RETURN incluida en


una funcin.

Si la instruccin se incluye en un procedimiento o una rutina TRAP, es posible


que el nmero del error no est especificado.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 251


RETURN
Instruccin

Ejecucin de programas
El resultado de la instruccin RETURN puede variar, en funcin del tipo de rutina en el
que se utiliza:

- Rutina principal: Si se la solicitado el paro del programa al final del ciclo, el


programa se detiene. De lo contrario, la ejecucin del programa contina con la
primera instruccin de la rutina principal.
- Procedimiento: La ejecucin del programa contina con la instruccin que
sigue a la llamada al procedimiento.
- Funcin: Devuelve el valor de la funcin.
- Rutina TRAP: La ejecucin del programa contina en el punto en el que se
produjo la interrupcin.
- Gestor de errores: En un procedimiento:
La ejecucin del programa contina con la rutina que llam a la rutina que
contiene el gestor de errores (en la instruccin que sigue a la llamada al
procedimiento).
En una funcin:
Se devuelve el valor de la funcin.

Sintaxis
(EBNF)
RETURN [ <expresin> ];

Informacin relacionada
Descrito en:
Funciones y procedimientos Caractersticas bsicas - Rutinas
Rutinas TRAP Caractersticas bsicas - Interrupciones
Gestores de errores Caractersticas bsicas - Recuperacin en
caso de error

252 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Rewind
Instruccin Advanced functions (Funciones avanzadas)

Rewind - Rebobina la posicin del archivo


Rewind sita la posicin del archivo al principio del archivo.

Ejemplo
Rewind iodev1;

En el archivo al que se hace referencia con iodev1, la posicin del archivo se


sita en el principio del archivo.

Argumentos
Rewind IODevice
IODevice Tipo de dato: iodev

El nombre (la referencia) del archivo que se desea rebobinar.

Ejecucin de programas
El archivo especificado se rebobina hasta el principio.

Ejemplo
! Variable de dispositivo de E/S y de nmero para usarlas conjuntamente con un
archivo binario
VAR iodev dev;
VAR num bindata;

! Abre el archivo con el modificador \Write para borrar el contenido anterior


Open "HOME:"\File := "bin_file",dev \Write;
Close dev;

! Abre el archivo binario con el modificador \Bin para un acceso binario de lectura y
escritura
Open "HOME:"\File := "bin_file",dev \Bin;
WriteStrBin dev,"Hello world";

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 253


Rewind
Advanced functions (Funciones avanzadas) Instruccin

! Rebobina el puntero del archivo hasta el principio del archivo binario


! Lee el contenido del archivo y escribe el resultado binario en TP
! (genera 72 101 108 108 111 32 119 111 114 108 100 )
Rewind dev;
bindata := ReadBin(dev);
WHILE bindata <> EOF_BIN DO
TPWrite " " \Num:=bindata;
bindata := ReadBin(dev);
ENDWHILE

! Cierra el archivo binario


Close dev;

La instruccin Rewind se utiliza para rebobinar un archivo binario hasta el


principio, de forma que sea posible leer el contenido del archivo con ReadBin.

Gestin de errores
Si se produce un error durante el rebobinado, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Sintaxis
Rewind
[IODevice :=] <variable (VAR) de iodev>;

Informacin relacionada
Descrito en:
Apertura y otras operaciones con archivos Resumen sobre RAPID -
Comunicacin

254 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Save
Instruccin

Save - Guarda un mdulo de programa


Save se utiliza para guardar un mdulo de programa.

El mdulo de programa especificado y presente en la memoria de programa se guarda


en la ruta de archivos original (especificada en Load o StartLoad) o en la ruta
especificada.

Tambin es posible guardar un mdulo de sistema en la ruta de archivos especificada.

Ejemplo
Load "HOME:/PART_B.MOD";
...
Save "PART_B";

Carga en la memoria de programa el mdulo de programa denominado


DOOR1.MOD desde HOME:.

Guarda el mdulo de programa PART_B con la ruta de archivo original HOME:


y el nombre de archivo original PART_B.MOD.

Argumentos
Save [\Task] ModuleName [\FilePath] [\File]
[\Task] Tipo de dato: taskid

La tarea de programa en la que debe guardarse el mdulo de programa.

Si se omite el argumento, se guarda el mdulo de programa especificado en la


tarea de programa actual (la que se est ejecutando).

Existen variables predefinidas con el tipo de dato taskid para todas las tareas de
programa del sistema. La identificacin de la variable ser
nombre_tarea+ID. Por ejemplo, para la tarea MAIN la identificacin de la
tarea es MAINId, para TSK1 es TSK1Id, etc.

ModuleName Tipo de dato: string

El mdulo de programa que se desea guardar.

[\FilePath] Tipo de dato: string

La ruta y el nombre de archivo del lugar en el que se desea guardar el mdulo de


programa. El nombre de archivo se excluye cuando se utiliza el argumento \File.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 255


Save
Instruccin

[\File] Tipo de dato: string

Cuando se excluye el nombre del archivo en el argumento FilePath, es necesario


especificarlo con este argumento.

El argumento \FilePath slo puede omitirse en el caso de los mdulos de programa


cargados con Load o con StartLoad-WaitLoad. Adems, el mdulo de programa se
almacena en el mismo destino que el especificado en estas instrucciones. Para
almacenar el mdulo de programa en otro destino, tambin es posible usar el argumento
\FilePath.

Para poder guardar un mdulo de programa cargado anteriormente en la unidad de


programacin, un ordenador externo o en la configuracin del sistema, es necesario
utilizar el argumento \FilePath.

Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de guardarse
antes de continuar en la instruccin siguiente.

Ejemplo
Save "PART_A" \FilePath:="HOME:/DOORDIR/PART_A.MOD";

Guarda el mdulo de programa PART_A en HOME: en el archivo PART_A.MOD


y en el directorio DOORDIR.

Save "PART_A" \FilePath:="HOME: \File:=DOORDIR/PART_A.MOD";

El mismo que el anterior pero con otra sintaxis.

Save \Task:=TSK1Id, "PART_A" \FilePath:="HOME:/DOORDIR/PART_A.MOD";

Guarda el mdulo de programa PART_A de la tarea de programa TSK1 en el


destino especificado. ste es un ejemplo en el que la instruccin Save se ejecuta
en una tarea de programa y el guardado se hace en otra tarea de programa.

Limitaciones
Las rutinas TRAP, los eventos de E/S del sistema y otras tareas de programa no pueden
ejecutarse durante la operacin de guardado. Por tanto, este tipo de operaciones se
retardan.

La operacin de guardado puede interrumpir la actualizacin paso a paso de los datos


de tipo PERS desde otras tareas de programa. Esto da como resultado datos de tipo
PERS completos incoherentes.

256 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Save
Instruccin

La detencin de un programa durante la ejecucin de una instruccin Save puede dar


lugar a un paro protegido con los motores apagados y se mostrar el mensaje de error
20025 Tiempo excesiv Orden paro en la unidad de programacin.

Evite tener movimientos en curso durante el guardado.

Gestin de errores
Si no es posible guardar el mdulo de programa porque no hay ningn nombre de
mdulo, ste es desconocido o se trata de un nombre de mdulo ambiguo, la variable
de sistema ERRNO cambia a ERR_MODULE.

Si no es posible guardar el archivo por no disponer de los permisos suficientes, si no


existe el directorio o no queda espacio libre en el dispositivo, la variable de sistema
ERRNO cambia a ERR_IOERROR.

Si no se especifica el argumento \FilePath en los mdulos de programa cargados desde


la unidad de programacin, los parmetros del sistema o un ordenador externo, la
variable ERRNO cambia a ERR_PATH.

Estos errores pueden ser gestionados en el gestor de errores.

Sintaxis
Save
[ \ Task := <variable (VAR) de taskid> , ]
[ ModuleName := ] <expresin (IN) de string>
[ \ FilePath :=<expresin (IN) de string> ]
[ \ File := <expresin (IN) de string>] ;

Informacin relacionada
Descrito en:
Tareas de programa Tipos de datos - taskid

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 257


Save
Instruccin

258 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchC
Instruccin

SearchC - Realiza una bsqueda en crculo usando el robot


SearchC (bsqueda circular) se utiliza para buscar una posicin al mover el punto
central de la herramienta (TCP) en sentido circular.

Durante el movimiento, el robot supervisa una seal digital de entrada. Cuando el valor
de la seal cambia al valor solicitado, el robot lee inmediatamente la posicin actual.

Normalmente, esta instruccin puede usarse cuando la herramienta sostenida por el


robot es una sonda para deteccin de superficies. La instruccin SearchC, permite
obtener las coordenadas de contorno de un objeto de trabajo.

Ejemplos
SearchC di1, sp, cirpoint, p10, v100, probe;

El TCP de la sonda probe se mueve circularmente hacia la posicin p10 a una


velocidad de v100. Cuando el valor de la seal di1 cambia a activo, la posicin
se almacena en sp.

SearchC \Stop, di2, sp, cirpoint, p10, v100, probe;

El TCP de la sonda probe se mueve circularmente hacia la posicin p10. Cuando


el valor de la seal di2 cambia a activo, la posicin se almacena en sp y el robot
se detiene inmediatamente.

Argumentos
SearchC [ \Stop ] | [ \PStop ] | [ \SStop ] | [ \Sup
] Signal [ \Flanks ] SearchPoint CirPoint ToPoint Speed [ \V ] | [ \T
] Tool [ \WObj ] [ \Corr ]
[ \Stop ] (paro rgido) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, sin mantener el TCP en la


trayectoria (paro rgido) cuando el valor de la seal de bsqueda cambia a activo.
Sin embargo, el robot se mueve una distancia corta antes del paro y no regresa a
la posicin buscada, es decir, a la posicin en la que cambi la seal.

[ \PStop ] (paro de trayectoria) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, manteniendo el TCP en la


trayectoria (paro blando) cuando el valor de la seal de bsqueda cambia a
activo. Sin embargo, el robot se mueve cierta distancia antes del paro y no
regresa a la posicin buscada, es decir, a la posicin en la que cambi la seal.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 259


SearchC
Instruccin

[ \SStop ] (paro suave) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, manteniendo el TCP cerca


de la trayectoria o en sta (paro suave) cuando el valor de la seal de bsqueda
cambia a activo. Sin embargo, el robot slo se mueve una distancia corta antes
del paro y no regresa a la posicin buscada, es decir, a la posicin en la que
cambi la seal. SStop resulta ms rpido que PStop. Sin embargo, cuando el
robot funciona a una velocidad superior a los 100 mm/seg, se detiene en la
direccin de la tangente del movimiento, lo que hace que se deslice
marginalmente de la trayectoria.

[ \Sup ] (supervisin) Tipo de dato: switch

La instruccin de bsqueda es sensible a la activacin de seales durante el


movimiento completo (bsqueda en vuelo), es decir, incluso despus de que se
informa del primer cambio de seal. Si se produce ms de una coincidencia
durante una bsqueda, la ejecucin del programa se detiene.

Si se omite el argumento \Stop, \PStop, \SStop o \Sup, el movimiento contina


(bsqueda en vuelo) hasta la posicin especificada en el argumento ToPoint
(igual que con el argumento \Sup),

Signal Tipo de dato: signaldi

El nombre de la seal a supervisar.

[\Flanks ] Tipo de dato: switch

Los bordes positivo y negativo de la seal son vlidos para determinar el xito de
una bsqueda.

Si se omite el argumento \Flanks, slo el borde positivo de la seal es vlido para


determinar el xito de una bsqueda y se activa una supervisin de la seal al
comenzar un proceso de bsqueda. Esto significa que si la seal ya tiene un valor
positivo al comenzar un proceso de bsqueda, el movimiento del robot se detiene
lo antes posible, manteniendo el TCP en la trayectoria (paro blando). Sin
embargo, el robot se mueve una distancia corta antes del paro y no vuelve a la
posicin inicial. Se genera un error recuperable por el usuario
(ERR_SIGSUPSEARCH), que puede gestionarse en el gestor de errores.

SearchPoint Tipo de dato: robtarget

La posicin del TCP y de los ejes externos en el momento del disparo de la seal
de bsqueda. La posicin se especifica en el sistema de coordenadas ms externo,
teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema
de coordenadas ProgDisp/ExtOffs activo.

CirPoint Tipo de dato: robtarget

El punto de crculo del robot. Consulte la instruccin MoveC para obtener una
descripcin ms detallada del movimiento circular. El punto de crculo se define
como una posicin con nombre o se almacena directamente en la instruccin
(marcada con un asterisco * en la instruccin).

260 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchC
Instruccin

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin). SearchC utiliza siempre un punto de paro
como dato de zona del destino.

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, los ejes externos y la
reorientacin de la herramienta.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que estn relacionadas las


posiciones de robot indicadas en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para ejecutar un
movimiento lineal respecto del objeto de trabajo.

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y a la posicin de destino si se
utiliza este argumento.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 261


SearchC
Instruccin

Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.

El movimiento termina siempre con un punto de paro, lo que implica que el robot se
detiene en el punto de destino.

Cuando se realiza una bsqueda en vuelo, es decir, cuando se utiliza el argumento \Sup,
el movimiento del robot contina siempre hacia el punto de destino programado.
Cuando se realiza una bsqueda con el modificador \Stop, \PStop o \SStop, el
movimiento del robot se detiene cuando se detecta la primera seal.

La instruccin SearchC devuelve la posicin del TCP cuando el valor de la seal digital
cambia al valor solicitado, como se representa en la Figura 26.

Sin el modificador \Flanks Con el modificador \Flanks


1 1
0 Tiempo 0 Tiempo

= Reaccin de la instruccin cuando


cambia la seal

Figura 26 Deteccin de seal disparada por flancos (la posicin se almacena slo
cuando la seal cambia por primera vez).

Ejemplo
SearchC \Sup, di1\Flanks, sp, cirpoint, p10, v100, probe;

El TCP de la sonda probe se mueve circularmente hacia la posicin p10. Cuando


el valor de la seal di1 cambia a activo o pasivo, la posicin se almacena en sp.
Si el valor de la seal cambia dos veces, se detiene la ejecucin del programa.

Limitaciones
Limitaciones generales acorde con la instruccin MoveC.

Los datos de zona de la instruccin de posicionamiento que precede a SearchC deben


usarse con cuidado. El comienzo de la bsqueda, es decir, cuando la seal de E/S est
preparada para reaccionar, no es en este caso el punto de destino de la instruccin de
posicionamiento anterior, sino un punto que se encuentra en la trayectoria real del
robot. La Figura 27 ilustra un ejemplo de lo que puede fallar cuando se utilizan datos
de zona distintos de fine.

262 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchC
Instruccin

La instruccin SearchC no debe reanudarse en ningn caso una vez traspasado el punto
de crculo. De lo contrario, el robot no tomar la trayectoria programada
(posicionamiento alrededor de la trayectoria circular en otra direccin, en comparacin
con la programada).

Punto de inicio con


datos de zona z10
Objeto buscado

Punto final

Punto de inicio con


datos de zona fine

Figura 27 Se encuentra una posicin en el lado incorrecto del objeto a causa del uso de
datos de zona incorrectos.

Exactitud de repeticin para la posicin de coincidencia de bsqueda con una


velocidad de 20 a 1.000 mm/seg
De 0,1 a 0,3 mm.

Distancia de paro tpica con una velocidad de bsqueda de 50 mm/s:

- Sin el TCP en la trayectoria (modificador \Stop), de 1 a 3 mm


- Con el TCP en la trayectoria (modificador \PStop), de 15 a 25 mm
- Con el TCP cerca de la trayectoria (modificador \SStop), de 4 a 8 mm

Gestin de errores
Durante las bsquedas, se generan errores en los casos siguientes:

- Cuando no se detecta ninguna seal. Se genera el error ERR_WHLSEARCH.


- Cuando se produce la deteccin de ms de una seal. Se genera el error
ERR_WHLSEARCH slo si se us el argumento \Sup.
- Cuando la seal ya tiene un valor positivo al comienzo del proceso de
bsqueda. Se genera el error ERR_SIGSUPSEARCH slo si se omite el
argumento \Flanks.

Los errores pueden gestionarse de formas distintas en funcin del modo de ejecucin
seleccionado:

Ejecucin continua hacia delante / ERR_WHLSEARCH

No se devuelve ninguna posicin y el movimiento contina siempre hacia el punto de


destino programado. La variable de sistema ERRNO cambia a ERR_WHLSEARCH y
es posible gestionar el error en el gestor de errores de la rutina.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 263


SearchC
Instruccin

Ejecucin continua hacia adelante / Instrucciones hacia adelante /


ERR_SIGSUPSEARCH

No se devuelve ninguna posicin y el movimiento se detiene siempre lo antes posible


al principio de la trayectoria de bsqueda. La variable de sistema ERRNO cambia a
ERR_SIGSUPSEARCH y es posible gestionar el error en el gestor de errores de la
rutina.

Instruccin hacia adelante / ERR_WHLSEARCH

No se devuelve ninguna posicin y el movimiento contina siempre hacia el punto de


destino programado. La ejecucin del programa se detiene y se genera un mensaje de
error.

Instruccin hacia atrs

Durante la ejecucin hacia atrs, la instruccin slo realiza el movimiento pero no


realiza la supervisin de seales.

Sintaxis
SearchC
[ \ Stop, ] | [ \ PStop ,] | [ \ SStop , ] | [ \ Sup , ]
[ Signal := ] < variable (VAR) de signaldi >
[\ Flanks],
[ SearchPoint := ] < variable o variable persistente (INOUT) de robtarget > ,
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

264 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchC
Instruccin

Informacin relacionada
Descrito en:
Bsquedas lineales Instrucciones - SearchL
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento circular Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Utilizacin de gestores de errores Resumen sobre RAPID -
Recuperacin en caso de error
Movimiento en general Principios de movimiento y E/S
Ms ejemplos de bsqueda Instrucciones - SearchL

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 265


SearchC
Instruccin

266 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchL
Instruccin

SearchL - Realiza una bsqueda lineal usando el robot


SearchL (bsqueda lineal) se utiliza para buscar una posicin al mover linealmente el
punto central de la herramienta (TCP).

Durante el movimiento, el robot supervisa una seal digital de entrada. Cuando el valor
de la seal cambia al valor solicitado, el robot lee inmediatamente la posicin actual.

Normalmente, esta instruccin puede usarse cuando la herramienta sostenida por el


robot es una sonda para deteccin de superficies. La instruccin SearchL, permite
obtener las coordenadas de contorno de un objeto de trabajo.

Ejemplos
SearchL di1, sp, p10, v100, probe;

El TCP de la sonda probe se mueve linealmente hacia la posicin p10 a una


velocidad de v100. Cuando el valor de la seal di1 cambia a activo, la posicin
se almacena en sp.

SearchL \Stop, di2, sp, p10, v100, probe;

El TCP de la sonda probe se mueve linealmente hacia la posicin p10. Cuando


el valor de la seal di2 cambia a activo, la posicin se almacena en sp y el robot
se detiene inmediatamente.

Argumentos
SearchL [ \Stop ] | [ \PStop ] | [ \SStop ] | [ \Sup ] Signal
[ \Flanks ] SearchPoint ToPoint Speed [ \V ] | [ \T ] Tool [ \WObj ]
[ \Corr ]
[ \Stop ] (paro rgido) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, sin mantener el TCP en la


trayectoria (paro rgido) cuando el valor de la seal de bsqueda cambia a activo.
Sin embargo, el robot se mueve una distancia corta antes del paro y no regresa a
la posicin buscada, es decir, a la posicin en la que cambi la seal.

[ \PStop ] (paro de trayectoria) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, manteniendo el TCP en la


trayectoria (paro blando) cuando el valor de la seal de bsqueda cambia a
activo. Sin embargo, el robot se mueve cierta distancia antes del paro y no
regresa a la posicin buscada, es decir, a la posicin en la que cambi la seal.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 267


SearchL
Instruccin

[ \SStop ] (paro suave) Tipo de dato: switch

El movimiento del robot se detiene lo antes posible, manteniendo el TCP cerca


de la trayectoria o en sta (paro suave) cuando el valor de la seal de bsqueda
cambia a activo. Sin embargo, el robot slo se mueve una distancia corta antes
del paro y no regresa a la posicin buscada, es decir, a la posicin en la que
cambi la seal. SStop resulta ms rpido que PStop. Sin embargo, cuando el
robot funciona a una velocidad superior a los 100 mm/seg, se detiene en la
direccin de la tangente del movimiento, lo que hace que se deslice
marginalmente de la trayectoria.

[ \Sup ] (supervisin) Tipo de dato: switch

La instruccin de bsqueda es sensible a la activacin de seales durante el


movimiento completo (bsqueda en vuelo), es decir, incluso despus de que se
informa del primer cambio de seal. Si se produce ms de una coincidencia
durante una bsqueda, la ejecucin del programa se detiene.

Si se omite el argumento \Stop, \PStop, \SStop o \Sup, el movimiento contina


(bsqueda en vuelo) hacia la posicin especificada en el argumento ToPoint
(igual que con el argumento \Sup).

Signal Tipo de dato: signaldi

El nombre de la seal a supervisar.

[\Flanks ] Tipo de dato: switch

Los bordes positivo y negativo de la seal son vlidos para determinar el xito de
una bsqueda.

Si se omite el argumento \Flanks, slo el borde positivo de la seal es vlido para


determinar el xito de una bsqueda y se activa una supervisin de la seal al
comenzar un proceso de bsqueda. Esto significa que si la seal ya tiene un valor
positivo al comenzar un proceso de bsqueda, el movimiento del robot se detiene
lo antes posible, manteniendo el TCP en la trayectoria (paro blando). Se genera
un error recuperable por el usuario (ERR_SIGSUPSEARCH), que puede
gestionarse en el gestor de errores.

SearchPoint Tipo de dato: robtarget

La posicin del TCP y de los ejes externos en el momento del disparo de la seal
de bsqueda. La posicin se especifica en el sistema de coordenadas ms externo,
teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema
de coordenadas ProgDisp/ExtOffs activo.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin). SearchL utiliza siempre un punto de paro
como dato de zona del destino.

268 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchL
Instruccin

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, los ejes externos y la
reorientacin de la herramienta.

[ \V ] (velocidad) Tipo de dato: num

Este argumento se utiliza para especificar la velocidad del TCP en mm/seg


directamente en la instruccin. A continuacin, se sustituye por la velocidad
correspondiente, especificada en los datos de velocidad.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura
el movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para ejecutar un
movimiento lineal respecto del objeto de trabajo.

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y a la posicin de destino si se
utiliza este argumento.

Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca del movimiento
lineal.

El movimiento termina siempre con un punto de paro, lo que implica que el robot se
detiene en el punto de destino.

Cuando se realiza una bsqueda en vuelo, es decir, cuando se utiliza el argumento \Sup,
el movimiento del robot contina siempre hacia el punto de destino programado.
Cuando se realiza una bsqueda con el modificador \Stop, \PStop o \SStop, el
movimiento del robot se detiene cuando se detecta la primera seal.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 269


SearchL
Instruccin

La instruccin SearchL almacena la posicin del TCP cuando el valor de la seal digital
cambia al valor solicitado, como se representa en la Figura 28.

Sin el modificador \Flanks Con el modificador \Flanks


1 1
0 Tiempo 0 Tiempo

= Reaccin de la instruccin cuando


cambia la seal

Figura 28 Deteccin de seal disparada por flancos (la posicin se almacena slo
cuando la seal cambia por primera vez).

Ejemplos
SearchL \Sup, di1\Flanks, sp, p10, v100, probe;

El TCP de la sonda probe se mueve linealmente hacia la posicin p10. Cuando el


valor de la seal di1 cambia a activo o pasivo, la posicin se almacena en sp. Si
el valor de la seal cambia dos veces, se detiene la ejecucin del programa una
vez que se completa el proceso de bsqueda.

SearchL \Stop, di1, sp, p10, v100, tool1;


MoveL sp, v100, fine \Inpos := inpos50, tool1;
PDispOn *, tool1;
MoveL p100, v100, z10, tool1;
MoveL p110, v100, z10, tool1;
MoveL p120, v100, z10, tool1;
PDispOff;

Al comienzo del proceso de bsqueda, se realiza una comprobacin de la seal


di1 y, si la seal ya tiene un valor positivo, se detiene la ejecucin del programa.
De lo contrario, el TCP de la herramienta tool1 se mueve linealmente hacia la
posicin p10. Cuando el valor de la seal di1 cambia a activo, la posicin se
almacena en sp. El robot vuelve hacia este punto usando un punto de paro
definido con exactitud. Usando un desplazamiento de programa, el robot se
mueve a continuacin respecto de la posicin buscada, sp.

270 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchL
Instruccin

Limitaciones
Los datos de zona de la instruccin de posicionamiento que precede a SearchL deben
usarse con cuidado. El comienzo de la bsqueda, es decir, cuando la seal de E/S est
preparada para reaccionar, no es en este caso el punto de destino de la instruccin de
posicionamiento anterior, sino un punto que se encuentra en la trayectoria real del
robot. Las figuras de la Figura 29 a la Figura 31 ilustran ejemplos de lo que puede fallar
cuando se utilizan datos de zona distintos de fine.

Punto de inicio con


datos de zona fine

Punto de inicio con


datos de zona z10 Objeto buscado
Punto final

Figura 29 Se encuentra una posicin en el lado incorrecto del objeto a causa del uso de
datos de zona incorrectos.

Punto de inicio con


datos de zona fine

Punto de inicio con


datos de zona z10 Objeto buscado
Punto final

Figura 30 No se detecta ningn xito de bsqueda porque se usaron datos de zona


errneos.

Punto de inicio con


datos de zona fine

Punto de inicio con Objeto buscado


datos de zona z10
Punto final

Figura 31 No se detecta ningn xito de bsqueda porque se usaron datos de zona


errneos.

Exactitud de repeticin para la posicin de coincidencia de bsqueda con una


velocidad de 20 a 1.000 mm/seg
De 0,1 a 0,3 mm.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 271


SearchL
Instruccin

Distancia de paro tpica con una velocidad de bsqueda de 50 mm/s:

- Sin el TCP en la trayectoria (modificador \Stop), de 1 a 3 mm


- Con el TCP en la trayectoria (modificador \PStop), de 15 a 25 mm
- Con el TCP cerca de la trayectoria (modificador \SStop), de 4 a 8 mm

Gestin de errores
Durante las bsquedas, se generan errores en los casos siguientes:

- Cuando no se detecta ninguna seal. Se genera el error ERR_WHLSEARCH.


- Cuando se produce la deteccin de ms de una seal. Se genera el error
ERR_WHLSEARCH slo si se us el argumento \Sup.
- Cuando la seal ya tiene un valor positivo al comienzo del proceso de bsqueda.
Se genera el error ERR_SIGSUPSEARCH slo si se omite el argumento
\Flanks.

Los errores pueden gestionarse de formas distintas en funcin del modo de ejecucin
seleccionado:

Ejecucin continua hacia delante / ERR_WHLSEARCH

No se devuelve ninguna posicin y el movimiento contina siempre hacia el punto de


destino programado. La variable de sistema ERRNO cambia a ERR_WHLSEARCH y
es posible gestionar el error en el gestor de errores de la rutina.

Ejecucin continua hacia adelante / Instrucciones hacia adelante /


ERR_SIGSUPSEARCH

No se devuelve ninguna posicin y el movimiento se detiene siempre lo antes posible


al principio de la trayectoria de bsqueda. La variable de sistema ERRNO cambia a
ERR_SIGSUPSEARCH y es posible gestionar el error en el gestor de errores de la
rutina.

Instruccin hacia adelante / ERR_WHLSEARCH

No se devuelve ninguna posicin y el movimiento contina hacia el punto de destino


programado. La ejecucin del programa se detiene y se genera un mensaje de error.

Instruccin hacia atrs

Durante la ejecucin hacia atrs, la instruccin slo realiza el movimiento pero no


realiza la supervisin de seales.

272 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SearchL
Instruccin

Ejemplo
VAR num fk;
.
MoveL p10, v100, fine, tool1;
SearchL \Stop, di1, sp, p20, v100, tool1;
.
ERROR
IF ERRNO=ERR_WHLSEARCH THEN
MoveL p10, v100, fine, tool1;
RETRY;
ELSEIF ERRNO=ERR_SIGSUPSEARCH THEN
TPWrite La seal de la instruccin SearchL ya est activada!;
TPReadFK fk, Desea intentarlo de nuevo despus de poner a cero
manualmente la seal?,S,,,,NO;
IF fk = 1 THEN
MoveL p10, v100, fine, tool1;
RETRY;
ELSE
Stop;
ENDIF
ENDIF

Si la seal ya est activada al comienzo del proceso de bsqueda, se activa una


ventana de dilogo del usuario (TPReadFK ...;). Si se pone a cero manualmente
la seal y se presiona S en la ventana de dilogo del usuario, el robot vuelva a
la posicin p10 y vuelve a intentar la operacin. De lo contrario, la ejecucin del
programa se detiene.

Si la seal est desactivada al comienzo del proceso de bsqueda, el robot busca


desde la posicin p10 hasta la posicin p20. Si no se detecta ninguna seal, el
robot vuelve a la posicin p10 y lo intenta de nuevo.

Sintaxis
SearchL
[ \ Stop, ] | [ \ PStop ,] | [ \ SStop , ] | [ \ Sup , ]
[ Signal := ] < variable (VAR) de signaldi >
[\ Flanks],
[ SearchPoint := ] < variable o variable persistente (INOUT) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ V := < expresin (IN) de num > ]
| [ \ T := < expresin (IN) de num > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 273


SearchL
Instruccin

Informacin relacionada
Descrito en:
Bsquedas circulares Instrucciones - SearchC
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento lineal Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Utilizacin de gestores de errores Resumen sobre RAPID -
Recuperacin en caso de error
Movimiento en general Principios de movimiento y E/S

274 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Set
Instruccin

Set - Activa una seal digital de salida


Set se utiliza para cambiar a 1 una seal digital de salida.

Ejemplos
Set do15;

Se cambia la seal do15 a 1.

Set weldon;

Se cambia la seal weldon a 1.

Argumentos
Set Signal
Signal Tipo de dato: signaldo

El nombre de la seal que se desea cambiar a uno.

Ejecucin de programas
Existe un pequeo retardo antes de que la seal cambie fsicamente al nuevo valor. Si
no desea que contine la ejecucin del programa hasta que la seal tenga su nuevo
valor, puede usar la instruccin SetDO con el parmetro opcional \Sync.

El valor real depende de la configuracin de la seal. Si la seal est invertida en los


parmetros del sistema, esta instruccin hace que el canal fsico cambie a cero.

Sintaxis
Set
[ Signal := ] < variable (VAR) de signaldo > ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 275


Set
Instruccin

Informacin relacionada
Descrito en:
Cambio de una seal digital de salida a cero Instrucciones - Reset
Cambio del valor de una seal digital de salida Instruccin - SetDO
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema

276 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SetAO
Instruccin

SetAO - Cambia el valor de una seal analgica de salida


SetAO se utiliza para cambiar el valor de una seal analgica de salida.

Ejemplo
SetAO ao2, 5.5;

Se cambia la seal ao2 a 5,5.

Argumentos
SetAO Signal Value
Signal Tipo de dato: signalao

El nombre de la seal analgica de salida que debe cambiar de valor.

Value Tipo de dato: num

El valor deseado para la seal.

Ejecucin de programas
Al valor programado se le aplica una escala (acorde con los parmetros del sistema)
antes de enviarlo al canal fsico. Consulte la Figura 32.

Valor fsico de la seal


de salida (V, mA, etc.)

MX. DE SEAL

MX. DE PROGRAMA

Valor lgico en el
programa
MN. DE PROGRAMA

MN. DE SEAL

Figura 32 Diagrama de cmo se ajustan los valores de las seales analgicas a una
escala.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 277


SetAO
Instruccin

Ejemplo
SetAO weldcurr, curr_outp;

Se asigna a la seal weldcurr el mismo valor que el valor actual de la variable


curr_outp.

Sintaxis
SetAO
[ Signal := ] < variable (VAR) de signalao > ,
[ Value := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S Parmetros del sistema

278 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SetDO
Instruccin

InvertDO - Invierte el valor de una seal digital de salida


SetDO se usa para cambiar el valor de una seal digital de salida, con o sin retardo ni
sincronizacin.

Ejemplos
SetDO do15, 1;

Se cambia la seal do15 a 1.

SetDO weld, off;

Se cambia la seal weld a off.

SetDO \SDelay := 0.2, weld, high;

Se cambia el valor de la seal weld a high con un retardo de 0,2 seg. Sin embargo,
la ejecucin del programa contina en la instruccin siguiente.

SetDO \Sync ,do1, 0;

Se cambia la seal do1 a 0 La ejecucin del programa espera hasta que la seal
cambia fsicamente al valor especificado.

Argumentos
SetDO [ \SDelay ]|[ \Sync ] Signal Value
[ \SDelay ] (retardo de seal) Tipo de dato: num

Retarda el cambio durante la duracin especificada, en segundos (mximo


32 seg). La ejecucin del programa contina directamente con la instruccin
siguiente. Despus del tiempo de retardo especificado, la seal cambia sin que el
resto de la ejecucin del programa se vea afectada.

[ \Sync ] (sincronizacin) Tipo de dato: switch

Si se utiliza este argumento, la ejecucin del programa espera hasta que la seal
cambie fsicamente al valor especificado.

Si no se utilizan los argumentos \SDelay ni \Sync, la seal cambia lo antes posible y la


siguiente instruccin se ejecuta inmediatamente, sin esperar a que la seal cambie
fsicamente.

Signal Tipo de dato: signaldo

El nombre de la seal que debe cambiar.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 279


SetDO
Instruccin

Value Tipo de dato: dionum

El valor deseado para la seal, 0 1.


Tabla 4 Interpretacin del valor especificado en el sistema

Valor especificado Cambiar la salida digital a

0 0
Cualquier valor excepto 0 1

Ejecucin de programas
El valor real depende de la configuracin de la seal. Si la seal est invertida en los
parmetros del sistema, el valor del canal fsico es el opuesto.

Sintaxis
SetDO
[ \ SDelay := < expresin (IN) de num > , ] |[ \ Sync , ]
[ Signal := ] < variable (VAR) de signaldo > ,
[ Value := ] < expresin (IN) de dionum > ;

Informacin relacionada
Descrito en:
Instrucciones de entrada y salida Resumen sobre RAPID - Seales de
entrada y salida
Funcionalidad general de las entradas Principios de movimiento y E/S -
y salidas Principios de E/S
Configuracin de E/S Gua del usuario - Parmetros del
sistema

280 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SetGO
Instruccin

SetGO - Cambia el valor de un grupo de seales digitales de


salida
SetGO se usa para cambiar el valor de un grupo de seales digitales de salida, con o sin
retardo de tiempo.

Ejemplo
SetGO go2, 12;

Se cambia la seal go2 a 12. Si go2 se compone de 4 seales, por ejemplo, las
salidas de la 6 a la 9, las salidas 6 y 7 cambian a cero, mientras que las salidas 8
y 9 cambian a uno.

SetGO \SDelay := 0.4, go2, 10;

Se cambia la seal go2 a 10. Si go2 se compone de 4 seales, por ejemplo, las
salidas de la 6 a la 9, las salidas 6 y 8 cambian a cero mientras que las seales 7
y 9 cambian a uno, con un retardo de 0,4 seg. Sin embargo, la ejecucin del
programa contina en la instruccin siguiente.

Argumentos
SetGO [ \SDelay ] Signal Value
[ \SDelay ] (retardo de seal) Tipo de dato: num

Retarda el cambio durante el periodo especificado, indicado en segundos


(mximo 32 seg). La ejecucin del programa contina directamente con la
instruccin siguiente. Despus del tiempo de retardo especificado, el valor de las
seales cambia sin que el resto de la ejecucin del programa se vea afectada.

Si se omite el argumento, el valor cambia directamente.

Signal Tipo de dato: signalgo

El nombre del grupo de seales que debe cambiar.

Value Tipo de dato: num

El valor deseado para el grupo de seales (un entero positivo).

El valor permitido depende del nmero de seales del grupo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 281


SetGO
Instruccin

N de seales Valor permitido N de seales Valor permitido


1 0-1 9 0 - 511
2 0-3 10 0 - 1.023
3 0-7 11 0 - 2.047
4 0 - 15 12 0 - 4.095
5 0 - 31 13 0 - 8.191
6 0 - 63 14 0 - 16.383
7 0 - 127 15 0 - 32.767
8 0 - 255 16 0 - 65.535

Ejecucin de programas
El valor programado se convierte en un nmero binario sin signo. Este nmero binario
se enva al grupo de seales, con el resultado de que se cambian a 0 1 las distintas
seales del grupo. Debido a los retardos internos, el valor de la seal puede permanecer
sin definir durante un breve periodo de tiempo.

Sintaxis
SetDO
[ \ SDelay := < expresin (IN) de num > , ]
[ Signal := ] < variable (VAR) de signalgo > ,
[ Value := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Otras instrucciones de entrada y salida Resumen sobre RAPID - Seales
de entrada y salida
Funcionalidad general de las entradas y salidas Principios de movimiento y E/S -
Principios de E/S
Configuracin de E/S (parmetros del sistema) Parmetros del sistema

282 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SingArea
Instruccin

SingArea - Define el mtodo de interpolacin alrededor de


puntos singulares
SingArea se utiliza para definir cmo debe moverse el robot en las cercanas de los
puntos singulares.

SingArea tambin se usa para definir la interpolacin lineal y circular en los robots con
menos de seis ejes.

Ejemplos
SingArea \Wrist;

Es posible cambiar ligeramente la orientacin de la herramienta para atravesar


un punto singular (ejes 4 y 6 en lnea).

Es posible que los robots con menos de seis ejes no puedan alcanzar una
orientacin de herramienta interpolada. Al utilizar SingArea \Wrist, el robot
puede conseguir el movimiento, pero la orientacin de la herramienta cambiar
ligeramente.

SingArea \Off;

No se permite que la orientacin de la herramienta sea distinta de la orientacin


programada. Si se atraviesa un punto singular, uno o varios ejes pueden realizar
un movimiento de barrido, lo que da lugar a una reduccin de velocidad.

Es posible que los robots con menos de seis ejes no puedan alcanzar una
orientacin de herramienta programada. Como resultado, el robot se detiene.

Argumentos
SingArea [ \Wrist] | [ \Off]
[ \Wrist ] Tipo de dato: switch

Se permite que la orientacin de la herramienta sea algo diferente, para evitar la


singularidad de la mueca. Se utiliza cuando los ejes 4 y 6 estn en paralelo (con
el eje 5 a 0 grados). Tambin se usa para la interpolacin lineal y circular en los
robots con menos de seis ejes, en los que se permite que la orientacin de la
herramienta sea diferente.

[\Off ] Tipo de dato: switch

La orientacin de la que no puede desviarse la herramienta. Se utiliza cuando no


se atraviesa ningn punto singular o cuando no se permite que cambie la
orientacin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 283


SingArea
Instruccin

Si no se especifica ninguno de los argumentos, la ejecucin del programa utiliza


automticamente el argumento predeterminado del robot. En el caso de los robots con
seis ejes, el argumento predeterminado es \Off.

Ejecucin de programas
Si se especifican los argumentos \Wrist, la orientacin se consigue mediante la
interpolacin de ejes para evitar los puntos singulares. De esta forma, el TCP sigue la
trayectoria correcta, pero la orientacin de la herramienta se desva hasta cierto punto.
Esto tambin se produce cuando no se atraviesa un punto singular.

La interpolacin especificada se aplica a todos los movimientos posteriores, hasta que


se ejecuta una nueva instruccin SingArea.

El movimiento slo se ve afectado por la ejecucin de la interpolacin lineal o circular.

De forma predeterminada, la ejecucin del programa utiliza automticamente el


argumento /Off en los robots con seis ejes. Los robots que tienen menos de seis ejes
pueden usar el argumento /Off (IRB640) o el argumento /Wrist de forma
predeterminada. Esto se establece automticamente en la rutina de evento
SYS_RESET.

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
SingArea
[ \ Wrist ] | [ \ Off ] ;

Informacin relacionada
Descrito en:
Singularidad Principios de movimiento - Singularidad
Interpolacin Principios de movimiento -
Posicionamiento durante la ejecucin del
programa

284 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SkipWarn
Instruccin

SkipWarn - Omitir la ltima advertencia


SkipWarn (omitir advertencia) se utiliza para omitir el ltimo mensaje de advertencia
solicitado, con lo que no se almacena en el registro de servicio durante la ejecucin en
el modo continuo o cclico (en los modos paso a paso hacia delante o hacia atrs no se
omite ninguna advertencia).

SkipWarn hace posible realizar una recuperacin de errores repetitiva en RAPID sin
llenar el registro de servicio con mensajes que slo son de advertencia.

Ejemplo
%"notexistingproc"%;
nextinstruction;
ERROR
IF ERRNO = ERR_REFUNKPRC THEN
SkipWarn;
TRYNEXT;
ENDIF
ENDPROC

El programa ejecuta la instruccin siguiente nextinstruction y no se almacena


ningn mensaje de advertencia en el registro de servicio.

Sintaxis
SkipWarn ;

Informacin relacionada
Descrito en:
Recuperacin en caso de error Resumen sobre RAPID -
Recuperacin en caso de error
Caractersticas bsicas -
Recuperacin en caso de error
Nmero de error Tipos de datos - errnum

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 285


SkipWarn
Instruccin

286 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SoftAct
Instruccin

SoftAct - Activa el servo suave


SoftAct (activar servo suave) se utiliza para activar el as llamado servo suave en
cualquier eje del robot o en una unidad mecnica externa.

Ejemplo
SoftAct 3, 20;

Activacin del servo suave en el eje 3 del robot, con un valor de suavidad del
20%.

SoftAct 1, 90 \Ramp:=150;

Activacin del servo suave en el eje 1 del robot, con un valor de suavidad del
90% y un factor de pendiente del 150%.

SoftAct \MechUnit:=orbit1, 1, 40 \Ramp:=120;

Activacin del servo suave en el eje 1 para la unidad mecnica orbit1, con un
valor de suavidad del 40% y un factor de pendiente del 120%.

Argumentos
SoftAct [\MechUnit] Axis Softness [\Ramp ]

[\MechUnit] (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica. Si se omite este argumento, significa la


activacin del servo suave para el eje especificado del robot.

Axis Tipo de dato: num

El nmero del eje del robot o del eje externo que debe funcionar con el servo
suave.

Softness Tipo de dato: num

El valor de suavidad, en porcentaje (del 0% al 100%). El 0% denota la suavidad


mnima (la mxima rigidez), mientras que el 100% denota la mxima suavidad.

Ramp Tipo de dato: num

El factor de pendiente, en porcentaje (>= 100%). El factor de pendiente se utiliza


para controlar la aplicacin del servo suave. Un factor del 100% denota un valor
normal. Cuando se usan valores mayores, el servo suave se aplica ms
lentamente (con una pendiente mayor). El valor predeterminado para el factor de
pendiente es el 100 %.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 287


SoftAct
Instruccin

Ejecucin de programas
La suavidad se activa con el valor especificado para el eje actual. El valor de suavidad
es vlido para todos los movimientos hasta que se programa un nuevo valor de suavidad
para el eje actual o hasta que se desactiva mediante una instruccin.

Limitaciones
El servo suave de cualquier eje del robot o eje externo se desactiva siempre que se
produce una cada de alimentacin elctrica. Esta limitacin puede gestionarse en el
programa del usuario cuando se reanuda la ejecucin despus de una cada de
alimentacin.

No se debe activar el mismo eje dos veces, a no ser que exista una instruccin de
movimiento entre las dos activaciones. Por tanto, debe evitarse la secuencia de
programa siguiente. De lo contrario, se producir un salto en el movimiento del robot:

SoftAct n , x;
SoftAct n , y;
(n = eje n del robot, x e y = valores de suavidad)

Sintaxis
SoftAct
[\MechUnit := < variable (VAR) de mecunit> ,]
[Axis := ] < expresin (IN) de num> ,
[Softness := ] < expresin (IN) de num>
[ \Ramp := < expresin (IN) de num> ];

Informacin relacionada
Descrito en:
Comportamiento con el servo suave activado Principios de movimiento y E/S -
Posicionamiento durante la ejecucin
del programa

288 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SoftDeact
Instruccin

SoftDeact - Desactiva el servo suave


SoftDeact (desactivar servo suave) se utiliza para desactivar el as llamado servo
suave en todos los ejes del robot y ejes externos.

Ejemplo
SoftDeact;

Desactiva el servo suave en todos los ejes.

SoftDeact \Ramp:=150;

Desactiva el servo suave en todos los ejes, con un factor de pendiente del 150%.

Argumentos
SoftDeact [\Ramp ]

Ramp Tipo de dato: num

El factor de pendiente, en porcentaje (>= 100%). El factor de pendiente se utiliza


para controlar la desactivacin del servo suave. Un factor del 100% denota un
valor normal. Cuando se usan valores mayores, el servo suave se desactiva ms
lentamente (con una pendiente mayor). El valor predeterminado para el factor de
pendiente es el 100 %.

Ejecucin de programas
El servo suave se desactiva en todos los ejes del robot y los ejes externos.

Sintaxis
SoftDeact
[ \Ramp := < expresin (IN) de num> ];

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 289


SoftDeact
Instruccin

Informacin relacionada
Descrito en:
Activacin del servo suave Instrucciones - SoftAct

290 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SpyStart
Instruccin

SpyStart - Comienza la grabacin de los datos de tiempo de


ejecucin
SpyStart se utiliza para iniciar la grabacin de los datos de instrucciones y tiempos
durante la ejecucin.

Los datos de ejecucin se almacenan en un archivo para su anlisis posterior.

El uso previsto de esta informacin es la depuracin de los programas de RAPID,


especficamente en sistemas multitarea (slo es necesario incluir SpyStart - SpyStop en
una de las tareas de programa).

Ejemplo
SpyStart HOME:/spy.log;

Empieza la grabacin de los datos de tiempo de ejecucin en el archivo spy.log


en el disco HOME:.

Argumentos
SpyStart File
File Tipo de dato: string

La ruta y el nombre del archivo que contiene los datos de ejecucin.

Ejecucin de programas
El archivo especificado se abre para escritura y los datos de tiempo de ejecucin
empiezan a grabarse en el archivo.

La grabacin de los datos de tiempo de ejecucin permanece activa hasta los


momentos siguientes:

- Ejecucin de la instruccin SpyStop


- Inicio de la ejecucin del programa desde el principio
- Carga de un nuevo programa
- Siguiente arranque en caliente

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 291


SpyStart
Instruccin

Limitaciones
Evite usar el disquete (opcionalmente) para la grabacin, ya que la escritura en el
disquete es muy lenta.

No utilice nunca la funcin de espa en los programas de produccin, porque esta


funcin aumenta el tiempo de ciclo y consume ms memoria en el dispositivo de
memoria de almacenamiento que utilice.

Gestin de errores
Si no es posible abrir el archivo de la instruccin SpyStart, la variable de sistema
ERRNO cambia a ERR_FILEOPEN (consulte Tipos de datos - errnum).
A continuacin, este error puede ser gestionado en el gestor de errores.

Formato de archivo
TASK INSTR IN CODE OUT

MAIN FOR i FROM 1 TO 3 DO 0: READY : 0


MAIN mynum := mynum+i; 1: READY : 1
MAIN ENDFOR 2: READY : 2
MAIN mynum := mynum+i; 2: READY : 2
MAIN ENDFOR 2: READY : 2
MAIN mynum := mynum+i; 2: READY : 2
MAIN ENDFOR 2: READY : 3
MAIN SetDO do1,1; 3: READY : 3
MAIN IF di1=0 THEN 3: READY : 4
MAIN MoveL p1, v1000,fine,tool0; 4: WAIT : 14
----- SYSTEM TRAP-----
MAIN MoveL p1, v1000, fine, tool0; 111: READY : 111
MAIN ENDIF 108: READY : 108
MAIN MoveL p2, v1000,fine,tool0; 111: WAIT : 118
----- SYSTEM TRAP-----
MAIN MoveL p2, v1000, fine, tool0; 326: READY : 326
MAIN SpyStop; 326:

La columna TASK muestra la tarea de programa que se ejecuta.


La columna INSTR muestra la instruccin ejecutada en la tarea de programa
especificada.
La columna IN muestra el tiempo en ms en la entrada de la instruccin ejecutada.
La columna CODE muestra si la instruccin est preparada (READY) o si est en
espera (WAIT) de completarse en el momento OUT.
La columna OUT muestra el tiempo en ms en la salida de la instruccin ejecutada.

Todos los tiempos se indican en ms (valores relativos).

----- SYSTEM TRAP ----- significa que el sistema est haciendo algo distinto de la
ejecucin de instrucciones de RAPID.

292 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SpyStart
Instruccin

En el caso de las llamadas a procedimientos (mdulos) NOSTEPIN, la lista de salida


slo muestra el nombre del procedimiento al que se llama. Esto se repite con cada
instruccin ejecutada en la rutina NOSTEPIN.

Sintaxis
SpyStart
[File:=]<expresin (IN) de string>;

Informacin relacionada
Descrito en:
Detencin de la grabacin de los datos Instrucciones - SpyStop
de ejecucin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 293


SpyStart
Instruccin

294 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SpyStop
Instruccin

SpyStop - Detiene la grabacin de los datos de tiempo de


ejecucin
SpyStop se utiliza para detener la grabacin de los datos de tiempo durante la ejecucin.

Esta informacin, que puede resultar til a la hora de optimizar el tiempo de ciclo de
ejecucin, se almacena en un archivo para su anlisis posterior.

Ejemplo
SpyStop;

Detiene la grabacin de los datos de tiempo de ejecucin en el archivo


especificado por la instruccin SpyStart anterior.

Ejecucin de programas
La grabacin de los datos de ejecucin se detiene y el archivo especificado por la
instruccin SpyStart anterior se cierra. Si no se ha ejecutado anteriormente la
instruccin SpyStart, la instruccin SpyStop no se tiene en cuenta.

Ejemplos
IF debug = TRUE SpyStart "HOME:/spy.log";
produce_sheets;
IF debug = TRUE SpyStop;

Si el indicador de depuracin (debug) tiene el valor TRUE, comienza la


grabacin de datos de ejecucin en el archivo spy.log del disco HOME:, se
realiza la produccin, se detiene la grabacin y se cierra el archivo spy.log.

Limitaciones
Evite usar el disquete (opcionalmente) para la grabacin, ya que la escritura en el
disquete es muy lenta.

No utilice nunca la funcin de espa en los programas de produccin, porque esta


funcin aumenta el tiempo de ciclo y consume ms memoria en el dispositivo de
memoria de almacenamiento que utilice.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 295


SpyStop
Instruccin

Sintaxis
SpyStop;

Informacin relacionada
Descrito en:
Inicio de la grabacin de los datos de ejecucin Instrucciones - SpyStart

296 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Load
Instruccin

StartLoad - Carga un mdulo de programa durante la


ejecucin
StartLoad se utiliza para iniciar la carga de un mdulo de programa en la memoria de
programa durante la ejecucin.

Mientras se est realizando la carga, las otras instrucciones pueden ejecutarse en


paralelo. El mdulo cargado debe estar conectado a la tarea de programa con la
instruccin WaitLoad antes de poder usar cualquiera de sus smbolos o rutinas.

El mdulo de programa cargado se aade a los mdulos que ya existen en la memoria


de programa.

Los programas o mdulos de sistema pueden cargarse en el modo esttico


(predeterminado) o en el modo dinmico:

Modo esttico
Tabla 5 Cmo afectan las distintas operaciones a los programas o mdulos de
sistema cargados en el modo esttico

Trasladar el puntero de Abrir un nuevo programa


programa a main desde TP de RAPID

Mdulo de programa No se ve afectado Se descarga


Mdulo de sistema No se ve afectado No se ve afectado

Modo dinmico
Tabla 6 Cmo afectan las distintas operaciones a los programas o mdulos de sistema
cargados en el modo dinmico

Trasladar el puntero de
Abrir un nuevo programa de
programa a main desde
RAPID
TP

Mdulo de programa Se descarga Se descarga


Mdulo de sistema Se descarga Se descarga

Tanto los mdulos cargados en modo esttico como los cargados en modo dinmico se
descargan al utilizar la instruccin UnLoad.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 297


Load
Instruccin

Ejemplo
VAR loadsession load1;
! Se inicia la carga de un nuevo mdulo de programa PART_B, que contiene la rutina
routine_b,
! en modo dinmico
StartLoad \Dynamic, diskhome \File:=PART_B.MOD, load1;
! Ejecucin en paralelo del mdulo anterior PART_A, que contiene la rutina routine_a
%routine_a%;
! Descarga del mdulo de programa anterior PART_A
UnLoad diskhome \File:=PART_A.MOD;
! Espera hasta que la carga y vinculacin del nuevo mdulo de programa PART_B se
ha completado
WaitLoad load1;

! Ejecucin del nuevo mdulo de programa PART_B


%routine_b%;

Se inicia la carga del mdulo de programa PART_B.MOD desde diskhome en la


memoria de programa con la instruccin StartLoad. En paralelo con la carga, el
programa ejecuta la rutina routine_a del mdulo PART_A.MOD.
A continuacin, la instruccin WaitLoad espera hasta que la carga y la
vinculacin se han completado. El mdulo se carga en el modo dinmico.

La variable load1 almacena la identidad de la sesin de carga, actualizada por


StartLoad y a la que se hace referencia desde WaitLoad.

Para ahorrar tiempo de vinculacin, las instrucciones UnLoad y WaitLoad


pueden combinarse en la instruccin WaitLoad mediante el uso del argumento
\UnLoadPath.

Argumentos
StartLoad [\Dynamic] FilePath [\File] LoadNo
[\Dynamic] Tipo de dato: switch

El modificador permite cargar un mdulo de programa en modo dinmico. De lo


contrario, la carga se realiza en modo esttico.

FilePath Tipo de dato: string

La ruta y el nombre del archivo que se cargar en la memoria de programa. El


nombre de archivo se excluye cuando se utiliza el argumento \File.

298 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Load
Instruccin

[\File] Tipo de dato: string

Cuando se excluye el nombre del archivo en el argumento FilePath, es necesario


definirlo con este argumento.

LoadNo Tipo de dato: loadsession

Existe una referencia en la sesin de carga que debe usarse en la instruccin


WaitLoad para conectar el mdulo de programa cargado a la tarea de programa.

Ejecucin de programas
La ejecucin de StartLoad slo solicita la carga y contina directamente en la
instruccin siguiente, sin esperar a que se complete la carga.

A continuacin, la instruccin WaitLoad espera primero a que se complete la carga , si


no se completado an, y despus el mdulo ser vinculado e inicializado. La
inicializacin del mdulo cargado devuelve todas las variables del nivel de mdulo a
sus valores iniciales.

Las referencias no resueltas se aceptan si el parmetro de sistema Tareas/RefBind tiene


el valor NO. Sin embargo, cuando se inicia el programa con la funcin Ventana
programa/Archivo/Verificar Programa de la unidad de programacin, no se realiza
ninguna comprobacin para buscar referencias no resueltas si el parmetro RefBind
tiene el valor NO. Se producir un error de tiempo de ejecucin al ejecutar una
referencia no resuelta.

Otra forma de usar referencias a instrucciones que no se encuentran en la tarea desde


un principio es mediante enlazamiento en tiempo de ejecucin. Esto permite usar una
expresin de cadena de caracteres para especificar la rutina a la que se desea llamar. La
expresin se encierra entre %%. En este caso, el parmetro RefBind puede recibir el
valor YES (el comportamiento predeterminado). La posibilidad de enlazamiento en
tiempo de ejecucin es preferible.

Para conseguir una estructura de programa idnea, fcil de comprender y mantener,


todas las operaciones de carga y descarga de mdulos de programa deben hacerse en
el mdulo principal (main) que siempre est presente en la memoria de programa
durante la ejecucin.

Para la carga de un programa que contiene un procedimiento main en un programa


principal (que contiene otro procedimiento main), consulte la instruccin Load.

Ejemplos
StartLoad \Dynamic, HOME:/DOORDIR/DOOR1.MOD, load1;

Carga el mdulo de programa DOOR1.MOD desde HOME: en el directorio


DOORDIR en la memoria de programa. El mdulo de programa se carga en el
modo dinmico.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 299


Load
Instruccin

StartLoad \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;

El mismo que el anterior pero con otra sintaxis.

StartLoad "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;

Lo mismo que en los dos ejemplos anteriores, pero el mdulo se carga en el modo
esttico.

StartLoad \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;


...
WaitLoad load1;

Es lo mismo que:

Load \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD";

Gestin de errores
Si la variable especificada en el argumento LoadNo ya se est utilizando, la variable de
sistema ERRNO cambia a ERR_LOADNO_INUSE. A continuacin, este error puede
ser gestionado en el gestor de errores.

Sintaxis
StartLoad
[\Dynamic ,]
[FilePath :=] <expresin (IN) de string>
[\File := <expresin (IN) de string> ] ,
[LoadNo :=] <variable (VAR) de loadsession> ;

Informacin relacionada
Descrito en:
Conexin de un mdulo cargado a una tarea Instrucciones - WaitLoad
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Cancelacin de la carga de un mdulo Instrucciones - CancelLoad
de programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controlador/
Tareas/ RefBind

300 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


StartMove
Instruccin

StartMove - Reanuda el movimiento del robot


StartMove se utiliza para reanudar los movimientos de los ejes del robot y de los ejes
externos cuando dicho movimiento ha sido parado por la instruccin StopMove.

Ejemplo
StopMove;
WaitDI ready_input, 1;
StartMove;

El robot empieza de nuevo a moverse cuando se activa la entrada ready_input.

Ejecucin de programas
Cualquier proceso asociado al movimiento detenido se reanuda al mismo tiempo que
se reanuda el movimiento.

Gestin de errores
Si el robot est demasiado alejado de la trayectoria (ms de 10 mm o 20 grados) para
realizar el inicio del movimiento interrumpido, la variable de sistema ERRNO cambia
a ERR_PATHDIST.

Si el robot se est moviendo en el momento en que se ejecuta StartMove, la variable de


sistema ERRNO cambia a ERR_ALRDY_MOVING.

Estos errores pueden ser gestionados en el gestor de errores.

Sintaxis
StartMove;

Informacin relacionada
Descrito en:
Detencin del movimiento Instrucciones - StopMove
Ms ejemplos Instrucciones - StorePath

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 301


StartMove
Instruccin

302 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SToolRotCalib
Instruccin

SToolRotCalib - Calibracin del TCP y de la rotacin de una


herramienta estacionaria
SToolRotCalib (calibracin de rotacin de herramienta estacionaria) se utiliza para
calibrar el TCP y la rotacin de una herramienta estacionaria.

La posicin del robot y sus movimientos dependen siempre de su sistema de


coordenadas de herramienta, es decir, del TCP y de la orientacin de la herramienta.
Para conseguir la mxima exactitud, es importante definir con la mayor correccin
posible el sistema de coordenadas de la herramienta.

La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describe en el Manual del usuario - Calibracin).

Descripcin
Para definir el TCP y la rotacin de una herramienta estacionaria, necesita una
herramienta apuntadora mvil montada en el elemento terminal del robot.

Antes de usar la instruccin SToolRotCalib, es necesario cumplir algunas condiciones


previas:

- La herramienta estacionaria que se desea calibrar debe estar montada


estacionariamente y definida con el componente robhold correcto (FALSE).
- La herramienta apuntadora (robhold TRUE) debe estar definida y calibrada con
los valores de TCP correctos.
- Si se utiliza el robot con una exactitud total, la carga y el centro de gravedad de
la herramienta apuntadora deben estar definidos.
Para la definicin de la carga, puede usar LoadIdentify.
- Es necesario activar la herramienta apuntadora, wobj0 y PDispOff antes de
empezar los movimientos del robot.
- Mueva el TCP de la herramienta apuntadora hasta el lugar ms cercano posible
del TCP de la herramienta estacionaria (origen del sistema de coordenadas de
la herramienta) y defina un robtarget para el punto de referencia RefTip.
- Mueva el robot sin cambiar la orientacin de la herramienta, de forma que el
TCP de la herramienta apuntadora apunte hacia algn punto del eje z positivo
del sistema de coordenadas de la herramienta y defina un robtarget para el
punto ZPos.
- Mueva el robot sin cambiar la orientacin de la herramienta, de forma que el
TCP de la herramienta apuntadora apunte hacia algn punto del eje x positivo
del sistema de coordenadas de la herramienta y defina un robtarget para el
punto XPos.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 303


SToolRotCalib
Instruccin

Como ayuda para apuntar hacia el eje x y el eje x positivos, puede usarse algn tipo de
herramienta alargadora.

Herramienta apuntadora
Herramienta alargadora
x
XPos
RefTip z
ZPos

Herramienta
estacionaria

Figura 33 Definicin de los robtargets RefTip, ZPos y XPos

Ejemplo
! Creado con el TCP apuntador orientado hacia el sistema de coordenadas de la
! herramienta estacionaria
CONST robtarget pos_tip := [...];
CONST robtarget pos_z := [...];
CONST robtarget pos_x := [...];

PERS tooldata tool1:= [ FALSE, [[0, 0, 0], [1, 0, 0 ,0]],


[0, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0]];

! Instrucciones para la creacin o ModPos de pos_tip, pos_z y pos_x


MoveJ pos_tip, v10, fine, point_tool;
MoveJ pos_z, v10, fine, point_tool;
MoveJ pos_x, v10, fine, point_tool;

SToolRotCalib pos_tip, pos_z, pos_x, tool1;

Se calcula y actualiza la posicin del TCP (tframe.trans) y la orientacin de la


herramienta (tframe.rot) de tool1 en el sistema de coordenadas mundo.

304 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SToolRotCalib
Instruccin

Argumentos
SToolRotCalib RefTip ZPos XPos Tool
RefTip Tipo de dato: robtarget

La posicin de la punta de referencia fija.

ZPos Tipo de dato: robtarget

El punto de alargador que define la direccin z positiva.

XPos Tipo de dato: robtarget

El punto de alargador que define la direccin x positiva.

Tool Tipo de dato: tooldata

El nombre de la herramienta a calibrar.

Ejecucin de programas
El sistema calcula y actualiza el TCP (tframe.trans) y la orientacin (tfame.rot) de la
herramienta en los datos especificados tooldata. El clculo se basa en los 3 valores
especificados de robtarget. Los dems datos de tooldata permanecen sin cambios.

Sintaxis
SToolRotCalib
[ RefTip := ] < expresin (IN) de robtarget > ,
[ ZPos := ] < expresin (IN) de robtarget > ,
[ XPos := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ;

Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta Instrucciones - MToolTCPCalib
mvil
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP de una herramienta Instrucciones - SToolTCPCalib
estacionaria

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 305


SToolRotCalib
Instruccin

306 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SToolTCPCalib
Instruccin

SToolTCPCalib - Calibracin del TCP de una herramienta


estacionaria
SToolTCPCalib (calibracin del TCP de una herramienta estacionaria) se utiliza para
calibrar el punto central de la herramienta (TCP) de una herramienta estacionaria.

La posicin del robot y sus movimientos dependen siempre de su sistema de


coordenadas de herramienta, es decir, del TCP y de la orientacin de la herramienta.
Para conseguir la mxima exactitud, es importante definir con la mayor correccin
posible el sistema de coordenadas de la herramienta.

La calibracin tambin puede realizarse con un mtodo manual, utilizando el TPU (se
describe en el Manual del usuario - Calibracin).

Descripcin
Para definir el TCP de una herramienta estacionaria, necesita una herramienta
apuntadora mvil montada en el elemento terminal del robot.

Antes de usar la instruccin SToolTCPCalib, es necesario cumplir algunas condiciones


previas:

- La herramienta estacionaria que se desea calibrar debe estar montada


estacionariamente y definida con el componente robhold correcto (FALSE).
- La herramienta apuntadora (robhold TRUE) debe estar definida y calibrada con
los valores de TCP correctos.
- Si se utiliza el robot con una exactitud total, la carga y el centro de gravedad de
la herramienta apuntadora deben estar definidos.
Para la definicin de la carga, puede usar LoadIdentify.
- Es necesario activar la herramienta apuntadora, wobj0 y PDispOff antes de
empezar los movimientos del robot.
- Mueva el TCP de la herramienta apuntadora lo ms cerca posible del TCP de
la herramienta estacionaria y defina un robtarget para el primer punto p1.
- Defina tres posiciones adicionales, p2, p3 y p4, todas con orientaciones
diferentes.
- Se recomienda apuntar el TCP con orientaciones diferentes para obtener un
resultado estadstico fiable, si bien no es necesario.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 307


SToolTCPCalib
Instruccin

3 Herramienta apuntadora
1

2 Herramienta
4
estacionaria

Figura 34 Definicin de 4 robtargets, de p1 a p4

Ejemplo
! Creado con el TCP apuntador orientado hacia el TCP estacionario
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
CONST robtarget p4 := [...];

PERS tooldata tool1:= [ FALSE, [[0, 0, 0], [1, 0, 0 ,0]],


[0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0]];
VAR num max_err;
VAR num mean_err;

! Instrucciones para la creacin o ModPos de p1 a p4


MoveJ p1, v10, fine, point_tool;
MoveJ p2, v10, fine, point_tool;
MoveJ p3, v10, fine, point_tool;
MoveJ p4, v10, fine, point_tool;

MToolTCPCalib p1, p2, p3, p4, tool1, max_err, mean_err;

Se calibra y actualiza el valor del TCP (tframe.trans) de tool1.


max_err y mean_err contendrn el error mximo en mm a partir del TCP
calculado y el error medio en mm a partir del TCP calculado, respectivamente.

308 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


SToolTCPCalib
Instruccin

Argumentos
SToolTCPCalib Pos1 Pos2 Pos3 Pos4 Tool MaxErr MeanErr
Pos1 Tipo de dato: robtarget

El primer punto de aproximacin.

Pos2 Tipo de dato: robtarget

El segundo punto de aproximacin.

Pos3 Tipo de dato: robtarget

El tercer punto de aproximacin.

Pos4 Tipo de dato: robtarget

El cuarto punto de aproximacin.

Tool Tipo de dato: tooldata

El nombre de la herramienta a calibrar.

MaxErr Tipo de dato: num

El error mximo en mm para un punto de aproximacin.

MeanErr Tipo de dato: num

La distancia media que separa los puntos de aproximacin del TCP calculado, es
decir, la exactitud con la que el robot se posicion respecto del TCP estacionario.

Ejecucin de programas
El sistema calcula y actualiza el valor del TCP en el sistema de coordenadas mundo
(tfame.trans) en el valor especificado tooldata. El clculo se basa en los 4 valores
especificados de robtarget. Los dems datos de tooldata, por ejemplo la orientacin de
la herramienta (tframe.rot), permanecen sin cambios.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 309


SToolTCPCalib
Instruccin

Sintaxis
MToolTCPCalib
[ Pos1 := ] < expresin (IN) de robtarget > ,
[ Pos2 := ] < expresin (IN) de robtarget > ,
[ Pos3 := ] < expresin (IN) de robtarget > ,
[ Pos4 := ] < expresin (IN) de robtarget > ,
[ Tool := ] < variable persistente (PERS) de tooldata > ,
[ MaxErr := ] < variable (VAR) de num > ,
[ MeanErr := ] < variable (VAR) de num > ;

Informacin relacionada
Descrito en:
Calibracin del TCP de una herramienta Instrucciones - MToolTCPCalib
mvil
Calibracin de la rotacin de una herramienta Instrucciones - MToolRotCalib
mvil
Calibracin del TCP y de la rotacin Instrucciones - SToolRotCalib
de una herramienta estacionaria

310 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Stop
Instruccin

Stop - Detiene la ejecucin del programa


Stop se utiliza para detener temporalmente la ejecucin del programa.

La ejecucin del programa tambin puede detenerse mediante la instruccin EXIT. Sin
embargo, sta slo debe usarse si la tarea se ha completado o si se produce un error no
recuperable, dado que la ejecucin del programa no puede reanudarse tras usar EXIT.

Ejemplo
TPWrite La lnea al ordenador anfitrin se ha interrumpido;
Stop;

La ejecucin del programa se detiene despus de escribir un mensaje en la unidad


de programacin.

Argumentos
Stop [ \NoRegain ]
[ \NoRegain ] Tipo de dato: switch

Especifica si los ejes del robot y los ejes externos deben recuperar la posicin de
paro la siguiente vez que se reanude el programa en el modo manual. En el modo
automtico, los ejes del robot y los ejes externos recuperan siempre la posicin
de paro.

Si se usa el argumento NoRegain, ni los ejes del robot ni los ejes externos
recuperan la posicin de paro (si han sido alejados de esa posicin).

Si se omite el argumento y los ejes del robot o los ejes externos han sido alejados
de la posicin de paro, el robot muestra una pregunta en la unidad de
programacin. A continuacin, el usuario puede decidir si el robot debe
recuperar la posicin de paro.

Ejecucin de programas
La instruccin detiene la ejecucin del programa tan pronto como los ejes del robot y
los ejes externos alcanzan el punto de destino programado para el movimiento que est
realizando en cada momento. Posteriormente es posible reanudar la ejecucin del
programa a partir de la instruccin siguiente.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 311


Stop
Instruccin

Ejemplo
MoveL p1, v500, fine, tool1;
TPWrite Mover el robot a la posicin de la esquina del pal 1;
Stop \NoRegain;
p1_read := CRobT();
MoveL p2, v500, z50, tool1;

La ejecucin del programa se detiene cuando el robot se encuentra en el punto


p1. El operador mueve el robot hasta p1_read. En el siguiente inicio de programa,
el robot no vuelve a p1, de forma que la posicin p1_read pueda almacenarse en
el programa.

Limitaciones
Si esta instruccin va precedida de una instruccin de movimiento, sta ltima debe
programarse con un punto de paro (zonedata fine), no un punto de paso. De lo
contrario, no ser posible reanudar la ejecucin tras una cada de suministro elctrico.

Sintaxis
Stop
[ \ NoRegain ];

Informacin relacionada
Descrito en:
Paro despus de un error no recuperable Instrucciones - EXIT
Finalizacin de la ejecucin del programa Instrucciones - EXIT
Paro de los movimientos del robot nicamente Instrucciones - StopMove

312 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


StopMove
Instruccin

StopMove - Detiene el movimiento del robot


StopMove se utiliza para detener temporalmente los movimientos de los ejes del robot
y los ejes externos. Si se ejecuta la instruccin StartMove, el movimiento se reanuda.

Por ejemplo, esta instruccin puede usarse en una rutina TRAP para parar
temporalmente el robot cuando se produce una interrupcin.

Ejemplo
StopMove;
WaitDI ready_input, 1;
StartMove;

El movimiento del robot se detiene hasta que se activa la entrada ready_input.

Argumentos
StopMove [\Quick]
[\Quick] Tipo de dato: switch

Detiene el robot lo antes posible, sin abandonar la trayectoria.

Si no se utiliza el parmetro opcional \Quick, el robot se detiene en su trayectoria, pero


la distancia de frenado es mayor (igual que con un paro de programa normal).

Ejecucin de programas
Los movimientos de los ejes del robot y de los ejes externos se detienen sin aplicar los
frenos. Cualquier proceso asociado con el movimiento en curso se detiene al mismo
tiempo que se detiene el movimiento.

La ejecucin del programa contina sin esperar a que se detengan los ejes del robot ni
los ejes externos (en reposo).

Ejemplos
VAR intnum intno1;
...
CONNECT intno1 WITH go_to_home_pos;
ISignalDI di1,1,intno1;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 313


StopMove
Instruccin

TRAP go_to_home_pos
VAR robtarget p10;

StopMove;
StorePath;
p10:=CRobT();
MoveL home,v500,fine,tool1;
WaitDI di1,0;
Move L p10,v500,fine,tool1;
RestoPath;
StartMove;
ENDTRAP
Cuando se asigna el valor 1 a la entrada di1, se activa una interrupcin que activa
a su vez la rutina de interrupcin go_to_home_pos. El movimiento actual se
detiene y el robot pasa a moverse hacia la posicin home. Cuando se cambia a 0
la seal di1, el robot vuelve a la posicin en la cual se produjo la interrupcin y
sigue movindose a lo largo de la trayectoria programada.
VAR intnum intno1;
...
CONNECT intno1 WITH go_to_home_pos;
ISignalDI di1,1,intno1;
TRAP go_to_home_pos ()
VAR robtarget p10;

StorePath;
p10:=CRobT();
MoveL home,v500,fine,tool1;
WaitDI di1,0;
Move L p10,v500,fine,tool1;
RestoPath;
StartMove;
ENDTRAP
Es similar al ejemplo anterior, pero el robot no se mueve hacia la posicin home
hasta que se completa la instruccin de movimiento actual.

Sintaxis
StopMove [\Quick] ;

Informacin relacionada
Descrito en:
Continuacin de un movimiento Instrucciones - StartMove
Almacenamiento y restauracin de Instrucciones - StorePath - RestoPath
la trayectoria

314 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


StorePath
Instruccin Advanced functions (Funciones avanzadas)

StorePath - Almacena la trayectoria cuando se produce una


interrupcin
StorePath se utiliza para almacenar la trayectoria de movimiento que se est
ejecutando cuando se produce un error o una interrupcin. A continuacin, el gestor de
errores o la rutina TRAP pueden iniciar un nuevo movimiento y, despus, reanudar el
movimiento que se ha almacenado previamente.

Por ejemplo, esta instruccin puede usarse para ir a una posicin de servicio o limpiar
una pistola cuando se produce un error.

Ejemplo
StorePath;

Se almacena para un uso posterior la trayectoria de movimiento actual.

Ejecucin de programas
Se guarda la trayectoria actual de movimientos de los ejes del robot y los ejes externos.
Despus de esta operacin, es posible iniciar otro movimiento en una rutina TRAP o
un gestor de errores. Tras corregir el motivo del error o de la interrupcin, es posible
restaurar la trayectoria de movimientos guardada.

Ejemplo
TRAP machine_ready
VAR robtarget p1;
StorePath;
p1 := CRobT();
MoveL p100, v100, fine, tool1;
...
MoveL p1, v100, fine, tool1;
RestoPath;
StartMove;
ENDTRAP

Cuando se produce una interrupcin que activa la rutina TRAP machine_ready,


la trayectoria de movimiento que est ejecutando el robot en ese momento se
detiene al final de la instruccin (ToPoint) y se almacena. A continuacin, el
robot soluciona la interrupcin, por ejemplo, sustituyendo una pieza de la
mquina, tras lo cual se reanuda el movimiento normal.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 315


StorePath
Advanced functions (Funciones avanzadas) Instruccin

Limitaciones
Con la instruccin StorePath slo se almacenan los datos de la trayectoria de
movimiento. Si el usuario desea solicitar movimientos en un nuevo nivel de trayectoria,
es necesario almacenar la posicin de paro directamente a continuacin de que
StorePath y de RestoPath hacen el movimiento hacia la posicin de paro almacenada
en la trayectoria.

Slo es posible tener almacenada una trayectoria de movimiento cada vez.

Sintaxis
StorePath;

Informacin relacionada
Descrito en:
Restauracin de la trayectoria Instrucciones - RestoPath
Ms ejemplos Instrucciones - RestoPath

316 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TEST
Instruccin

TEST - En funcin del valor de una expresin...


TEST se utiliza cuando es necesario ejecutar instrucciones diferentes en funcin del
valor de una expresin o un dato.

Si no hay demasiadas alternativas, tambin es posible usar la instruccin IF..ELSE.

Ejemplo
TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
DEFAULT:
TPWrite "Opcin no vlida";
Stop;
ENDTEST

Se ejecutan instrucciones diferentes en funcin del valor de reg1. Si el valor es


1, 2 3, se ejecuta routine1. Si el valor es 4, se ejecuta routine2. De lo contrario,
se enva un mensaje de error a la unidad de programacin y la ejecucin se
detiene.

Argumentos
TEST Dato de prueba {CASE Valor de prueba {, Valor de
prueba} : ...}
[ DEFAULT: ...] ENDTEST
Dato de prueba Tipo de dato: todos

El dato o la expresin con el que se comparar el valor de prueba.

Valor de prueba Tipo de dato: Del mismo tipo


que el dato de prueba

El valor que debe tener el dato de prueba para que se ejecuten las instrucciones
asociadas.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 317


TEST
Instruccin

Ejecucin de programas
Los datos de prueba se comparan con los valores de prueba de la primera condicin
CASE. Si la comparacin da un resultado positivo, se ejecutan las instrucciones
asociadas. Posteriormente, la ejecucin del programa contina con la instruccin que
aparece a continuacin de ENDTEST.

Si no se cumple la primera condicin CASE, se comprueban las dems condiciones


CASE y de ah en adelante. Si no se cumple ninguna de las condiciones, se ejecutan las
instrucciones asociadas a DEFAULT (si se ha incluido en la instruccin).

Sintaxis
(EBNF)
TEST <expresin>
{( CASE <valor de prueba> { , <valor de prueba> } :
<lista de instrucciones> ) | <CSE> }
[ DEFAULT : <lista de instrucciones> ]
ENDTEST

<valor de prueba> ::= <expresin>

Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones

318 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TestSignDefine
Instruccin

TestSignDefine - Define una seal de prueba


TestSignDefine se utiliza para definir una seal de prueba para el sistema de
movimiento del robot.

La seal de prueba refleja continuamente un flujo especfico de datos de movimiento,


por ejemplo, una referencia de par de un eje especificado. El valor actual en un
momento dado puede leerse desde RAPID con la funcin TestSignRead.

Slo es posible obtener informacin de las seales de prueba de los ejes externos del
robot. Para usar la seal de prueba con los ejes principales del robot o si necesita usar
seales de prueba no predefinidas, pngase en contacto con el centro ms cercano de
ABB Flexible Automation.

Ejemplo
TestSignDefine 1, resolver_angle, Orbit, 2, 0,1;

La seal de prueba resolver_angle conectada al canal 1 proporciona el valor del


ngulo de resolver para el eje 2, del robot Orbit, muestreado cada 100 mseg.

Argumentos
TestSignDefine Channel SignalId MechUnit Axis SampleTime
Channel Tipo de dato: num

El nmero de canal, de 1 a 12, que se desea usar para la seal de prueba.


Se debe usar el mismo nmero en la funcin TestSignRead para leer el valor
actual de la seal de prueba.

SignalId Tipo de dato: testsignal

El nombre o el nmero de la seal de prueba.


Consulte las constantes predefinidas descritas en el tipo de dato testsignal.

MechUnit (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica.

Axis Tipo de dato: num

El nmero de eje de la unidad mecnica.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 319


TestSignDefine
Instruccin

SampleTime Tipo de dato: num

El tiempo de muestreo en segundos.

Con un tiempo de muestreo < 0,004 seg, la funcin TestSignRead devuelve el


valor medio de los ltimos muestreos internos disponibles, como se muestra en
la tabla siguiente.
Tabla 7 Especificacin del tiempo de muestreo

Tiempo de muestreo en
Resultado de TestSignRead
segundos

0 Valor medio de los ltimos 8 muestreos generados cada 0,5 mseg


0,001 Valor medio de los ltimos 4 muestreos generados cada 1 mseg
0,002 Valor medio de los ltimos 2 muestreos generados cada 2 mseg
Mayor o igual a 0,004 Valor momentneo generado en el tiempo de muestreo
especificado
0,1 Valor momentneo generado en el tiempo de muestreo
especificado, de 100 mseg

Ejecucin de programas
La definicin de la seal de prueba se activa y el sistema de robot empieza a muestrear
la seal de prueba.

El muestreo de la seal de prueba permanece activo en los casos siguientes:

- Hasta que se ejecuta una nueva instruccin TestSignDefine para el canal actual
- Hasta que se desactivan todas las seales de prueba con la ejecucin de la
instruccin TestSignReset
- Hasta que todas las seales se desactivan con el arranque en caliente del sistema

Gestin de errores
Si hay algn error en el parmetro MechUnit, el parmetro de sistema ERRNO cambia
a ERR_UNIT_PAR. Si hay algn error en el parmetro Axis, ERRNO cambia a
ERR_AXIS_PAR.

320 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TestSignDefine
Instruccin

Sintaxis
TestSignDefine
[ Channel := ] < expresin (IN) de num> ,
[ SignalId := ] < expresin (IN) de testsignal> ,
[ MechUnit := ] < variable (VAR) de mecunit> ,
[Axis := ] < expresin (IN) de num> ,
[ SampleTime := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Seal de prueba Tipos de datos - testsignal
Lectura de una seal de test Funciones - TestSignRead
Puesta a cero de seales de test Instrucciones - TestSignReset

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 321


TestSignDefine
Instruccin

322 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TestSignReset
Instruccin

TestSignReset - Restablece todas las definiciones de seales de


prueba
TestSignReset se utiliza para desactivar todas las seales de prueba definidas
anteriormente.

Ejemplo
TestSignReset;

Desactiva todas las seales de prueba definidas anteriormente.

Ejecucin de programas
Las definiciones de todas las seales de prueba se desactivan y el sistema de robot
detiene el muestreo de las seales de prueba.

El muestreo de las seales de prueba definidas permanece activo hasta:

- El arranque en caliente del sistema


- La ejecucin de esta instruccin, TestSignReset

Sintaxis
TestSignReset;

Informacin relacionada
Descrito en:
Definicin de una seal de test Instrucciones - TestSignDefine
Lectura de una seal de test Funciones - TestSignRead

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 323


TestSignReset
Instruccin

324 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPErase
Instruccin

TPErase - Borra el texto mostrado en la unidad de


programacin
TPErase (borrar unidad de programacin) se utiliza para borrar la pantalla de la
unidad de programacin.

Ejemplo
TPErase;
TPWrite "Ejecucin iniciada";

Se borra la pantalla de la unidad de programacin antes de escribir en ella el


mensaje Ejecucin iniciada.

Ejecucin de programas
Se elimina todo el texto de la pantalla de la unidad de programacin. La prxima vez
que se escribe un texto, ste aparece en la lnea superior de la pantalla.

Sintaxis
TPErase;

Informacin relacionada
Descrito en:
Escritura en la unidad de programacin Resumen sobre RAPID -
Comunicacin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 325


TPErase
Instruccin

326 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPReadFK
Instruccin

TPReadFK - Lee las teclas de funcin


TPReadFK (leer tecla de funcin de la unidad de programacin) se utiliza para escribir
un texto sobre las teclas de funcin y para determinar qu tecla de funcin se ha
presionado.

Ejemplo
TPReadFK reg1, Ms?, stEmpty, stEmpty, stEmpty, S, No;

Se escribe el texto Ms? en la pantalla de la unidad de programacin y se


activan las teclas de funcin 4 y 5 usando las cadenas de texto S y No
respectivamente (consulte la Figura 35). La ejecucin del programa espera hasta
que se presiona una de las teclas de funcin, la tecla 4 o la 5. En otras palabras,
se asigna a reg1 el valor 4 5 en funcin de cul de las teclas se presione.

Ms?

S No

Figura 35 El operador puede introducir informacin a travs de las teclas de funcin.

Argumentos
TPReadFK Answer Text FK1 FK2 FK3 FK4 FK5 [\MaxTime]
[\DIBreak] [\BreakFlag]
Answer Tipo de dato: num

La variable cuyo valor se devuelve (de 1 a 5) en funcin de qu tecla se presione.


Si se presiona la tecla de funcin 1, se devuelve 1, etc.

Text Tipo de dato: string

El texto informativo que debe escribirse en la pantalla (con un mximo de 80


caracteres).

FKx (texto de la tecla de funcin) Tipo de dato: string

El texto que debe escribirse como ttulo de la tecla de funcin adecuada (con un
mximo de 7 caracteres). FK1 es la tecla que se encuentra en el extremo
izquierdo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 327


TPReadFK
Instruccin

Para especificar que una tecla de funcin no debe tener un ttulo, se utiliza la
constante de cadena de caracteres predefinida stEmpty para cadenas de caracteres
vacas ().

[\MaxTime] Tipo de dato: num

El periodo mximo en segundos que debe esperar el programa para continuar con
la ejecucin. Si no se presiona ninguna tecla de funcin en ese periodo, el
programa sigue ejecutndose en el gestor de errores, a no ser que se utilice el
indicador BreakFlag (que se documenta a continuacin). La constante
ERR_TP_MAXTIME puede usarse para comprobar si ha transcurrido ya el
tiempo mximo establecido.

[\DIBreak] (entrada digital de interrupcin) Tipo de dato: signaldi

La seal digital que puede interrumpir el dilogo con el operador. Si no se


presiona ninguna tecla de funcin cuando la seal cambia a 1 (o si ya tiene el
valor 1), el programa sigue ejecutndose en el gestor de errores, a no ser que se
utilice el indicador BreakFlag (que se documenta a continuacin). La constante
ERR_TP_DIBREAK puede usarse para comprobar si esto ha ocurrido.

[\BreakFlag] Tipo de dato: errnum

Una variable que contiene el cdigo de error si se utilizan maxtime o dibreak. Si


se omite esta variable opcional, se ejecuta el gestor de errores. Las constantes
ERR_TP_MAXTIME y ERR_TP_ DIBREAK pueden usarse para seleccionar el
motivo.

Ejecucin de programas
El texto de informacin se escribe siempre en una nueva lnea. Si la pantalla est llena
de texto, el cuerpo de texto se mueve previamente una lnea hacia arriba. Las cadenas
que tengan una longitud mayor que la anchura de la unidad de programacin (40
caracteres) se dividen en dos lneas.

Los mensajes se escriben sobre las teclas de funcin adecuadas. Las teclas que no
tienen ningn ttulo se desactivan.

La ejecucin del programa espera hasta que se presiona una de las teclas de funcin
activadas.

Descripcin de la peticin concurrente de TPReadFK o TPReadNum en la unidad de


programacin (peticin de unidad de programacin) desde una misma tarea de
programa o desde otras tareas de programa:

Una nueva peticin de unidad de programacin de otra tarea de programa no recibe


el foco de programa (nuevo almacenamiento en la cola)
Una nueva peticin de unidad de programacin de una rutina TRAP de la misma tarea
de programa recibe el foco de programa (almacenamiento anterior en la cola)
Un paro de programa recibe el foco de programa (almacenamiento anterior en la cola)
Una nueva peticin de unidad de programacin con el programa parado recibe el foco
de programa (almacenamiento anterior en la cola)
328 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
TPReadFK
Instruccin

Ejemplo
VAR errnum errvar;
...
TPReadFK reg1, Ir a la posicin de servicio?, stEmpty, stEmpty, stEmpty, S,
No \MaxTime:= 600
\DIBreak:= di5\BreakFlag:= errvar;
IF reg1 = 4 o OR errvar = ERR_TP_DIBREAK THEN
MoveL service, v500, fine, tool1;
Stop;
ENDIF
IF errvar = ERR_TP_MAXTIME EXIT;

El robot se mueve a la posicin de servicio si se presiona la cuarta tecla de


funcin (S) o si se activa la seal 5. Si no se da ninguna respuesta en un
periodo de 10 minutos, la ejecucin finaliza.

Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que responda el operador,
la variable de sistema ERRNO cambia a ERR_TP_MAXTIME y la ejecucin contina
en el gestor de errores.

Si se activa la entrada digital (parmetro \DIBreak) antes de que responda el operador,


la variable de sistema ERRNO cambia a ERR_TP_DIBREAK y la ejecucin contina
en el gestor de errores.

A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.

Datos predefinidos
CONST string stEmpty := ;

La constante predefinida stEmpty debe usarse en el caso de las teclas de funcin que
no tienen ttulos asignados.
El uso de stEmpty en lugar de permite ahorrar aproximadamente 80 bytes con cada
tecla de funcin sin ttulo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 329


TPReadFK
Instruccin

Sintaxis
TPReadFK
[Answer:=] <variable o variable persistente (INOUT) de num>,
[Text:=] <expresin (IN) de string>,
[FK1 :=] <expresin (IN) de string>,
[FK2 :=] <expresin (IN) de string>,
[FK3 :=] <expresin (IN) de string>,
[FK4 :=] <expresin (IN) de string>,
[FK5 :=] <expresin (IN) de string>
[\MaxTime := <expresin (IN) de num>]
[\DIBreak := <variable (VAR) de signaldi>]
[\BreakFlag := <variable o variable persistente (INOUT) de errnum>];

Informacin relacionada
Descrito en:
Escritura y lectura a travs Resumen sobre RAPID - Comunicacin
de la unidad de programacin
Respuesta a travs de la unidad Produccin en curso
de programacin

330 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPReadNum
Instruccin

TPReadNum - Lee un nmero de la unidad de programacin


TPReadNum (leer nmero de unidad de programacin) se utiliza para leer un nmero
de la unidad de programacin.

Ejemplo
TPReadNum reg1, Cuntas unidades es necesario producir?;

Se escribe el texto Cuntas unidades es necesario producir? en la pantalla de


la unidad de programacin. La ejecucin del programa espera hasta que se
introduzca un nmero a travs del teclado numrico de la unidad de
programacin. El nmero se almacena en reg1.

Argumentos
TPReadNum Answer String [\MaxTime] [\DIBreak]
[\BreakFlag]
Answer Tipo de dato: num

La variable en la que se almacena el nmero introducido a travs de la unidad de


programacin.

String Tipo de dato: string

El texto informativo que debe escribirse en la unidad de programacin (con un


mximo de 80 caracteres).

[\MaxTime] Tipo de dato: num

El periodo mximo que debe esperar el programa para continuar con la


ejecucin. Si no se introduce ningn nmero en ese periodo, el programa sigue
ejecutndose en el gestor de errores, a no ser que se utilice el indicador
BreakFlag (que se documenta a continuacin). La constante
ERR_TP_MAXTIME puede usarse para comprobar si ha transcurrido ya el
tiempo mximo establecido.

[\DIBreak] (entrada digital de interrupcin) Tipo de dato: signaldi

La seal digital que puede interrumpir el dilogo con el operador. Si no se


introduce ningn nmero cuando la seal cambia a 1 (o si ya tiene el valor 1), el
programa sigue ejecutndose en el gestor de errores, a no ser que se utilice el
indicador BreakFlag (que se documenta a continuacin). La constante
ERR_TP_DIBREAK puede usarse para comprobar si esto ha ocurrido.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 331


TPReadNum
Instruccin

[\BreakFlag] Tipo de dato: errnum

Una variable que contiene el cdigo de error si se utilizan maxtime o dibreak. Si


se omite esta variable opcional, se ejecuta el gestor de errores. Las constantes
ERR_TP_MAXTIME y ERR_TP_ DIBREAK pueden usarse para seleccionar el
motivo.

Ejecucin de programas
El texto de informacin se escribe siempre en una nueva lnea. Si la pantalla est llena
de texto, el cuerpo de texto se mueve previamente una lnea hacia arriba. Las cadenas
que tengan una longitud mayor que la anchura de la unidad de programacin (40
caracteres) se dividen en dos lneas.

La ejecucin del programa espera hasta que se escribe un nmero mediante el teclado
numrico (seguido de Intro u OK).

Consulte TPReadFK para obtener una descripcin de la peticin concurrente de


TPReadFK o TPReadNum en la unidad de programacin desde la misma tarea de
programa o desde tareas de programa diferentes.

Ejemplo
TPReadNum reg1, Cuntas unidades es necesario producir?;
FOR i FROM 1 TO reg1 DO
produce_part;
ENDFOR

Se escribe el texto Cuntas unidades es necesario producir? en la pantalla de la


unidad de programacin. A continuacin, la rutina produce_part se repite el
nmero de veces especificado a travs de la unidad de programacin.

Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que responda el operador,
la variable de sistema ERRNO cambia a ERR_TP_MAXTIME y la ejecucin contina
en el gestor de errores.

Si se activa la entrada digital (parmetro \DIBreak) antes de que responda el operador,


la variable de sistema ERRNO cambia a ERR_TP_DIBREAK y la ejecucin contina
en el gestor de errores.

A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.

332 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPReadNum
Instruccin

Sintaxis
TPReadNum
[Answer:=] <variable o variable persistente (INOUT) de num>,
[String:=] <expresin (IN) de string>
[\MaxTime := <expresin (IN) de num>]
[\DIBreak := <variable (VAR) de signaldi>]
[\BreakFlag := <variable o variable persistente (INOUT) de errnum>];

Informacin relacionada
Descrito en:
Escritura y lectura a travs Resumen sobre RAPID - Comunicacin
de la unidad de programacin
Introduccin de un nmero Produccin en curso
en la unidad
Ejemplos de cmo usar los argumentos Instrucciones - TPReadFK
MaxTime, DIBreak y BreakFlag

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 333


TPReadNum
Instruccin

334 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPShow
Instruccin

TPShow - Cambia de ventana en la unidad de programacin


TPShow (mostrar en unidad de programacin) se utiliza para seleccionar desde
RAPID una ventana de la unidad de programacin.

Ejemplos
TPShow TP_PROGRAM;

Despus de la ejecucin de esta instruccin, si el sistema se encuentra en el modo


AUTO, estar activa la ventana de produccin; si est en el modo MAN, estar
activa la ventana de programa.

TPShow TP_LATEST;

La ltima ventana usada en la unidad de programacin antes de la ventana actual


de la unidad de programacin ser la que se active tras la ejecucin de esta
instruccin.

Argumentos
TPShow Window
Window Tipo de dato: tpnum

La ventana que se desea mostrar:

TP_PROGRAM = Ventana de produccin durante el modo AUTO.


Ventana de programa durante el modo MAN.

TP_LATEST = ltima ventana utilizada en la ventana de la


unidad de programacin antes de la ventana
actual de la unidad de programacin.

TP_SCREENVIEWER = Ventana Visor de ventanas, si la opcin Visor de


ventanas est activada.

Datos predefinidos
CONST tpnum TP_PROGRAM := 1;
CONST tpnum TP_LATEST := 2;
CONST tpnum TP_SCREENVIEWER := 3;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 335


TPShow
Instruccin

Ejecucin de programas
Se activa la ventana de la unidad de programacin que se seleccione.

Sintaxis
TPShow
[Window:=] <expresin (IN) de tpnum> ;

Informacin relacionada
Descrito en:
Comunicacin a travs de Resumen sobre RAPID - Comunicacin
la unidad de programacin
Nmero de ventana de la unidad Tipos de datos - tpnum
de programacin

336 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TPWrite
Instruccin

TPWrite - Escribe en la unidad de programacin


TPWrite (escribir en unidad de programacin) se utiliza para escribir texto en la
unidad de programacin. Es posible escribir el valor de determinados datos, adems de
texto.

Ejemplos
TPWrite Ejecucin iniciada;

El texto Ejecucin iniciada se escribe en la unidad de programacin.

TPWrite "N de piezas producidas="\Num:=reg1;

Por ejemplo, si la respuesta a la pregunta N de piezas producidas=5, introduzca


5 en lugar de reg1 en la unidad de programacin.

Argumentos
TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient]
String Tipo de dato: string

La cadena de texto que se desea escribir (con un mximo de 80 caracteres).

[\Num] (nmero) Tipo de dato: num

El dato cuyo valor numrico se desea escribir a continuacin de la cadena de


texto.

[\Bool] (booleano) Tipo de dato: bool

El dato cuyo valor lgico se desea escribir a continuacin de la cadena de texto.

[\Pos] (posicin) Tipo de dato: pos

El dato cuya posicin se desea escribir a continuacin de la cadena de texto.

[\Orient] (orientacin) Tipo de dato: orient

El dato cuya orientacin se desea escribir a continuacin de la cadena de texto.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 337


TPWrite
Instruccin

Ejecucin de programas
El texto escrito en la unidad de programacin comienza siempre en una nueva lnea. Si
la pantalla est llena de texto, dicho texto se mueve previamente una lnea hacia arriba.
Las cadenas que tengan una longitud mayor que la anchura de la unidad de
programacin (40 caracteres) se dividen en dos lneas.

Si se usa uno de los argumentos \Num, \Bool, \Pos o \Orient, su valor se convierte en
primer lugar en una cadena de texto, antes de aadirla a la primera cadena. La
conversin del valor a una cadena de texto se realiza de la forma siguiente:

Argumento Valor Cadena de texto


\Num 23 "23"
\Num 1,141367 "1.14137"
\Bool TRUE "TRUE"
\Pos [1817.3,905.17,879.11] "[1817.3,905.17,879.11]"
\Orient [0.96593,0,0.25882,0] "[0.96593,0,0.25882,0]"

El valor se convierte en una cadena con un formato estndar de RAPID. Esto significa
en principio 6 dgitos significativos. Si la parte decimal es menor que 0,000005 o mayor
que 0,999995, el nmero se redondea a un entero.

Limitaciones
Los argumentos \Num, \Bool, \Pos y \Orient son excluyentes entre s y por tanto no
pueden usarse simultneamente en una misma instruccin.

Sintaxis
TPWrite
[String:=] <expresin (IN) de string>
[\Num:= <expresin (IN) de num> ]
| [\Bool:= <expresin (IN) de bool> ]
| [\Pos:= <expresin (IN) de pos> ]
| [\Orient:= <expresin (IN) de orient> ];

Informacin relacionada
Descrito en:
Borrado y lectura a travs de Resumen sobre RAPID - Comunicacin
la unidad de programacin

338 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggC
Instruccin Advanced functions (Funciones avanzadas)

TriggC - Movimiento circular del robot con eventos


TriggC (disparar circular) se utiliza para establecer seales de salida y/o ejecutar
rutinas de interrupcin en posiciones fijas al mismo tiempo que se mueve el robot a lo
largo de una trayectoria circular.

Es posible definir uno o varios eventos (con un mximo de 6) mediante las


instrucciones TriggIO, TriggEquip o TriggInt, y hacer referencia posteriormente a
estas definiciones en la instruccin TriggC.

Ejemplos
VAR triggdata gunon;

TriggIO gunon, 0 \Start \DOp:=gun, on;

MoveL p1, v500, z50, gun1;


TriggC p2, p3, v500, gunon, fine, gun1;

La seal digital de salida gun se activa cuando el TCP del robot atraviesa el punto
central de la trayectoria de esquina del punto p1.

Punto de inicio p1 TriggC p2, p3, v500,gunon, fine, gun1;


Punto final p3

Punto circular p2

La seal de salida gun cambia a on


cuando el TCP del robot se encuentra aqu

Figura 36 Ejemplo de evento de E/S con posicin fija.

Argumentos
TriggC [\Conc] CirPoint ToPoint Speed [ \T
] Trigg_1[ \T2 ] [ \T3 ] [ \T4] [ \T5] [ \T6] Zone [ \Inpos] Tool [
\WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan inmediatamente. Este argumento se


utiliza para acortar el tiempo de ciclo, por ejemplo, cuando se realiza una
comunicacin con equipos externos y no se requiere sincronizacin. Tambin
puede usarse para ajustar la ejecucin de la trayectoria del robot, para evitar la
advertencia 50024 Fallo en punto de paso o el error 40082 Lmite de
deceleracin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 339


TriggC
Advanced functions (Funciones avanzadas) Instruccin

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de movimiento


seguidas es de 5. En secciones de programa que incluyen StorePath-RestoPath,
no se permite el uso de instrucciones con el argumento \Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

CirPoint Tipo de dato: robtarget

El punto de crculo del robot. Consulte la instruccin MoveC para obtener una
descripcin ms detallada del movimiento circular. El punto de crculo se define
como una posicin con nombre o se almacena directamente en la instruccin
(marcada con un asterisco * en la instruccin).

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, los ejes externos y la
reorientacin de la herramienta.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Trigg_1 Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T2] (disparo 2) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T3] (disparo 3) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

340 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggC
Instruccin Advanced functions (Funciones avanzadas)

[ \T4 ] (disparo 4) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones
TriggIO, TriggEquip o TriggInt.

[ \T5 ] (disparo 5) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones
TriggIO, TriggEquip o TriggInt.

[ \T6 ] (disparo 6) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones
TriggIO, TriggEquip o TriggInt.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para ejecutar un
movimiento lineal respecto del objeto de trabajo.

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y a la posicin de destino si se
utiliza este argumento.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 341


TriggC
Advanced functions (Funciones avanzadas) Instruccin

Ejecucin de programas
Consulte la instruccin MoveC para obtener ms informacin acerca del movimiento
circular.

A medida que se cumplen las condiciones de disparo cuando el robot se sita ms y ms


cerca del punto final, se realizan las actividades de disparo definidas. Las condiciones
de disparo se cumplen a una distancia determinada del punto final de la instruccin o a
una distancia determinada del punto de inicio de la instruccin, o bien en un momento
determinado (limitado a un tiempo breve) antes del punto final de la instruccin.

Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.

Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggC p1, p2, v500, trigg1, fine, gun1;
TriggC p3, p4, v500, trigg1, fine, gun1;
...
IDelete intno1;

Se ejecuta la rutina de interrupcin trap1 cuando el punto de trabajo se encuentra en la


posicin a 0,1 seg antes del punto p2 o p4 respectivamente.

Gestin de errores
Si el resultado del argumento ScaleValue programado para la seal de salida analgica
especificada AOp en alguna de las instrucciones TriggSpeed est fuera del lmite de la
seal analgica que corresponde a la velocidad Speed programada en esta instruccin,
la variable de sistema ERRNO cambia a ERR_AO_LIM.

Si valor del argumento DipLag programado en alguna de las instrucciones TriggSpeed


conectadas es demasiado grande respecto del tiempo preestablecido para los eventos en
los parmetros del sistema, la variable de sistema ERRNO cambia a
ERR_DIPLAG_LIM.

Estos errores pueden ser gestionados en el gestor de errores.

342 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggC
Instruccin Advanced functions (Funciones avanzadas)

Limitaciones
Limitaciones generales acorde con la instruccin MoveC.

Si el punto de inicio actual se desva de lo habitual, de forma que la longitud de


posicionamiento total de la instruccin TriggC es ms corta de lo habitual, es posible
que todas las condiciones de disparo o algunas de ellas se satisfagan inmediatamente
en la misma posicin. En estos casos, la secuencia en la que se realizan las actividades
de disparo no estar definida. La lgica de programa del programa del usuario no
puede basarse en una secuencia normal de actividades de disparo para un movimiento
incompleto.

No se debe iniciar la instruccin TriggC desde el principio con la posicin del robot
ms all del punto de crculo. De lo contrario, el robot no toma la trayectoria
programada (posicionamiento alrededor de la trayectoria circular en otra direccin, en
comparacin con la programada).

Sintaxis
TriggC
[ \ Conc , ]
[ CirPoint := ] < expresin (IN) de robtarget > ,
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 343


TriggC
Advanced functions (Funciones avanzadas) Instruccin

Informacin relacionada
Descrito en:
Movimiento lineal con disparadores Instrucciones - TriggL
Movimiento de ejes con disparadores Instrucciones - TriggJ
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento circular Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento

344 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggCheckIO
Instruccin Advanced functions (Funciones avanzadas)

TriggCheckIO - Define una comprobacin de E/S en una


posicin fija
TriggCheckIO se utiliza para definir condiciones de prueba del valor de una seal
digital, un grupo de seales o una seal analgica de entrada y salida en una posicin
fija a lo largo de la trayectoria de movimiento del robot. Si la condicin se cumple no
se realizar ninguna accin especfica pero, si no se cumple, se ejecuta una rutina de
interrupcin despus de que el robot se ha detenido (opcionalmente) en la trayectoria
en el tiempo ms breve posible.

Para conseguir una comprobacin de E/S en un punto fijo, TriggCheckIO compensa el


retardo del sistema de control (el retardo entre el servo y el robot).

Los datos definidos se utilizan para la implementacin o instrucciones TriggL, TriggC


o TriggJ posteriores.

Ejemplos
VAR triggdata checkgrip;
VAR intnum intno1;

CONNECT intno1 WITH trap1;


TriggCheckIO checkgrip, 100, airok, EQ, 1, intno1;

TriggL p1, v500, checkgrip, z50, grip1;

La seal digital de entrada airok se comprueba para determinar si tiene el valor


1 cuando el TCP se encuentra a 100 mm antes del punto p1. Si est activada,
contina la ejecucin del programa. Si no es as, se ejecuta la rutina de
interrupcin trap1.

Punto de inicio TriggL p1, v500, checkgrip, z50, grip1; Punto final p1

100 mm

Se comprueba la seal de entrada airok


cuando el TCP se encuentra aqu

Figura 37 Ejemplo de comprobacin de E/S en una posicin fija.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 345


TriggCheckIO
Advanced functions (Funciones avanzadas) Instruccin

Argumentos
TriggCheckIO TriggData Distance [ \Start ] | [ \Time ]
Signal Relation CheckValue [ \StopMove ] Interrupt
TriggData Tipo de dato: triggdata

Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.

Distance Tipo de dato: num

Define la posicin de la trayectoria en la que debe producirse la comprobacin


de E/S.

Se especifica como la distancia en mm (valor positivo) desde el punto final de la


trayectoria de movimiento (aplicable si no se utiliza el argumento \ Start o
\Time).

Consulte la seccin Ejecucin de programas para obtener ms detalles.

[ \Start ] Tipo de dato: switch

Se utiliza cuando la distancia del argumento Distance comienza en el punto de


inicio del movimiento en lugar del punto final.

[\Time] Tipo de dato: switch

Se utiliza cuando el valor especificado para el argumento Distance es en realidad


un tiempo en segundos (valor positivo) en lugar de una distancia.

La posicin fija de E/S basada en tiempo slo puede usarse con tiempos breves
(< 0,5 seg) antes de que el robot alcance el punto final de la instruccin. Consulte
la seccin Limitaciones para obtener ms detalles.

Signal Tipo de dato: signalxx

El nombre de la seal que se comprobar. Puede ser cualquier tipo de seal


de E/S.

Relation Tipo de dato: opnum

Define cmo comparar el valor actual de la seal con el definido en el argumento


CheckValue. Consulte el tipo de dato opnum para ver la lista de constantes
predefinidas que se debe usar.

CheckValue Tipo de dato: num

El valor con el que debe compararse el valor actual de la seal de entrada o salida
(dentro del rango permitido para la seal actual).

346 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggCheckIO
Instruccin Advanced functions (Funciones avanzadas)

[ \StopMove] Tipo de dato: switch


Especifica que si no se cumple la seal, el robot se detiene en la trayectoria lo
antes posible antes de que la rutina de interrupcin se ejecute.
Interrupt Tipo de dato: intnum
La variable utilizada para identificar la rutina de interrupcin a ejecutar.

Ejecucin de programas
Cuando se ejecuta la instruccin TriggCheckIO, la condicin de disparo se almacena
en una variable especificada para el argumento TriggData.
A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ,
se aplica lo siguiente respecto de las definiciones de TriggCheckIO:
La distancia especificada en el argumento Distance:
Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo
Movimiento no lineal La longitud de arco aproximada a lo largo de la
trayectoria (para conseguir la exactitud adecuada,
la distancia no debe superar la mitad de la longitud
del arco).

Punto final con


trayectoria de esquina

Si la distancia es 0, la seal se
comprueba cuando el TCP se encuentra aqu

Figura 38 Comprobacin de E/S en una posicin fija con una trayectoria de esquina.

La comprobacin de la E/S con una posicin fija se realiza cuando se atraviesa el punto
de inicio (punto final) si la distancia especificada respecto del punto final (punto de
inicio) no se encuentra dentro de la longitud de movimiento de la instruccin actual
(Trigg...).
Cuando el TCP se encuentra en el punto especificado de la trayectoria, se realiza la
comprobacin de E/S siguiente en el sistema:
- Lectura del valor actual de la seal de E/S
- Comparacin del valor ledo con CheckValue, acorde con la relacin
especificada en Relation
- Si la comparacin da como resultado TRUE, no se hace nada ms
- Si la comparacin da como resultado FALSE, se hace lo siguiente:
- Si est presente el parmetro opcional \StopMove, el robot se detiene en la
trayectoria lo antes posible
- Se genera y se ejecuta la rutina TRAP especificada
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 347
TriggCheckIO
Advanced functions (Funciones avanzadas) Instruccin

Ejemplos
VAR triggdata checkgate;
VAR intnum gateclosed;
CONNECT gateclosed WITH waitgate;
TriggCheckIO checkgate, 150, gatedi, EQ, 1 \StopMove, gateclosed;
TriggL p1, v600, checkgate, z50, grip1;
....

TRAP waitgate
! Se registra informacin
...
WaitDI gatedi,1;
StartMove;
ENDTRAP

Se comprueba la puerta de la siguiente operacin con una pieza de trabajo para


determinar si est abierta (se comprueba la seal digital de entrada gatedi para
determinar si tiene el valor 1) cuando el TCP se encuentra 150 mm antes del
punto p1. Si est abierta, el robot contina hacia el punto p1 y contina con la
ejecucin. Si no es as, el robot se detiene en la trayectoria y se ejecuta la rutina
de interrupcin waitgate. Esta rutina de interrupcin registra determinada
informacin y suele esperar a que se satisfagan las condiciones para ejecutar una
instruccin StartMove con el fin de reanudar la trayectoria interrumpida.

Limitaciones
La comprobacin de E/S basada en una distancia (sin el argumento \Time) se ha
diseado para los puntos de paso (trayectorias de esquina). Las comprobaciones de E/
S basadas en distancia, con puntos de paro, presentan una exactitud menor que la
especificada a continuacin.

La comprobacin de E/S basada en tiempo (con el argumento \Time) se ha diseado


para los puntos de paro. Las comprobaciones de E/S basadas en tiempo, con puntos de
paso, presentan una exactitud menor que la especificada a continuacin.

Las comprobaciones de E/S basadas en tiempo slo pueden especificarse a partir del
punto final del movimiento. Este tiempo no puede superar el tiempo de frenado actual
del robot, que tiene un mximo aproximado de 0,5 seg (valores tpicos a una velocidad
de 500 mm/seg: 150 mseg en el caso del IRB2400 y de 250 mseg en el caso del
IRB6400). Si el tiempo especificado es mayor que el tiempo de frenado actual, la
comprobacin de E/S se genera en cualquier caso, pero no hasta que se inicia el frenado
(ms tarde de lo especificado). Sin embargo, la totalidad del tiempo de movimiento
para el movimiento actual puede utilizarse durante los movimientos pequeos y
rpidos.

Los valores absolutos tpicos en cuanto a la exactitud de las pruebas de entradas


digitales es de +/- 5 mseg. Los valores absolutos tpicos en cuanto a la repeticin de las
pruebas de entradas digitales es de +/- 2 mseg.

348 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggCheckIO
Instruccin Advanced functions (Funciones avanzadas)

Sintaxis
TriggCheckIO
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ] ,
[ Signal := ] < variable (VAR) de anytype> ,
[ Relation := ] < expresin (IN) de opnum> ,
[ CheckValue := ] < expresin (IN) de num>
[ \ StopMove] ,
[ Interrupt := ] < variable(VAR) de intnum> ;

Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de eventos de E/S basados Instruccin - TriggIO,TriggEquip
en la posicin y el tiempo
Definicin de interrupciones basadas Instruccin - TriggInt
en la posicin
Ms ejemplos Tipos de datos - triggdata
Definicin de operadores de comparacin Tipos de datos - opnum

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 349


TriggCheckIO
Advanced functions (Funciones avanzadas) Instruccin

350 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggEquip
Instruccin Advanced functions (Funciones avanzadas)

TriggEquip - Define un evento de E/S basado en la posicin y


el tiempo
TriggEquip (disparar equipo) se utiliza para definir condiciones y acciones para la
activacin de una seal digital, un grupo de seales digitales o una seal analgica de
salida en una posicin fija a lo largo de la trayectoria de movimiento del robot, con la
posibilidad de aplicar una compensacin de tiempo para el retardo del equipo externo.

Los datos definidos se utilizan para la implementacin o instrucciones TriggL, TriggC


o TriggJ posteriores.

Ejemplos
VAR triggdata gunon;

TriggEquip gunon, 10, 0.1 \DOp:=gun, 1;

TriggL p1, v500, gunon, z50, gun1;

La herramienta gun1 se abre en el punto p2, cuando el TCP se encuentra 10 mm


antes del punto p1. Para conseguirlo, la seal digital de salida gun cambia al
valor 1 cuando el TCP se encuentra a 0,1 seg antes del punto p2. La pistola est
totalmente abierta cuando el TCP alcanza el punto p2.

Punto de inicio TriggL p1, v500, gunon, z50, gun1; Punto final p1

10 mm

Punto p2 para apertura de la pistola

Figura 39 Ejemplo de evento de E/S basado en la posicin y el tiempo

Argumentos
TriggEquip TriggData Distance [ \Start ] EquipLag [ \DOp ] |
[ \GOp ] | [\AOp ] | [\ProcID ] SetValue [ \Inhib ]
TriggData Tipo de dato: triggdata

Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 351


TriggEquip
Advanced functions (Funciones avanzadas) Instruccin

Distance Tipo de dato: num

Define la posicin de la trayectoria en la que debe producirse el evento de equipo


de E/S.

Se especifica como la distancia en mm (valor positivo) desde el punto final de la


trayectoria de movimiento (aplicable si no se utiliza el argumento \Start).

Consulte la seccin Ejecucin de programas para obtener ms detalles.

[ \Start ] Tipo de dato: switch

Se utiliza cuando la distancia del argumento Distance comienza en el punto de


inicio del movimiento en lugar del punto final.

EquipLag (retardo de equipo) Tipo de dato: num

Especifica el retardo del equipo externo, en segundos.

Para la compensacin del retardo de los equipos externos, utilice un valor de


argumento positivo. Un valor positivo en el argumento significa que la seal de
E/S es activada por el sistema de robot en el momento especificado, antes de que
el TCP fsico alcance la distancia especificada respecto del punto de inicio o final
del movimiento.

Un valor negativo en el argumento significa que la seal de E/S es activada por


el sistema de robot en el momento especificado, despus de que el TCP fsico
haya sobrepasado la distancia especificada respecto del punto de inicio o final del
movimiento.

Punto de inicio Punto final

Distancia Distancia
\Start

+ - + -

EquipLag

Figura 40 Uso del argumento EquipLag.

[ \DOp ] (salida digital) Tipo de dato: signaldo

El nombre de la seal cuando es necesario cambiar una seal digital de salida.

[ \GOp ] (grupo de salidas) Tipo de dato: signalgo

El nombre de la seal, cuando es necesario cambiar un grupo de seales digitales


de salida.

352 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggEquip
Instruccin Advanced functions (Funciones avanzadas)

[ \AOp ] (salida analgica) Tipo de dato: signalao

El nombre de la seal cuando es necesario cambiar una seal analgica de salida.

[ \ProcID] (identidad de proceso) Tipo de dato: num

No implementado para uso del cliente.

(La identidad del proceso IPM que debe recibir el evento. El selector se
especifica en el argumento SetValue.)

SetValue Tipo de dato: num

El valor deseado para la seal de salida (dentro del rango permitido para la seal
actual).

[ \Inhib ] (inhibir) Tipo de dato: bool

El nombre de un indicador de variable persistente para la inhibicin del valor de


la seal en tiempo de ejecucin.

Si se utiliza este argumento opcional y el valor actual del indicador especificado


es TRUE en la posicin y el tiempo para la activacin de la seal, la seal
especificada (DOp, GOp o AOp) cambia a 0 en lugar del valor especificado.

Ejecucin de programas
Cuando se ejecuta la instruccin TriggEquip, la condicin de disparo se almacena en
una variable especificada para el argumento TriggData.

A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ, se


aplica lo siguiente respecto de las definiciones de TriggEquip:

La distancia especificada en el argumento Distance:


Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo

Movimiento no lineal La longitud de arco aproximada a lo largo de la


trayectoria (para conseguir la exactitud adecuada,
la distancia no debe superar la mitad de la longitud
del arco).

Punto final con


trayectoria de esquina

Si la distancia es 0, la seal de salida se


activa cuando el TCP se encuentra aqu

Figura 41 E/S en una posicin y un tiempo fijos con una trayectoria de esquina.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 353


TriggEquip
Advanced functions (Funciones avanzadas) Instruccin

El evento dependiente de la posicin y del tiempo se genera cuando se atraviesa el


punto de inicio (punto final) si la distancia especificada respecto del punto final (punto
de inicio) no se encuentra dentro de la longitud de movimiento de la instruccin actual
(Trigg...). Cuando se usa el argumento EquipLag con un tiempo (retardo) negativo, la
seal de E/S puede activarse despus del punto final.

Ejemplos
VAR triggdata glueflow;

TriggEquip glueflow, 1 \Start, 0.05 \AOp:=glue, 5.3;

MoveJ p1, v1000, z50, tool1;


TriggL p2, v500, glueflow, z50, tool1;

La seal analgica de salida glue cambia al valor 5,3 cuando el TCP atraviesa un
punto situado a 1 mm despus del punto de inicio p1, con una compensacin de
retardo del equipo de 0,05 seg.

...
TriggL p3, v500, glueflow, z50, tool1;

La seal analgica de salida glue cambia de nuevo al valor 5,3 cuando el TCP
atraviesa un punto situado a 1 mm despus del punto de inicio p2.

Gestin de errores
Si el argumento SetValue programado para la seal analgica de salida AOp est fuera
de lmites, la variable de sistema ERRNO cambia a ERR_AO_LIM. El error puede ser
gestionado en el gestor de errores.

Limitaciones
Los eventos de E/S basados en una distancia (sin el argumento \Time) se han diseado
para los puntos de paso (trayectorias de esquina). Los eventos de E/S basados en
distancia, con puntos de paro, presentan una exactitud menor que la especificada a
continuacin.

En cuanto a la exactitud de los eventos de E/S con distancia y con puntos de paso, se
aplica lo siguiente a la hora de activar una salida digital a una distancia especfica del
punto de inicio o del punto final con las instrucciones TriggL o TriggC:

- La exactitud especificada a continuacin es vlida para un parmetro EquipLag


positivo < 60 ms, equivalente al retardo del servo del robot (sin cambiar el
parmetro de sistema Tiempo predeter. evento).

354 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggEquip
Instruccin Advanced functions (Funciones avanzadas)

- La exactitud especificada a continuacin es vlida para un parmetro EquipLag


positivo < valor configurado en Tiempo predeter. evento (parmetro de
sistema).
- La exactitud especificada a continuacin no es vlida para un parmetro
EquipLag positivo > valor configurado en Tiempo predeter. evento (parmetro
de sistema). En este caso, se utiliza un mtodo aproximado que no tiene en
cuenta las limitaciones dinmicas del robot. Es necesario usar SingArea\Wrist
para conseguir una exactitud aceptable.
- La exactitud especificada a continuacin es vlida para un valor negativo de
EquipLag.

Los eventos de E/S basados en tiempo (con el argumento \Time) se han diseado para
los puntos de paro. Los eventos de E/S basados en tiempo, con puntos de paso,
presentan una exactitud menor que la especificada a continuacin. Los eventos de E/S
basados en tiempo slo pueden especificarse a partir del punto final del movimiento.
Este tiempo no puede superar el tiempo de frenado actual del robot, que tiene un
mximo aproximado de 0,5 seg (valores tpicos a una velocidad de 500 mm/seg: 150
mseg en el caso del IRB2400 y de 250 mseg en el caso del IRB6400). Si el tiempo
especificado es mayor que el tiempo de frenado actual, el evento se genera en cualquier
caso, pero no hasta que se inicia el frenado (ms tarde de lo especificado). Sin
embargo, la totalidad del tiempo de movimiento para el movimiento actual puede
utilizarse durante los movimientos pequeos y rpidos.

Los valores absolutos tpicos en cuanto a la exactitud al activar salidas digitales es de


+/- 5 mseg.

Los valores absolutos tpicos en cuanto a la repeticin al activar salidas digitales es de


+/- 2 mseg.

Sintaxis
TriggEquip
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] ,
[ EquipLag := ] < expresin (IN) de num>
[ \ DOp := < variable (VAR) de signaldo> ]
| [ \ GOp := < variable (VAR) de signalgo> ]
| [ \ AOp := < variable (VAR) de signalao> ]
| [ \ ProcID := < expresin (IN) de num> ] ,
[ SetValue := ] < expresin (IN) de num>
[ \ Inhib := < variable persistente (PERS) de bool> ] ,

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 355


TriggEquip
Advanced functions (Funciones avanzadas) Instruccin

Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de otros tipos de disparos Instrucciones - TriggIO, TriggInt
Ms ejemplos Tipos de datos - triggdata
Establecimiento de E/S Instrucciones - SetDO, SetGO, SetAO
Configuracin del tiempo preestablecido Gua del usuario - Parmetros del
para eventos sistema - Manipulador

356 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggInt
Instruccin Advanced functions (Funciones avanzadas)

TriggInt - Define una interrupcin dependiente de una


posicin
TriggInt se utiliza para definir las condiciones y acciones de ejecucin de una rutina de
interrupcin en una posicin que se encuentra en la trayectoria de movimiento del
robot.

Los datos definidos se utilizan para la implementacin o instrucciones TriggL, TriggC


o TriggJ posteriores.

Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 5, intno1;
...
TriggL p1, v500, trigg1, z50, gun1;
TriggL p2, v500, trigg1, z50, gun1;
...
IDelete intno1;

Se ejecuta la rutina de interrupcin trap1 cuando el TCP se encuentra en una posicin


a 5 mm antes del punto p1 o p2 respectivamente.

Punto de inicio TriggL p1, v500, trigg1, z50, gun1; Punto final p1 o p2

5 mm

Se genera la interrupcin
cuando el TCP se encuentra aqu
Figura 42 Ejemplo de interrupcin relacionada con una posicin.

Argumentos
TriggInt TriggData Distance [ \Start ] | [ \Time ]
Interrupt
TriggData Tipo de dato: triggdata

Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 357


TriggInt
Advanced functions (Funciones avanzadas) Instruccin

Distance Tipo de dato: num

Define la posicin en la que debe generarse la interrupcin dentro de la


trayectoria.

Se especifica como la distancia en mm (valor positivo) desde el punto final de la


trayectoria de movimiento (aplicable si no se utiliza el argumento \ Start o
\Time).

Consulte la seccin Ejecucin de programas para obtener ms detalles.

[ \Start ] Tipo de dato: switch

Se utiliza cuando la distancia del argumento Distance comienza en el punto de


inicio del movimiento en lugar del punto final.

[\Time] Tipo de dato: switch

Se utiliza cuando el valor especificado para el argumento Distance es en realidad


un tiempo en segundos (valor positivo) en lugar de una distancia.

Las interrupciones relacionadas con una posicin y basadas en tiempo slo puede
usarse con tiempos breves (< 0,5 seg) antes de que el robot alcance el punto final
de la instruccin. Consulte la seccin Limitaciones para obtener ms detalles.

Interrupt Tipo de dato: intnum

La variable utilizada para identificar una interrupcin.

Ejecucin de programas
Cuando se ejecuta la instruccin TriggInt, la informacin se almacena en una variable
especificada para el argumento TriggData y se activa la interrupcin especificada en la
variable del argumento Interrupt.

A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ, se


aplica lo siguiente respecto de las definiciones de TriggInt:

358 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggInt
Instruccin Advanced functions (Funciones avanzadas)

La distancia especificada en el argumento Distance:


Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo
Movimiento no lineal La longitud de arco aproximada a lo largo de la
trayectoria (para conseguir la exactitud adecuada,
la distancia no debe superar la mitad de la longitud
del arco).

Punto final con


trayectoria de esquina

Si la distancia es 0, la interrupcin se
genera cuando el TCP se encuentra aqu

Figura 43 Interrupcin relacionada con una posicin de una trayectoria de esquina.

La interrupcin dependiente de la posicin se genera cuando se atraviesa el punto de


inicio (punto final) si la distancia especificada respecto del punto final (punto de inicio)
no se encuentra dentro de la longitud de movimiento de la instruccin actual (Trigg...).

Ejemplos
En este ejemplo se describe la programacin de las instrucciones que interactan para
generar interrupciones dependientes de una posicin:

VAR intnum intno2;


VAR triggdata trigg2;

- Declaracin de las variables intno2 y trigg2 (no se inicia).

CONNECT intno2 WITH trap2;

- Asignacin de nmeros de interrupcin almacenados en la variable intno2.


- El nmero de interrupcin est asociado a la rutina de interrupcin trap2.

TriggInt trigg2, 0, intno2;

- El nmero de interrupcin de la variable intno2 se marca como utilizado.


- Se activa la interrupcin.
- Las condiciones de disparo y el nmero de interrupcin definidos se almacenan
en la variable trigg2.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 359


TriggInt
Advanced functions (Funciones avanzadas) Instruccin

TriggL p1, v500, trigg2, z50, gun1;

- El robot se mueve hacia el punto p1.


- Cuando el TCP alcanza el punto p1, se genera una interrupcin y se ejecuta la
rutina de interrupcin trap2.

TriggL p2, v500, trigg2, z50, gun1;

- El robot se mueve hacia el punto p2.


- Cuando el TCP alcanza el punto p2, se genera una interrupcin y se ejecuta la
rutina de interrupcin trap2 de nuevo.

IDelete intno2;

- Se anula la asignacin del nmero de interrupcin de la variable intno2.

Limitaciones
Los eventos de interrupcin basados en una distancia (sin el argumento \Time) se han
diseado para los puntos de paso (trayectorias de esquina). Los eventos de interrupcin
basados en distancia, con puntos de paro, presentan una exactitud menor que la
especificada a continuacin.

Los eventos de interrupcin basados en tiempo (con el argumento \Time) se han


diseado para los puntos de paro. Los eventos de interrupcin basados en tiempo, con
puntos de paso, presentan una exactitud menor que la especificada a continuacin.
Los eventos de E/S basados en tiempo slo pueden especificarse a partir del punto final
del movimiento. Este tiempo no puede superar el tiempo de frenado actual del robot,
que tiene un mximo aproximado de 0,5 seg (valores tpicos a una velocidad de 500
mm/seg: 150 mseg en el caso del IRB2400 y de 250 mseg en el caso del IRB6400). Si
el tiempo especificado es mayor que el tiempo de frenado actual, el evento se genera
en cualquier caso, pero no hasta que se inicia el frenado (ms tarde de lo especificado).
Sin embargo, la totalidad del tiempo de movimiento para el movimiento actual puede
utilizarse durante los movimientos pequeos y rpidos.

Los valores absolutos tpicos en cuanto a la exactitud de la generacin de


interrupciones son de +/- 5 mseg.
Los valores tpicos en cuanto a la repeticin la generacin de interrupciones son de +/
- 2 mseg.

Normalmente, existe un retardo de 5 a 120 mseg entre la generacin de interrupciones


y la respuesta, en funcin del tipo de movimiento que se realiza en el momento de la
interrupcin.
(Consulte Caractersticas bsicas de RAPID - Interrupciones).

Para obtener la mayor exactitud al activar una salida en una posicin fija a lo largo de
la trayectoria del robot, utilice preferentemente las instrucciones TriggIO o TriggEquip
en lugar de las instrucciones TriggInt con SetDO/SetGO/SetAO en rutinas de
interrupcin.

360 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggInt
Instruccin Advanced functions (Funciones avanzadas)

Sintaxis
TriggInt
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ] ,
[ Interrupt := ] < variable (VAR) de intnum > ;

Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de E/S relacionadas con Instrucciones - TriggIO, TriggEquip
una posicin
Ms ejemplos Tipos de datos - triggdata
Interrupciones Caractersticas bsicas -
Interrupciones

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 361


TriggInt
Advanced functions (Funciones avanzadas) Instruccin

362 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggIO
Instruccin Advanced functions (Funciones avanzadas)

TriggIO - Define un evento de E/S basado en la posicin


TriggIO se utiliza para definir condiciones y acciones para el establecimiento de una
seal digital, un grupo de seales digitales o una seal analgica de salida en una
posicin fija a lo largo de la trayectoria de movimiento del robot.

Para obtener un evento de E/S en una posicin determinada, TriggIO compensa el


retardo del sistema de control (el retardo entre el robot y el servo), pero no los retardos
de los equipos externos. Para la compensacin de los dos retardos, utilice TriggEquip.

Los datos definidos se utilizan para la implementacin o instrucciones TriggL, TriggC


o TriggJ posteriores.

Ejemplos
VAR triggdata gunon;

TriggIO gunon, 10 \DOp:=gun, 1;

TriggL p1, v500, gunon, z50, gun1;

La seal digital de salida gun cambia al valor 1 cuando el TCP se encuentra a 10


mm antes del punto p1.

Punto de inicio TriggL p1, v500, gunon, z50, gun1; Punto final p1

10 mm

Se activa la seal de salida gun


cuando el TCP se encuentra aqu

Figura 44 Ejemplo de evento de E/S con posicin fija.

Argumentos
TriggIO TriggData Distance [ \Start ] | [ \Time ]
[ \DOp ] | [ \GOp ] | [\AOp ] | [\ProcID ] SetValue
[ \DODelay ]
TriggData Tipo de dato: triggdata

Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata se utilizan a continuacin en las instrucciones TriggL, TriggC o TriggJ
posteriores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 363


TriggIO
Advanced functions (Funciones avanzadas) Instruccin

Distance Tipo de dato: num

Define la posicin de la trayectoria en la que debe producirse el evento de E/S.

Se especifica como la distancia en mm (valor positivo) desde el punto final de la


trayectoria de movimiento (aplicable si no se utiliza el argumento \ Start o
\Time).

Consulte la seccin Ejecucin de programas para obtener ms detalles.

[ \Start ] Tipo de dato: switch

Se utiliza cuando la distancia del argumento Distance comienza en el punto de


inicio del movimiento en lugar del punto final.

[\Time] Tipo de dato: switch

Se utiliza cuando el valor especificado para el argumento Distance es en realidad


un tiempo en segundos (valor positivo) en lugar de una distancia.

La posicin fija de E/S basada en tiempo slo puede usarse con tiempos breves
(< 0,5 seg) antes de que el robot alcance el punto final de la instruccin. Consulte
la seccin Limitaciones para obtener ms detalles.

[ \DOp ] (salida digital) Tipo de dato: signaldo

El nombre de la seal cuando es necesario cambiar una seal digital de salida.

[ \GOp ] (grupo de salidas) Tipo de dato: signalgo

El nombre de la seal, cuando es necesario cambiar un grupo de seales digitales


de salida.

[ \AOp ] (salida analgica) Tipo de dato: signalao

El nombre de la seal cuando es necesario cambiar una seal analgica de salida.

[ \ProcID] (identidad de proceso) Tipo de dato: num

No implementado para uso del cliente.

(La identidad del proceso IPM que debe recibir el evento. El selector se
especifica en el argumento SetValue.)

SetValue Tipo de dato: num

El valor deseado para la seal de salida (dentro del rango permitido para la seal
actual).

[ \DODelay] (retardo de salida digital) Tipo de dato: num

El retardo de tiempo en segundos (valor positivo) de una salida digital, un grupo


de seales digitales o una salida analgica.

364 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggIO
Instruccin Advanced functions (Funciones avanzadas)

Slo se usa para la definicin de retardos en seales digitales una vez que el robot
ha alcanzado la posicin especificada. Si se omite este argumento, no se utilizar
ningn retardo.

El retardo no est sincronizado con el movimiento.

Ejecucin de programas
Cuando se ejecuta la instruccin TriggIO, la condicin de disparo se almacena en una
variable especificada para el argumento TriggData.

A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ, se


aplica lo siguiente respecto de las definiciones de TriggIO:

La distancia especificada en el argumento Distance:


Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo

Movimiento no lineal La longitud de arco aproximada a lo largo de la


trayectoria (para conseguir la exactitud adecuada,
la distancia no debe superar la mitad de la longitud
de arco).

Punto final con


trayectoria de esquina

Si la distancia es 0, la seal de salida se


activa cuando el punto de trabajo se encuentra aqu

Figura 45 E/S en una posicin fija con una trayectoria de esquina.

La E/S con una posicin fija se genera cuando se atraviesa el punto de inicio (punto
final) si la distancia especificada respecto del punto final (punto de inicio) no se
encuentra dentro de la longitud de movimiento de la instruccin actual (Trigg...).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 365


TriggIO
Advanced functions (Funciones avanzadas) Instruccin

Ejemplos
VAR triggdata glueflow;

TriggIO glueflow, 1 \Start \AOp:=glue, 5.3;

MoveJ p1, v1000, z50, tool1;


TriggL p2, v500, glueflow, z50, tool1;

La seal analgica de salida glue cambia al valor 5,3 cuando el punto de trabajo
atraviesa un punto situado a 1 mm despus del punto de inicio p1.

...
TriggL p3, v500, glueflow, z50, tool1;

La seal analgica de salida glue cambia de nuevo al valor 5,3 cuando el punto
de trabajo atraviesa un punto situado a 1 mm despus del punto de inicio p2.

Gestin de errores
Si el argumento SetValue programado para la seal analgica de salida AOp est fuera
de lmites, la variable de sistema ERRNO cambia a ERR_AO_LIM. El error puede ser
gestionado en el gestor de errores.

Limitaciones
Los eventos de E/S basados en una distancia (sin el argumento \Time) se han diseado
para los puntos de paso (trayectorias de esquina). Los eventos de E/S basados en
distancia, con puntos de paro, presentan una exactitud menor que la especificada a
continuacin.

Los eventos de E/S basados en tiempo (con el argumento \Time) se han diseado para
los puntos de paro. Los eventos de E/S basados en tiempo, con puntos de paso,
presentan una exactitud menor que la especificada a continuacin. Los eventos de E/S
basados en tiempo slo pueden especificarse a partir del punto final del movimiento.
Este tiempo no puede superar el tiempo de frenado actual del robot, que tiene un
mximo aproximado de 0,5 seg (valores tpicos a una velocidad de 500 mm/seg: 150
mseg en el caso del IRB2400 y de 250 mseg en el caso del IRB6400). Si el tiempo
especificado es mayor que el tiempo de frenado actual, el evento se genera en cualquier
caso, pero no hasta que se inicia el frenado (ms tarde de lo especificado). Sin embargo,
la totalidad del tiempo de movimiento para el movimiento actual puede utilizarse
durante los movimientos pequeos y rpidos.

Los valores absolutos tpicos en cuanto a la exactitud al activar salidas digitales es de


+/- 5 mseg.
Los valores absolutos tpicos en cuanto a la repeticin al activar salidas digitales es de
+/- 2 mseg.

366 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggIO
Instruccin Advanced functions (Funciones avanzadas)

Sintaxis
TriggIO
[ TriggData := ] < variable (VAR) de triggdata> ,
[ Distance := ] < expresin (IN) de num>
[ \ Start ] | [ \ Time ]
[ \ DOp := < variable (VAR) de signaldo> ]
| [ \ GOp := < variable (VAR) de signalgo> ]
| [ \ AOp := < variable (VAR) de signalao> ]
| [ \ ProcID := < expresin (IN) de num> ] ,
[ SetValue := ] < expresin (IN) de num>
[ \ DODelay := < expresin (IN) de num> ] ;

Informacin relacionada
Descrito en:
Utilizacin de disparos Instrucciones - TriggL, TriggC, TriggJ
Definicin de eventos de E/S basados Instruccin - TriggEquip
en la posicin y el tiempo
Definicin de interrupciones basadas Instruccin - TriggInt
en la posicin
Ms ejemplos Tipos de datos - triggdata
Establecimiento de E/S Instrucciones - SetDO, SetGO, SetAO

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 367


TriggIO
Advanced functions (Funciones avanzadas) Instruccin

368 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggJ
Instruccin Advanced functions (Funciones avanzadas)

TriggJ - Movimientos de ejes del robot a partir de eventos


TriggJ (TriggJoint) se utiliza para establecer seales de salida y/o ejecutar rutinas de
interrupcin en posiciones fijas, al mismo tiempo que el robot se mueve rpidamente
de un punto a otro cuando no es imprescindible que ese movimiento siga una lnea
recta.

Es posible definir uno o varios eventos (con un mximo de 6) mediante las


instrucciones TriggIO, TriggEquip, o TriggInt, y hacer referencia posteriormente a
estas definiciones en la instruccin TriggJ.

Ejemplos
VAR triggdata gunon;

TriggIO gunon, 0 \Start \DOp:=gun, on;

MoveL p1, v500, z50, gun1;


TriggJ p2, v500, gunon, fine, gun1;

La seal digital de salida gun se activa cuando el TCP del robot atraviesa el punto
central de la trayectoria de esquina del punto p1.

Punto de inicio p1 TriggJ p2, v500,gunon, fine, gun1;


Punto final p2

La seal de salida gun cambia a on


cuando el TCP se encuentra aqu

Figura 46 Ejemplo de evento de E/S con posicin fija.

Argumentos
TriggJ [\Conc] ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ]
[ \T4 ] [ \T5 ] [ \T6 ] Zone [ \Inpos ] Tool [ \WObj ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones lgicas posteriores se ejecutan mientras el robot est en


movimiento. Este argumento se utiliza para acortar el tiempo de ciclo, por
ejemplo, cuando se realiza una comunicacin con equipos externos, si no se
requiere sincronizacin. Tambin puede usarse para ajustar la ejecucin de la
trayectoria del robot, para evitar la advertencia 50024 Fallo en punto de paso o
el error 40082 Limite de deceleracin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 369


TriggJ
Advanced functions (Funciones avanzadas) Instruccin

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de movimiento


seguidas est limitado a 5. En secciones de programa que incluyen StorePath-
RestoPath, no se permite el uso de instrucciones con el argumento \Conc.

Si se omite este argumento, la instruccin posterior slo se ejecuta una vez que
el robot ha alcanzado el punto de paro especificado, o 100 mseg antes de la zona
especificada.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, los ejes externos y la
reorientacin de la herramienta.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Trigg_1 Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T2] (disparo 2) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T3] (disparo 3) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T4 ] (disparo 4) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T5 ] (disparo 5) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.
370 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
TriggJ
Instruccin Advanced functions (Funciones avanzadas)

[ \T6 ] (disparo 6) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones
TriggIO, TriggEquip o TriggInt.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para ejecutar un
movimiento lineal respecto del objeto de trabajo.

Ejecucin de programas
Consulte la instruccin MoveJ para obtener ms informacin acerca del movimiento
de ejes.

A medida que se cumplen las condiciones de disparo cuando el robot se sita ms y


ms cerca del punto final, se realizan las actividades de disparo definidas. Las
condiciones de disparo se cumplen a una distancia determinada del punto final de la
instruccin o a una distancia determinada del punto de inicio de la instruccin, o bien
en un momento determinado (limitado a un tiempo breve) antes del punto final de la
instruccin.

Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 371


TriggJ
Advanced functions (Funciones avanzadas) Instruccin

Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggJ p1, v500, trigg1, fine, gun1;
TriggJ p2, v500, trigg1, fine, gun1;
...
IDelete intno1;

Se ejecuta la rutina de interrupcin trap1 cuando el punto de trabajo se encuentra en la


posicin a 0,1 seg antes del punto p1 o p2 respectivamente.

Gestin de errores
Si el resultado del argumento ScaleValue programado para la seal analgica de salida
especificada AOp en alguna de las instrucciones TriggSpeed est fuera del lmite de la
seal analgica que corresponde a la velocidad Speed programada en esta instruccin,
la variable de sistema ERRNO cambia a ERR_AO_LIM.

Si el argumento DipLag programado en alguna de las instrucciones TriggSpeed


conectadas es demasiado grande respecto del tiempo preestablecido para los eventos en
los parmetros del sistema, la variable de sistema ERRNO cambia a
ERR_DIPLAG_LIM.

Estos errores pueden ser gestionados en el gestor de errores.

Limitaciones
Si el punto de inicio actual se desva del habitual, de forma que la longitud de
posicionamiento total de la instruccin TriggJ es ms corta de lo habitual (es decir, al
principio de TriggJ con la posicin del robot en el punto final), puede ocurrir que se
cumplan varias de las condiciones de disparo, o incluso todas ellas, inmediatamente y
en una misma posicin. En estos casos, la secuencia en la que se realizan las actividades
de disparo no estar definida. La lgica de programa del programa del usuario no puede
basarse en una secuencia normal de actividades de disparo para un movimiento
incompleto.

372 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggJ
Instruccin Advanced functions (Funciones avanzadas)

Sintaxis
TriggJ
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ] ;

Informacin relacionada
Descrito en:
Movimiento lineal con disparadores Instrucciones - TriggL
Movimiento circular con disparadores Instrucciones - TriggC
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Movimiento de ejes Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 373


TriggJ
Advanced functions (Funciones avanzadas) Instruccin

374 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggL
Instruccin Advanced functions (Funciones avanzadas)

TriggL - Movimiento lineal del robot con eventos


TriggL (disparar lineal) se utiliza para establecer seales de salida y/o ejecutar rutinas
de interrupcin en posiciones fijas al tiempo que se mueve el robot siguiendo un
movimiento lineal.

Es posible definir uno o varios eventos (con un mximo de 6) mediante las


instrucciones TriggIO, TriggEquip o TriggInt, y hacer referencia posteriormente a
estas definiciones en la instruccin TriggL.

Ejemplos
VAR triggdata gunon;

TriggIO gunon, 0 \Start \DOp:=gun, on;

MoveL p1, v500, z50, gun1;


TriggL p2, v500, gunon, fine, gun1;

La seal digital de salida gun se activa cuando el TCP del robot atraviesa el punto
central de la trayectoria de esquina del punto p1.

Punto de inicio p1 TriggL p2, v500, gunon, fine, gun1; Punto final p2

La seal de salida gun cambia a on


cuando el TCP se encuentra aqu

Figura 47 Ejemplo de evento de E/S con posicin fija.

Argumentos
TriggL [\Conc] ToPoint Speed [ \T ] Trigg_1 [ \T2 ] [ \T3 ]
[ \T4 ] [ \T5 ] [ \T6 ] Zone [ \Inpos ] Tool [ \WObj ] [ \Corr ]
[ \Conc ] (concurrente) Tipo de dato: switch

Las instrucciones posteriores se ejecutan inmediatamente. Este argumento se


utiliza para acortar el tiempo de ciclo, por ejemplo, cuando se realiza una
comunicacin con equipos externos, si no se requiere sincronizacin. Tambin
puede usarse para ajustar la ejecucin de la trayectoria del robot, para evitar la
advertencia 50024 Fallo en punto de paso o el error 40082 Limite de
deceleracin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 375


TriggL
Advanced functions (Funciones avanzadas) Instruccin

Cuando se utiliza el argumento \Conc, el nmero de instrucciones de movimiento


seguidas est limitado a 5. En secciones de programa que incluyen StorePath-
RestoPath, no se permite el uso de instrucciones con el argumento \Conc.

Si se omite este argumento y ToPoint no es un punto de paro, la instruccin


siguiente se ejecuta algn tiempo antes de que el robot alcance la zona
programada.

ToPoint Tipo de dato: robtarget

El punto de destino de los ejes del robot y de los ejes externos. Se define como
una posicin con nombre o se almacena directamente en la instruccin (marcada
con un asterisco * en la instruccin).

Speed Tipo de dato: speeddata

Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad
definen la velocidad del punto central de la herramienta, los ejes externos y la
reorientacin de la herramienta.

[ \T ] (tiempo) Tipo de dato: num

Este argumento se utiliza para especificar el tiempo total en segundos que dura el
movimiento del robot. A continuacin, se sustituye por los datos de velocidad
correspondientes.

Trigg_1 Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T2] (disparo 2) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T3] (disparo 3) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T4 ] (disparo 4) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.

[ \T5 ] (disparo 5) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones TriggIO,
TriggEquip o TriggInt.
376 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
TriggL
Instruccin Advanced functions (Funciones avanzadas)

[ \T6 ] (disparo 6) Tipo de dato: triggdata

La variable que hace referencia a las condiciones de disparo y la actividad de


disparo, definida anteriormente en el programa usando las instrucciones
TriggIO, TriggEquip o TriggInt.

Zone Tipo de dato: zonedata

Los datos de zona del movimiento. Los datos de zona describen el tamao de la
trayectoria de esquina generada.

[\Inpos] (en posicin) Tipo de dato: stoppointdata

Este argumento se utiliza para especificar los criterios de convergencia para la


posicin del TCP del robot en el punto de paro. Los datos de puntos de paro
sustituyen a la zona especificada en el parmetro Zone.

Tool Tipo de dato: tooldata

La herramienta en uso durante el movimiento del robot. El punto central de la


herramienta es el punto que se mueve hacia la posicin de destino especificada.

[ \WObj] (objeto de trabajo) Tipo de dato: wobjdata

El objeto de trabajo (sistema de coordenadas) con el que est relacionada la


posicin de robot indicada en la instruccin.

Es posible omitir este argumento. Si se omite, la posicin depende del sistema de


coordenadas mundo. Si por otro lado se usa un TCP estacionario o ejes externos
coordinados, es necesario especificar este argumento para ejecutar un
movimiento lineal respecto del objeto de trabajo.

[ \Corr] (correccin) Tipo de dato: switch

Los datos de correccin escritos en una entrada de correccin mediante una


instruccin CorrWrite se aaden a la trayectoria y a la posicin de destino si se
utiliza este argumento.

Ejecucin de programas
Consulte la instruccin MoveL para obtener ms informacin acerca del movimiento
lineal.

A medida que se cumplen las condiciones de disparo cuando el robot se sita ms y


ms cerca del punto final, se realizan las actividades de disparo definidas. Las
condiciones de disparo se cumplen a una distancia determinada del punto final de la
instruccin o a una distancia determinada del punto de inicio de la instruccin, o bien
en un momento determinado (limitado a un tiempo breve) antes del punto final de la
instruccin.

Durante la ejecucin paso a paso hacia delante, las actividades de E/S se realizan pero
las rutinas de interrupcin no se ejecutan. Durante la ejecucin paso a paso hacia atrs,
no se realiza ninguna actividad de disparo.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 377
TriggL
Advanced functions (Funciones avanzadas) Instruccin

Ejemplos
VAR intnum intno1;
VAR triggdata trigg1;
...
CONNECT intno1 WITH trap1;
TriggInt trigg1, 0.1 \Time, intno1;
...
TriggL p1, v500, trigg1, fine, gun1;
TriggL p2, v500, trigg1, fine, gun1;
...
IDelete intno1;

Se ejecuta la rutina de interrupcin trap1 cuando el punto de trabajo se encuentra en la


posicin a 0,1 seg antes del punto p1 o p2 respectivamente.

Gestin de errores
Si el resultado del argumento ScaleValue programado para la seal analgica de salida
especificada AOp en alguna de las instrucciones TriggSpeed est fuera del lmite de la
seal analgica que corresponde a la velocidad Speed programada en esta instruccin,
la variable de sistema ERRNO cambia a ERR_AO_LIM.

Si el argumento DipLag programado en alguna de las instrucciones TriggSpeed


conectadas es demasiado grande respecto del tiempo preestablecido para los eventos en
los parmetros del sistema, la variable de sistema ERRNO cambia a
ERR_DIPLAG_LIM.

Estos errores pueden ser gestionados en el gestor de errores.

Limitaciones
Si el punto de inicio actual se desva del habitual, de forma que la longitud de
posicionamiento total de la instruccin TriggL es ms corta de lo habitual (es decir, al
principio de TriggL con la posicin del robot en el punto final), puede ocurrir que se
cumplan varias de las condiciones de disparo, o incluso todas ellas, inmediatamente y
en una misma posicin. En estos casos, la secuencia en la que se realizan las actividades
de disparo no estar definida. La lgica de programa del programa del usuario no puede
basarse en una secuencia normal de actividades de disparo para un movimiento
incompleto.

378 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TriggL
Instruccin Advanced functions (Funciones avanzadas)

Sintaxis
TriggL
[ \ Conc , ]
[ ToPoint := ] < expresin (IN) de robtarget > ,
[ Speed := ] < expresin (IN) de speeddata >
[ \ T := < expresin (IN) de num > ] ,
[Trigg_1 := ] < variable (VAR) de triggdata >
[ \ T2 := < variable (VAR) de triggdata > ]
[ \ T3 := < variable (VAR) de triggdata > ]
[ \ T4 := < variable (VAR) de triggdata > ]
[ \ T5 := < variable (VAR) de triggdata > ]
[ \ T6 := < variable (VAR) de triggdata > ] ,
[Zone := ] < expresin (IN) de zonedata >
[ \ Inpos := < expresin (IN) de stoppointdata > ] ,
[ Tool := ] < variable persistente (PERS) de tooldata >
[ \ WObj := < variable persistente (PERS) de wobjdata > ]
[ \ Corr ];

Informacin relacionada
Descrito en:
Movimiento circular con disparadores Instrucciones - TriggC
Movimiento de ejes con disparadores Instrucciones - TriggJ
Definicin de disparadores Instrucciones - TriggIO, TriggEquip,
TriggInt o TriggCheckIO
Escritura en una entrada de correccin Instrucciones - CorrWrite
Movimiento lineal Principios de movimiento -
Posicionamiento durante la ejecucin
del programa
Definicin de velocidad Tipos de datos - speeddata
Definicin de datos de zona Tipos de datos - zonedata
Definicin de datos de punto de paro Tipos de datos - stoppointdata
Definicin de herramientas Tipos de datos - tooldata
Definicin de objetos de trabajo Tipos de datos - wobjdata
Movimiento en general Principios de movimiento

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 379


TriggL
Advanced functions (Funciones avanzadas) Instruccin

380 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TRYNEXT
Instruccin

TRYNEXT - Salta sobre una instruccin que ha provocado un


error
La instruccin TRYNEXT se utiliza para reanudar la ejecucin despus de un error,
empezando por la instruccin que sigue a la instruccin que provoc el error.

Ejemplo
reg2 := reg3/reg4;
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg2 := 0;
TRYNEXT;
ENDIF

Se intenta dividir reg3 por reg4. Si reg4 es igual a 0 (divisin por cero), se salta
al gestor de errores, en el que se asigna 0 a reg2 0. A continuacin, la instruccin
TRYNEXT se usa para seguir con la instruccin siguiente.

Ejecucin de programas
La ejecucin del programa contina en la instruccin siguiente a la instruccin que
provoc el error.

Limitaciones
La instruccin slo puede existir en el gestor de errores de la rutina.

Sintaxis
TRYNEXT;

Informacin relacionada
Descrito en:
Gestores de errores Caractersticas bsicas - Recuperacin
en caso de error

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 381


TRYNEXT
Instruccin

382 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TuneReset
Instruccin

TuneReset - Restablecimiento del ajuste del servo


TuneReset se utiliza para devolver el comportamiento dinmico de todos los ejes del
robot y de las unidades mecnicas a sus valores normales.

Ejemplo
TuneReset;

Se restablecen los valores de ajuste de todos los ejes a 100%.

Ejecucin de programas
Se restablecen a 100% los valores de ajuste de todos los ejes.

Los valores de ajuste predeterminados del servo de todos los ejes se ajustan
automticamente mediante la ejecucin de la instruccin TuneReset en los casos
siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Sintaxis
TuneReset ;

Informacin relacionada
Descrito en:
Ajuste de servos Instrucciones - TuneServo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 383


TuneReset
Instruccin

384 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TuneServo
Instruccin

TuneServo - Ajuste de servos


TuneServo se utiliza para ajustar el comportamiento dinmico de los distintos ejes del
robot. En circunstancias normales, no es necesario usar TuneServo, pero hay ocasiones
en las que el ajuste puede optimizarse en funcin de la configuracin del robot y las
caractersticas de carga. En el caso de los ejes externos, TuneServo puede usarse para
la adaptacin de la carga.

Un uso incorrecto de TuneServo puede dar lugar a movimientos de oscilacin o


pares que pueden causar daos en el robot. Debe tenerlo en cuenta y tener
cuidado al usar TuneServo.

Evite ejecutar instrucciones TuneServo mientras el robot est en movimiento. Puede


dar lugar a cargas elevadas momentneas en la CPU, lo que puede dar lugar a
indicaciones de error y paros.

Nota. Para obtener el ajuste ptimo, resulta esencial que se utilicen datos de carga
correctos.
Comprubelo antes de usar TuneServo.

Normalmente, los valores de ajuste ptimos suelen diferir de un robot a otro. El ajuste
ptimo tambin puede cambiar con el paso del tiempo.

Cmo mejorar la exactitud de la trayectoria

En el caso de los robots que funcionan a velocidades bajas, TuneServo puede usarse
para mejorar la exactitud de la trayectoria, mediante:

- Ajuste de tune_kv y tune_ti (consulte ms adelante la descripcin de los


distintos tipos de ajuste).
- Ajuste de los parmetros de compensacin de friccin (consulte la informacin
siguiente).

Puede combinar estos dos mtodos.

Otras posibilidades para aumentar la exactitud de la trayectoria:

- La reduccin de la resolucin de la trayectoria puede mejorar la trayectoria.


Nota: un valor de resolucin de trayectoria demasiado bajo causar problemas
de sobrecarga en la CPU.
- La exactitud de las lneas rectas puede mejorarse mediante la reduccin de la
aceleracin mediante AccSet. Ejemplo: AccSet 20, 10.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 385


TuneServo
Instruccin

Descripcin

Tune_df

Tune_df se utiliza para reducir la posibilidad de sobrepasar posiciones o de que se


produzcan oscilaciones a lo largo de la trayectoria.

Siempre existe un valor de ajuste ptimo, que puede variar en funcin de la posicin y
la longitud del movimiento. Este valor ptimo puede determinarse cambiando el ajuste
en pequeos pasos (del 1% al 2%) en los ejes que presentan este comportamiento no
deseado. Normalmente, el ajuste ptimo se encontrar dentro del rango del 70% al
130%. Un valor de ajuste demasiado bajo o demasiado alto puede tener un efecto
negativo y puede perjudicar considerablemente a los movimientos.

Cuando el valor de ajuste en el punto de inicio de un movimiento largo difiere


considerablemente del valor de ajuste en el punto final, puede resultar conveniente en
algunos casos usar un punto intermedio con una zona de esquina para definir en qu
punto debe cambiar el valor de ajuste.

A continuacin encontrar algunos ejemplos del uso de TuneServo para optimizar el


ajuste:

IRB 6400, en una aplicacin de servicio de prensa (carga extendida y flexible), ejes del
4 al 6: Reduzca el valor de ajuste del eje de mueca actual hasta que el movimiento sea
aceptable. No se observarn cambios en el movimiento hasta que se est alcanzando el
valor ptimo. Un valor bajo afectar considerablemente al movimiento. Valor de ajuste
tpico: 25%.

IRB 6400, partes superiores del rea de trabajo. El eje 1 puede optimizarse con
frecuencia con valor de ajuste del 85% al 95%.

IRB 6400, movimiento corto (< 80 mm). El eje 1 puede optimizarse con frecuencia con
valor de ajuste del 94% al 98%.

IRB 2400 con movimiento sobre un track. En algunos casos, es posible optimizar los
ejes del 2 al 3 con un valor de ajuste del 110% al 130%. El movimiento a lo largo del
track puede requerir un valor de ajuste distinto en comparacin con el movimiento en
ngulos rectos respecto del track.

El sobrepasamiento de posiciones y las oscilaciones pueden reducirse mediante una


reduccin de la aceleracin o de la pendiente de aceleracin (AccSet), lo que sin
embargo supone un aumento del tiempo de ciclo. Esto es un mtodo alternativo al uso
de TuneServo.

Tune_dg

Tune_dg puede reducir el sobrepasamiento de posiciones en casos muy especficos.


Normalmente no debe utilizarse.

386 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


TuneServo
Instruccin

Es necesario probar primero Tune_df en casos de sobrepasamiento de posiciones.

El ajuste de tune_dg puede realizarse en pasos grandes del valor de ajuste (por ejemplo
50%, 100%, 200%, 400%).

Nunca utilice tune_dg mientras el robot est en movimiento.

Tune_dh

Tune_dh puede usarse para reducir las vibraciones y el sobrepasamiento de posiciones


(por ejemplo, con una carga flexible de gran tamao).

El valor de ajuste debe ser siempre inferior a 100. El uso de tune_dh aumenta la
desviacin de la trayectoria y tambin suele aumentar el tiempo de ciclo.

Ejemplo:

IRB6400 con una carga flexible de gran tamao que vibra cuando el robot se ha
detenido. Utilice tune_dh con el valor de ajuste 15.

Tune_dh slo debe ejecutarse en un nico eje. Todos los ejes de la misma unidad
mecnica obtienen automticamente el mismo valor de ajuste.

Nunca utilice tune_dh mientras el robot est en movimiento.

Tune_di

Tune_di puede usarse para reducir la desviacin de la trayectoria a velocidades altas.

Para reducir la desviacin de la trayectoria se recomienda un valor de ajuste entre 50


y 80. El sobrepasamiento de posiciones puede aumentar (un valor de ajuste menor
puede causar un mayor sobrepasamiento de posiciones).

Un valor de ajuste superior al 100 puede reducir el sobrepasamiento de posiciones


(pero aumenta la desviacin de la trayectoria a alta velocidad).

Tune_di slo debe ejecutarse en un nico eje. Todos los ejes de la misma unidad
mecnica obtienen automticamente el mismo valor de ajuste.

Tune_dk, Tune_dl

Slo para uso interno de ABB. No utilice estos tipos de ajuste. Un uso incorrecto
puede dar lugar a movimientos de oscilacin o pares que pueden causar daos en
el robot.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 387


TuneServo
Instruccin

Tune_kp, tune_kv, tune_ti con ejes externos

Estos tipos de ajustes afectan a la ganancia de control de posicin (kp), la ganancia de


control de velocidad (kv) y el tiempo de integracin de control de velocidad (ti) de los
ejes externos. Estos parmetros se usan para adaptar los ejes externos a distintas
inercias de carga. El ajuste bsico de los ejes externos tambin puede simplificarse
mediante estos tipos de ajuste.

Tune_kp, tune_kv, tune_ti con ejes del robot

En el caso de los ejes del robot, estos tipos de ajuste tienen otro significado y pueden
usarse para reducir los errores de trayectoria a baja velocidad (< 500 mm/seg).

Valores recomendados: tune_kv del 100% al 180%, tune_ti del 50% al 100%. No debe
utilizar Tune_kp con los ejes del robot. El uso de valores demasiado altos o demasiado
bajos para tune_kv/tune_ti causarn vibraciones u oscilaciones. Tenga cuidado si
intenta superar estos valores recomendados. Haga los cambios en pasos pequeos y
evite la oscilacin de los motores.

Ajuste siempre un eje cada vez. Cambie los valores de ajuste en pequeos pasos.
Intente mejorar la trayectoria en el punto en que ese eje concreto cambia de direccin
de movimiento o en el punto en que se acelera o decelera.

No utilice nunca estos tipos de ajuste a altas velocidades ni cuando se haya conseguido
la exactitud necesaria en la trayectoria.

Compensacin de friccin: tune_fric_lev y tune_fric_ramp

Estos tipos de ajuste pueden usarse para reducir los errores de trayectoria del robot que
se deban a la friccin y a los movimientos no deseados que se producen a baja
velocidad (de 10 a 200 mm/seg). Estos errores de trayectoria aparecen cuando un eje
del robot cambia de sentido de movimiento. Para activar la compensacin de friccin
para un eje, cambie a TRUE el parmetro de sistema Friccin ffw on (tema:
Manipulador, tipo: Parmetros de control).

El modelo de friccin es un nivel constante con el signo opuesto al sentido de avance


del eje. Nivel friccin ffw (Nm) es el nivel absoluto de friccin a (baja) velocidad y es
mayor que Rampa friccin ffw ramp (rad/s) (consulte la figura).

Friccin del motor a baja velocidad (Nm)

Nivel friccin ffw (Nm)

Rampa friccin ffw (rad/seg)

Velocidad del motor del eje (rad/seg)

Figura 48 Modelo de friccin


388 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
TuneServo
Instruccin

Tune_fric_lev redefine el valor del parmetro de sistema Nivel friccin ffw.

El ajuste de Nivel friccin ffw (con tune_fric_lev) en cada eje del robot puede aumentar
considerablemente la exactitud de la trayectoria del robot en el rango de velocidad de
20 a 100 mm/seg. Sin embargo, en robots grandes (especialmente en el caso de la
familia IRB6400) el efecto ser mnimo dado que en estos robots dominan otros
mtodos de seguimiento de errores.

Tune_fric_ramp redefine el valor del parmetro de sistema Rampa friccin ffw. En la


mayora de los casos, no es necesario ajustar el valor de Rampa friccin ffw. El valor
predeterminado es adecuado.

Ajuste un eje cada vez. Cambie el valor de ajuste en pequeos incrementos y


determine el nivel que permita reducir al mnimo el error de trayectoria del robot en la
trayectoria en la que este eje concreto cambie de sentido de movimiento. Repita el
mismo procedimiento con el siguiente eje, etc.

Los valores finales de ajuste pueden transferirse a los parmetros del sistema. Ejemplo:

Nivel friccin ffw = 1. Valor de ajuste final (tune_fric_lev) = 150%.

Cambie el valor de Nivel friccin ffw a 1,5 y el valor de ajuste al 100% (el valor
predeterminado), para conseguir el valor equivalente.

Argumentos
TuneServo MecUnit Axis TuneValue [\Type]

MecUnit (unidad mecnica) Tipo de dato: mecunit

El nombre de la unidad mecnica.

Axis Tipo de dato: num

El nombre del eje actual de la unidad mecnica (del 1 al 6).

TuneValue Tipo de dato: num

El valor de ajuste, en porcentaje (de 1 a 500). El 100% es el valor normal.

[\Type] Tipo de dato: tunetype

El tipo de ajuste del servo. Los tipos disponibles son TUNE_DF, TUNE_KP,
TUNE_KV, TUNE_TI, TUNE_FRIC_LEV, TUNE_FRIC_RAMP, TUNE_DG,
TUNE_DH, TUNE_DI. Los tipos TUNE_DK y TUNE_DL son slo para uso
interno de ABB.
Estos tipos estn predefinidos en el sistema mediante constantes.

Puede omitir este argumento si utiliza el tipo de ajuste TUNE_DF.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 389


TuneServo
Instruccin

Ejemplo
TuneServo MHA160R1, 1, 110 \Type:= TUNE_KP;
Activacin del tipo de ajuste TUNE_KP con un valor de ajuste del 110% en el eje
1 de la unidad mecnica MHA160R1.

Ejecucin de programas
El tipo de ajuste especificado y el valor de ajuste se activan para el eje especificado.
Este valor se aplica a todos los movimientos hasta que se programa un nuevo valor para
el eje actual o hasta que se restablecen los tipos y valores de ajuste de todos los ejes
mediante la instruccin TuneReset.
Los valores de ajuste predeterminados del servo de todos los ejes se ajustan
automticamente mediante la ejecucin de la instruccin TuneReset en los casos
siguientes:
- En los arranques en fro
- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Limitaciones
Cualquier ajuste de servo activo se devuelve siempre a los valores predeterminados en
caso de una cada de alimentacin.
Esta limitacin puede gestionarse en el programa del usuario al reanudar la ejecucin
despus de una cada de alimentacin.

Sintaxis
TuneServo
[MecUnit := ] < variable (VAR) de mecunit> ,
[Axis := ] < expresin (IN) de num> ,
[TuneValue := ] < expresin (IN) de num>
[\ Type := <expresin (IN) de tunetype>];

Informacin relacionada
Descrito en:
Otros parmetros de movimiento Resumen sobre RAPID - Parmetros
de movimiento
Tipos de ajuste de servo Tipos de datos - tunetype
Restablecimiento de todos los ajustes de servo Instrucciones - TuneReset
Ajuste de los ejes externos Parmetros del sistema - Manipulador
Compensacin de friccin Parmetros del sistema - Manipulador
390 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
UnLoad
Instruccin

UnLoad - Descarga un mdulo de programa durante la


ejecucin
UnLoad se utiliza para descargar un mdulo de programa de la memoria durante la
ejecucin.

El mdulo de programa debe haberse cargado previamente en la memoria de programa


mediante la instruccin Load o StartLoad - WaitLoad.

Ejemplo
UnLoad diskhome \File:=PART_A.MOD;

Descarga de la memoria de programa el mdulo de programa PART_A.MOD,


que fue cargado anteriormente en la memoria mediante Load (consulte la
instruccin Load). diskhome es una constante de cadena predefinida que
contiene "HOME:".

Argumentos
UnLoad [\Save] FilePath [\File]
[\Save] Tipo de dato: switch

Si se utiliza este argumento, el mdulo de programa se guarda antes de que


comience la descarga. El mdulo de programa se guarda en la posicin original
especificada en la instruccin Load o StartLoad.

FilePath Tipo de dato: string

La ruta y el nombre del archivo que se descargar de la memoria de programa.


La ruta y el nombre del archivo deben ser los mismos que en la instruccin Load
o StartLoad ejecutadas anteriormente. El nombre de archivo se excluye cuando
se utiliza el argumento \File.

[\File] Tipo de dato: string

Cuando se excluye el nombre del archivo en el argumento FilePath, es necesario


definirlo con este argumento. El nombre del archivo debe ser el mismo que en la
instruccin Load o StartLoad ejecutadas anteriormente.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 391


UnLoad
Instruccin

Ejecucin de programas
Para poder ejecutar una instruccin UnLoad en el programa, es necesario haber
ejecutado anteriormente en el programa una instruccin Load o StartLoad - WaitLoad.

La ejecucin del programa espera a que el mdulo de programa termine de cargarse


antes de que la ejecucin contine con la instruccin siguiente.

A continuacin, se descarga al mdulo de programa y se vinculan los dems mdulos


de programa.

Para obtener ms informacin, consulte las instrucciones Load o StartLoad-Waitload.

Ejemplos
UnLoad "HOME:/DOORDIR/DOOR1.MOD";

Descarga de la memoria de programa el mdulo de programa DOOR1.MOD, que


fue cargado anteriormente en la memoria mediante Load (consulte la instruccin
Load).

UnLoad "HOME:" \File:="DOORDIR/DOOR1.MOD";

Lo mismo que lo anterior pero con otra sintaxis.

Unload \Save, "HOME:" \File:="DOORDIR/DOOR1.MOD";

Lo mismo que lo anterior, pero guarda el mdulo de programa antes de la


descarga.

Limitaciones
No se permite descargar mdulos de programa que se estn ejecutando.

Las rutinas TRAP, los eventos de E/S del sistema y otras tareas de programa no pueden
ejecutarse durante la descarga.

Evite tener movimientos en curso durante la descarga.

La detencin del programa durante la ejecucin de la instruccin UnLoad da lugar a un


paro protegido con los motores apagados y un mensaje de error "20025 Tiempo excesiv
Orden paro" en la unidad de programacin.

392 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


UnLoad
Instruccin

Gestin de errores
Si no es posible descargar el archivo que se indica en la instruccin UnLoad debido a
que se est ejecutando el mdulo o a que se indica una ruta incorrecta (por ejemplo
cuando no se ha cargado el mdulo con Load o StartLoad), la variable de sistema
ERRNO cambia a ERR_UNLOAD. A continuacin, este error puede ser gestionado
en el gestor de errores.

Sintaxis
UnLoad
[\Save ,]
[FilePath :=] <expresin (IN) de string>
[\File:= <expresin (IN) de string>];

Informacin relacionada
Descrito en:
Carga de un mdulo de programa Instrucciones - Load
Instrucciones - StartLoad-WaitLoad
Aceptacin de referencias no resueltas Parmetros de sistema - Controlador,
Parmetros de sistema - Tareas,
Parmetros de sistema - RefBind

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 393


UnLoad
Instruccin

394 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitDI
Instruccin

WaitDI - Espera hasta que se activa una seal digital de


entrada
WaitDI (esperar entrada digital) se usa para esperar hasta que se activa una entrada
digital.

Ejemplo
WaitDI di4, 1;

La ejecucin del programa slo contina despus de que se ha activado la entrada


di4.

WaitDI grip_status, 0;

La ejecucin del programa slo contina despus de que se ha desactivado la


entrada grip_status.

Argumentos
WaitDI Signal Value [\MaxTime] [\TimeFlag]
Signal Tipo de dato: signaldi

El nombre de la seal.

Value Tipo de dato: dionum

El valor deseado para la seal.

[\MaxTime] (tiempo mximo) Tipo de dato: num

El periodo mximo permitido para el tiempo de espera, expresado en segundos.


Si el tiempo se agota antes de que se cumpla la condicin, se llama al gestor de
errores si lo hay, con el cdigo de error ERR_WAIT_MAXTIME. Si no hay
ningn gestor de errores, se detiene la ejecucin.

[\TimeFlag] (indicador de tiempo lmite) Tipo de dato: bool

El parmetro de salida que contiene el valor TRUE si se agota el tiempo mximo


de espera permitido antes de que se cumpla la condicin. Si se incluye este
parmetro en la instruccin, no se considera un error si llega a agotarse el tiempo
lmite. Este argumento no se tiene en cuenta si el argumento MaxTime no se
incluye en la instruccin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 395


WaitDI
Instruccin

Ejecucin de programas
Si el valor de la seal es correcto cuando se ejecuta la instruccin, el programa
sencillamente contina con la instruccin siguiente.

Si el valor de la seal no es correcto, el robot entra en un estado de espera. Cuando la


seal cambia al valor correcto, el programa contina. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).

Cuando el robot se encuentra en espera, se supervisa el tiempo y, si sobrepasa el valor


de tiempo mximo, el programa contina si se especifica un indicador de tiempo o
genera un error si no se especifica el indicador. Si se especifica un indicador de tiempo,
ste cambia a TRUE si se supera el tiempo. De lo contrario, cambia a FALSE.

En el modo manual, si se usa el argumento \Inpos y Time es mayor de 3 seg, aparecer


una ventana de alerta que pregunta si desea simular la instruccin. Si no desea que
aparezca la ventana de alerta, puede cambiar el parmetro de sistema MenSim a NO
(Parmetros de sistema, Temas:Comunicacin, Tipos:Varios sistema).

Sintaxis
WaitDI
[ Signal := ] < variable (VAR) de signaldi > ,
[ Value := ] < expresin (IN) de dionum >
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;

Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera durante un periodo determinado Instrucciones - WaitTime

396 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitDO
Instruccin

WaitDO - Espera hasta que se activa una seal digital de


salida
WaitDO (esperar salida digital) se usa para esperar hasta que se activa una salida
digital.

Ejemplo
WaitDO do4, 1;

La ejecucin del programa slo contina despus de que se ha activado la salida


do4.

WaitDO grip_status, 0;

La ejecucin del programa slo contina despus de que se ha desactivado la


salida grip_status.

Argumentos
WaitDO Signal Value [\MaxTime] [\TimeFlag]
Signal Tipo de dato: signaldo

El nombre de la seal.

Value Tipo de dato: dionum

El valor deseado para la seal.

[\MaxTime] (tiempo mximo) Tipo de dato: num

El periodo mximo permitido para el tiempo de espera, expresado en segundos.


Si el tiempo se agota antes de que se cumpla la condicin, se llama al gestor de
errores si lo hay, con el cdigo de error ERR_WAIT_MAXTIME. Si no hay
ningn gestor de errores, se detiene la ejecucin.

[\TimeFlag] (indicador de tiempo lmite) Tipo de dato: bool

El parmetro de salida que contiene el valor TRUE si se agota el tiempo mximo


de espera permitido antes de que se cumpla la condicin. Si se incluye este
parmetro en la instruccin, no se considera un error si llega a agotarse el tiempo
lmite. Este argumento no se tiene en cuenta si el argumento MaxTime no se
incluye en la instruccin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 397


WaitDO
Instruccin

Ejecucin de programas
Si el valor de la seal es correcto cuando se ejecuta la instruccin, el programa
sencillamente contina con la instruccin siguiente.

Si el valor de la seal no es correcto, el robot entra en un estado de espera. Cuando la


seal cambia al valor correcto, el programa contina. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).

Cuando el robot se encuentra en espera, se supervisa el tiempo y, si sobrepasa el valor


de tiempo mximo, el programa contina si se especifica un indicador de tiempo o
genera un error si no se especifica el indicador. Si se especifica un indicador de tiempo,
ste cambia a TRUE si se supera el tiempo. De lo contrario, cambia a FALSE.

En el modo manual, si se usa el argumento \Inpos y Time es mayor de 3 seg, aparecer


una ventana de alerta que pregunta si desea simular la instruccin. Si no desea que
aparezca la ventana de alerta, puede cambiar el parmetro de sistema MenSim a NO
(Parmetros de sistema, Temas:Comunicacin, Tipos:Varios sistema).

Sintaxis
WaitDO
[ Signal := ] < variable (VAR) de signaldo > ,
[ Value := ] < expresin (IN) de dionum >
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;

Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera durante un periodo determinado Instrucciones - WaitTime

398 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitLoad
Instruccin

WaitLoad - Conecta el mdulo cargado a una tarea


WaitLoad se usa para conectar el mdulo, siempre y cuando se cargue con StartLoad,
a la tarea de programa.

El mdulo cargado debe estar conectado a la tarea de programa con la instruccin


WaitLoad antes de poder usar cualquier de sus smbolos o rutinas.

El mdulo de programa cargado se aade a los mdulos que ya existen en la memoria


de programa.

Esta instruccin tambin puede combinarse con la funcin que descarga otro mdulo
de programa, para reducir al mnimo el nmero de vnculos (1 en lugar de 2).

Ejemplo
VAR loadsession load1;
...
StartLoad "HOME:/PART_A.MOD", load1;
MoveL p10, v1000, z50, tool1 \WObj:=wobj1;
MoveL p20, v1000, z50, tool1 \WObj:=wobj1;
MoveL p30, v1000, z50, tool1 \WObj:=wobj1;
MoveL p40, v1000, z50, tool1 \WObj:=wobj1;
WaitLoad load1;
%"routine_x"%;
UnLoad "HOME:/PART_A.MOD";

Carga en la memoria de programa el mdulo de programa PART_A.MOD desde


HOME:. En paralelo, mueve el robot. A continuacin, conecta el nuevo mdulo
de programa a la tarea de programa y llama a la rutina routine_x del mdulo
PART_A.

Argumentos
WaitLoad [\UnloadPath] [\UnloadFile] LoadNo
[\UnloadPath] Tipo de dato: string

La ruta y el nombre del archivo que se descargar de la memoria de programa.


El nombre de archivo se excluye cuando se utiliza el argumento \UnloadFile.

[\UnloadFile] Tipo de dato: string

Cuando se excluye el nombre del archivo en el argumento \UnloadPath, es


necesario definirlo con este argumento.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 399


WaitLoad
Instruccin

LoadNo Tipo de dato: loadsession

sta es una referencia a la sesin de carga, capturada por la instruccin StartLoad,


para conectar a la tarea de programa el mdulo cargado.

Ejecucin de programas
A continuacin, la instruccin WaitLoad espera primero a que se complete la carga , si
no se completado an, y despus el mdulo ser vinculado e inicializado. La
inicializacin del mdulo cargado devuelve todas las variables del nivel de mdulo a
sus valores iniciales.

Las referencias no resueltas se aceptan si el parmetro de sistema Tareas/RefBind tiene


el valor NO. Sin embargo, cuando se inicia el programa con la funcin Ventana
programa/Archivo/Verificar Programa de la unidad de programacin, no se realiza
ninguna comprobacin para buscar referencias no resueltas si el parmetro RefBind
tiene el valor NO. Se producir un error de tiempo de ejecucin al ejecutar una
referencia no resuelta.

Otra forma de usar referencias a instrucciones que no se encuentran en la tarea desde


un principio es mediante enlazamiento en tiempo de ejecucin. Esto permite usar una
expresin de cadena de caracteres para especificar la rutina a la que se desea llamar. La
expresin se encierra entre %%. En este caso, el parmetro RefBind puede recibir el
valor YES (el comportamiento predeterminado). La posibilidad de enlazamiento en
tiempo de ejecucin es preferible.

Para conseguir una estructura de programa idnea, fcil de comprender y mantener,


todas las operaciones de carga y descarga de mdulos de programa deben hacerse en el
mdulo principal (main) que siempre est presente en la memoria de programa
durante la ejecucin.

Para la carga de un programa que contiene un procedimiento main en un programa


principal (que contiene otro procedimiento main), consulte la instruccin Load.

Ejemplos
StartLoad "HOME:/DOORDIR/DOOR2.MOD", load1;
...
WaitLoad \UnloadPath:="HOME:/DOORDIR/DOOR1.MOD", load1;

Carga en la memoria de programa el mdulo de programa DOOR2.MOD desde


el directorio DOORDIR de HOME:y conecta el nuevo mdulo a la tarea. El
mdulo de programa DOOR1.MOD se descarga de la memoria de programa.

StartLoad "HOME:" \File:="DOORDIR/DOOR2.MOD", load1;


! El robot puede hacer operaciones
WaitLoad \UnloadPath:="HOME:" \File:= "DOORDIR/DOOR1.MOD", load1;

400 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitLoad
Instruccin

Equivale a las instrucciones siguientes, pero el robot puede hacer otras


operaciones durante el tiempo de carga. Adems, las har ms rpido (con un
solo vnculo).

Load "HOME:" \File:="DOORDIR/DOOR2.MOD";


UnLoad "HOME:" \File:="DOORDIR/DOOR1.MOD";

Gestin de errores
Si no es posible encontrar el archivo especificado en la instruccin StartLoad, la
variable de sistema ERRNO cambia a ERR_FILNOTFND en el momento de la
ejecucin de WaitLoad.

Si el argumento LoadNo hace referencia a una sesin de carga desconocida, la variable


de sistema ERRNO cambia a ERR_UNKPROC.

Si el mdulo ya est cargado en la memoria de programa, la variable de sistema


ERRNO cambia a ERR_LOADED.

Los errores siguientes slo pueden producirse cuando el argumento \UnloadPath se


usa en la instruccin WaitLoad:

- Si no es posible descargar el mdulo de programa especificado en el argumento


\UnloadPath porque se estn ejecutando acciones dentro del mdulo, la
variable ERRNO cambia a ERR_UNLOAD.
- Si no es posible descargar el mdulo de programa especificado en el argumento
\UnloadPath porque el mdulo de programa no fue cargado con Load o
StartLoad-WaitLoad desde el programa de RAPID, la variable de sistema
ERRNO cambia tambin a ERR_UNLOAD.

Estos errores pueden ser gestionados en el gestor de errores.

Recuerde que no se permite usar RETRY para la recuperacin de errores generados por
WaitLoad.

Sintaxis
WaitLoad
[ [ \ UnloadPath := <expresin (IN) de string> ]
[ \ UnloadFile := <expresin (IN) de string> ] , ]
[LoadNo :=] <variable (VAR) de loadsession> ;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 401


WaitLoad
Instruccin

Informacin relacionada
Carga de mdulos de programa durante Instrucciones - StartLoad
la ejecucin
Sesin de carga Tipos de datos - loadsession
Carga de un mdulo de programa Instrucciones - Load
Descarga de un mdulo de programa Instrucciones - UnLoad
Cancelacin de la carga de un mdulo Instrucciones - CancelLoad
de programa
Aceptacin de referencias no resueltas Parmetros del sistema - Controlador/
Tareas/ RefBind

402 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitTime
Instruccin

WaitTime - Espera una cantidad de tiempo determinado


WaitTime se usa para esperar una cantidad de tiempo determinado. Esta instruccin
tambin puede usarse para esperar hasta que los ejes del robot y los ejes externos se
hayan parado.

Ejemplo
WaitTime 0.5;

La ejecucin del programa espera 0,5 segundos.

Argumentos
WaitTime [\InPos] Time
[\InPos] Tipo de dato: switch

Si se usa este argumento, los ejes del robot y los ejes externos deben estar
completamente parados antes de que empiece a contar el tiempo de espera.

Time Tipo de dato: num

El tiempo, en segundos, que debe esperar la ejecucin del programa.


Valor mnimo 0 seg. No existe ningn lmite en cuanto al valor mximo.
Resolucin 0,001 seg.

Ejecucin de programas
La ejecucin del programa se detiene temporalmente durante la cantidad de tiempo
especificada. Sin embargo, la gestin de interrupciones y otras funciones parecidas
permanecen activas.

En el modo manual, si se usa el argumento \Inpos y Time es mayor de 3 seg, aparecer


una ventana de alerta que pregunta si desea simular la instruccin. Si no desea que
aparezca la ventana de alerta, puede cambiar el parmetro de sistema MenSim a NO
(Parmetros de sistema, Temas:Comunicacin, Tipos:Varios sistema).

Ejemplo
WaitTime \InPos,0;

La ejecucin del programa espera hasta que los ejes del robot y los ejes externos
se hayan detenido completamente.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 403


WaitTime
Instruccin

Limitaciones
Si se usa el argumento \Inpos y la instruccin aparece precedida de una instruccin de
movimiento, dicha instruccin de movimiento debe programarse con un punto de paro
(zonedata fine), no un punto de paso. De lo contrario, no ser posible reanudar la
ejecucin en caso de una cada de alimentacin.

El argumento \Inpos no puede usarse junto con el servo suave.

Sintaxis
WaitTime
[\InPos,]
[Time :=] <expresin (IN) de num>;

Informacin relacionada
Descrito en:
Espera hasta que se cumple una condicin Instrucciones - WaitUntil
Espera hasta que se activa o desactiva una E/S Instrucciones - WaitDI

404 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitUntil
Instruccin

WaitUntil - Espera hasta que se cumple una condicin


WaitUntil se usa para esperar hasta que se cumple una condicin lgica. Por ejemplo,
puede usarse para esperar hasta que se activan una o varias entradas.

Ejemplo
WaitUntil di4 = 1;

La ejecucin del programa slo contina despus de que se ha activado la entrada


di4.

Argumentos
WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag]
[\InPos] Tipo de dato: switch

Si se usa este argumento, los ejes del robot y los ejes externos deben detener su
movimiento antes de que comience a evaluarse la condicin.

Cond Tipo de dato: bool

La expresin lgica que debe esperarse.

[\MaxTime] Tipo de dato: num

El periodo mximo permitido para el tiempo de espera, expresado en segundos.


Si el tiempo se agota antes de que se cumpla la condicin, se llama al gestor de
errores si lo hay, con el cdigo de error ERR_WAIT_MAXTIME. Si no hay
ningn gestor de errores, se detiene la ejecucin.

[\TimeFlag] (indicador de tiempo lmite) Tipo de dato: bool

El parmetro de salida que contiene el valor TRUE si se agota el tiempo mximo


de espera permitido antes de que se cumpla la condicin. Si se incluye este
parmetro en la instruccin, no se considera un error si llega a agotarse el tiempo
lmite. Este argumento no se tiene en cuenta si el argumento MaxTime no se
incluye en la instruccin.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 405


WaitUntil
Instruccin

Ejecucin de programas
Si no se cumple la condicin programada al ejecutar una instruccin WaitUntil, la
condicin se comprueba de nuevo cada 100 mseg.

Cuando el robot se encuentra en espera, se supervisa el tiempo y, si sobrepasa el valor


de tiempo mximo, el programa contina si se especifica un indicador de tiempo o
genera un error si no se especifica TimeFlag. Si se especifica TimeFlag, este indicador
cambia a TRUE si se supera el tiempo. De lo contrario, cambia a FALSE.

En el modo manual, si se usa el argumento \Inpos y Time es mayor de 3 seg, aparecer


una ventana de alerta que pregunta si desea simular la instruccin. Si no desea que
aparezca la ventana de alerta, puede cambiar el parmetro de sistema MenSim a NO
(Parmetros de sistema, Temas:Comunicacin, Tipos:Varios sistema).

Ejemplos
VAR bool timeout;
WaitUntil start_input = 1 AND grip_status = 1\MaxTime := 60
\TimeFlag := timeout;
IF timeout THEN
TPWrite "No se ha recibido ninguna orden de inicio en el tiempo especificado.";
ELSE
start_next_cycle;
ENDIF

Si no se cumplen las dos condiciones de entrada en un plazo de 60 segundos, se


escribe un mensaje de error en la pantalla de la unidad de programacin.

WaitUntil \Inpos, di4 = 1;

La ejecucin del programa espera hasta que el robot se ha detenido y hasta que
se activa la entrada di4.

Limitacin
Si se usa el argumento \Inpos y la instruccin aparece precedida de una instruccin de
movimiento, dicha instruccin de movimiento debe programarse con un punto de paro
(zonedata fine), no un punto de paso. De lo contrario, no ser posible reanudar la
ejecucin en caso de una cada de alimentacin.

El argumento \Inpos no puede usarse junto con el servo suave.

406 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WaitUntil
Instruccin

Sintaxis
WaitUntil
[\InPos,]
[Cond :=] <expresin (IN) de bool>
[\MaxTime :=<expresin (IN) de num>]
[\TimeFlag:=<variable (VAR) de bool>] ;

Informacin relacionada
Descrito en:
Espera hasta que se activa o desactiva Instrucciones - WaitDI
una entrada
Espera durante un tiempo determinado Instrucciones - WaitTime
Expresiones Caractersticas bsicas - Expresiones

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 407


WaitUntil
Instruccin

408 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


VelSet
Instruccin

VelSet - Cambia la velocidad programada


VelSet se utiliza para aumentar o reducir la velocidad programada de todas las
instrucciones de posicionamiento posteriores. Esta instruccin tambin se usa para
aumentar al mximo la velocidad.

Ejemplo
VelSet 50, 800;

Todas las velocidades programadas se reducen hasta el 50% del valor indicado
en la instruccin. Por otro lado, no se permite que la velocidad del TCP exceda
los 800 mm/seg.

Argumentos
VelSet Override Max
Override Tipo de dato: num

La velocidad deseada, como un porcentaje de la velocidad programada. El 100%


corresponde a la velocidad programada.

Max Tipo de dato: num

La velocidad mxima del TCP en mm/seg.

Ejecucin de programas
La velocidad programada de todas las instrucciones de posicionamiento posteriores se
ve afectada hasta que se ejecuta la instruccin VelSet.

El argumento Override afecta a lo siguiente:

- Todos los componentes de velocidad (TCP, orientacin, ejes externos de


rotacin y ejes externos lineales) de speeddata.
- La redefinicin de velocidad programada en la instruccin de posicionamiento
(el argumento \V).
- Movimientos temporizados.

El argumento Override no afecta a lo siguiente:

- La velocidad de soldado de welddata.


- El calentamiento y la velocidad de llenado de seamdata.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 409


VelSet
Instruccin

El argumento Max slo afecta a la velocidad del TCP.

Los valores predeterminados de Override y Max son del 100% y de vmax.v_tcp mm/
seg *) respectivamente. Estos valores se establecen automticamente en los casos
siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

*) Velocidad del TCP mxima para el tipo de robot utilizado y los valores normales
prcticos para el TCP.
La funcin MaxRobSpeed de RAPID devuelve el mismo valor.

Ejemplo
VelSet 50, 800;
MoveL p1, v1000, z10, tool1;
MoveL p2, v2000, z10, tool1;
MoveL p3, v1000\T:=5, z10, tool1;

La velocidad es de 500 mm/seg hasta el punto p1 y de 800 mm/seg hasta el punto


p2. Son necesarios 10 segundos para moverse desde p2 hasta p3.

Limitaciones
La velocidad mxima no se tiene en cuenta cuando se especifica un tiempo en la
instruccin de posicionamiento.

Sintaxis
VelSet
[ Override := ] < expresin (IN) de num > ,
[ Max := ] < expresin (IN) de num > ;

Informacin relacionada
Descrito en:
Definicin de velocidad Tipos de datos - speeddata
Velocidad mxima del TCP para el robot actual Funcin - MaxRobSpeed
Instrucciones de posicionamiento Resumen sobre RAPID -
Movimiento

410 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WHILE
Instruccin

WHILE - Repite una o varias operaciones siempre y cuando...


WHILE se usa cuando es necesario repetir un conjunto de instrucciones siempre y
cuando la evaluacin de la expresin de la condicin determinada d como resultado
el valor TRUE.

Ejemplo
WHILE reg1 < reg2 DO
...
reg1 := reg1 + 1;
ENDWHILE

Repite las instrucciones que se encuentran dentro del bloque WHILE siempre y
cuando reg1 < reg2.

Argumentos
WHILE Condicin DO ... ENDWHILE
Condicin Tipo de dato: bool

La condicin cuya evaluacin debe dar como resultado TRUE para que se
ejecuten las instrucciones que se encuentran dentro del bloque WHILE.

Ejecucin de programas
1. Se evala la expresin de la condicin. Si la evaluacin de la expresin da como
resultado TRUE, se ejecutan las instrucciones que se encuentran dentro del bloque
WHILE.
2. A continuacin, la expresin de la condicin se evala de nuevo y, si el resultado de
la evaluacin es TRUE, se ejecutan de nuevo las instrucciones del bloque WHILE.
3. Este proceso contina hasta que el resultado de la evaluacin de la expresin d
como resultado FALSE.
En ese momento, la iteracin se termina y la ejecucin del programa contina en la
instruccin que sigue al bloque WHILE.
Si el resultado de la evaluacin de la expresin da como resultado FALSE desde el
principio, no se llegan a ejecutar las instrucciones y el control del programa se
transfiere inmediatamente a la instruccin que sigue al bloque WHILE.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 411


WHILE
Instruccin

Comentarios
Si es posible determinar el nmero de repeticiones, puede usarse la instruccin FOR.

Sintaxis
(EBNF)
WHILE <expresin condicional> DO
<lista de instrucciones>
ENDWHILE

Informacin relacionada
Descrito en:
Expresiones Caractersticas bsicas - Expresiones
Repetir un nmero determinado de veces Instrucciones - FOR

412 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WorldAccLim
Instruccin

WorldAccLim - Control de aceleracin en el sistema de


coordenadas mundo
WorldAccLim (limitacin de aceleracin en mundo) se usa para limitar la aceleracin
y deceleracin de la herramienta (y de la carga de la pinza) en el sistema de
coordenadas mundo.

Slo se implementa en el tipo de robot IRB5400-04 con movimiento sobre track.

La limitacin se consigue en el punto central de gravedad de la herramienta usada, la


carga real de la pinza (si la hay) y la brida de montaje del robot, en su conjunto.

Ejemplo
WorldAccLim \On := 3.5;

Se limita la aceleracin a 3,5 m s 2 .

WorldAccLim \Off;

La aceleracin se devuelve a su valor mximo (predeterminado).

Argumentos
WorldAccLim [\On] | [\Off]
[\On] Tipo de dato: num

El valor absoluto de la limitacin de aceleracin en m s 2 .

[\Off] Tipo de dato: switch

Aceleracin mxima (predeterminada).

Ejecucin de programas
Las limitaciones de aceleracin se aplican al siguiente segmento ejecutado por el robot
y es vlido hasta que se ejecuta una nueva instruccin WorldAccLim.

La aceleracin mxima (WorldAccLim \Off) se establece automticamente en los casos


siguientes:

- En los arranques en fro


- Cuando se carga un nuevo programa
- Cuando se inicia la ejecucin del programa desde el principio

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 413


WorldAccLim
Instruccin

Se recomienda usar slo un tipo de limitacin de la aceleracin. Si se usa una


combinacin de instrucciones WorldAccLim, AccSet y PathAccLim, el sistema reduce
la aceleracin y deceleracin en el orden siguiente:

- Segn WorldAccLim
- Segn AccSet
- Segn PathAccLim

Limitaciones
Slo puede usarse junto con el tipo de robot IRB5400-04 con movimiento sobre track.

La aceleracin mnima permitida es de 1 m s 2 .

Gestin de errores
Si el argumento On recibe un valor demasiado bajo, la variable de sistema ERRNO
cambia a ERR_ACC_TOO_LOW. A continuacin, este error puede ser gestionado en
el gestor de errores.

Sintaxis
WorldAccLim
[\On := <expresin (IN) de num >] | [\Off ];

Informacin relacionada
Descrito en:
Instrucciones de posicionamiento Resumen sobre RAPID - Movimiento
Datos de parmetros de movimiento Tipos de datos - motsetdata
Reduccin de la aceleracin Instrucciones - AccSet
Limitacin de la aceleracin a lo largo Instrucciones - PathAccLim
de la trayectoria

414 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Write
Instruccin Advanced functions (Funciones avanzadas)

Write - Escribe en un archivo o un canal serie alfanumrico


Write se usa para escribir en un archivo o un canal serie alfanumrico. Es posible
escribir el valor de determinados datos, adems de texto.

Ejemplos
Write logfile, "Ejecucin iniciada";

Se escribe el texto Ejecucin iniciada en el archivo al que se hace referencia en


logfile.

Write logfile, "N de piezas producidas="\Num:=reg1;

Se escribe el texto N de piezas producidas=5, por ejemplo, se escribe en el


archivo al que se hace referencia en logfile (suponiendo que el contenido de reg1
sea 5).

Argumentos
Write IODevice String [\Num] | [\Bool] | [\Pos] | [\Orient]
[\NoNewLine]
IODevice Tipo de dato: iodev

El nombre (la referencia) del archivo o canal serie actual.

String Tipo de dato: string

El texto a escribir.

[\Num] (nmero) Tipo de dato: num

El dato cuyo valor numrico se desea escribir a continuacin de la cadena de


texto.

[\Bool] (booleano) Tipo de dato: bool

El dato cuyo valor lgico se desea escribir a continuacin de la cadena de texto.

[\Pos] (posicin) Tipo de dato: pos

El dato cuya posicin se desea escribir a continuacin de la cadena de texto.

[\Orient] (orientacin) Tipo de dato: orient

El dato cuya orientacin se desea escribir a continuacin de la cadena de texto.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 415


Write
Advanced functions (Funciones avanzadas) Instruccin

[\NoNewLine] tipo de dato: switch

Omite el carcter de salto de lnea que suele indicar el final del texto.

Ejecucin de programas
La cadena de texto se escribe en un archivo o un canal serie especificado. Si no se usa
el argumento \NoNewLine, tambin se escribe un carcter de salto de lnea.

Si se usa uno de los argumentos \Num, \Bool, \Pos o \Orient, su valor se convierte en
primer lugar en una cadena de texto, antes de aadirla a la primera cadena. La
conversin del valor a una cadena de texto se realiza de la forma siguiente:

Argumento Valor Cadena de texto


\Num 23 "23"
\Num 1,141367 "1.14137"
\Bool TRUE "TRUE"
\Pos [1817.3,905.17,879.11] "[1817.3,905.17,879.11]"
\Orient [0.96593,0,0.25882,0] "[0.96593,0,0.25882,0]"

El valor se convierte en una cadena con un formato estndar de RAPID. Esto significa
en principio 6 dgitos significativos. Si la parte decimal es menor que 0,000005 o mayor
que 0,999995, el nmero se redondea a un entero.

Ejemplo
VAR iodev printer;
.
Open "com2:", printer\Write;
WHILE DInput(stopprod)=0 DO
produce_part;
Write printer, "Pieza producida="\Num:=reg1\NoNewLine;
Write printer, " "\NoNewLine;
Write printer, CTime();
ENDWHILE
Close printer;

Con cada ciclo, se enva a una impresora una lnea que contiene el nmero de la
pieza producida y la hora. La impresora est conectada al canal serie com2:. El
mensaje impreso puede tener el aspecto siguiente:

Pieza producida=473 09:47:15

416 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


Write
Instruccin Advanced functions (Funciones avanzadas)

Limitaciones
Los argumentos \Num, \Bool, \Pos y \Orient son excluyentes entre s y por tanto no
pueden usarse simultneamente en una misma instruccin.

Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para escritura.

Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Sintaxis
Write
[IODevice:=] <variable (VAR) de iodev>,
[String:=] <expresin (IN) de string>
[\Num:= <expresin (IN) de num> ]
| [\Bool:= <expresin (IN) de bool> ]
| [\Pos:= <expresin (IN) de pos> ]
| [\Orient:= <expresin (IN) de orient> ]
[\NoNewLine];

Informacin relacionada
Descrito en:
Apertura de un archivo o canal serie Resumen sobre RAPID -
Comunicacin

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 417


Write
Advanced functions (Funciones avanzadas) Instruccin

418 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WriteAnyBin
Instruccin Advanced functions (Funciones avanzadas)

WriteAnyBin - Escribe datos en un canal serie o un archivo


binario
WriteAnyBin (escribir cualquier binario) se utiliza para escribir cualquier tipo de dato
en un canal serie o un archivo binario.

Ejemplo
VAR iodev channel2;
VAR orient quat1 := [1, 0, 0, 0];
...
Open "com2:", channel2 \Bin;
WriteAnyBin channel2, quat1;
El dato de orientacin quat1 se escribe en el canal al que se hace referencia con
channel2.

Argumentos
WriteAnyBin IODevice Data
IODevice Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario que debe usarse con
la operacin de escritura.
Data Tipo de dato: ANYTYPE
La variable de tipo VAR o PERS que contiene la informacin que se desea
escribir.

Ejecucin de programas
Se escriben en el canal serie o el archivo binario especificado el nmero de bytes
necesario para los datos especificados.

Limitaciones
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para escritura.
Los datos que se desea escribir con esta instruccin deben tener un tipo de dato de valor
atomic, string o record. No se permite el uso de tipos de datos de semivalor ni sin
valor.
No se permite el uso de datos de matriz.
Manual de referencia de RAPID la parte 1, Instrucciones A-Z 419
WriteAnyBin
Advanced functions (Funciones avanzadas) Instruccin

Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Ejemplo
VAR iodev channel;
VAR num input;
VAR robtarget cur_robt;

Open "com2:", channel\Bin;

! Se enva el carcter de control enq


WriteStrBin channel, "\05";
! Esperar el carcter de control ack
input := ReadBin (channel \Time:= 0.1);
IF input = 6 THEN
! Enviar la posicin actual del robot
cur_robt := CRobT(\Tool:= tool1\WObj:= wobj1);
WriteAnyBin channel, cur_robt;
ENDIF

Close channel;

Se escribe en un canal serie binario la posicin actual del robot.

Sintaxis
WriteAnyBin
[IODevice:=] <variable (VAR) de iodev>,
[Data:=] <variable o variable persistente (INOUT) de ANYTYPE>;

Informacin relacionada
Descrito en:
Apertura y otras operaciones con Resumen sobre RAPID - Comunicacin
canales serie o archivos
Lectura de datos de un canal serie binario Funciones - ReadAnyBin
o archivos binarios

420 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WriteBin
Instruccin Advanced functions (Funciones avanzadas)

WriteBin - Escribe en un canal serie binario


WriteBin se usa para escribir un nmero de bytes en un canal serie binario.

Ejemplo
WriteBin channel2, text_buffer, 10;

Se escriben 10 caracteres de la lista text_buffer en el canal al que se hace


referencia con channel2.

Argumentos
WriteBin IODevice Buffer NChar
IODevice Tipo de dato: iodev

El nombre (la referencia) del canal serie actual.

Buffer Tipo de dato: matriz de num

La lista (matriz) que contiene los nmeros (caracteres) que se desean escribir.

NChar (nmero de caracteres) Tipo de dato: num

El nmero de caracteres a escribir desde Buffer.

Ejecucin de programas
Se escribe en el canal serie la cantidad especificada de nmeros (caracteres) de la lista.

Limitaciones
Esta instruccin slo puede usarse con canales serie que hayan sido abiertos para
lectura y escritura binaria.

Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 421


WriteBin
Advanced functions (Funciones avanzadas) Instruccin

Ejemplo
VAR iodev channel;
VAR num out_buffer{20};
VAR num input;
VAR num nchar;
Open "com2:", channel\Bin;

out_buffer{1} := 5;( enq )


WriteBin channel, out_buffer, 1;
input := ReadBin (channel \Time:= 0.1);

IF input = 6 THEN( ack )


out_buffer{1} := 2;( stx )
out_buffer{2} := 72;( H )
out_buffer{3} := 101;( o )
out_buffer{4} := 108;( l )
out_buffer{5} := 108;( a )
out_buffer{6} := 111;( )
out_buffer{7} := 32;( )
out_buffer{8} := StrToByte("w"\Char);( m )
out_buffer{9} := StrToByte("o"\Char);( u )
out_buffer{10} := StrToByte("r"\Char);( n )
out_buffer{11} := StrToByte("l"\Char);( d )
out_buffer{12} := StrToByte("d"\Char);( o )
out_buffer{13} := 3;( etx )
WriteBin channel, out_buffer, 13;
ENDIF

Se escribe la cadena de texto Hola mundo (con los caracteres de control


asociados) en un canal serie. La funcin StrToByte se usa en los mismos casos
para convertir una cadena en un dato de byte (num).

Sintaxis
WriteBin
[IODevice:=] <variable (VAR) de iodev>,
[Buffer:=] <matriz {*} (IN) de num>,
[NChar:=] <expresin (IN) de num>;

Informacin relacionada
Descrito en:
Apertura y otras operaciones con canales serie Resumen sobre RAPID -
Comunicacin
Conversin de una cadena de caracteres a datos de byte Funciones - StrToByte
Datos de byte Tipos de datos - byte

422 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WriteStrBin
Instruccin Advanced functions (Funciones avanzadas)

WriteStrBin - Escribe una cadena de caracteres en un canal


serie binario
WriteStrBin (escribir cadena de caracteres de binario) se utiliza para escribir una
cadena de un canal serie o un archivo binario.

Ejemplo
WriteStrBin channel2, "Hola mundo\0A";

Se escribe la cadena "Hola mundo\0A" en el canal al que se hace referencia con


channel2. En este caso, la cadena termina con el carcter de salto de lnea \0A.
Todos los caracteres y valores hexadecimales escritos con WriteStrBin
permanecen sin cambios en el sistema.

Argumentos
WriteStrBin IODevice Str
IODevice Tipo de dato: iodev

El nombre (la referencia) del canal serie actual.

Str (cadena de caracteres) Tipo de dato: string

El texto a escribir.

Ejecucin de programas
La cadena de texto se escribe en el canal serie o el archivo especificado.

Limitaciones
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos
para lectura y escritura binaria.

Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de
errores.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 423


WriteStrBin
Advanced functions (Funciones avanzadas) Instruccin

Ejemplo
VAR iodev channel;
VAR num input;
Open "com2:", channel\Bin;

! Se enva el carcter de control enq


WriteStrBin channel, "\05";
! Esperar el carcter de control ack
input := ReadBin (channel \Time:= 0.1);
IF input = 6 THEN
! Enviar un texto que comienza con el carcter de control stx y termina con el carcter etx
WriteStrBin channel, "\02Hola mundo\03";
ENDIF

Close channel;

Se escribe la cadena de texto Hola mundo (con los caracteres de control asociados
en formato hexadecimal) en un canal serie binario.

Sintaxis
WriteStrBin
[IODevice:=] <variable (VAR) de iodev>,
[Str:=] <expresin (IN) de string>;

Informacin relacionada
Descrito en:
Apertura y otras operaciones con canales serie Resumen sobre RAPID -
Comunicacin

424 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZBoxDef
Instruccin Advanced functions (Funciones avanzadas)

WZBoxDef - Define una zona mundo con forma de prisma


WZBoxDef (definicin de zona mundo rectangular) se usa para definir una zona mundo
con forma de prisma recto cuyos ejes son paralelos a los ejes del sistema de
coordenadas mundo.

Ejemplo
.
corner2

Z
Y Prisma

corner1

X Mnimo 10 mm
Sistema de coordenadas mundo

VAR shapedata volume;


CONST pos corner1:=[200,100,100];
CONST pos corner2:=[600,400,400];
...
WZBoxDef \Inside, volume, corner1, corner2;

Define un prisma cuyas coordenadas son paralelas a los ejes del sistema de
coordenadas mundo. Se define a partir de las esquinas opuestas corner1 y
corner2.

Argumentos
WZBoxDef [\Inside] | [\Outside] Shape LowPoint HighPoint
\Inside Tipo de dato: switch

Define el volumen que contiene el prisma.

\Outside Tipo de dato: switch

Define el volumen que queda fuera del prisma (el volumen inverso).

Es imprescindible especificar uno de los argumentos \Inside o \Outside.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 425


WZBoxDef
Advanced functions (Funciones avanzadas) Instruccin

Shape Tipo de dato: shapedata

Una variable para el almacenamiento del volumen definido (datos privados del
sistema).

LowPoint Tipo de dato: pos

La posicin (x,y,x) en mm que define una esquina inferior del prisma.

HighPoint Tipo de dato: pos

La posicin (x,y,z) en mm que define la esquina diagonalmente opuesta a la


anterior.

Ejecucin de programas
La definicin del prisma se almacena en la variable de tipo shapedata (el argumento
Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.

Limitaciones
Las posiciones de LowPoint y HighPoint deben ser vlidas para las esquinas opuestas
(con valores distintos de coordenadas x, y, z).

Si el robot se usa para apuntar hacia fuera de LowPoint o HighPoint, el objeto de


trabajo wobj0 debe estar activado (se usa como argumento el componente trans de
robtarget, por ejemplo p1.trans).

Sintaxis
WZBoxDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[LowPoint:=]<expresin (IN) de pos>,
[HighPoint:=]<expresin (IN) de pos>;

426 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZBoxDef
Instruccin Advanced functions (Funciones avanzadas)

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales Instrucciones - WZDOSet
basadas en zonas mundo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 427


WZBoxDef
Advanced functions (Funciones avanzadas) Instruccin

428 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZCylDef
Instruccin Advanced functions (Funciones avanzadas)

WZCylDef - Define una zona mundo con forma cilndrica


WZCylDef (definicin de zona mundo cilndrica) se usa para definir una zona mundo
que tiene la forma de un cilindro con el eje del cilindro paralelo al eje z del sistema de
coordenadas mundo.

Ejemplo

R2 (Mnimo 5 mm)

H2 (Mnimo 10 mm)
Z
Y

C2

X
Sistema de coordenadas mundo

VAR shapedata volume;


CONST pos C2:=[300,200,200];
CONST num R2:=100;
CONST num H2:=200;
...
WZCylDef \Inside, volume, C2, R2, H2;

Define un cilindro con el centro de la circunferencia inferior en C2, el radio R2


y la altura H2.

Argumentos
WZCylDef [\Inside] | [\Outside] Shape CentrePoint Radius Height
\Inside Tipo de dato: switch

Define el volumen que contiene el cilindro.

\Outside Tipo de dato: switch

Define el volumen que queda fuera del cilindro (el volumen inverso).

Es imprescindible especificar uno de los argumentos \Inside o \Outside.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 429


WZCylDef
Advanced functions (Funciones avanzadas) Instruccin

Shape Tipo de dato: shapedata

Una variable para el almacenamiento del volumen definido (datos privados del
sistema).

CentrePoint Tipo de dato: pos

La posicin (x,y,z) en mm que define el centro de un extremo circular del


cilindro.

Radius Tipo de dato: num

El radio del cilindro, en mm.

Height Tipo de dato: num

La altura del cilindro, en mm.


Si es positiva (direccin +z), el argumento CentrePoint es el centro del extremo
inferior del cilindro (como en el ejemplo anterior).
Si es negativa (direccin -z), el argumento CentrePoint es el centro del extremo
superior del cilindro.

Ejecucin de programas
La definicin del cilindro se almacena en la variable de tipo shapedata (el argumento
Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.

Limitaciones
Si el robot se usa para apuntar hacia fuera de CentrePoint, el objeto de trabajo wobj0
debe estar activo (se usa como argumento el componente trans de robtarget, por
ejemplo, p1.trans).

Sintaxis
WZCylDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[CentrePoint:=]<expresin (IN) de pos>,
[Radius:=]<expresin (IN) de num>,
[Height:=]<expresin (IN) de num>;

430 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZCylDef
Instruccin Advanced functions (Funciones avanzadas)

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 431


WZCylDef
Advanced functions (Funciones avanzadas) Instruccin

432 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZDisable
Instruccin Advanced functions (Funciones avanzadas)

WZDisable - Desactiva la supervisin de las zonas mundo


temporales
WZDisable (desactivar zona mundo) se utiliza para desactivar la supervisin de una
zona mundo temporal, definida anteriormente para detener el movimiento o activar
una salida.

Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
ENDPROC

Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place.

Argumentos
WZDisable WorldZone
WorldZone Tipo de dato: wztemporary

Una variable o una variable persistente de tipo wztemporary que contiene la


identidad de la zona mundo que debe desactivarse.

Ejecucin de programas
La zona mundo temporal se desactiva. Esto significa que la supervisin del TCP del
robot respecto del volumen correspondiente se detiene temporalmente. Puede
reactivarse mediante la instruccin WZEnable.

Limitaciones
Slo es posible desactivar las zonas mundo temporales. Las zonas mundo estacionarias
estn siempre activadas.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 433


WZDisable
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
WZDisable
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Activacin de zonas mundo Instrucciones - WZEnable
Eliminacin de zonas mundo Instrucciones - WZFree

434 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZDOSet
Instruccin Advanced functions (Funciones avanzadas)

WZDOSet - Activacin de salidas digitales basadas en zonas


mundo
WZDOSet (activar salida digital a partir de una zona mundo) se utiliza para definir la
accin y para activar una zona mundo para la supervisin de los movimientos del
robot.

Despus de la ejecucin de esta instruccin, cuando el TCP del robot o los ejes del
robot o los ejes externos (la zona de los ejes) se encuentra dentro de la zona mundo
definida o se est acercando a ella, se establece una seal digital de salida con el valor
especificado.

Ejemplo
VAR wztemporary service;

PROC zone_output()
VAR shapedata volume;
CONST pos p_service:=[500,500,700];
...
WZSphDef \Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
ENDPROC

Se define la zona mundo temporal service en el programa de aplicacin. Dicha


zona establece la seal do_service cuando el TCP del robot se encuentra dentro
de la esfera definida, durante la ejecucin del programa o durante los
desplazamientos.

Argumentos
WZDOSet [\Temp] | [\Stat] WorldZone [\Inside] | [\Before] Shape
Signal SetValue
\Temp (temporal) Tipo de dato: switch

La zona mundo a definir es una zona mundo temporal.

\Stat (estacionaria) Tipo de dato: switch

La zona mundo a definir es una zona mundo estacionaria.

Es imprescindible especificar uno de los argumentos \Temp o \Stat.

WorldZone Tipo de dato: wztemporary

Una variable o una variable persistente que se actualizar con la identidad


(el valor numrico) de la zona mundo.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 435


WZDOSet
Advanced functions (Funciones avanzadas) Instruccin

Si se usa el modificador \Temp, el tipo de dato debe ser wztemporary.


Si se usa el modificador \Stat, el tipo de dato debe ser wzstationary.

\Inside Tipo de dato: switch

La seal digital de salida se activa cuando el TCP del robot se encuentra dentro
del volumen definido.

\Before Tipo de dato: switch

La seal digital de salida se activa antes de que el TCP del robot alcance el
volumen definido (lo antes posible antes del volumen).

Es imprescindible especificar uno de los argumentos \Inside o \Before.

Shape Tipo de dato: shapedata

La variable que define el volumen de la zona mundo.

Signal Tipo de dato: signaldo

El nombre de la seal digital de salida que debe cambiar de valor.

Si se utiliza una zona mundo estacionaria, la seal debe estar protegida contra
escritura frente al acceso del usuario (RAPID, TP). Cambie Acceso = Sistema
para la seal en Parmetros sistema.

SetValue Tipo de dato: dionum

El valor deseado para la seal (0 1) cuando el TCP se encuentra dentro del


volumen o slo antes de que entre en el volumen.

Cuando est fuera del volumen o cerca de entrar en l, la seal cambia al valor
opuesto.

Ejecucin de programas
Se activa la zona mundo definida. A partir de ese momento, se supervisa la posicin del
TCP del robot (o la posicin de los ejes del robot o de los ejes externos). La salida se
establece cuando la posicin del TCP del robot (o la posicin de los ejes del robot o de
los ejes externos) se encuentra dentro del volumen (\Inside) o se acerca al borde del
volumen (\Before).

Si se usa WZHomeJointDef o WZLimJointDef junto con WZDOSet, la seal digital de


salida se establece slo si todos los ejes cuyo espacio de ejes se supervisa se encuentran
dentro del espacio de ejes o cerca de ste.

436 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZDOSet
Instruccin Advanced functions (Funciones avanzadas)

Ejemplo
VAR wztemporary home;
VAR wztemporary service;
PERS wztemporary equip1:=[0];

PROC main()
...
! Definicin de todas las zonas mundo temporales
zone_output;
...
! equip1 en el rea de trabajo del robot
WZEnable equip1;
...
! equip1 fuera del rea de trabajo del robot
WZDisable equip1;
...
! Ya no se usa equip1
WZFree equip1;
...
ENDPROC

PROC zone_output()
VAR shapedata volume;
CONST pos p_home:=[800,0,800];
CONST pos p_service:=[800,800,800];
CONST pos p_equip1:=[-800,-800,0];
...
WZSphDef \Inside, volume, p_home, 50;
WZDOSet \Temp, home \Inside, volume, do_home, 1;
WZSphDef \Inside, volume, p_service, 50;
WZDOSet \Temp, service \Inside, volume, do_service, 1;
WZCylDef \Inside, volume, p_equip1, 300, 1000;
WZLimSup \Temp, equip1, volume;
! equip1 fuera del rea de trabajo del robot
WZDisable equip1;
ENDPROC

Definicin de zonas mundo temporales home y service en el programa de


aplicacin, para establecer las seales do_home y do_service cuando el robot se
encuentra dentro de la esfera home o service respectivamente, durante la
ejecucin del programa o durante los movimientos.

Tambin se define la zona mundo temporal equip1, que est activa slo en la
parte del programa durante la cual equip1 se encuentra dentro del rea de trabajo
del robot. En ese momento el robot se para antes de entrar en el volumen equip1,
tanto durante la ejecucin del programa como durante el movimiento. equip1
puede desactivarse o activarse desde otras tareas de programa usando el valor de
la variable persistente equip1.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 437


WZDOSet
Advanced functions (Funciones avanzadas) Instruccin

Limitaciones
Las zonas mundo no pueden redefinirse usando la misma variable en el argumento
WorldZone.

Las zonas mundo estacionarias no pueden ser desactivadas, activadas de nuevo ni


borrarse en el programa de RAPID.

La zona mundo temporal puede desactivarse (WZDisable), activarse de nuevo


(WZEnable) o borrarse (WZFree) en el programa de RAPID.

Sintaxis
WZDOSet
(\Temp) | (\Stat) ,
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>
(\Inside) | (\Before) ,
[Shape:=]<variable (VAR) de shapedata>,
[Signal:=]<variable (VAR) de signaldo>,
[SetValue:=]<expresin (IN) de dionum>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Zona mundo temporal Tipos de datos - wztemporary
Zona mundo estacionaria Tipos de datos - wzstationary
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma recto
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Modo de acceso a seales Gua del usuario - Parmetros de
sistema Seales de E/S

438 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZEnable
Instruccin Advanced functions (Funciones avanzadas)

WZEnable - Activa la supervisin de las zonas mundo


temporales
WZEnable (activar zona mundo) se utiliza para reactivar la supervisin de una zona
mundo temporal, definida anteriormente para detener el movimiento o activar una
salida.

Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
ENDPROC

Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place, pero se reactiva antes del movimiento hacia p_home

Argumentos
WZEnable WorldZone
WorldZone Tipo de dato: wztemporary

Una variable o una variable persistente de tipo wztemporary que contiene la


identidad de la zona mundo que debe activarse.

Ejecucin de programas
La zona mundo temporal se reactiva. Recuerde que las zonas mundo se activan
automticamente cuando se crean. Slo es necesario reactivarlas cuando han sido
desactivadas anteriormente mediante WZDisable.

Limitaciones
Slo es posible desactivar y reactivar las zonas mundo temporales. Las zonas mundo
estacionarias estn siempre activadas.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 439


WZEnable
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
WZEnable
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo
Desactivacin de zonas mundo Instrucciones - WZDisable
Eliminacin de zonas mundo Instrucciones - WZFree

440 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZFree
Instruccin Advanced functions (Funciones avanzadas)

WZFree - Elimina la supervisin de las zonas mundo


temporales
WZFree (liberar zona mundo) se utiliza para eliminar la definicin de una zona mundo
temporal, definida anteriormente para detener el movimiento o activar una salida.

Ejemplo
VAR wztemporary wzone;
...
PROC ...
WZLimSup \Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
WZFree wzone;
ENDPROC
Al moverse hacia p_pick, se comprueba la posicin del TCP del robot para que
no entre dentro del volumen wzone especificado. Esta supervisin no se realiza
cuando se va hacia p_place, pero se reactiva antes del movimiento hacia p_home.
Cuando se alcanza esta posicin, se elimina la definicin de zona mundo.

Argumentos
WZFree WorldZone
WorldZone Tipo de dato: wztemporary
Una variable o una variable persistente de tipo wztemporary que contiene la
identidad de la zona mundo que debe eliminarse.

Ejecucin de programas
La zona mundo temporal se desactiva primero, tras lo cual su definicin se elimina.
Despus de eliminar una zona mundo temporal, no es posible reactivarla ni
desactivarla.

Limitaciones
Slo es posible desactivar, reactivar o eliminar las zonas mundo temporales. Las zonas
mundo estacionarias estn siempre activadas.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 441


WZFree
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
WZFree
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Datos de zona mundo temporal Tipos de datos - wztemporary
Activacin de la supervisin de Instrucciones - WZLimSup
lmites de las zonas mundo
Activacin de salidas digitales Instrucciones - WZDOSet
basadas en zonas mundo
Desactivacin de zonas mundo Instrucciones - WZDisable
Activacin de zonas mundo Instrucciones - WZEnable

442 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZHomeJointDef
Instruccin Advanced functions (Funciones avanzadas)

WZHomeJointDef - Define una zona mundo para las


posiciones iniciales de los ejes
WZHomeJointDef (definicin de zona mundo de posiciones iniciales de ejes) se utiliza
para definir una zona mundo en las coordenadas de los ejes del robot y de los ejes
externos para usarlas como posicin INICIO o de SERVICIO.

Ejemplo
VAR wzstationary home;
...
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget home_pos := [ [ 0, 0, 0, 0, 0, -45],
[ 0, 9E9, 9E9, 9E9, 9E9, 9E9] ];
CONST jointtarget delta_pos := [ [ 2, 2, 2, 2, 2, 2],
[ 5, 9E9, 9E9, 9E9, 9E9, 9E9] ];
...
WZHomeJointDef \Inside, joint_space, home_pos, delta_pos;
WZDOSet \Stat, home \Inside, joint_space, do_home, 1;
ENDPROC

Definicin y activacin de la zona mundo estacionaria home, que cambia la seal


do_home a 1 cuando todos los ejes del robot y el eje externo extax.eax_a se
encuentran en la posicin de ejes home_pos (dentro de +/- delta_pos para cada
eje) durante la ejecucin del programa y durante los desplazamientos. la variable
joint_space del tipo de dato shapedata se usa para transferir datos de la
instruccin WZHomeJointDef a la instruccin WZDOSet.

Argumentos
WZHomeJointDef [\Inside] | [\Outside] Shape
MiddleJointVal DeltaJointVal
\Inside Tipo de dato: switch

Define el espacio de ejes que existe dentro de MiddleJointVal +/- DeltaJointVal.

\Outside Tipo de dato: switch

Define el espacio de ejes que existe fuera de MiddleJointVal +/- DeltaJointVal


(espacio de ejes inverso).

Shape Tipo de dato: shapedata

Una variable para el almacenamiento del espacio de ejes (datos privados del
sistema).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 443


WZHomeJointDef
Advanced functions (Funciones avanzadas) Instruccin

MiddleJointVal Tipo de dato: jointtarget

La posicin en coordenadas de ejes para el centro del espacio de ejes que se desea
definir.
Especifica la posicin para cada eje del robot y cada eje externo (grados en el
caso de los ejes de rotacin y mm en el caso de los ejes lineales). Especifica la
posicin en posiciones absolutas de los ejes (no dentro del sistema de
coordenadas de desplazamiento EOffsSet-EOffsOn en el caso de los ejes
externos).
El valor 9E9 en un eje significa que el eje no se supervisar.
Los ejes externos no activos tambin usan 9E9 en el momento de la
programacin.

DeltaJointVal Tipo de dato: jointtarget

La variacin de posicin delta +/- en coordenadas de ejes desde el centro del


espacio de ejes.
El valor debe ser mayor que 0 en todos los ejes que se desee supervisar.

DeltaJointVal
MiddleJointVal

_ DeltaJointVal
+

ngulo de brazo

Figura 49 Definicin de espacios de ejes para los ejes de rotacin

MiddleJointVal

DeltaJointVal
DeltaJointVal

_ +

Posicin de brazo

Figura 50 Definicin de espacios de ejes para los ejes lineales

Ejecucin de programas
La definicin del espacio de ejes se almacena en la variable de tipo shapedata (el
argumento Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.

Si se usa WZHomeJointDef junto con WZDOSet, la seal digital se establece slo si


todos los ejes activos con supervisin de espacio de ejes se encuentran dentro del
espacio de ejes o cerca de l.

444 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZHomeJointDef
Instruccin Advanced functions (Funciones avanzadas)

Si se usa WZHomeJointDef con un espacio exterior de ejes (argumento \Outside) junto


con WZLimSup, se detiene el robot tan pronto como uno de los ejes activos con
supervisin de espacio de ejes alcanza el espacio de ejes.

Si se usa WZHomeJointDef con un espacio interior de ejes (argumento \Inside) junto


con WZLimSup, se detiene el robot tan pronto como el ltimo de los ejes activos con
supervisin de espacio de ejes alcanza el espacio de ejes. Esto significa que uno o
varios ejes, pero no todos los ejes activos y supervisados, se encontrarn dentro del
espacio de ejes en un momento determinado.

En el momento de la ejecucin de la instruccin ActUnit o DeactUnit para la activacin


o desactivacin de unidades mecnicas, se actualiza el estado de supervisin de la
posicin INICIO o la limitacin del rea de trabajo.

Limitaciones
Slo las unidades mecnicas activas y sus ejes activos en el momento de la activacin
de la zona mundo (con la instruccin WZDOSet o WZLimSup), se incluyen en la
supervisin de la posicin INICIO respecto de la limitacin del rea de trabajo.
Adems, para que sean supervisados, la unidad mecnica y sus ejes deben seguir
estando activos durante el movimiento desde el programa o mediante un movimiento
especial.

Por ejemplo, si un eje con supervisin est fuera de la posicin de ejes INICIO pero
est desactivado, esto no impide que la seal digital de salida de la posicin de ejes
INICIO se establezca si todos los dems ejes activos con supervisin de espacio se
encuentran dentro de la posicin de ejes INICIO. Cuando se activa de nuevo el eje, ste
se incluye en la supervisin y el sistema de robot se encuentra fuera de la posicin de
ejes INICIO. La salida digital se restablece.

Sintaxis
WZHomeJointDef
[\Inside] | [\Outside],
[Shape:=]<variable (VAR) de shapedata>,
[MiddleJointVal :=]<expresin (IN) de jointtarget>,
[DeltaJointVal :=]<expresin (IN) de jointtarget>;

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 445


WZHomeJointDef
Advanced functions (Funciones avanzadas) Instruccin

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de la supervisin de lmites Instrucciones - WZLimSup
de las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo

446 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZLimJointDef
Instruccin Advanced functions (Funciones avanzadas)

WZLimJointDef - Define una zona mundo para la limitacin


de los ejes
WZLimJointDef (definicin de zona mundo de posiciones de lmite de ejes) se utiliza
para definir una zona mundo en las coordenadas de los ejes del robot y de los ejes
externos para usarlas para la limitacin del rea de trabajo.

Con WZLimJointDef es posible limitar el rea de trabajo de cada eje del robot y cada
eje externo en el programa RAPID, aparte de la limitacin que puede realizar con
Parmetros sistema/Manipulador/Brazo/irb_.../Lmite sup. eje ... Lmite inf. eje.

Ejemplo
VAR wzstationary work_limit;
...
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget low_pos := [ [ -90, 9E9, 9E9, 9E9, 9E9, 9E9],
[ -1000, 9E9, 9E9, 9E9, 9E9,
CONST jointtarget high_pos := [ [ 90, 9E9, 9E9, 9E9,9E9, 9E9],
[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
...
WZLimJointDef \Outside, joint_space, low_pos, high_pos;
WZLimSup \Stat, work_limit, joint_space;
ENDPROC

Definicin y activacin de la zona mundo estacionaria work_limit, que limita el


rea de trabajo del eje del robot 1 a -90 y +90 grados y de los ejes externos
extax.eax_a a -1.000 mm durante la ejecucin del programa y los movimientos.
La variable joint_space del tipo de dato shapedata se usa para transferir datos de
la instruccin WZLimJointDef a la instruccin WZLimSup.

Argumentos
WZLimJointDef [\Inside] | [\Outside] Shape
LowJointVal HighJointVal
\Inside Tipo de dato: switch

Define el espacio de ejes que existe dentro de LowJointVal ... HighJointVal.

\Outside Tipo de dato: switch

Define el espacio de ejes que existe fuera de LowJointVal ... HighJointVal


(espacio de ejes inverso).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 447


WZLimJointDef
Advanced functions (Funciones avanzadas) Instruccin

Shape Tipo de dato: shapedata

Una variable para el almacenamiento del espacio de ejes (datos privados del
sistema).

LowJointVal Tipo de dato: jointtarget

La posicin en coordenadas de ejes para el lmite inferior del espacio de ejes que
se desea definir.
Especifica la posicin para cada eje del robot y cada eje externo (grados en el
caso de los ejes de rotacin y mm en el caso de los ejes lineales). Especifica la
posicin en posiciones absolutas de los ejes (no dentro del sistema de
coordenadas de desplazamiento EOffsSet-EOffsOn en el caso de los ejes
externos).
El valor 9E9 en un eje significa que el eje no se supervisar en cuanto al lmite
inferior. Los ejes externos no activos tambin usan 9E9 en el momento de la
programacin.

HighJointVal Tipo de dato: jointtarget

La posicin en coordenadas de ejes para el lmite superior del espacio de ejes que
se desea definir.
Especifica la posicin para cada eje del robot y cada eje externo (grados en el
caso de los ejes de rotacin y mm en el caso de los ejes lineales). Especifica la
posicin en posiciones absolutas de los ejes (no dentro del sistema de
coordenadas de desplazamiento EOffsSet-EOffsOn en el caso de los ejes
externos).
El valor 9E9 en un eje significa que el eje no se supervisar en cuanto al lmite
superior. Los ejes externos no activos tambin usan 9E9 en el momento de la
programacin.

(El valor de HighJointVal-LowJointVal de cada eje debe ser superior a 0 para todos los
ejes cuyos lmites inferior y superior se desea supervisar.

LowJointVal

_
+ HighJointVal

ngulo de brazo

Figura 51 Definicin de espacios de ejes para los ejes de rotacin

448 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZLimJointDef
Instruccin Advanced functions (Funciones avanzadas)

LowJointVal HighJointVal

_ +

Posicin de brazo

Figura 52 Definicin de espacios de ejes para los ejes lineales

Ejecucin de programas
La definicin del espacio de ejes se almacena en la variable de tipo shapedata (el
argumento Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.

Si se usa WZLimJointDef junto con WZDOSet, la seal digital se establece slo si todos
los ejes activos con supervisin de espacio de ejes se encuentran dentro del espacio de
ejes o cerca de l.

Si se usa WZLimJointDef con un espacio exterior de ejes (argumento \Outside) junto


con WZLimSup, se detiene el robot tan pronto como uno de los ejes activos con
supervisin de espacio de ejes alcanza el espacio de ejes.

Si se usa WZLimJointDef con un espacio interior de ejes (argumento \Inside) junto con
WZLimSup, se detiene el robot tan pronto como el ltimo de los ejes activos con
supervisin de espacio de ejes alcanza el espacio de ejes. Esto significa que uno o
varios ejes, pero no todos los ejes activos y supervisados, se encontrarn dentro del
espacio de ejes en un momento determinado.

En el momento de la ejecucin de la instruccin ActUnit o DeactUnit, se actualiza el


estado de la supervisin.

Limitaciones
Slo las unidades mecnicas activas y sus ejes activos en el momento de la activacin
de la zona mundo (con la instruccin WZDOSet o WZLimSup), se incluyen en la
supervisin de la posicin INICIO respecto de la limitacin del rea de trabajo.
Adems, para que sean supervisados, la unidad mecnica y sus ejes deben seguir
estando activos durante el movimiento desde el programa o mediante un movimiento
especial.

Por ejemplo, si un eje con supervisin est fuera de la posicin de ejes INICIO pero
est desactivado, esto no impide que la seal digital de salida de la posicin de ejes
INICIO se establezca si todos los dems ejes activos con supervisin de espacio se
encuentran dentro de la posicin de ejes INICIO. Cuando se activa de nuevo el eje, ste
se incluye en la supervisin y el sistema de robot se encuentra fuera de la posicin de
ejes INICIO. La salida digital se restablece.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 449


WZLimJointDef
Advanced functions (Funciones avanzadas) Instruccin

Sintaxis
WZLimJointDef
[\Inside] | [\Outside],
[Shape:=]<variable (VAR) de shapedata>,
[LowJointVal :=]<expresin (IN) de jointtarget>,
[HighJointVal :=]<expresin (IN) de jointtarget>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en Instrucciones - WZBoxDef
forma de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo

450 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZLimSup
Instruccin Advanced functions (Funciones avanzadas)

WZLimSup - Activa la supervisin de lmites de las zonas


mundo
WZLimSup (supervisin de lmites de zona mundo) se usa para definir la accin y para
activar una zona mundo para la supervisin del rea de trabajo del robot.
Despus de la ejecucin de esta instruccin, cuando el TCP llega a la zona mundo
definida o cuando los ejes del robot o los ejes externos alcanzan la zona mundo
definida para los ejes, el movimiento se detiene tanto durante la ejecucin del
programa como durante los movimientos.

Ejemplo
VAR wzstationary max_workarea;
...
PROC POWER_ON()
VAR shapedata volume;
...
WZBoxDef \Outside, volume, corner1, corner2;
WZLimSup \Stat, max_workarea, volume;
ENDPROC
Definicin y activacin de la zona mundo estacionaria max_workarea, con la
forma del rea que queda fuera de un prisma (almacenado temporalmente en
volume) y la supervisin del rea de trabajo para la realizacin de acciones.
El robot se detiene y muestra un mensaje de error antes de entrar en el rea que
queda fuera del prisma.

Argumentos
WZLimSup [\Temp] | [\Stat] WorldZone Shape
\Temp (temporal) Tipo de dato: switch
La zona mundo a definir es una zona mundo temporal.
\Stat (estacionaria) Tipo de dato: switch
La zona mundo a definir es una zona mundo estacionaria.
Es imprescindible especificar uno de los argumentos \Temp o \Stat.
WorldZone Tipo de dato: wztemporary
Una variable o una variable persistente que se actualizar con la identidad
(el valor numrico) de la zona mundo.
Si se usa el modificador \Temp, el tipo de dato debe ser wztemporary.
Si se usa el modificador \Stat, el tipo de dato debe ser wzstationary.

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 451


WZLimSup
Advanced functions (Funciones avanzadas) Instruccin

Shape Tipo de dato: shapedata

La variable que define el volumen de la zona mundo.

Ejecucin de programas
Se activa la zona mundo definida. A partir de ese momento, se supervisa la posicin del
TCP del robot o la posicin de los ejes del robot o de los ejes externos. Si se alcanza el
rea definida, se detiene el movimiento.

Si se usa WZLimJointDef o WZHomeJointDef con un espacio exterior de ejes


(argumento \Outside) junto con WZLimSup, se detiene el robot tan pronto como uno de
los ejes activos con supervisin de espacio de ejes alcanza el espacio de ejes.

Si se usa WZLimJointDef o WZHomeJointDef con un espacio interior de ejes


(argumento \Inside) junto con WZLimSup, se detiene el robot tan pronto como el ltimo
de los ejes activos con supervisin de espacio de ejes alcanza el espacio de ejes. Esto
significa que uno o varios ejes, pero no todos los ejes activos y supervisados, se
encontrarn dentro del espacio de ejes en un momento determinado.

En el momento de la ejecucin de la instruccin ActUnit o DeactUnit, se actualiza el


estado de la supervisin.

Ejemplo
VAR wzstationary box1_invers;
VAR wzstationary box2;

PROC wzone_power_on()
VAR shapedata volume;
CONST pos box1_c1:=[500,-500,0];
CONST pos box1_c2:=[-500,500,500];
CONST pos box2_c1:=[500,-500,0];
CONST pos box2_c2:=[200,-200,300];
...
WZBoxDef \Outside, volume, box1_c1, box1_c2;
WZLimSup \Stat, box1_invers, volume;
WZBoxDef \Inside, volume, box2_c1, box2_c2;
WZLimSup \Stat, box2, volume;
ENDPROC

Limitacin del rea de trabajo para el robot con las siguientes zonas mundo
estacionarias:

- Fuera del rea de trabajo cuando se est fuera de box1_invers


- Fuera del rea de trabajo cuando se est dentro de box2

Si la rutina est conectada al evento de sistema POWER ON (ARRANQUE),


estas zonas mundo estarn siempre activas en el sistema, tanto para los
movimientos del programa como para el movimiento manual.

452 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZLimSup
Instruccin Advanced functions (Funciones avanzadas)

Limitaciones
Las zonas mundo no pueden redefinirse usando la misma variable en el argumento
WorldZone.

Las zonas mundo estacionarias no pueden ser desactivadas, activadas de nuevo ni


borrarse en el programa de RAPID.

La zona mundo temporal puede desactivarse (WZDisable), activarse de nuevo


(WZEnable) o borrarse (WZFree) en el programa de RAPID.

Sintaxis
WZLimSup
[\Temp] | [\Stat],
[WorldZone:=]<variable o variable persistente (INOUT) de wztemporary>,
[Shape:=] <variable (VAR) de shapedata>;

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Zona mundo temporal Tipos de datos - wztemporary
Zona mundo estacionaria Tipos de datos - wzstationary
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma recto
Definicin de zonas mundo esfricas Instrucciones - WZSphDef
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para Instruccin - WZLimJointDef
las posiciones lmite de los ejes
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 453


WZLimSup
Advanced functions (Funciones avanzadas) Instruccin

454 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZSphDef
Instruccin Advanced functions (Funciones avanzadas)

WZSphDef - Define una zona mundo con forma esfrica


WZSphDef (definicin de zona mundo esfrica) se usa para definir una zona mundo
con la forma de una esfera.

Ejemplo

Z
Y
C1

R1 (mnimo 5 mm)

X
Sistema de coordenadas mundo

VAR shapedata volume;


CONST pos C1:=[300,300,200];
CONST num R1:=200;
...
WZSphDef \Inside, volume, C1, R1;

Se define una esfera con el nombre volume, con el centro C1 y el radio R1.

Argumentos
WZSphDef [\Inside] | [\Outside] Shape CentrePoint Radius
\Inside Tipo de dato: switch

Define el volumen que contiene la esfera.

\Outside Tipo de dato: switch

Define el volumen que queda fuera de la esfera (el volumen inverso).

Es imprescindible especificar uno de los argumentos \Inside o \Outside.

Shape Tipo de dato: shapedata

Una variable para el almacenamiento del volumen definido (datos privados del
sistema).

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 455


WZSphDef
Advanced functions (Funciones avanzadas) Instruccin

CentrePoint Tipo de dato: pos

La posicin (x,y,z) en mm que define el centro de la esfera.

Radius Tipo de dato: num

El radio de la esfera, en mm.

Ejecucin de programas
La definicin de la esfera se almacena en la variable de tipo shapedata (el argumento
Shape), para su uso futuro en instrucciones WZLimSup o WZDOSet.

Limitaciones
Si el robot se usa para apuntar hacia fuera de CentrePoint, el objeto de trabajo wobj0
debe estar activo (se usa como argumento el componente trans de robtarget, por
ejemplo, p1.trans).

Sintaxis
WZSphDef
[\Inside] | [\Outside] ,
[Shape:=]<variable (VAR) de shapedata>,
[CentrePoint:=]<expresin (IN) de pos>,
[Radius:=]<expresin (IN) de num>;

456 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


WZSphDef
Instruccin Advanced functions (Funciones avanzadas)

Informacin relacionada
Descrito en:
Zonas mundo Principios de movimiento y E/S -
Zonas mundo
Forma de las zonas mundo Tipos de datos - shapedata
Definicin de zonas mundo en forma Instrucciones - WZBoxDef
de prisma
Definicin de zonas mundo cilndricas Instrucciones - WZCylDef
Definicin de una zona mundo para Instruccin - WZHomeJointDef
las posiciones iniciales de los ejes
Definicin de una zona mundo para las Instruccin - WZLimJointDef
posiciones lmite de los ejes
Activacin de la supervisin de lmites de Instrucciones - WZLimSup
las zonas mundo
Activacin de salidas digitales basadas Instrucciones - WZDOSet
en zonas mundo

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 457


WZSphDef
Advanced functions (Funciones avanzadas) Instruccin

458 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ndice alfabtico

A ConfL 39
CONNECT 45
AccSet 1, 211 cronmetro 29
ActUnit 3
Add 5 D
archivo
abrir 207 DeactUnit 47
carga 147, 255, 297 Decr 49
cerrar 23, 43, 253 desplazamiento de programa
descargar 391, 399 activar 221
escribir 237, 415, 419, 421, 423 desactivar 219
rebobinar 253 DitherDeact 55
spystart 111, 123
E
tsigrset 323
aritmtica 7 E/S de posicin fija 363
asignacin 7 E/S, unidad
desactivar 97
B
habilitar 107
borrar la pantalla de la unidad de progra- ejes externos
macin 325 activar 3
Break 9 desactivar 47
EOffsOff 57
C EOffsOn 59
EOffsSet 61
CallByVar 11 ErrWrite 63
canal serie escribir
abrir 207 en la unidad de programacin 335, 337
archivo 237, 419, 421, 423 mensaje de error 63
cerrar 23, 43 esperar
escribir 415 cualquier condicin 405
rebobinar 253 entrada digital 395
carga hasta que el robot est en posicin 403
activar una carga til 79 salida digital 397
carga til un tiempo determinado 403
activar 79 etiqueta 145
Clear 15, 21 EXIT 65
ClkReset 27 ExitCycle 67
ClkStart 29
ClkStop 31 F
clock
parada 31 FOR 69
poner a cero 27 Funciones 73
poner en marcha 29
G
Close 23, 43
comentario 33 GetTrapData 75
Compact IF (IF compacto) 35 GOTO 77
comprobar E/S 345 GripLoad 79
condicin 91 grupo de E/S 281
ConfJ 37

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 459


I movimiento
crculo 161, 167, 171
IDelete 81 eje 179, 183
IDisable 83 lineal 187, 191, 195
IEnable 85 unin 175
IError 87 movimiento circular 161, 167, 171
IF 35, 91 movimiento de ejes 175, 179, 183
Incr 93 movimiento lineal 187, 191, 195
incrementar 93
interrupcin O
a partir de una entrada digital 127
activar 143 Open
conectar 45 archivo 207
desactivar 83, 135 canal serie 207
eliminar 81
P
en una posicin 357
habilitar 85 PathResol 215
temporizada 137 PDispOff 219
InvertDO 95 PDispOn 221
IODisable 97 ProcCall 229
IOEnable 107 PulseDO 231
ISignalDI 127
ISignalDO 131 R
ISleep 135
ITimer 137 RAISE 235
IVarValue 141 ReadErrData 241
IWatch 143 recuperacin en caso de error
reintentar 249, 381
L reduccin de la aceleracin 1, 211
reducir 49
leer reducir la velocidad 409
tecla de funcin 327 repetir 69, 411
llamada 229 Reset 245
llamada a procedimiento 11, 229 resolucin de la trayectoria
llamada a rutina 229 cambiar 215
Load 147, 255, 297 RestoPath 247
RETRY 249
M
RETURN 251
MechUnitLoad 151 Rewind 253
MoveAbsJ 155
S
MoveC 161
MoveCDO 167 salida
MoveCSync 171 en una posicin 345, 363
MoveJ 175 salida analgica
MoveJDO 179 activar 277
MoveJSync 183 salida digital
MoveL 187 activar 275, 279
MoveLDO 191 poner a cero 245
MoveLSync 195 pulso 231

460 Manual de referencia de RAPID la parte 1, Instrucciones A-Z


ndice alfabtico

saltar 77 V
SearchC 259
SearchL 267 velocidad
servo suave mxima 409
activar 287 reducir 409
desactivar 289 velocidad mxima 409
Set 275 VelSet 409
SetAO 277
W
SetDO 279
SetGO 281 WaitDI 395
SingArea 283 WaitDO 397
SkipWarn 285 WaitTime 403
SoftAct 287 WaitUntil 405
SoftDeact 289 WHILE 411
SpyStart 111, 123, 291 Write 415
SpyStop 295 WriteBin 421
StartMove 301 WriteStrBin 237, 419, 423
Stop 311 WZBoxDef 425
StopMove 313 WZCylDef 429
StorePath 315 WZDisable 433
WZDOSet 435
T
WZEnable 439
TEST 317 WZFree 441
TestSignDefine 319 WZLimJointDef 447
TestSignReset 323 WZLimSup 451
TPErase 325 WZSphDef 455
TPReadFK 327
TPReadNum 331
TPShow 335
TPWrite 337
TriggC 339
TriggCheckIO 345
TriggEquip 351
TriggInt 357
TriggIO 363
TriggJ 369
TriggL 375
TRYNEXT 381
TuneReset 383
TuneServo 385

unidad de accionamiento comn 3, 47


unidad mecnica
activar 3
desactivar 47
UnLoad 391, 399

Manual de referencia de RAPID la parte 1, Instrucciones A-Z 461


462 Manual de referencia de RAPID la parte 1, Instrucciones A-Z
3HAC 7778-1, La revisin A -sp

a
ABB Automation Technology Products AB
Robotics
S-721 68 VSTERS
SWEDEN
Telephone: +46 (0) 21 344000
Telefax: +46 (0) 21 132592