Está en la página 1de 1262

Manual de referencia tcnica

Instrucciones, funciones y tipos de datos de RAPID


Software de controlador para IRC5
RobotWare 5.12


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Manual de referencia tcnica
Instrucciones, funciones y tipos de datos de RAPID
RobotWare 5.12
ID de documento: 3HAC16581-5
Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
ABB no ser en ningn caso responsable de los daos accidentales o consecuentes
que se produzcan como consecuencia del uso de este manual o de los productos
descritos en el mismo.
Se prohbe 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 perseguido legalmente.
Usted puede obtener copias adicionales de este manual a travs de ABB, con el coste
aplicable en el momento de su solicitud.
Copyright 2004-2009 ABB Reservados todos los derechos.
ABB AB
Robotics Products
SE-721 68 Vsters
Suecia
Contenido
3 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1 Instrucciones 15
1.1 AccSet - Reduce la aceleracin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 ActUnit - Activa una unidad mecnica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.3 Add - Suma un valor numrico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.4 AliasIO - Define una seal de E/S con un nombre de alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.5 ":=" - Asigna un valor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.6 BitClear - Desactiva un bit especfico de un dato de byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.7 BitSet - Activa un bit especfico de un dato de byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.8 BookErrNo - Registra un nmero de error de sistema de RAPID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.9 Break - Interrumpe la ejecucin del programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.10 CallByVar - Llama a un procedimiento mediante una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.11 CancelLoad - Cancela la carga de un mdulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.12 CheckProgRef - Comprobar referencias de programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.13 CirPathMode - Reorientacin de la herramienta durante trayectorias circulares. . . . . . . . . . . . . . . . . . 37
1.14 Clear - Borra el valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.15 ClearIOBuff - Vaca el bfer de entrada de un canal serie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.16 ClearPath - Elimina la trayectoria actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
1.17 ClearRawBytes - Borra el contenido de un dato de tipo rawbytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.18 ClkReset - Pone a cero un reloj utilizado como temporizador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.19 ClkStart - Pone en marcha un reloj utilizado para la temporizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.20 ClkStop - Detiene un reloj utilizado para la temporizacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.21 Close - Cierra un archivo o un canal serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
1.22 CloseDir - Cierra un directorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
1.23 Comentario - Comentario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
1.24 Compact IF (IF compacto) - Si se cumple una condicin, entonces... (una instruccin). . . . . . . . . . . . 58
1.25 ConfJ - Controla la configuracin durante el movimiento de los ejes. . . . . . . . . . . . . . . . . . . . . . . . . . 59
1.26 ConfL - Monitoriza la configuracin durante el movimiento lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
1.27 CONNECT - Conecta una interrupcin a una rutina TRAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
1.28 CopyFile - Copia un archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.29 CopyRawBytes - Copia el contenido de un dato de tipo rawbytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1.30 CorrClear - Elimina todos los generadores de correcciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
1.31 CorrCon - Establece una conexin con un generador de correcciones . . . . . . . . . . . . . . . . . . . . . . . . . 70
1.32 CorrDiscon - Cierra la conexin con un generador de correcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
1.33 CorrWrite - Escribe en un generador de correcciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
1.34 DeactUnit - Desactiva una unidad mecnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
1.35 Decr - Reduce un nmero en 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
1.36 DitherAct - Activa la funcin de oscilacin del servo suave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.37 DitherDeact - Desactiva la funcin de oscilacin del servo suave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
1.38 DropWObj - Suelta un objeto de trabajo sobre un transportador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
1.39 EOffsOff - Desactiva un offset de ejes externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.40 EOffsOn - Activa un offset de ejes externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.41 EOffsSet - Activa un offset de ejes externos a partir de valores conocidos. . . . . . . . . . . . . . . . . . . . . . 88
1.42 EraseModule - Elimina un mdulo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
1.43 ErrLog - Escribe un mensaje de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
1.44 ErrRaise - Escribe un aviso y llama a un gestor de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1.45 ErrWrite - Escribe un mensaje de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
1.46 EXIT - Finaliza la ejecucin del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
1.47 ExitCycle - Interrumpe el ciclo actual y pasa al siguiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
1.48 FOR - Repite un nmero determinado de veces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
1.49 GetDataVal - Obtiene el valor de un objeto de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.50 GetSysData - Obtiene datos del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
1.51 GetTrapData - Obtiene datos de interrupcin para la rutina TRAP actual. . . . . . . . . . . . . . . . . . . . . . 113
1.52 GOTO - Salta a otra instruccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Contenido
4 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.53 GripLoad - Define la carga til del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
1.54 HollowWristReset - Restablece la mueca hueca en los modelos IRB5402 e IRB5403. . . . . . . . . . . 119
1.55 IDelete - Cancela una interrupcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.56 IDisable - Desactiva todas las interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
1.57 IEnable - Habilita el uso de interrupciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
1.58 IError - Solicita una interrupcin para errores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
1.59 IF - Si se cumple una condicin, ...; de lo contrario, ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
1.60 Incr - Aumenta en 1 un valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
1.61 IndAMove - Movimiento independiente de posicin absoluta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
1.62 IndCMove - Movimiento independiente continuo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
1.63 IndDMove - Movimiento independiente de posicin delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
1.64 IndReset - Restablecimiento independiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
1.65 IndRMove - Movimiento independiente de posicin relativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
1.66 InvertDO - Invierte el valor de una seal de salida digital. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
1.67 IOBusStart - Start of I/O bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
1.68 IOBusState - Obtener el estado actual de un bus de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
1.69 IODisable - Desactiva una unidad de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
1.70 IOEnable - Activa una unidad de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
1.71 IPers - Interrupcin en caso de cambio de valor de una variable persistente. . . . . . . . . . . . . . . . . . . . 165
1.72 IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato. . . . . . . . . . . . . . . . . . . . . . . 167
1.73 ISignalAI - Interrupciones a partir de una seal analgica de entrada. . . . . . . . . . . . . . . . . . . . . . . . . 171
1.74 ISignalAO - Interrupciones a partir de una seal analgica de salida. . . . . . . . . . . . . . . . . . . . . . . . . 182
1.75 ISignalDI - Solicita interrupciones a partir de una seal digital de entrada. . . . . . . . . . . . . . . . . . . . . 186
1.76 ISignalDO - Interrupciones a partir de una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
1.77 ISignalGI - Solicita interrupciones de un grupo de seales digitales de entrada. . . . . . . . . . . . . . . . . 192
1.78 ISignalGO - Solicita interrupciones de un grupo de seales digitales de salida . . . . . . . . . . . . . . . . . 195
1.79 ISleep - Desactiva una interrupcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
1.80 ITimer - Solicita una interrupcin temporizada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
1.81 IVarValue - Solicita una interrupcin a partir del valor de una variable. . . . . . . . . . . . . . . . . . . . . . . 203
1.82 IWatch - Activar una interrupcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
1.83 Etiqueta - Nombre de lnea. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
1.84 Load - Carga un mdulo de programa durante la ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
1.85 LoadId - Identificacin de carga de la herramienta o la carga til. . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
1.86 MakeDir - Crea un nuevo directorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
1.87 ManLoadIdProc - Identificacin de carga de los manipuladores IRBP. . . . . . . . . . . . . . . . . . . . . . . . 220
1.88 MechUnitLoad - Define una carga til para una unidad mecnica . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
1.89 MotionSup - Desactiva/activa la supervisin del movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
1.90 MoveAbsJ - Mueve el robot a una posicin de ejes absoluta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
1.91 MoveC - Mueve el robot en crculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
1.92 MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la esquina. 244
1.93 MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de RAPID. . . 248
1.94 MoveExtJ - Mueve una o varias unidades mecnicas sin TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
1.95 MoveJ - Mueve el robot mediante un movimiento de ejes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
1.96 MoveJ DO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en
la esquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
1.97 MoveJ Sync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de RAPID. . . 264
1.98 MoveL - Mueve el robot siguiendo una trayectoria lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
1.99 MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina.. . . . . . . . . . . . 273
1.100 MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID. . . . . . . . . . . 277
1.101 MToolRotCalib - Calibracin de la rotacin de una herramienta mvil . . . . . . . . . . . . . . . . . . . . . . 281
1.102 MToolTCPCalib - Calibracin del TCP de una herramienta mvil. . . . . . . . . . . . . . . . . . . . . . . . . . 284
1.103 Open - Abre un archivo o un canal serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.104 OpenDir - Abre un directorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
1.105 PackDNHeader - Empaqueta un encabezado de DeviceNet en datos rawbytes . . . . . . . . . . . . . . . . 293
1.106 PackRawBytes - Empaqueta datos en un dato de tipo rawbytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Contenido
5 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.107 PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria . . . . . . . . . . . . . . . . . . . . 300
1.108 PathRecMoveBwd - Hace retroceder la grabadora de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . 303
1.109 PathRecMoveFwd - Hace avanzar la grabadora de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
1.110 PathRecStart - Inicia la grabadora de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
1.111 PathRecStop - Detiene la grabadora de trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
1.112 PathResol - Ajusta la resolucin de la trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
1.113 PDispOff - Desactiva el desplazamiento de programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
1.114 PDispOn - Activa el desplazamiento de programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
1.115 PDispSet - Activa un desplazamiento de programa a partir de una base de coordenadas conocida . 328
1.116 ProcCall - Llama a un nuevo procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
1.117 ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos . 332
1.118 PulseDO - Genera un pulso en una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
1.119 RAISE - Llama a un gestor de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
1.120 RaiseToUser - Propaga un error al nivel del usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
1.121 ReadAnyBin - Lee datos de un canal serie o un archivo binario. . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
1.122 ReadBlock - Lee un bloque de datos de un dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
1.123 ReadCfgData - Lee un atributo de un parmetro del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
1.124 ReadErrData - Obtiene informacin sobre un error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
1.125 ReadRawBytes - Lee datos de tipo rawbytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
1.126 RemoveDir - Elimina un directorio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
1.127 RemoveFile - Elimina un archivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
1.128 RenameFile - Cambia el nombre de un archivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
1.129 Reset - Pone a cero una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
1.130 ResetPPMoved - Restablecer el estado del puntero de programa movido en el modo manual. . . . . 368
1.131 ResetRetryCount - Restablece el nmero de reintentos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
1.132 RestoPath - Restablece la trayectoria despus de una interrupcin . . . . . . . . . . . . . . . . . . . . . . . . . . 370
1.133 RETRY - Reanuda la ejecucin despus de un error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
1.134 RETURN - Finaliza la ejecucin de una rutina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
1.135 Rewind - Rebobina la posicin del archivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
1.136 RMQEmptyQueue - Vaca la cola de mensajes de RAPID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
1.137 RMQFindSlot - Buscar una identidad de ranura para el nombre de ranura. . . . . . . . . . . . . . . . . . . . 379
1.138 RMQGetMessage - Obtener un mensaje de RMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
1.139 RMQGetMsgData - Obtener la parte de datos de un mensaje de RMQ. . . . . . . . . . . . . . . . . . . . . . . 384
1.140 RMQGetMsgHeader - Obtener informacin de encabezado de un mensaje de RMQ. . . . . . . . . . . . 387
1.141 RMQReadWait - Devuelve un mensaje de una cola RMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
1.142 RMQSendMessage - Enviar un mensaje de datos de RMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
1.143 RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta. . . . . . . . . . . . . . . . 397
1.144 Save - Guarda un mdulo de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
1.145 SCWrite - Enva los datos de la variable a una aplicacin cliente. . . . . . . . . . . . . . . . . . . . . . . . . . . 406
1.146 SearchC - Realiza una bsqueda en crculo usando el robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
1.147 SearchExtJ - Busca con una o varias unidades mecnicas sin TCP. . . . . . . . . . . . . . . . . . . . . . . . . . 417
1.148 SearchL - Realiza una bsqueda lineal usando el robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 424
1.149 SenDevice - Establece una conexin a un dispositivo de sensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
1.150 Set - Activa una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
1.151 SetAllDataVal - Establece un valor en todos los objetos de datos de un conjunto definido . . . . . . . 437
1.152 SetAO - Cambia el valor de una seal analgica de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
1.153 SetDataSearch - Definir el conjunto de smbolos de una secuencia de bsqueda . . . . . . . . . . . . . . . 441
1.154 SetDataVal - Establece el valor de un objeto de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
1.155 SetDO - Cambia el valor de una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
1.156 SetGO - Cambia el valor de un grupo de seales digitales de salida. . . . . . . . . . . . . . . . . . . . . . . . . 450
1.157 SetSysData - Establece datos del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
1.158 SingArea - Define el mtodo de interpolacin alrededor de puntos singulares. . . . . . . . . . . . . . . . . 455
1.159 SkipWarn - Omitir el ltimo aviso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
1.160 SocketAccept - Acepta una conexin entrante. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
1.161 SocketBind - Enlaza un zcalo a mi direccin IP y puerto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Contenido
6 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.162 SocketClose - Cierra un zcalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
1.163 SocketConnect - Establece una conexin a un ordenador remoto. . . . . . . . . . . . . . . . . . . . . . . . . . . 465
1.164 SocketCreate - Crea un nuevo zcalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
1.165 SocketListen - Permanece a la escucha de conexiones entrantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
1.166 SocketReceive - Recibe datos de un ordenador remoto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
1.167 SocketSend - Enva datos a un ordenador remoto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
1.168 SoftAct - Activa el servo suave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
1.169 SoftDeact - Desactiva el servo suave. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
1.170 SpeedRefresh - El ajuste de velocidad para el movimiento en curso. . . . . . . . . . . . . . . . . . . . . . . . . 484
1.171 SpyStart - Comienza la grabacin de los datos de tiempo de ejecucin . . . . . . . . . . . . . . . . . . . . . . 487
1.172 SpyStop - Detiene la grabacin de los datos de tiempo de ejecucin . . . . . . . . . . . . . . . . . . . . . . . . 489
1.173 StartLoad - Carga un mdulo de programa durante la ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 490
1.174 StartMove - Reanuda el movimiento del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
1.175 StartMoveRetry - Reanuda el movimiento y la ejecucin del robot . . . . . . . . . . . . . . . . . . . . . . . . . 497
1.176 STCalib - Calibra una herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
1.177 STClose - Cierra una herramienta servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
1.178 StepBwdPath - Retrocede un paso a lo largo de la trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
1.179 STIndGun - Pone la pistola en el modo independiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
1.180 STIndGunReset - Restablece el modo independiente de la pistola . . . . . . . . . . . . . . . . . . . . . . . . . . 511
1.181 SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta estacionaria . . . . . . . . . 512
1.182 SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria . . . . . . . . . . . . . . . . . . . . . 515
1.183 Stop - Detiene la ejecucin del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
1.184 STOpen - Abre una herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
1.185 StopMove - Detiene el movimiento del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 523
1.186 StopMoveReset - Restablece el estado de movimiento de paro de sistema. . . . . . . . . . . . . . . . . . . . 527
1.187 StorePath - Almacena la trayectoria cuando se produce una interrupcin. . . . . . . . . . . . . . . . . . . . . 530
1.188 STTune - Ajusta una herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
1.189 STTuneReset - Restablece el ajuste de la herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
1.190 SyncMoveOff - Finaliza los movimientos sincronizados coordinados . . . . . . . . . . . . . . . . . . . . . . . 537
1.191 SyncMoveOn - Inicia los movimientos sincronizados coordinados . . . . . . . . . . . . . . . . . . . . . . . . . 542
1.192 SyncMoveResume - Activa el modo de movimientos sincronizados coordinados. . . . . . . . . . . . . . 549
1.193 SyncMoveSuspend - Activa el movimiento independiente-semicoordinado . . . . . . . . . . . . . . . . . . 551
1.194 SyncMoveUndo - Activa los movimientos independientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
1.195 SystemStopAction - Para el sistema de robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
1.196 TEST - En funcin del valor de una expresin.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
1.197 TestSignDefine - Define una seal de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
1.198 TestSignReset - Restablece todas las definiciones de seales de prueba. . . . . . . . . . . . . . . . . . . . . . 561
1.199 TextTabInstall - Instalacin de una tabla de textos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
1.200 TPErase - Borra el texto mostrado en el FlexPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
1.201 TPReadFK - Lee las teclas de funcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
1.202 TPReadNum - Lee un nmero del FlexPendant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
1.203 TPShow - Cambia de ventana en el FlexPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 573
1.204 TPWrite - Escribe en el FlexPendant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
1.205 TriggC - Movimiento circular del robot con eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
1.206 TriggCheckIO - Define una comprobacin de E/S en una posicin fija . . . . . . . . . . . . . . . . . . . . . . 583
1.207 TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria . . . . . . . 588
1.208 TriggInt - Define una interrupcin dependiente de una posicin. . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
1.209 TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro . . . . . . . . 598
1.210 TriggJ - Movimientos de ejes del robot a partir de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
1.211 TriggL - Movimiento lineal del robot con eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
1.212 TriggLIOs - Movimientos lineales del robot con eventos de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
1.213 TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria . . . . . . . . . . . . . 623
1.214 TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento
de escala fija de posicin-tiempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
1.215 TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros. . . . . . . . . . . . . . . 637
Contenido
7 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.216 TryInt - Comprobar si un objeto de dato es un entero vlido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
1.217 TRYNEXT - Salta sobre una instruccin que ha provocado un error . . . . . . . . . . . . . . . . . . . . . . . . 645
1.218 TuneReset - Restablecimiento del ajuste del servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646
1.219 TuneServo - Ajuste de servos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
1.220 UIMsgBox - Cuadro de mensaje de usuario de tipo bsico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
1.221 UIShow - Visualizacin de interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660
1.222 UnLoad - Descarga un mdulo de programa durante la ejecucin . . . . . . . . . . . . . . . . . . . . . . . . . . 664
1.223 UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes . . . . . . . . . . . . . . . . . . . . . . . 667
1.224 VelSet - Cambia la velocidad programada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
1.225 WaitAI - Espera hasta que se establece un valor de seal analgica de entrada . . . . . . . . . . . . . . . . 673
1.226 WaitAO - Espera hasta que se establece un valor de seal analgica de salida. . . . . . . . . . . . . . . . . 675
1.227 WaitDI - Espera hasta que se activa una seal digital de entrada . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
1.228 WaitDO - Espera hasta que se activa una seal digital de salida. . . . . . . . . . . . . . . . . . . . . . . . . . . . 679
1.229 WaitGI - Espera hasta que se activa un grupo de entradas digitales . . . . . . . . . . . . . . . . . . . . . . . . . 681
1.230 WaitGO - Espera hasta que se activa un grupo de salidas digitales. . . . . . . . . . . . . . . . . . . . . . . . . . 684
1.231 WaitLoad - Conecta el mdulo cargado a la tarea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 687
1.232 WaitRob - Esperar hasta un punto de paro o una velocidad cero. . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
1.233 WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de programa . . . . . . . . . . . 694
1.234 WaitTestAndSet - Espera a que se desactive una variable y la activa a continuacin. . . . . . . . . . . . 698
1.235 WaitTime - Espera una cantidad de tiempo determinada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
1.236 WaitUntil - Espera hasta que se cumple una condicin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
1.237 WaitWObj - Espera a un objeto de trabajo en un transportador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 706
1.238 WarmStart - Reinicia el controlador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
1.239 WHILE - Repite una o varias operaciones siempre y cuando.... . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
1.240 WorldAccLim - Control de aceleracin en el sistema de coordenadas mundo . . . . . . . . . . . . . . . . . 712
1.241 Write - Escribe en un archivo o un canal serie alfanumrico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
1.242 WriteAnyBin - Escribe datos en un canal serie o archivo binario . . . . . . . . . . . . . . . . . . . . . . . . . . . 718
1.243 WriteBin - Escribe en un canal serie binario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 721
1.244 WriteBlock - Escribe un bloque de datos en un dispositivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724
1.245 WriteCfgData - Escribe un atributo de un parmetro del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
1.246 WriteRawBytes - Escribe un dato de tipo rawbytes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 730
1.247 WriteStrBin - Escribe una cadena de caracteres en un canal serie binario. . . . . . . . . . . . . . . . . . . . . 732
1.248 WriteVar - Escribe una variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
1.249 WZBoxDef - Define una zona mundo con forma de prisma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
1.250 WZCylDef - Define una zona mundo con forma cilndrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
1.251 WZDisable - Desactiva la supervisin de las zonas mundo temporales . . . . . . . . . . . . . . . . . . . . . . 742
1.252 WZDOSet - Activacin de salidas digitales basadas en zonas mundo. . . . . . . . . . . . . . . . . . . . . . . . 744
1.253 WZEnable - Activa la supervisin de las zonas mundo temporales. . . . . . . . . . . . . . . . . . . . . . . . . . 748
1.254 WZFree - Elimina la supervisin de las zonas mundo temporales. . . . . . . . . . . . . . . . . . . . . . . . . . . 750
1.255 WZHomeJ ointDef - Define una zona mundo para las posiciones iniciales de los ejes . . . . . . . . . . . 752
1.256 WZLimJ ointDef - Define una zona mundo para la limitacin de los ejes. . . . . . . . . . . . . . . . . . . . . 755
1.257 WZLimSup - Activa la supervisin de lmites de las zonas mundo. . . . . . . . . . . . . . . . . . . . . . . . . . 759
1.258 WZSphDef - Define una zona mundo con forma esfrica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 762
2 Funciones 765
2.1 Abs - Obtiene el valor absoluto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
2.2 ACos - Calcula el valor de arco coseno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767
2.3 AOutput - Lee el valor de una seal analgica de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768
2.4 ArgName - Obtiene el nombre de un argumento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
2.5 ASin - Calcula el valor del arco seno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
2.6 ATan - Calcula el valor de arco tangente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
2.7 ATan2 - Calcula el valor de arco tangente 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775
2.8 BitAnd - AND lgico bit a bit - Operacin con datos de byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776
2.9 BitCheck - Comprueba si un bit especificado de un dato de byte est activado . . . . . . . . . . . . . . . . . . 778
2.10 BitLSh - DESPLAZAMIENTO A LA IZQUIERDA lgico bit a bit - Operacin de byte. . . . . . . . . 780
Contenido
8 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.11 BitNeg - NEGACIN lgica bit a bit - Operacin con datos de byte. . . . . . . . . . . . . . . . . . . . . . . . . 782
2.12 BitOr - OR lgico bit a bit - Operacin con datos de byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 784
2.13 BitRSh - DESPLAZAMIENTO A LA DERECHA lgico bit a bit - Operacin de byte . . . . . . . . . . 786
2.14 BitXOr - XOR lgico bit a bit - Operacin con datos de byte. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788
2.15 ByteToStr - Convierte un byte en un dato de cadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . 790
2.16 CalcJ ointT - Calcula los ngulos de las articulaciones a partir de un robtarget. . . . . . . . . . . . . . . . . . 792
2.17 CalcRobT - Calcula el valor de robtarget a partir de jointtarget . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
2.18 CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin . . . . . . . . . . . . . . . . . . . 798
2.19 CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin . . . . . . . . . . . . . . . . . . . 802
2.20 CDate - Lee la fecha actual como una cadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
2.21 CJ ointT - Lee los ngulos actuales de los ejes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
2.22 ClkRead - Lee un reloj utilizado para la temporizacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 809
2.23 CorrRead - Lee los offsets totales actuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
2.24 Cos - Calcula el valor del coseno. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 811
2.25 CPos - Lee los datos de posicin (pos) actuales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 812
2.26 CRobT - Lee los datos de posicin (robtarget) actuales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 814
2.27 CSpeedOverride - Lee el ajuste de velocidad actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
2.28 CTime - Lee la hora actual en forma de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
2.29 CTool - Lee los datos actuales de la herramienta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 820
2.30 CWObj - Lee los datos del objeto de trabajo actual. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
2.31 DecToHex - Convierte de decimal a hexadecimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
2.32 DefAccFrame - Define una base de coordenadas exacta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 823
2.33 DefDFrame - Define una base de coordenadas de desplazamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . 826
2.34 DefFrame - Define una base de coordenadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
2.35 Dim - Obtiene las dimensiones de una matriz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
2.36 Distance - Distancia entre dos puntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
2.37 DnumToNum - Convierte dnum a num. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
2.38 DotProd - Producto escalar de dos vectores pos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 838
2.39 DOutput - Lee el valor de una seal digital de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 840
2.40 EulerZYX - Obtiene ngulos Euler a partir de una orientacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 842
2.41 EventType - Obtiene el tipo de evento actual dentro de cualquier rutina de evento . . . . . . . . . . . . . . 844
2.42 ExecHandler - Obtener el tipo de gestor de ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 846
2.43 ExecLevel - Obtener el nivel de ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
2.44 Exp - Calcula el valor exponencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
2.45 FileSize - Obtiene el tamao de un archivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
2.46 FileTime - Obtiene la informacin de hora de un archivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 852
2.47 FSSize - Obtiene el tamao de un sistema de archivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 855
2.48 GetMecUnitName - Obtiene el nombre de la unidad mecnica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 858
2.49 GetNextMechUnit - Obtener el nombre y los datos de las unidades mecnicas . . . . . . . . . . . . . . . . . 859
2.50 GetNextSym - Obtiene el siguiente smbolo coincidente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
2.51 GetSysInfo - Obtener informacin acerca del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864
2.52 GetTaskName - Obtiene el nombre y el nmero de la tarea actual . . . . . . . . . . . . . . . . . . . . . . . . . . . 867
2.53 GetTime - Lee la hora actual como un valor numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
2.54 GInputDnum - Lee el valor de una seal de entrada de grupo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 871
2.55 GOutput - Lee el valor de un grupo de seales digitales de salida . . . . . . . . . . . . . . . . . . . . . . . . . . . 873
2.56 GOutputDnum - Lee el valor de una seal de salida de grupo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 875
2.57 HexToDec - Convierte de hexadecimal a decimal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
2.58 IndInpos - Estado de posicin de un eje independiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
2.59 IndInpos - Estado de velocidad de un eje independiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 880
2.60 IOUnitState - Obtiene el estado actual de una unidad de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882
2.61 IsFile - Comprobar el tipo de un archivo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885
2.62 IsMechUnitActive - Indica si una unidad mecnica est activa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 889
2.63 IsPers - Determina si es una variable persistente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
2.64 IsStopMoveAct - Est activo el indicador de movimiento de paro . . . . . . . . . . . . . . . . . . . . . . . . . . . 892
2.65 IsStopStateEvent - Comprueba si se ha movido el puntero de programa . . . . . . . . . . . . . . . . . . . . . . 894
Contenido
9 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.66 IsSyncMoveOn - Comprueba si el modo de movimiento sincronizado est activado. . . . . . . . . . . . . 896
2.67 IsSysID - Comprobar la identidad del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898
2.68 IsVar - Determina si un dato es una variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 899
2.69 MaxRobSpeed - Velocidad mxima del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 901
2.70 MirPos - Obtencin de la posicin espejo de una posicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 902
2.71 ModExist - Comprobar si un mdulo de programa existe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904
2.72 ModTime - Obtiene la hora de modificacin del mdulo cargado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 905
2.73 MotionPlannerNo - Obtiene el nmero de planificador de movimientos conectado. . . . . . . . . . . . . . 907
2.74 NonMotionMode - Lee el modo de ejecucin sin movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 909
2.75 NOrient - Normaliza la orientacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 911
2.76 NumToDnum - Convierte num a dnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 913
2.77 NumToStr - Convierte un valor numrico en una cadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . 914
2.78 Offs - Desplaza una posicin del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 916
2.79 OpMode - Lee el modo de funcionamiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918
2.80 OrientZYX - Genera una orientacin a partir de ngulos Euler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 919
2.81 ORobT - Elimina el desplazamiento de programa de una posicin. . . . . . . . . . . . . . . . . . . . . . . . . . . 921
2.82 ParIdPosValid - Posicin de robot vlida para la identificacin de parmetros . . . . . . . . . . . . . . . . . 923
2.83 ParIdRobValid - Tipo de robot vlido para la identificacin de parmetros . . . . . . . . . . . . . . . . . . . . 926
2.84 PathLevel - Obtiene el nivel de trayectoria actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 929
2.85 PathRecValidBwd - Comprueba si existe una trayectoria de retroceso vlida guardada. . . . . . . . . . . 931
2.86 PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida guardada. . . . . . . . . . . . . 934
2.87 PFRestart - Comprueba si se ha interrumpido una trayectoria despus de un fallo de alimentacin. . 938
2.88 PoseInv - Invierte los datos de pose. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 939
2.89 PoseMult - Multiplica datos de pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 940
2.90 PoseVect - Aplica una transformacin a un vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 942
2.91 Pow - Calcula el resultado de elevar un valor a una potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 944
2.92 PPMovedInManMode - Comprobar si el puntero de programa se ha movido en el modo manual. . . 945
2.93 Present - Comprueba si se est usando un parmetro opcional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 946
2.94 ProgMemFree - Obtiene el tamao de memoria libre del programa . . . . . . . . . . . . . . . . . . . . . . . . . . 948
2.95 RawBytesLen - Obtiene la longitud de un dato de tipo rawbytes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 949
2.96 ReadBin - Lee un byte de un archivo o un canal serie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 951
2.97 ReadDir - Lee la siguiente entrada de un directorio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 953
2.98 ReadMotor - Lee los ngulos actuales de los motores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 956
2.99 ReadNum - Lee un nmero de un archivo o un canal serie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958
2.100 ReadStr - Lee una cadena de caracteres de un archivo o un canal serie. . . . . . . . . . . . . . . . . . . . . . . 961
2.101 ReadStrBin - Lee una cadena de un canal serie o un archivo binario . . . . . . . . . . . . . . . . . . . . . . . . 965
2.102 ReadVar - Lee una variable de un dispositivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 967
2.103 RelTool - Hace un desplazamiento respecto de la herramienta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 969
2.104 RemainingRetries - Reintentos restantes an pendientes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 971
2.105 RMQGetSlotName - Obtener el nombre de un cliente de RMQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 972
2.106 RobName - Obtiene el nombre del robot del TCP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 974
2.107 RobOS - Comprueba si el programa se est ejecutando en RC o VC . . . . . . . . . . . . . . . . . . . . . . . . 976
2.108 Round - Redondea un valor numrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 977
2.109 RunMode - Obtiene el modo de ejecucin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
2.110 Sin - Calcula el valor del seno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
2.111 SocketGetStatus - Obtiene el estado actual de un zcalo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 982
2.112 Sqrt - Calcula el valor de la raz cuadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 985
2.113 STCalcForce - Calcula fuerza de la punta de una herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . 986
2.114 STCalcTorque - Calcula el par motor de una herramienta servo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 988
2.115 STIsCalib - Compruebe si una herramienta servo est calibrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 990
2.116 STIsClosed - Comprueba si una herramienta servo est cerrada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 992
2.117 STIsIndGun - Comprueba si una herramienta servo se encuentra en el modo independiente. . . . . . 994
2.118 STIsOpen - Comprueba si una herramienta servo est abierta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 995
2.119 StrDigCalc - Operaciones aritmticas con el tipo de dato stringdig. . . . . . . . . . . . . . . . . . . . . . . . . . 997
2.120 StrDigCmp - Comparar dos cadenas que slo contienen dgitos. . . . . . . . . . . . . . . . . . . . . . . . . . . 1000
Contenido
10 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.121 StrFind - Busca un carcter en una cadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1003
2.122 StrLen - Obtiene la longitud de una cadena. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1005
2.123 StrMap - Mapea una cadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1006
2.124 StrMatch - Busca un patrn dentro de una cadena de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . 1008
2.125 StrMemb - Comprueba si un carcter pertenece a un conjunto. . . . . . . . . . . . . . . . . . . . . . . . . . . . 1010
2.126 StrOrder - Comprueba si dos cadenas de caracteres estn ordenadas . . . . . . . . . . . . . . . . . . . . . . . 1012
2.127 StrPart - Busca una parte de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1015
2.128 StrToByte - Convierte una cadena en un byte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1017
2.129 StrToVal - Convierte una cadena de caracteres en un valor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1020
2.130 Tan - Calcula el valor de tangente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1022
2.131 TaskRunMec - Comprueba si una tarea controla alguna unidad mecnica. . . . . . . . . . . . . . . . . . . 1023
2.132 TaskRunRob - Comprueba si una tarea controla algn robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024
2.133 TasksInSync - Devuelve el nmero de tareas sincronizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1025
2.134 TestAndSet - Comprueba una variable y la establece si no est establecida. . . . . . . . . . . . . . . . . . 1027
2.135 TestDI - Se comprueba si una entrada digital est activada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1030
2.136 TestSignRead - Obtiene el valor de una seal de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1031
2.137 TextGet - Obtener un texto de las tablas de textos del sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1033
2.138 TextTabFreeToUse - Comprueba si una tabla de textos est libre para su uso. . . . . . . . . . . . . . . . 1035
2.139 TextTabGet - Obtiene el nmero de una tabla de textos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1037
2.140 Trunc - Trunca un valor numrico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1039
2.141 UIAlphaEntry - Introduccin alfanumrica del usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1041
2.142 UIClientExist - Existe cliente de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1046
2.143 UIListView - Vista de lista de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047
2.144 UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado. . . . . . . . . . . . . . . . . . . . . . . . . 1054
2.145 UINumEntry - Introduccin de nmero de usuario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1061
2.146 UINumTune - Ajuste de nmero de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1067
2.147 ValidIO - Seal de E/S vlida para su uso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073
2.148 ValToStr - Convierte un valor en una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075
2.149 VectMagn - Magnitud de un vector pos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1077
3 Tipos de datos 1079
3.1 aiotrigg - Condicin de disparo con E/S analgica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1079
3.2 bool - Valores lgicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1081
3.3 btnres - Datos de resultado de pulsador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1082
3.4 busstate - Estado de bus de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084
3.5 buttondata - Datos de pulsador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1085
3.6 byte - Valores enteros de 0 a 255. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087
3.7 clock - Medicin de tiempo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088
3.8 confdata - Datos de configuracin del robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1089
3.9 corrdescr - Descriptor de generador de correcciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1095
3.10 datapos - Inclusin de un bloque para un objeto de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1097
3.11 dionum - Valores digitales (0 - 1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098
3.12 dir - Estructura de directorio de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1099
3.13 dnum - Valores numricos dobles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1100
3.14 errdomain - Dominio de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1102
3.15 errnum - Nmero de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104
3.16 errstr - Cadena de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110
3.17 errtype - Tipo de error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1111
3.18 event_type - Tipo de rutina de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1112
3.19 exec_level - Execution level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1113
3.20 extjoint - Posicin de los ejes externos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1114
3.21 handler_type - Type of execution handler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1116
3.22 icondata - Datos de visualizacin de iconos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1117
3.23 identno - Identidad para las instrucciones de movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1119
3.24 intnum - Identidad de interrupcin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1121
Contenido
11 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.25 iodev - Canales serie y archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1123
3.26 iounit_state - Estado de la unidad de E/S. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1124
3.27 jointtarget - Datos de posicin de eje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1125
3.28 listitem - Estructura de datos de elementos de lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127
3.29 loaddata - Datos de carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128
3.30 loadidnum - Tipo de identificacin de la carga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1133
3.31 loadsession - Programar una sesin de carga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1134
3.32 mecunit - Unidad mecnica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1135
3.33 motsetdata - Datos de parmetros de movimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1137
3.34 num - Valores numricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1142
3.35 opcalc - Arithmetic Operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1144
3.36 opnum - Operador de comparacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1145
3.37 orient - Orientacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1146
3.38 paridnum - Tipo de identificacin de parmetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1150
3.39 paridvalidnum - Resultado de ParIdRobValid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1152
3.40 pathrecid - Identificador de grabadora de trayectorias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1154
3.41 pos - Posiciones (slo X, Y y Z). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1156
3.42 pose - Transformaciones de coordenadas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158
3.43 progdisp - Desplazamiento de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1159
3.44 rawbytes - Datos sin formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1161
3.45 restartdata - Datos de reinicio de seales de disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1163
3.46 rmqheader - Encabezado de mensaje de RAPID Message Queue. . . . . . . . . . . . . . . . . . . . . . . . . . . 1167
3.47 rmqmessage - Mensaje de RAPID Message Queue. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1169
3.48 rmqslot - Nmero de identidad de un cliente de RMQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1170
3.49 robjoint - Posicin de eje de los ejes del robot. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1171
3.50 robtarget - Datos de posicin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1172
3.51 shapedata - Datos de forma de zonas mundo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1176
3.52 signalxx - Seales digitales y analgicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178
3.53 socketdev - Dispositivo de zcalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1180
3.54 socketstatus - Estado de comunicacin de zcalo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1181
3.55 speeddata - Datos de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1182
3.56 stoppointdata - Datos de punto de paro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1186
3.57 string - Cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1192
3.58 stringdig - Cadena de caracteres con slo dos dgitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1194
3.59 switch - Optional parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1195
3.60 symnum - Nmero simblico. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1196
3.61 syncident - Identidad de punto de sincronizacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1198
3.62 Datos del sistema - Valores actuales de los datos del sistema de RAPID . . . . . . . . . . . . . . . . . . . . . 1199
3.63 taskid - Identificacin de tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1202
3.64 tasks - Tareas de programa de RAPID. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1203
3.65 testsignal - Seal de prueba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1205
3.66 tooldata - Datos de herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1206
3.67 tpnum - Nmero de ventana del FlexPendant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1211
3.68 trapdata - Datos de interrupcin para la rutina TRAP actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1212
3.69 triggdata - Eventos de posicionamiento, trigg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1214
3.70 triggios - Positioning events, trigg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1215
3.71 triggstrgo - Positioning events, trigg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218
3.72 tunetype - Tipo de ajuste de servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1221
3.73 uishownum - ID de instancia para UIShow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1222
3.74 wobjdata - Datos del objeto de trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1223
3.75 wzstationary - Datos de zona mundo estacionaria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1227
3.76 wztemporary - Datos de zona mundo temporal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1229
3.77 zonedata - Datos de zonas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1231
Contenido
12 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
4 Ejemplos de tipos de programacin 1237
4.1 Gestor de ERROR con movimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237
4.2 Rutinas de servicio con o sin movimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1240
4.3 Interrupciones de E/S del sistema con o sin movimiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1244
4.4 Rutinas TRAP con movimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248
Index 1253
Descripcin general
13 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Descripcin general
Acerca de este manual
ste es un manual de referencia tcnica destinado a los programadores de RAPID. En este
manual se detallan las instrucciones, las funciones y tipos de datos bsicos de RAPID.
Utilizacin
Este manual debe leerse durante la programacin y siempre que se necesite informacin
especfica acerca de una instruccin, funcin o tipo de dato de RAPID.
A quin va destinado este manual?
Este manual est destinado a personas que tengan cierta experiencia anterior con la
programacin, por ejemplo un programador de robots.
Requisitos previos
El lector debe tener cierta experiencia en programacin y haber estudiado:
Manual del operador - Introduccin a RAPID
Manual de referencia tcnica - Descripcin general de RAPID
Organizacin de los captulos
Este manual est organizado en los captulos siguientes:
Referencias
Captulo Contenido
1. Instrucciones Descripciones detalladas de todas las instruc-
ciones bsicas de RAPID, con ejemplos de
cmo usarlas.
2. Funciones Descripciones detalladas de todas las
funciones bsicas de RAPID, con ejemplos de
cmo usarlas.
3. Tipos de datos Descripciones detalladas de todos los tipos de
datos bsicos de RAPID, con ejemplos de
cmo usarlas.
4. Ejemplos de tipos de programacin Una visin general de cmo escribir cdigo de
programa con instrucciones/funciones/tipos de
datos diferentes. Este captulo tambin
contiene sugerencias y explicaciones de pro-
gramacin.
Referencia ID de documento
Manual del operador - Introduccin a RAPID 3HAC029364-001
Manual de referencia tcnica - Descripcin
general de RAPID
3HAC16580-1
Technical reference manual - RAPID kernel 3HAC16585-1
Contina en la pgina siguiente

Descripcin general
3HAC16581-5 Revisin: H 14


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Revisiones
Revisin Descripcin
F 7 edicin. RobotWare 5.10.
Aadido un nuevo captulo, 4 Ejemplos de tipos de programacin.
G 8 edicin. RobotWare 5.11.
Aadidos nuevos tipos de datos, instrucciones y funciones. Tambin se ha
aadido un nuevo ejemplo de tipo de programacin.
H 9 edicin. RobotWare 5.12.
Aadidos nuevos tipos de datos, instrucciones y funciones.
Continuacin
1 Instrucciones
1.1. AccSet - Reduce la aceleracin
RobotWare - OS
15 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1 Instrucciones
1.1. AccSet - Reduce la aceleracin
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin AccSet.
Ejemplo 1
AccSet 50, 100;
La aceleracin se limita al 50% del valor normal.
Ejemplo 2
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.
Contina en la pgina siguiente
1 Instrucciones
1.1. AccSet - Reduce la aceleracin
RobotWare - OS
3HAC16581-5 Revisin: H 16


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ramp
Tipo de dato: num
La proporcin en que la aceleracin y deceleracin aumentan como porcentaje de los valores
normales. 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.
Las figuras muestran cmo la reduccin de la aceleracin da lugar a unos movimientos ms
suaves.
xx0500002146
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 ':=' ] < expression (IN) of num > ','
[ Ramp ':=' ] < expression (IN) of num> ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Control de aceleracin en el sistema de
coordenadas mundo
WorldAccLim - Control de aceleracin en el
sistema de coordenadas mundo en la pgina
712
Reduccin de la aceleracin del TCP a lo
largo de la trayectoria
PathAccLim - Reduce la aceleracin del TCP
a lo largo de la trayectoria en la pgina 300
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.2. ActUnit - Activa una unidad mecnica
RobotWare - OS
17 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.2. ActUnit - Activa una unidad mecnica
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ActUnit.
Ejemplo 1
ActUnit orbit_a;
Activacin de la unidad mecnica orbit_a.
Argumentos
ActUnit MechUnit
MechUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica que debe activarse.
Ejecucin de programas
Cuando la trayectoria del robot y de los ejes externos ha sido completada, la trayectoria del
nivel de trayectoria actual se borra y 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
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.
ActUnit no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop, Restart o Reset.
Es posible usar ActUnit -DeactUnit en el nivel StorePath, pero al ejecutar RestoPath
deben estar activadas las mismas unidades mecnicas al ejecutar StorePath. Esta operacin
en la grabadora de trayectorias y la trayectoria del nivel bsico estarn intactas, pero la
trayectoria del nivel StorePath se borrar.
Sintaxis
ActUnit
[MechUnit ':=' ] < variable (VAR) of mecunit> ';'
Contina en la pgina siguiente
1 Instrucciones
1.2. ActUnit - Activa una unidad mecnica
RobotWare - OS
3HAC16581-5 Revisin: H 18


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin de unidades mecnicas DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Unidades mecnicas mecunit - Unidad mecnica en la pgina 1135
Ms ejemplos DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Grabadora de trayectorias PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Continuacin
1 Instrucciones
1.3. Add - Suma un valor numrico
RobotWare - OS
19 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.3. Add - Suma un valor numrico
Utilizacin
Add se utiliza para sumar o restar un valor a o de una variable o una variable persistente de
tipo numrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Add.
Ejemplo 1
Add reg1, 3;
3 se suma a reg1, es decir reg1:=reg1+3.
Ejemplo 2
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 ':=' ] < var or pers (INOUT) of num > ','
[ AddValue ':=' ] < expression (IN) of num > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Incremento de una variable en 1 Incr - Aumenta en 1 un valor en la pgina
130
Decremento de una variable en 1 Decr - Reduce un nmero en 1 en la pgina
80
Cambio de un dato mediante una expresin
arbitraria, por ejemplo una multiplicacin
":=" - Asigna un valor en la pgina 23
1 Instrucciones
1.4. AliasIO - Define una seal de E/S con un nombre de alias
RobotWare - OS
3HAC16581-5 Revisin: H 20


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.4. AliasIO - Define una seal de E/S con un nombre de alias
Utilizacin
AliasIO se utiliza para definir una seal de cualquier tipo con un nombre de alias o para usar
seales en los mdulos de tarea incorporados.
Las seales con nombres de alias pueden usarse en los programas genricos predefinidos, sin
ninguna modificacin del programa antes de ejecutarlo en distintas instalaciones de robot.
Es necesario ejecutar la instruccin AliasIO antes de cualquier uso de la seal en s.
Consulte Ejemplos bsicos en la pgina 20 para los mdulos cargados y Ms ejemplos en la
pgina 21 para los mdulos instalados.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin AliasIO.
Consulte tambin Ms ejemplos en la pgina 21.
Ejemplo 1
VAR signaldo alias_do;
PROC prog_start()
AliasIO config_do, alias_do;
ENDPROC
La rutina prog_start est conectada al evento START en los parmetros del sistema. La
seal digital de salida definida por el programa alias_do est conectada a la seal digital de
salida configurada config_do en el momento del inicio del programa.
Argumentos
AliasIO FromSignal ToSignal
FromSignal
Tipo de dato: signalxx o string
Mdulos cargados:
El identificador de la seal, con un nombre que se corresponde con la configuracin (tipo de
dato signalxx) de la que se copia el descriptor de la seal. La seal debe estar definida en
la configuracin de E/S.
Mdulos instalados o mdulos cargados:
Una referencia (CONST, VAR o un parmetro de este tipo) que contenga el nombre de la seal
(tipo de dato string) de la que se copia el descriptor de la seal tras buscarlo en el sistema.
La seal debe estar definida en la configuracin de E/S.
ToSignal
Tipo de dato: signalxx
El identificador de la seal de acuerdo con el programa (tipo de dato signalxx) del que se
copia el descriptor de la seal. La seal debe estar declarada en el programa de RAPID.
Debe usarse (o buscarse) el mismo tipo de datos para los argumentos FromSignal y
ToSignal y debe ser uno de los tipos signalxx (signalai, signalao, signaldi,
signaldo, signalgi o signalgo).
Contina en la pgina siguiente
1 Instrucciones
1.4. AliasIO - Define una seal de E/S con un nombre de alias
RobotWare - OS
21 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
El valor del descriptor de la seal se copia de la seal indicada en el argumento FromSignal
a la seal indicada en el argumento ToSignal.
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:
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin AliasIO.
Ejemplo 1
VAR signaldi alias_di;
PROC prog_start()
CONST string config_string := "config_di";
AliasIO config_string, alias_di;
ENDPROC
La rutina prog_start se conecta al evento START en los parmetros del sistema. La seal
digital de entrada definida por el programa alias_di es conectada a la seal digital de
entrada configurada config_di (a travs de la constante config_string) en el momento
del inicio del programa.
Limitacin
Al iniciar el programa, no es posible utilizar la seal de alias hasta ejecutar la instruccin
AliasIO.
La instruccin AliasIO debe estar situada en uno de los lugares siguientes:
En la rutina de evento ejecutada al iniciar el programa (evento START)
O bien en la parte del programa que se ejecuta despus de cada inicio del programa
(antes de usar la seal).
Para evitar errores, no se recomienda utilizar la reconexin dinmica de una seal AliasIO
a varias seales fsicas diferentes.
Sintaxis
AliasIO
[ FromSignal ':=' ] < reference (REF) of anytype> ','
[ ToSignal ':=' ] < variable (VAR) of anytype> ';'
ERR_ALIASIO_DEF La seal FromSignal no est definida en la configuracin de
E/S
O la seal ToSignal no est declarada en el programa de
RAPID
O la seal ToSignal est definida en la configuracin de E/S.
ERR_ALIASIO_TYPE Los tipos de datos de los argumentos FromSignal y
ToSignal no son del mismo tipo.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.4. AliasIO - Define una seal de E/S con un nombre de alias
RobotWare - OS
3HAC16581-5 Revisin: H 22


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica -
Descripcin general de RAPID
Funcionalidad de entrada/salida en general Manual de referencia tcnica -
Descripcin general de RAPID
Configuracin de E/S Manual de referencia tcnica -
Parmetros del sistema
Definicin de rutinas de evento Manual de referencia tcnica -
Parmetros del sistema
Mdulos de tarea cargados o instalados Manual de referencia tcnica -
Parmetros del sistema
Continuacin
1 Instrucciones
1.5. ":=" - Asigna un valor
RobotWare - OS
23 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.5. " :=" - Asigna un valor
Utilizacin
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 bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ":=".
Consulte tambin Ms ejemplos en la pgina 23.
Ejemplo 1
reg1 := 5;
Se asigna a reg1 el valor 5.
Ejemplo 2
reg1 := reg2 - reg3;
Se asigna a reg1 el valor que devuelve el clculo reg2-reg3.
Ejemplo 3
counter := counter + 1;
counter aumenta en 1.
Argumentos
Data := Value
Data
Tipo de dato: All
El dato al que se desea asignar un nuevo valor.
Value
Tipo de dato: Same as Data
El valor deseado.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ":=".
Ejemplo 1
tool1.tframe.trans.x := tool1.tframe.trans.x + 20;
El TCP de tool1 se desplaza 20 mm en la direccin X.
Ejemplo 2
pallet{5,8} := Abs(value);
Se asigna a un elemento de la matriz pallet un valor igual al valor absoluto de la variable
value.
Contina en la pgina siguiente
1 Instrucciones
1.5. ":=" - Asigna un valor
RobotWare - OS
3HAC16581-5 Revisin: H 24


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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)
<assignment target> ':=' <expression> ';'
<assignment target> ::=
<variable>
| <persistent>
| <parameter>
| <VAR>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Expresiones Manual de referencia tcnica - Descripcin
general de RAPID
Tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID
Asignacin de un valor inicial a un dato Manual del operador - IRC5 con FlexPendant
Continuacin
1 Instrucciones
1.6. BitClear - Desactiva un bit especfico de un dato de byte
RobotWare - OS
25 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.6. BitClear - Desactiva un bit especfico de un dato de byte
Utilizacin
BitClear se utiliza para desactivar (poner a 0) un bit especificado de un dato de byte
definido.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin BitClear.
Ejemplo 1
CONST num parity_bit := 8;
VAR byte data1 := 130;
BitClear data1, parity_bit;
El bit nmero 8 (parity_bit) de la variable data1 cambia a 0, con lo que el contenido de la
variable data1 cambia de 130 a 2 (en su valor decimal). La manipulacin de bits de un dato
de tipo byte al utilizar BitClear se muestra en la figura siguiente.
xx0500002147
Argumentos
BitClear BitData BitPos
BitData
Tipo de dato: byte
Los datos de bits a cambiar, en representacin entera.
BitPos
Bit Position
Tipo de dato: num
El valor de la posicin de bit (de 1 a 8) de BitData que se desea cambiar a 0.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255 en decimal.
Las posiciones de bit vlidas son de la 1 a la 8.
Contina en la pgina siguiente
1 Instrucciones
1.6. BitClear - Desactiva un bit especfico de un dato de byte
RobotWare - OS
3HAC16581-5 Revisin: H 26


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
BitClear
[ BitData ':=' ] < var or pers (INOUT) of byte > ','
[ BitPos ':=' ] < expression (IN) of num > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de un bit especfico de un dato de
byte
BitSet - Activa un bit especfico de un dato de
byte en la pgina 27
Comprobacin de si un bit especfico de un
dato de byte est activado
BitCheck - Comprueba si un bit especificado
de un dato de byte est activado en la pgina
778
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.7. BitSet - Activa un bit especfico de un dato de byte
RobotWare - OS
27 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.7. BitSet - Activa un bit especfico de un dato de byte
Utilizacin
BitSet se utiliza para cambiar a 1 un bit especificado dentro de un dato de byte definido.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin BitSet.
Ejemplo 1
CONST num parity_bit := 8;
VAR byte data1 := 2;
BitSet data1, parity_bit;
El bit nmero 8 (parity_bit) de la variable data1 cambia a 1, es decir, el contenido de la
variable data1 cambia de 2 a 130 (en su representacin entera). La manipulacin de bits de
un dato de tipo byte al utilizar BitSet se muestra en la figura siguiente.
xx0500002148
Argumentos
BitSet BitData BitPos
BitData
Tipo de dato: byte
Los datos de bits a cambiar, en representacin entera.
BitPos
Bit Position
Tipo de dato: num
El valor de la posicin de bit (de 1 a 8) de BitData que se desea cambiar a 1.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255 en su representacin de nmero entero.
Las posiciones de bit vlidas son de la 1 a la 8.
Sintaxis
BitSet
[ BitData':=' ] < var or pers (INOUT) of byte > ','
[ BitPos':=' ] < expression (IN) of num > ';'
Contina en la pgina siguiente
1 Instrucciones
1.7. BitSet - Activa un bit especfico de un dato de byte
RobotWare - OS
3HAC16581-5 Revisin: H 28


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin de un bit especfico de un dato
de byte
BitClear - Desactiva un bit especfico de un
dato de byte en la pgina 25
Comprobacin de si un bit especfico de un
dato de byte est activado
BitCheck - Comprueba si un bit especificado
de un dato de byte est activado en la pgina
778
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.8. BookErrNo - Registra un nmero de error de sistema de RAPID
RobotWare - OS
29 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.8. BookErrNo - Registra un nmero de error de sistema de RAPID
Utilizacin
BookErrNose utiliza para registrar un nuevo nmero de error de sistema de RAPID.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin BookErrNo.
Ejemplo 1
! Introduce a new error number in a glue system
! Note: The new error variable must be declared with the initial
value -1
VAR errnum ERR_GLUEFLOW := -1;
! Book the new RAPID system error number
BookErrNo ERR_GLUEFLOW;
La variable ERR_GLUEFLOW se asignar a un nmero de error de sistema que est libre en el
cdigo de RAPID.
! Use the new error number
IF di1 = 0 THEN
RAISE ERR_GLUEFLOW;
ELSE
...
ENDIF
! Error handling
ERROR
IF ERRNO = ERR_GLUEFLOW THEN
...
ELSE
...
ENDIF
Si la entrada digital di1 contiene 0, el nuevo nmero de error registrado ser elevado y la
variable de error de sistema ERRNO cambiar al nuevo nmero de error registrado. De esta
forma, el manejo de errores de los errores generados por el usuario puede realizarse con el
gestor de errores, de la forma habitual.
Argumentos
BookErrNo ErrorName
ErrorName
Tipo de dato: errnum
El nombre de la variable del nuevo nmero de error de sistema de RAPID.
Contina en la pgina siguiente
1 Instrucciones
1.8. BookErrNo - Registra un nmero de error de sistema de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 30


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La variable del nuevo error no debe estar declarada como una variable de rutina.
La variable del nuevo error debe estar declarada con un valor inicial de -1, lo que indica que
este error debe ser un error de sistema de RAPID.
Sintaxis
BookErrNo
[ ErrorName ':='] < variable (VAR) of errnum > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestin de errores Manual de referencia tcnica - Descripcin
general de RAPID
Nmero de error errnum - Nmero de error en la pgina 1104
Llamada a un gestor de errores RAISE - Llama a un gestor de errores en la
pgina 341
Continuacin
1 Instrucciones
1.9. Break - Interrumpe la ejecucin del programa
RobotWare - OS
31 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.9. Break - Interrumpe la ejecucin del programa
Utilizacin
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.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin Break.
Ejemplo 1
...
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 hay una instruccin Break en alguna rutina de evento, la ejecucin de la rutina se
interrumpir y no se ejecutar ninguna rutina de evento STOP. La rutina de evento se
ejecutar desde el principio la prxima vez que tenga lugar el mismo evento.
Sintaxis
Break';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Paro para acciones de programa Stop - Detiene la ejecucin del programa
en la pgina 518
Paro despus de un error no recuperable EXIT - Finaliza la ejecucin del programa
en la pgina 102
Finalizacin de la ejecucin del programa EXIT - Finaliza la ejecucin del programa
en la pgina 102
Paro de los movimientos del robot nicamente StopMove - Detiene el movimiento del
robot en la pgina 523
1 Instrucciones
1.10. CallByVar - Llama a un procedimiento mediante una variable
RobotWare - OS
3HAC16581-5 Revisin: H 32


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.10. CallByVar - Llama a un procedimiento mediante una variable
Utilizacin
CallByVar (Call By 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.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CallByVar.
Consulte tambin Ms ejemplos en la pgina 32.
Ejemplo 1
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.
Ms ejemplos
Ms ejemplos sobre cmo hacer selecciones estticas y dinmicas de llamadas a
procedimiento.
Ejemplo 1: 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
Contina en la pgina siguiente
1 Instrucciones
1.10. CallByVar - Llama a un procedimiento mediante una variable
RobotWare - OS
33 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ejemplo 2: 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.
Ejemplo 3: 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.
No puede usarse para llamar a procedimientos de tipo LOCAL.
La ejecucin de CallByVar requiere un poco ms de tiempo que la ejecucin de una llamada
normal a un procedimiento.
Gestin de errores
Si el argumento Number es <0 o no es un entero, la variable de sistema ERRNO cambia a
ERR_ARGVALERR.
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 (que no se trate de un procedimiento),
la variable de sistema ERRNO cambia a ERR_CALLPROC.
Estos errores pueden ser gestionados en el gestor de errores.
Sintaxis
CallByVar
[Name ':='] <expression (IN) of string>','
[Number ':='] <expression (IN) of num>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Llamadas a procedimientos Manual de referencia tcnica - Descripcin
general de RAPID
Manual del operador - IRC5 con
FlexPendant
Continuacin
1 Instrucciones
1.11. CancelLoad - Cancela la carga de un mdulo
RobotWare - OS
3HAC16581-5 Revisin: H 34


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.11. CancelLoad - Cancela la carga de un mdulo
Utilizacin
CancelLoad puede usarse para cancelar la operacin de carga generada por la instruccin
StartLoad.
CancelLoad slo puede usarse entre instrucciones StartLoad y WaitLoad.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CancelLoad.
Consulte tambin Ms ejemplos en la pgina 34.
Ejemplo 1
CancelLoad load1;
Se cancela la sesin de carga load1.
Argumentos
CancelLoad LoadNo
LoadNo
Tipo de dato: loadsession
Una referencia a la sesin de carga, creada por la instruccin StartLoad.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin CancelLoad.
Ejemplo 1
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.
Limitacin
CancelLoad slo puede usarse en la secuencia una vez que la instruccin StartLoad est
lista y antes del inicio de la instruccin WaitLoad.
Contina en la pgina siguiente
1 Instrucciones
1.11. CancelLoad - Cancela la carga de un mdulo
RobotWare - OS
35 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
CancelLoad
[ LoadNo ':=' ] < variable (VAR) of loadsession >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Carga de mdulos de programa durante la
ejecucin
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
Conexin de un mdulo cargado a una tarea WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Sesin de carga loadsession - Programar una sesin de
carga en la pgina 1134
Carga de un mdulo de programa Load - Carga un mdulo de programa
durante la ejecucin en la pgina 209
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Comprobar referencias de programa CheckProgRef - Comprobar referencias de
programa en la pgina 36
Continuacin
1 Instrucciones
1.12. CheckProgRef - Comprobar referencias de programa
RobotWare - OS
3HAC16581-5 Revisin: H 36


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.12. CheckProgRef - Comprobar referencias de programa
Utilizacin
CheckProgRef se usa para comprobar la existencia de referencias no resueltas en cualquier
momento durante la ejecucin.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CheckProgRef.
Ejemplo 1
Load \Dynamic, diskhome \File:="PART_B.MOD" \CheckRef;
Unload "PART_A.MOD";
CheckProgRef;
En este caso, el programa contiene un mdulo con el nombre PART_A.MOD. Se carga un
nuevo mdulo PART_B.MOD, que comprueba si todas las referencias son correctas. A
continuacin se descarga PART_A.MOD. Para buscar referencias no resueltas tras la descarga,
se realiza una llamada a CheckProgRef.
Ejecucin de programas
La ejecucin del programa fuerza un nuevo enlace de la tarea de programa y comprueba la
existencia de referencias no resueltas.
Si se produce un error durante CheckProgRef, el programa no se ve afectado. Slo indica
que existe una referencia sin resolver en la tarea de programa. Por tanto, utilice
CheckProgRef inmediatamente despus de cambiar el nmero de mdulos de la tarea de
programa (cargando o descargando), con el fin de saber qu mdulo provoc el error de
enlace.
Esta instruccin tambin puede usarse como sustituta del uso del argumento opcional
\CheckRef en la instruccin Load o WaitLoad.
Gestin de errores
Si la tarea de programa contiene referencias no resueltas, la variable de sistema ERRNO
cambiar a ERR_LINKREF, lo cual puede ser gestionado en el gestor de errores.
Sintaxis
CheckProgRef';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Carga de un mdulo de programa Load - Carga un mdulo de programa
durante la ejecucin en la pgina 209
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Inicio de la carga de un mdulo de programa StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
Finalizacin de la carga de un mdulo de
programa
WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
37 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias
circulares
Utilizacin
CirPathMode (Circle Path Mode) permite seleccionar formas distintas de reorientar la
herramienta durante los movimientos circulares.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin CirPathMode.
Ejemplo 1
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.
Ejemplo 2
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.
Ejemplo 3
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.
Ejemplo 4
CirPathMode \Wrist45;
Un modo modificado, de forma que la proyeccin del eje Z de la herramienta sobre el plano
de corte seguir el segmento de crculo programado. Slo se utilizan los ejes de mueca 4 y
5. Este modo slo debe usarse con objetos delgados.
Ejemplo 5
CirPathMode \Wrist46;
Un modo modificado, de forma que la proyeccin del eje Z de la herramienta sobre el plano
de corte seguir el segmento de crculo programado. Slo se utilizan los ejes de mueca 4 y
6. Este modo slo debe usarse con objetos delgados.
Ejemplo 6
CirPathMode \Wrist56;
Un modo modificado, de forma que la proyeccin del eje Z de la herramienta sobre el plano
de corte seguir el segmento de crculo programado. Slo se utilizan los ejes de mueca 5 y
6. Este modo slo debe usarse con objetos delgados.
Contina en la pgina siguiente
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
3HAC16581-5 Revisin: H 38


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Descripcin
PathFrame
La figura de la tabla muestra la reorientacin de la herramienta del modo estndar
\PathFrame.
La figura de la tabla muestra el uso del modo estndar \PathFrame con una orientacin de
herramienta fija.
Figura Descripcin
xx0500002152
Las flechas representan la posicin de la
herramienta respecto del punto central de la
mueca hasta el punto central de la her-
ramienta, 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
Figura Descripcin
xx0500002153
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
39 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Base de coordenadas del objeto
La figura de la tabla muestra el uso del modo modificado \ObjectFrame con una
orientacin de herramienta fija.
CirPointOri
La figura de la tabla representa las diferencias de reorientacin de la herramienta existentes
entre el modo estndar \PathFrame y el modo modificado \CirPointOri.
Wrist45 / Wrist46 / Wrist56
La figura de la tabla muestra las bases de coordenadas implicadas a la hora de cortar una
forma al utilizar los ejes 4 y 5..
Figura Descripcin
xx0500002151
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.
Figura Descripcin
xx0500002150
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. Las distintas
trayectorias del punto central de la mueca se
representan con lneas discontinuas en la figura.
El modo \CirPointOri hace que la mueca
del robot atraviese la orientacin programada en
CirPoint.
Figura Descripcin
xx0800000294
Se supone que el haz de corte est alineado con
el eje Z de la herramienta. La base de
coordenadas del plano de corte se define por la
posicin inicial del robot al ejecutar la instruccin
MoveC.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
3HAC16581-5 Revisin: H 40


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
CirPathMode [\PathFrame] | [\ObjectFrame] | [\CirPointOri] |
[\Wrist45] | [\Wrist46] | [\Wrist56]
[ \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.
[ \Wrist45 ]
Tipo de dato: switch
El robot mover los ejes 4 y 5 de forma que la proyeccin del eje Z de la herramienta sobre
el plano de corte seguir el segmento de crculo programado. Este modo slo debe usarse con
objetos delgados y slo se utilizan 2 ejes de mueca, lo que proporciona una mayor exactitud
pero a la vez un menor control.
NOTA: Este modificador requiere la opcin Wrist Move.
[ \Wrist46 ]
Tipo de dato: switch
El robot mover los ejes 4 y 6 de forma que la proyeccin del eje Z de la herramienta sobre
el plano de corte seguir el segmento de crculo programado. Este modo slo debe usarse con
objetos delgados y slo se utilizan 2 ejes de mueca, lo que proporciona una mayor exactitud
pero a la vez un menor control.
NOTA: Este modificador requiere la opcin Wrist Move.
[ \Wrist56 ]
Tipo de dato: switch
El robot mover los ejes 5 y 6 de forma que la proyeccin del eje Z de la herramienta sobre
el plano de corte seguir el segmento de crculo programado. Este modo slo debe usarse con
objetos delgados y slo se utilizan 2 ejes de mueca, lo que proporciona una mayor exactitud
pero a la vez un menor control.
NOTA: Este modificador requiere la opcin Wrist Move.
Si utiliza CirPathMode sin ningn modificador, se consigue el mismo efecto que con
CirPointMode \PathFrame.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
41 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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.
xx0500002149
\Wrist45, Los modos \Wrist46 y \Wrist56 slo deben usarse para cortar objetos
delgados, dado que la posibilidad de controlar el ngulo de la herramienta se pierde al utilizar
slo dos ejes de mueca. No es posible utilizar movimientos coordinados dado que el eje
principal est bloqueado.
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] |
['\'Wrist45] | ['\'Wrist46] | ['\'Wrist56] ';'
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.13. CirPathMode - Reorientacin de la herramienta durante trayectorias circulares
RobotWare - OS
3HAC16581-5 Revisin: H 42


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Interpolacin Manual de referencia tcnica - Descripcin
general de RAPID
Datos de parmetros de movimiento motsetdata - Datos de parmetros de
movimiento en la pgina 1137
Instruccin para movimiento circular MoveC - Mueve el robot en crculo en la
pgina 237
Movimientos de la mueca Application manual - Motion Performance,
seccin Wrist Move
Continuacin
1 Instrucciones
1.14. Clear - Borra el valor
RobotWare - OS
43 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.14. Clear - Borra el valor
Utilizacin
Clear se utiliza para borrar el contenido de una variable numrica o una variable persistente,
es decir, asignarle el valor 0.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Clear.
Ejemplo 1
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 ':=' ] < var or pers (INOUT) of num > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Incremento de una variable en 1 Incr - Aumenta en 1 un valor en la pgina 130
Decremento de una variable en 1 Decr - Reduce un nmero en 1 en la pgina 80
Suma de cualquier valor a una variable Add - Suma un valor numrico en la pgina 19
Cambio de un dato mediante una expresin
arbitraria
":=" - Asigna un valor en la pgina 23
1 Instrucciones
1.15. ClearIOBuff - Vaca el bfer de entrada de un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 44


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.15. ClearIOBuff - Vaca el bfer de entrada de un canal serie
Utilizacin
ClearIOBuff (Clear I/O Buffer) 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.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ClearIOBuff.
Ejemplo 1
VAR iodev channel2;
...
Open "com2:", channel2 \Bin;
ClearIOBuff channel2;
WaitTime 0.1;
Se vaca el bfer de entrada del canal serie al que se hace referencia con channel2. El tiempo
de espera garantiza a la operacin de borrado un tiempo suficiente para su finalizacin.
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. No se espera la confirmacin de la
operacin para finalizar. Deje un tiempo de espera de 0,1 segundos tras la instruccin para
proporcionar a la operacin un tiempo suficiente en cada aplicacin.
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.
Sintaxis
ClearIOBuff
[IODevice ':='] <variable (VAR) of iodev>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de un canal serie Manual de referencia tcnica - Descripcin
general de RAPID
1 Instrucciones
1.16. ClearPath - Elimina la trayectoria actual
Robot Ware - OS
45 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.16. ClearPath - Elimina la trayectoria actual
Utilizacin
ClearPath (Clear Path) 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ClearPath.
xx0500002154
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.
Ejemplo 1
VAR intnum drop_payload;
VAR errnum ERR_DROP_LOAD := -1;
PROC minicycle()
BookErrNo ERR_DROP_LOAD;
proc1;
...
ERROR (ERR_DROP_LOAD)
RETRY;
ENDPROC
PROC proc1()
...
proc2;
...
ENDPROC
Contina en la pgina siguiente
1 Instrucciones
1.16. ClearPath - Elimina la trayectoria actual
Robot Ware - OS
3HAC16581-5 Revisin: H 46


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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;
StorePath;
MoveL home, v500, fine, gripper;
RestoPath;
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 hasta 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.
Limitaciones
A continuacin aparecen algunos ejemplos de limitacin de la instruccin ClearPath.
Ejemplo 1 - Limitacin
VAR intnum int_move_stop;
...
PROC test_move_stop()
CONNECT int_move_stop WITH trap_move_stop;
ISignalDI di1, 1, int_move_stop;
MoveJ p10, v200, z20, gripper;
MoveL p20, v200, z20, gripper;
ENDPROC
TRAP trap_move_stop
StopMove;
ClearPath;
StartMove;
StorePath;
MoveJ p10, v200, z20, gripper;
RestoPath;
ENDTRAP
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.16. ClearPath - Elimina la trayectoria actual
Robot Ware - OS
47 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ste es un ejemplo de la limitacin de ClearPath. Durante el movimiento del robot hacia
p10 y p20, el movimiento en curso se detiene y la trayectoria de movimiento se borra, pero
no se realiza ninguna accin para interrumpir la instruccin activa MoveJ p10 o MoveL p20
en PROC test_move_stop. Por tanto, el movimiento en curso se interrumpir y el robot
pasar a p10 en TRAP trap_move_stop, pero no se realizar ningn movimiento adicional
hacia p10 o p20 en PROC test_move_stop. La ejecucin del programa se quedar en
suspenso.
Este problema puede resolverse con la recuperacin de errores con un salto largo, de la forma
descrita en el ejemplo 2 que aparece a continuacin, o con un error elevado asncronamente
con la instruccin ProcerrRecovery.
Ejemplo 2 - Sin limitaciones
VAR intnum int_move_stop;
VAR errnum err_move_stop := -1;
...
PROC test_move_stop()
BookErrNo err_move_stop;
CONNECT int_move_stop WITH trap_move_stop;
ISignalDI di1, 1, int_move_stop;
MoveJ p10, v200, z20, gripper;
MoveL p20, v200, z20, gripper;
ERROR (err_move_stop)
StopMove;
ClearPath;
StartMove;
StorePath;
MoveJ p10, v200, z20, gripper;
RestoPath;
RETRY;
ENDPROC
TRAP trap_move_stop
RAISE err_move_stop;
ERROR
RAISE;
ENDTRAP
ste es un ejemplo de cmo usar la recuperacin de errores con un salto largo junto con
ClearPath y sin limitaciones. Durante el movimiento del robot a p10 y p20, se detiene el
movimiento en curso. La trayectoria de movimiento se borra y, debido a la recuperacin de
errores ms all de los lmites de nivel de ejecucin, se realiza una interrupcin en la
instruccin activa MoveJ p10 o MoveL p20. Por tanto, el movimiento en curso se interrumpe
y el robot pasa a p10 en ERROR handler, y se ejecuta una vez ms la instruccin
interrumpida MoveJ p10 o MoveL p20 en PROC test_move_stop.
Sintaxis
ClearPath ';'
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.16. ClearPath - Elimina la trayectoria actual
Robot Ware - OS
3HAC16581-5 Revisin: H 48


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Paro de los movimientos del robot StopMove - Detiene el movimiento del robot
en la pgina 523
Recuperacin en caso de error Manual de referencia tcnica - Descripcin
general de RAPID
Technical reference manual - RAPID kernel
Error elevado asncronamente ProcerrRecovery - Genera errores de
movimiento de proceso y permite la recuper-
acin tras ellos en la pgina 332
Continuacin
1 Instrucciones
1.17. ClearRawBytes - Borra el contenido de un dato de tipo rawbytes
RobotWare - OS
49 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.17. ClearRawBytes - Borra el contenido de un dato de tipo rawbytes
Utilizacin
ClearRawBytes se utiliza para cambiar a 0 todo el contenido de una variable de tipo
rawbytes.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin.
Ejemplo 1
VAR rawbytes raw_data;
VAR num integer := 8
VAR num float := 13.4;
PackRawBytes integer, raw_data, 1 \IntX := DINT;
PackRawBytes float, raw_data, (RawBytesLen(raw_data)+1) \Float4;
ClearRawBytes raw_data \FromIndex := 5;
Se guarda en los primeros 4 bytes el valor de integer (a partir del nmero de ndice 1) y, en
los 4 bytes siguientes, a partir del nmero de ndice 5, el valor de float.
La ltima ilustracin del ejemplo borra el contenido de raw_data, a partir del nmero de
ndice 5. Es decir, se borra el contenido de float, pero el valor de integer se conserva en
raw_data. La longitud actual de los bytes vlidos de raw_data cambia a 4.
Argumentos
ClearRawBytes RawData [ \FromIndex ]
RawData
Tipo de dato: rawbytes
RawData es el contenedor de datos cuyo contenido se borrar.
[ \FromIndex ]
Tipo de dato: num
Con \FromIndex se especifica a partir de qu punto se empieza a borrar el contenido de
RawData. Se borra todo el contenido hasta el final.
Si no se especifica \FromIndex, se borran todos los datos que existan a partir del nmero de
ndice 1.
Ejecucin de programas
Se restablecen a 0 los datos a partir del nmero de ndice 1 (predeterminado) o a partir de
\FromIndex en la variable especificada.
La longitud actual de los bytes vlidos de la variable especificada cambia a 0
(predeterminado) o a (FromIndex- 1) si se programa \FromIndex.
Contina en la pgina siguiente
1 Instrucciones
1.17. ClearRawBytes - Borra el contenido de un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 50


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ClearRawBytes
[RawData ':=' ] < variable (VAR) of rawbytes>
['\'FromIndex ':=' <expression (IN) of num>]';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Copiado del contenido de un dato
rawbytes
CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un dato
de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Continuacin
1 Instrucciones
1.18. ClkReset - Pone a cero un reloj utilizado como temporizador
RobotWare - OS
51 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.18. ClkReset - Pone a cero un reloj utilizado como temporizador
Utilizacin
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.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ClkReset.
Ejemplo 1
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) of clock > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de reloj Manual de referencia tcnica - Descripcin
general de RAPID
1 Instrucciones
1.19. ClkStart - Pone en marcha un reloj utilizado para la temporizacin
RobotWare - OS
3HAC16581-5 Revisin: H 52


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.19. ClkStart - Pone en marcha un reloj utilizado para la temporizacin
Utilizacin
ClkStart se utiliza para poner en marcha un reloj que funciona como un cronmetro para
funciones de temporizacin.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ClkStart.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ClkStart.
Ejemplo 1
VAR clock clock2;
VAR num time;
ClkReset clock2;
ClkStart clock2;
WaitUntil di1 = 1;
ClkStop clock2;
time:=ClkRead(clock2);
Se mide el tiempo que se espera a que di1 tenga el valor 1.
Contina en la pgina siguiente
1 Instrucciones
1.19. ClkStart - Pone en marcha un reloj utilizado para la temporizacin
RobotWare - OS
53 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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) of clock >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de reloj Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.20. ClkStop - Detiene un reloj utilizado para la temporizacin
RobotWare - OS
3HAC16581-5 Revisin: H 54


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.20. ClkStop - Detiene un reloj utilizado para la temporizacin
Utilizacin
ClkStop se utiliza para parar un reloj que funciona como un cronmetro para funciones de
temporizacin.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ClkStop.
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) of clock >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de reloj Manual de referencia tcnica - Descripcin
general de RAPID
Ms ejemplos ClkStart - Pone en marcha un reloj utilizado
para la temporizacin en la pgina 52
1 Instrucciones
1.21. Close - Cierra un archivo o un canal serie
RobotWare - OS
55 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.21. Close - Cierra un archivo o un canal serie
Utilizacin
Close se utiliza para cerrar un archivo o un canal serie.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin Close.
Ejemplo 1
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) of iodev>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de un archivo o canal serie Manual de referencia tcnica - Descripcin
general de RAPID
1 Instrucciones
1.22. CloseDir - Cierra un directorio
RobotWare - OS
3HAC16581-5 Revisin: H 56


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.22. CloseDir - Cierra un directorio
Utilizacin
CloseDir se utiliza para cerrar un directorio, como contraposicin de OpenDir.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CloseDir.
Ejemplo 1
PROC lsdir(string dirname)
VAR dir directory;
VAR string filename;
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
TPWrite filename;
ENDWHILE
CloseDir directory;
ENDPROC
Este ejemplo imprime los nombres de todos los archivos o subdirectorios que se encuentran
dentro del directorio especificado.
Argumentos
CloseDir Dev
Dev
Tipo de dato: dir
Una variable que hace referencia a un directorio y capturada con la instruccin OpenDir.
Sintaxis
CloseDir
[ Dev ':=' ] < variable (VAR) of dir>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Directorio dir - Estructura de directorio de archivos en la
pgina 1099
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Apertura de un directorio OpenDir - Abre un directorio en la pgina 291
Lectura de un directorio ReadDir - Lee la siguiente entrada de un
directorio en la pgina 953
Eliminacin de un directorio RemoveDir - Elimina un directorio en la pgina
362
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un archivo
en la pgina 365
1 Instrucciones
1.23. Comentario - Comentario
RobotWare - OS
57 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.23. Comentario - Comentario
Utilizacin
Comment slo se utiliza para facilitar la comprensin del programa. No tiene ningn efecto
sobre la ejecucin del programa.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin Comment.
Ejemplo 1
! Goto the position above pallet
MoveL p100, v500, z20, tool1;
Se inserta un comentario en el programa para facilitar su comprensin.
Argumentos
! Comment
Comment
Cadena de texto
Cualquier texto.
Ejecucin de programas
Cuando se ejecuta esta instruccin, no ocurre nada.
Sintaxis
(EBNF)
'!' {<character>} <newline>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Caracteres permitidos en los comentarios Manual de referencia tcnica - Descripcin
general de RAPID
Comentarios dentro de declaraciones de
datos y rutinas
Manual de referencia tcnica - Descripcin
general de RAPID
1 Instrucciones
1.24. Compact IF (IF compacto) - Si se cumple una condicin, entonces... (una instruccin)
RobotWare - OS
3HAC16581-5 Revisin: H 58


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.24. Compact IF (IF compacto) - Si se cumple una condicin, entonces... (una
instruccin)
Utilizacin
Compact IF 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin CompactIF.
Ejemplo 1
IF reg1 > 5 GOTO next;
Si reg1 es mayor que 5, la ejecucin del programa contina a partir de la etiqueta next.
Ejemplo 2
IF counter > 10 Set do1;
La seal do1 se activa si counter > 10.
Argumentos
IF Condicin...
Condition
Tipo de dato: bool
La condicin que debe cumplirse para que se ejecute la instruccin.
Sintaxis
(EBNF)
IF <conditional expression> ( <instruction> | <SMT>) ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Condiciones (expresiones lgicas) Manual de referencia tcnica - Descripcin
general de RAPID
IF con varias instrucciones IF - Si se cumple una condicin, ...; de lo
contrario, ... en la pgina 128
1 Instrucciones
1.25. ConfJ - Controla la configuracin durante el movimiento de los ejes
RobotWare - OS
59 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.25. ConfJ - Controla la configuracin durante el movimiento de los ejes
Utilizacin
ConfJ (Configuration Joint) 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, movindose
sin embargo hasta la configuracin de mueca ms cercana para los ejes 4 y 6.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ConfJ.
Ejemplo 1
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.
Ejemplo 2
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.
Contina en la pgina siguiente
1 Instrucciones
1.25. ConfJ - Controla la configuracin durante el movimiento de los ejes
RobotWare - OS
3HAC16581-5 Revisin: H 60


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
El control de la configuracin (ConfJ \On) est activado de forma predeterminada. 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
Para obtener ms informacin sobre Consulte
Manejo de configuraciones diferentes Manual de referencia tcnica - Descripcin
general de RAPID
Configuracin del robot durante el
movimiento lineal
ConfL - Monitoriza la configuracin durante el
movimiento lineal en la pgina 61
Continuacin
1 Instrucciones
1.26. ConfL - Monitoriza la configuracin durante el movimiento lineal
RobotWare - OS
61 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.26. ConfL - Monitoriza la configuracin durante el movimiento lineal
Utilizacin
ConfL (Configuration Linear) 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
NOTA!
En el caso del robot IRB 5400, la monitorizacin est siempre desactivada,
independientemente de lo que se especifique en la instruccin ConfL.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ConfL.
Ejemplo 1
ConfL \On;
MoveL *, v1000, fine, tool1;
La ejecucin del programa se detiene si no es posible alcanzar la configuracin programada
desde la posicin actual.
Ejemplo 2
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.
Ejemplo 3
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.
Contina en la pgina siguiente
1 Instrucciones
1.26. ConfL - Monitoriza la configuracin durante el movimiento lineal
RobotWare - OS
3HAC16581-5 Revisin: H 62


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Una regla sencilla para evitar problemas, tanto con ConfL\On como con \Off, es insertar
puntos intermedios para hacer que el movimiento de cada eje sea inferior a los 90 grados entre
dos puntos. Ms exactamente, la suma de movimientos de cualquier par de ejes (1+4), (1+6),
(3+4) o (3+6) no debe sobrepasar los 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 Position outside o
50080 Position not compatible. En programas que utilizan ConfL\Off, se
recomienda usar movimientos hacia puntos de configuracin conocidos mediante
ConfJ\On o MoveJ +ConfL\On +SingArea\Wrist +MoveL, como puntos de partida
de las distintas partes del programa.
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.
Sintaxis
ConfL
[ '\' On] | [ '\' Off]';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Manejo de configuraciones diferentes Manual de referencia tcnica - Descripcin
general de RAPID
Configuracin del robot durante el
movimiento de ejes
ConfJ - Controla la configuracin durante el
movimiento de los ejes en la pgina 59
Definicin del mtodo de interpolacin
alrededor de puntos singulares
SingArea - Define el mtodo de interpolacin
alrededor de puntos singulares en la pgina
455
Continuacin
1 Instrucciones
1.27. CONNECT - Conecta una interrupcin a una rutina TRAP
RobotWare - OS
63 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.27. CONNECT - Conecta una interrupcin a una rutina TRAP
Utilizacin
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.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CONNECT.
Ejemplo 1
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. Se producir una interrupcin en el momento en el que la entrada di1 pasa
al nivel alto. En otras palabras, cuando la seal pasa al modo activo, se ejecuta la rutina TRAP
feeder_empty.
Argumentos
CONNECT Interrupt WITH Trap routine
Interrupt
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).
Trap routine
Identifier
El nombre de la rutina TRAP.
Ejecucin de programas
Se asigna a la variable una identidad de interrupcin que se usar a partir de ese momento
para pedir o desactivar interrupciones. Esta identidad tambin se conecta a la rutina TRAP
especificada.
NOTA!
Todas las interrupciones de una tarea se cancelan cuando el puntero de programa se sita en
Main para esa tarea y deben ser reconectadas. Las interrupciones no se ven afectadas por
cadas de alimentacin ni arranques en caliente.
Contina en la pgina siguiente
1 Instrucciones
1.27. CONNECT - Conecta una interrupcin a una rutina TRAP
RobotWare - OS
3HAC16581-5 Revisin: H 64


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Las interrupciones que lleguen o que no hayan sido gestionadas antes de la detencin de la
ejecucin del programa no se procesan. Las interrupciones no se tienen en cuenta al detener
el programa.
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 ERROR.
Sintaxis
(EBNF)
CONNECT <connect target> WITH <trap>';'
<connect target> ::= <variable>
| <parameter>
| <VAR>
<trap> ::= <identifier>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID
Ms informacin sobre la gestin de inter-
rupciones
Manual de referencia tcnica - Descripcin
general de RAPID
Tipos de datos de las interrupciones intnum - Identidad de interrupcin en la
pgina 1121
Cancelacin de una interrupcin IDelete - Cancela una interrupcin en la
pgina 121
Continuacin
1 Instrucciones
1.28. CopyFile - Copia un archivo
RobotWare - OS
65 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.28. CopyFile - Copia un archivo
Utilizacin
CopyFile se utiliza para hacer una copia de un archivo existente.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CopyFile.
Ejemplo 1
CopyFile "HOME:/miarchivo", "HOME:/suarchivo";
El archivo myfile se copia a yourfile. En este momento, los dos archivos son idnticos.
CopyFile "HOME:/myfile", "HOME:/mydir/yourfile";
El archivo myfile se copia a yourfile en el directorio mydir.
Argumentos
CopyFile OldPath NewPath
OldPath
Tipo de dato: string
La ruta completa del archivo del que se desea copiar.
NewPath
Tipo de dato: string
La ruta completa a la que se desea copiar el archivo.
Ejecucin de programas
El archivo especificado en OldPath se copia al archivo especificado en NewPath.
Gestin de errores
Si el archivo especificado en NewPath ya existe, la variable de sistema ERRNO cambia a
ERR_FILEEXIST. A continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
CopyFile
[ OldPath ':=' ] < expression (IN) of string > ','
[ NewPath ':=' ] < expression (IN) of string >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Contina en la pgina siguiente
1 Instrucciones
1.28. CopyFile - Copia un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 66


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.29. CopyRawBytes - Copia el contenido de un dato de tipo rawbytes
RobotWare - OS
67 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.29. CopyRawBytes - Copia el contenido de un dato de tipo rawbytes
Utilizacin
CopyRawBytes se utiliza para copiar todo el contenido o una parte del mismo de una variable
de tipo rawbytes a otra.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CopyRawBytes.
Ejemplo 1
VAR rawbytes from_raw_data;
VAR rawbytes to_raw_data;
VAR num integer := 8
VAR num float := 13.4;
ClearRawBytes from_raw_data;
PackRawBytes integer, from_raw_data, 1 \IntX := DINT;
PackRawBytes float, from_raw_data, (RawBytesLen(from_raw_data)+1)
\Float4;
CopyRawBytes from_raw_data, 1, to_raw_data, 3,
RawBytesLen(from_raw_data);
En este ejemplo, la variable from_raw_data de tipo rawbytes se borra en primer lugar, es
decir, se cambian a 0 todos sus bytes. A continuacin, se almacena en los 4 primeros bytes el
valor de integer y en los siguientes 4 bytes el valor de float.
Despus de guardar un dato en from_raw_data, el contenido (8 bytes) se copia a
to_raw_data, empezando por la posicin 3.
Argumentos
CopyRawBytes FromRawData FromIndex ToRawData
ToIndex [ \NoOfBytes ]
FromRawData
Tipo de dato: rawbytes
FromRawData es el contenedor de datos del cual se copiarn los datos de tipo rawbytes.
FromIndex
Tipo de dato: num
FromIndex es la posicin de FromRawData a partir de la cual comienza el copiado de los
datos. El primer nmero de ndice es 1.
ToRawData
Tipo de dato: rawbytes
ToRawData es el contenedor de datos al cual se copiarn los datos de tipo rawbytes.
ToIndex
Tipo de dato: num
ToIndex es la posicin de ToRawData a partir de la cual se guardarn los datos copiados. Se
copia todo el contenido hasta el final. El primer nmero de ndice es 1.
Contina en la pgina siguiente
1 Instrucciones
1.29. CopyRawBytes - Copia el contenido de un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 68


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\NoOfBytes]
Tipo de dato: num
El valor especificado con \NoOfBytes es el nmero de bytes que se desea copiar de
FromRawData a ToRawData.
Si no se especifica \NoOfBytes, se copian todos los bytes que van desde FromIndex hasta
el final de la longitud actual de bytes vlidos de FromRawData.
Ejecucin de programas
Durante la ejecucin del programa, se copian los datos de una variable rawbytes a otra.
La longitud actual de los bytes vlidos de la variable ToRawData cambia a:
(ToIndex +nmero de bytes copiados - 1)
La longitud actual de los bytes vlidos de la variable ToRawData no cambia si la
totalidad de la operacin de copia se realiza dentro de la longitud anterior de bytes
vlidos de la variable ToRawData.
Limitaciones
CopyRawBytes no puede usarse para copiar parte de los datos de una variable de tipo
rawbytes a otra parte de la misma variable rawbytes.
Sintaxis
CopyRawBytes
[FromRawData ':=' ] < variable (VAR) of rawbytes> ','
[FromIndex ':=' ] < expression (IN) of num> ','
[ToRawData ':=' ] < variable (VAR) of rawbytes> ','
[ToIndex ':=' ] < expression (IN) of num>
['\'NoOfBytes ':=' < expression (IN) of num> ]';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina 1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Borrado del contenido de un dato
rawbytes
ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un dato
de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Continuacin
1 Instrucciones
1.30. CorrClear - Elimina todos los generadores de correcciones
Path Offset
69 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.30. CorrClear - Elimina todos los generadores de correcciones
Descripciones
CorrClear se utiliza para eliminar todos los generadores de correcciones conectados. La
instruccin puede usarse para eliminar todos los offsets proporcionados anteriormente por
todos los generadores de correcciones.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin CorrClear.
Ejemplo 1
CorrClear;
Esta instruccin elimina todos los generadores de correccin conectados.
NOTA!
Una forma sencilla de garantizar que todos los generadores de correcciones (con sus
correcciones) se eliminen al iniciarse el programa, es ejecutar CorrClear en una rutina de
evento START.
Consulte el Manual de referencia tcnica - Parmetros del sistema, tema Controller.
Sintaxis
CorrClear ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin con un generador de correcciones CorrCon - Establece una conexin con un
generador de correcciones en la pgina 70
Desconexin de un generador de
correcciones
CorrDiscon - Cierra la conexin con un
generador de correcciones en la pgina 75
Escritura en un generador de correcciones CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Lectura de los offsets totales actuales CorrRead - Lee los offsets totales actuales en
la pgina 810
Descriptor de correccin corrdescr - Descriptor de generador de cor-
recciones en la pgina 1095
1 Instrucciones
1.31. CorrCon - Establece una conexin con un generador de correcciones
Path Offset
3HAC16581-5 Revisin: H 70


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.31. CorrCon - Establece una conexin con un generador de correcciones
Utilizacin
CorrCon se utiliza para conectarse a un generador de correcciones.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CorrCon.
Consulte tambin Ms ejemplos en la pgina 70.
Ejemplo 1
VAR corrdescr id;
...
CorrCon id;
La variable id se conecta a una referencia del generador de correcciones.
Argumentos
CorrCon Descr
Descr
Tipo de dato: corrdescr
Descriptor del generador de correcciones.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin CorrCon.
Sistema de coordenadas de la trayectoria
Todas las correcciones de la trayectoria (offsets aplicados a la trayectoria) se aaden en el
sistema de coordenadas de la trayectoria. El sistema de coordenadas de la trayectoria se define
de la forma mostrada a continuacin:
xx0500002156
El eje de coordenadas X de la trayectoria se indica como la tangente de la trayectoria.
El eje de coordenadas Y se deriva como el producto cruzado del eje de coordenadas Z
de la herramienta y el eje de coordenadas X de la trayectoria.
El eje de coordenadas Z se deriva como el producto cruzado del eje de coordenadas Z
de la trayectoria y el eje de coordenadas Y de la trayectoria.
Contina en la pgina siguiente
1 Instrucciones
1.31. CorrCon - Establece una conexin con un generador de correcciones
Path Offset
71 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo de aplicacin
Un ejemplo de una aplicacin en la que se utilizan correcciones de trayectoria es un robot que
sostiene una herramienta con dos sensores montados en l para detectar las distancias vertical
y horizontal respecto de un objeto de trabajo. En la figura siguiente se muestra un dispositivo
de correccin de trayectoria.
xx0500002155
Ejemplo de programa
NOTE! hori_sig and vert_sig are analog signals defined in system
parameters.
CONST num TARGET_DIST := 5;
CONST num SCALE_FACTOR := 0.5;
VAR intnum intno1;
VAR corrdescr hori_id;
VAR corrdescr vert_id;
VAR pos total_offset;
VAR pos write_offset;
VAR bool conFlag;
PROC PathRoutine()
! Connect to the correction generators for horizontal and
vertical correction.
CorrCon hori_id;
CorrCon vert_id;
conFlag := TRUE;
! Setup a 5 Hz timer interrupt. The trap routine will read the
sensor values and
! compute the path corrections.
CONNECT intno1 WITH ReadSensors;
ITimer\Single, 0.2, intno1;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.31. CorrCon - Establece una conexin con un generador de correcciones
Path Offset
3HAC16581-5 Revisin: H 72


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
! Position for start of contour tracking
MoveJ p10,v100,z10,tool1;
! Run MoveL with both vertical and horizontal correction.
MoveL p20,v100,z10,tool1\Corr;
! Read the total corrections added by all connected correction
generators.
total_offset := CorrRead();
! Write the total vertical correction on the FlexPendant.
TPWrite "The total vertical correction is:"
\Num:=total_offset.z;
! Disconnect the correction generator for vertical correction.
! Horizontal corrections will be unaffected.
CorrDiscon vert_id;
conFlag := FALSE;
! Run MoveL with only horizontal interrupt correction.
MoveL p30,v100,z10,tool1\Corr;
! Remove all outstanding connected correction generators.
! In this case, the only connected correction generator is the
one for horizontal
! correction.
CorrClear;
! Remove the timer interrupt.
IDelete intno1;
ENDPROC
TRAP ReadSensors
VAR num horiSig;
VAR num vertSig;
! Compute the horizontal correction values and execute the
correction.
horiSig := hori_sig;
write_offset.x := 0;
write_offset.y := (hori_sig - TARGET_DIST)*SCALE_FACTOR;
write_offset.z := 0;
CorrWrite hori_id, write_offset;
IF conFlag THEN
! Compute the vertical correction values and execute the
correction.
write_offset.x := 0;
write_offset.y := 0;
write_offset.z := (vert_sig - TARGET_DIST)*SCALE_FACTOR;
CorrWrite vert_id, write_offset;
ENDIF
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.31. CorrCon - Establece una conexin con un generador de correcciones
Path Offset
73 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
!Setup interrupt again
IDelete intnol;
CONNECT intno1 WITH ReadSensors;
ITimer\single, 0.2, intno1;
ENDTRAP
Explicacin del programa
Se establece la conexin a dos generadores de correcciones con la instruccin CorrCon. Se
hace referencia a cada generador de correcciones con un descriptor exclusivo (hori_id y
vert_id) del tipo corrdescr. Cada uno de los dos sensores utilizar un generador de
correcciones.
Se configura una interrupcin de temporizacin para llamar a la rutina TRAP ReadSensors
con una frecuencia de 5 Hz. Los offsets necesarios para la correccin de la trayectoria se
calculan en la rutina TRAP y se escriben en el generador de correcciones correspondiente (al
que se hace referencia con los descriptores hori_id y vert_id) con la instruccin
CorrWrite. Todas las correcciones tienen un efecto inmediato sobre la trayectoria.
La instruccin MoveL debe ser programada con el argumento modificador Corr si se utilizan
correcciones de trayectoria. De lo contrario, no se ejecuta ninguna correccin.
Cuando la primera instruccin MoveL est preparada, se utiliza la funcin CorrRead para
leer la suma de todas las correcciones (la correccin total de la trayectoria) indicada por todos
los generadores de correcciones conectados. El resultado de la correccin vertical total de la
trayectoria se escribe en el FlexPendant con la instruccin TPWrite.
A continuacin, CorrDiscon desconecta el generador de correcciones de la correccin
vertical (al que se hace referencia con el descriptor vert_id). Todas las correcciones
aadidas por este generador de correcciones se eliminarn de la correccin total de la
trayectoria. Las correcciones aadidas por el generador de correcciones para la correccin
horizontal se siguen conservando.
Por ltimo, la funcin CorrClear elimina todos los generadores de correcciones restantes,
junto con sus correcciones aadidas previamente. En este caso, el nico que se elimina es el
generador de correcciones para la correccin horizontal. La interrupcin de temporizacin
tambin se elimina con la instruccin IDelete.
Los generadores de correcciones
En la figura siguiente se muestran los generadores de correcciones.
xx0500002160
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.31. CorrCon - Establece una conexin con un generador de correcciones
Path Offset
3HAC16581-5 Revisin: H 74


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Es posible conectarse a un mximo de 5 generadores de correcciones a la vez.
Los generadores de correcciones no se mantienen al reiniciar el controlador.
Sintaxis
CorrCon
[ Descr ':=' ] < variable (VAR) of corrdescr > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desconexin de un generador de correcciones CorrDiscon - Cierra la conexin con un
generador de correcciones en la pgina 75
Escritura en un generador de correcciones CorrWrite - Escribe en un generador de
correcciones en la pgina 76
Lectura de los offsets totales actuales CorrRead - Lee los offsets totales actuales
en la pgina 810
Eliminacin de todos los generadores de cor-
recciones
CorrClear - Elimina todos los generadores
de correcciones en la pgina 69
Descriptor de generador de correcciones corrdescr - Descriptor de generador de cor-
recciones en la pgina 1095
Continuacin
1 Instrucciones
1.32. CorrDiscon - Cierra la conexin con un generador de correcciones
Path Offset
75 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.32. CorrDiscon - Cierra la conexin con un generador de correcciones
Descripcin
CorrDiscon se utiliza para desconectarse de un generador de correcciones con el que se ha
conectado anteriormente. Esta instruccin puede utilizarse para eliminar las correcciones
obtenidas anteriormente.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CorrDiscon.
Consulte tambin Ms ejemplos en la pgina 75.
Ejemplo 1
VAR corrdescr id;
...
CorrCon id;
...
CorrDiscon id;
CorrDiscon cierra la conexin con el generador de correcciones con el que se haba
conectado anteriormente y al que se hace referencia con el descriptor id.
Argumentos
CorrDiscon Descr
Descr
Tipo de dato: corrdescr
Descriptor del generador de correcciones.
Ms ejemplos
Para obtener ms ejemplos de la instruccin CorrDiscon, consulte CorrCon - Establece una
conexin con un generador de correcciones en la pgina 70.
Sintaxis
CorrDiscon
[ Descr ':=' ] < variable (VAR) of corrdescr > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin con un generador de correcciones CorrCon - Establece una conexin con un
generador de correcciones en la pgina 70
Escritura en un generador de correcciones CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Lectura de los offsets totales actuales CorrRead - Lee los offsets totales actuales en
la pgina 810
Eliminacin de todos los generadores de
correcciones
CorrClear - Elimina todos los generadores de
correcciones en la pgina 69
Descriptor de correccin corrdescr - Descriptor de generador de correc-
ciones en la pgina 1095
1 Instrucciones
1.33. CorrWrite - Escribe en un generador de correcciones
Path Offset
3HAC16581-5 Revisin: H 76


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.33. CorrWrite - Escribe en un generador de correcciones
Descripcin
CorrWrite se utiliza para escribir offsets en el sistema de coordenadas de trayectoria de un
generador de correcciones.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin CorrWrite.
Ejemplo 1
VAR corrdescr id;
VAR pos offset;
...
CorrWrite id, offset;
Los offsets actuales, almacenados en la variable offset, se escriben en un generador de
correcciones al que se hace referencia con el descriptor id.
Argumentos
CorrWrite Descr Data
Descr
Tipo de dato: corrdescr
Descriptor del generador de correcciones.
Data
Tipo de dato: pos
El offset a escribir.
Ms ejemplos
Para obtener ms ejemplos de la instruccin CorrWrite, consulte CorrCon - Establece una
conexin con un generador de correcciones en la pgina 70.
Limitaciones
El mayor rendimiento se consigue en las trayectorias rectas. A medida que aumentan la
velocidad y los ngulos entre dos trayectorias lineales consecutivas, la desviacin respecto de
la trayectoria esperada aumenta consiguientemente. Esto mismo se aplica a los crculos a
medida que se reduce el radio del crculo.
Sintaxis
CorrWrite
[ Descr ':=' ] < variable (VAR) of corrdescr > ','
[ Data ':=' ] < expression (IN) of pos > ';'
Contina en la pgina siguiente
1 Instrucciones
1.33. CorrWrite - Escribe en un generador de correcciones
Path Offset
77 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin con un generador de correcciones CorrCon - Establece una conexin con un
generador de correcciones en la pgina 70
Desconexin de un generador de
correcciones
CorrDiscon - Cierra la conexin con un
generador de correcciones en la pgina 75
Lectura de los offsets totales actuales CorrRead - Lee los offsets totales actuales en
la pgina 810
Eliminacin de todos los generadores de
correcciones
CorrClear - Elimina todos los generadores de
correcciones en la pgina 69
Descriptor de generador de correcciones corrdescr - Descriptor de generador de correc-
ciones en la pgina 1095
Continuacin
1 Instrucciones
1.34. DeactUnit - Desactiva una unidad mecnica
RobotWare - OS
3HAC16581-5 Revisin: H 78


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.34. DeactUnit - Desactiva una unidad mecnica
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos
A continuacin aparecen algunos ejemplos bsicos de la instruccin DeactUnit.
Ejemplo 1
DeactUnit orbit_a;
Desactivacin de la unidad mecnica orbit_a.
Ejemplo 2
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_motio se mueven hacia p40.
Ejemplo 3
MoveL p10, v100, fine, tool1;
DeactUnit orbit1;
ActUnit orbit2;
MoveL p20, v100, z10, too l1;
Se desactiva la unidad orbit1 y se activa orbit2.
Argumentos
DeactUnit MechUnit
MechUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica que debe desactivarse.
Ejecucin de programas
Cuando la trayectoria del robot y de los ejes externos ha sido completada, la trayectoria del
nivel de trayectoria actual se borra y se desactiva la unidad mecnica especificada. Esto
significa que no se controlar ni monitorizar hasta que se reactive.
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.
Contina en la pgina siguiente
1 Instrucciones
1.34. DeactUnit - Desactiva una unidad mecnica
RobotWare - OS
79 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La instruccin DeactUnit no puede utilizarse si una de las unidades mecnicas 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 fine), no un punto de paso. De lo contrario, no
ser posible reanudar la ejecucin tras una cada de suministro elctrico.
DeactUnit no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop, o Restart.
Es posible usar ActUnit -DeactUnit en el nivel StorePath, pero al ejecutar RestoPath
deben estar activadas las mismas unidades mecnicas al ejecutar StorePath. En una
operacin de este tipo, la grabadora de trayectorias y la trayectoria del nivel bsico estarn
intactas, pero la trayectoria del nivel StorePath se borrar.
Sintaxis
DeactUnit
[MechUnit ':='] < variable (VAR) of mecunit> ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de unidades mecnicas ActUnit - Activa una unidad mecnica en la
pgina 17
Unidades mecnicas mecunit - Unidad mecnica en la pgina
1135
Grabadora de trayectorias PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina
303mecunit - Unidad mecnica en la pgina
1135
Continuacin
1 Instrucciones
1.35. Decr - Reduce un nmero en 1
RobotWare - OS
3HAC16581-5 Revisin: H 80


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.35. Decr - Reduce un nmero en 1
Utilizacin
Decr se utiliza para restar 1 a una variable o una variable persistente de tipo numrico.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin Decr.
Consulte tambin Ms ejemplos en la pgina 80.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin Decr.
Ejemplo 1
TPReadNum no_of_parts, "How many parts should be produced? ";
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 ':=' ] < var or pers (INOUT) of num > ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Incremento de una variable en 1 Incr - Aumenta en 1 un valor en la pgina 130
Sustraccin de cualquier valor a una variable Add - Suma un valor numrico en la pgina
19
Cambio de un dato mediante una expresin
arbitraria, por ejemplo una multiplicacin
":=" - Asigna un valor en la pgina 23
1 Instrucciones
1.36. DitherAct - Activa la funcin de oscilacin del servo suave
RobotWare - OS
81 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.36. DitherAct - Activa la funcin de oscilacin del servo suave
Utilizacin
DitherAct se utiliza para activar la funcin de oscilacin, que reduce la friccin del servo
suave en el modelo IRB 7600.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin DitherAct.
Ejemplo 1
SoftAct \MechUnit:=ROB_1, 2, 100;
WaitTime 2;
DitherAct \MechUnit:=ROB_1, 2;
WaitTime 1;
DitherDeact;
SoftDeact;
La oscilacin slo permanece activada durante un segundo durante el servo suave.
Ejemplo 2
DitherAct \MechUnit:=ROB_1, 2;
SoftAct \MechUnit:=ROB_1, 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 ]
Mechanical Unit
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).
Contina en la pgina siguiente
1 Instrucciones
1.36. DitherAct - Activa la funcin de oscilacin del servo suave
RobotWare - OS
3HAC16581-5 Revisin: H 82


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \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 100%.
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.
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.
AVISO!
Al llamar a DitherAct antes de SoftAct, el robot debe estar 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.
Sintaxis
DitherAct
[ '\' MechUnit ':=' < variable (VAR) of mecunit > ]
[Axis ':=' ] < expression (IN) of num >
[ '\' Level ':=' < expression (IN) of num > ] ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin del servo suave SoftAct - Activa el servo suave en la pgina
481
Comportamiento con el servo suave
activado
Manual de referencia tcnica - Descripcin
general de RAPID
Desactivacin de la oscilacin DitherDeact - Desactiva la funcin de
oscilacin del servo suave en la pgina 83
Continuacin
1 Instrucciones
1.37. DitherDeact - Desactiva la funcin de oscilacin del servo suave
RobotWare - OS
83 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.37. DitherDeact - Desactiva la funcin de oscilacin del servo suave
Utilizacin
DitherDeact se utiliza para desactivar la funcin de oscilacin del servo suave en el modelo
IRB 7600.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin DitherDeact.
Ejemplo 1
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.
La oscilacin 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
DitherDeact';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de la oscilacin DitherAct - Activa la funcin de oscilacin del
servo suave en la pgina 81
1 Instrucciones
1.38. DropWObj - Suelta un objeto de trabajo sobre un transportador
Conveyor Tracking
3HAC16581-5 Revisin: H 84


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.38. DropWObj - Suelta un objeto de trabajo sobre un transportador
Utilizacin
DropWObj (Drop Work Object) se utiliza para desconectarse del objeto actual para dejar el
programa preparado para el siguiente objeto.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin DropWObj.
Ejemplo 1
MoveL *, v1000, z10, tool, \WObj:=wobj_on_cnv1;
MoveL *, v1000, fine, tool, \WObj:=wobj0;
DropWObj wobj_on_cnv1;
MoveL *, v1000, z10, tool, \WObj:=wobj0;
Argumentos
DropWObj WObj
WObj
Work Object
Tipo de dato: wobjdata
El objeto de trabajo mvil (sistema de coordenadas) con el que est relacionada la posicin
de robot indicada en la instruccin. El transportador de la unidad mecnica debe especificarse
con ufmec en el objeto de trabajo.
Ejecucin de programas
Al soltar el objeto de trabajo, la unidad de codificador deja de seguir al objeto. El objeto se
elimina de la cola de objetos y no puede ser recuperado.
Limitaciones
Si se ejecuta la instruccin mientras el trabajo est utilizando activamente el objeto de trabajo
coordinado con el transportador, el movimiento se detiene.
La instruccin slo puede ejecutarse despus de utilizar un objeto de trabajo fijo en las
instrucciones de movimiento precedentes, con instrucciones de punto fino o (>1) zonas de
esquina.
Sintaxis
DropWObj
[ WObj ':='] < persistent (PERS) of wobjdata>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera a objetos de trabajo WaitWObj - Espera a un objeto de trabajo en
un transportador en la pgina 706
Conveyor tracking Application manual - Conveyor tracking
1 Instrucciones
1.39. EOffsOff - Desactiva un offset de ejes externos
RobotWare - OS
85 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.39. EOffsOff - Desactiva un offset de ejes externos
Utilizacin
EOffsOff (External Offset Off) 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin EOffsOff.
Ejemplo 1
EOffsOff;
Desactivacin del offset de los ejes externos.
Ejemplo 2
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
Para obtener ms informacin sobre Consulte
Definicin del desplazamiento con dos
posiciones
EOffsOn - Activa un offset de ejes externos en
la pgina 86
Definicin de offsets a partir de valores
conocidos
EOffsSet - Activa un offset de ejes externos a
partir de valores conocidos en la pgina 88
Desactivacin del desplazamiento de
programa del robot
PDispOff - Desactiva el desplazamiento de
programa en la pgina 323
1 Instrucciones
1.40. EOffsOn - Activa un offset de ejes externos
RobotWare - OS
3HAC16581-5 Revisin: H 86


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.40. EOffsOn - Activa un offset de ejes externos
Utilizacin
EOffsOn(External Offset On) se utiliza para definir y activar un offset de ejes externos a
partir de dos posiciones.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin EOffsOn.
Consulte tambin Ms ejemplos en la pgina 87.
Ejemplo 1
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.
Ejemplo 2
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 ]
Executed Point
Tipo de dato: robtarget
La nueva posicin, utilizada para el clculo del offset. Si se omite el argumento, se utiliza la
posicin actual de los ejes en el momento de la ejecucin del programa.
ProgPoint
Programmed Point
Tipo de dato: robtarget
La posicin original de los ejes en el momento de la programacin.
Contina en la pgina siguiente
1 Instrucciones
1.40. EOffsOn - Activa un offset de ejes externos
RobotWare - OS
87 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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 al mismo tiempo un offset para cada eje individual. 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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin EOffsOn.
Ejemplo 1
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 ':=' < expression (IN) of robtarget> ',']
[ ProgPoint ':=' ] < expression (IN) of robtarget> ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin de un offset de ejes externos EOffsOff - Desactiva un offset de ejes
externos en la pgina 85
Definicin de offsets a partir de valores
conocidos
EOffsSet - Activa un offset de ejes externos a
partir de valores conocidos en la pgina 88
Desplazamiento de los movimientos del robot PDispOn - Activa el desplazamiento de
programa en la pgina 324
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.41. EOffsSet - Activa un offset de ejes externos a partir de valores conocidos
RobotWare - OS
3HAC16581-5 Revisin: H 88


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.41. EOffsSet - Activa un offset de ejes externos a partir de valores conocidos
Utilizacin
EOffsSet (External Offset Set) se utiliza para definir y activar un offset para ejes externos a
partir de valores conocidos.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin EOffsSet.
Ejemplo 1
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 lgico "a" sea lineal):
El sistema de coordenadas ExtOffs se desplaza 100 mm para el eje lgico "a"
(consulte la figura siguiente).
Siempre y cuando est activado este offset, todas las posiciones se desplazan 100 mm
en la direccin del eje x.
La figura muestra el desplazamiento de un eje externo.
xx0500002162
Argumentos
EOffsSet EAxOffs
EAxOffs
External Axes Offset
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
Contina en la pgina siguiente
1 Instrucciones
1.41. EOffsSet - Activa un offset de ejes externos a partir de valores conocidos
RobotWare - OS
89 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
El offset de los ejes externos se activa cuando se ejecuta la instruccin EOffsSet y
permanece activo hasta que se activa otro offset (con una instruccin EOffsSet o EOffsOn)
o hasta que se desactiva el offset de los ejes externos (con una instruccin EOffsOff).
Slo es posible activar un offset para los ejes externos al mismo tiempo. 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 ':=' ] < expression (IN) of extjoint> ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de un offset de ejes externos EOffsOn - Activa un offset de ejes externos
en la pgina 86
Desactivacin de un offset de ejes externos EOffsOff - Desactiva un offset de ejes
externos en la pgina 85
Desplazamiento de los movimientos del
robot
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Definicin de datos del tipo extjoint extjoint - Posicin de los ejes externos en la
pgina 1114
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.42. EraseModule - Elimina un mdulo
RobotWare - OS
3HAC16581-5 Revisin: H 90


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.42. EraseModule - Elimina un mdulo
Utilizacin
EraseModule se utiliza para eliminar un mdulo de la memoria de programas durante la
ejecucin.
No existe ninguna restriccin en cuanto a cmo se haya cargado el mdulo. Puede haber sido
cargado manualmente, desde la configuracin o con una combinacin de las instrucciones
Load, StartLoad y WaitLoad.
El mdulo no puede definirse como Shared en la configuracin.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin EraseModule.
Ejemplo 1
EraseModule "PART_A";
Borra el mdulo de programa PART_A de la memoria de programas.
Argumentos
EraseModule ModuleName
ModuleName
Tipo de dato: string
El nombre del mdulo que debe eliminarse. Recuerde que se trata del nombre del mdulo, no
el nombre del archivo.
Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine el proceso de
eliminacin antes de que la ejecucin contine con la instruccin siguiente.
Una vez eliminado el mdulo de programa, se vinculan los dems mdulos de programa.
Limitaciones
No se permite eliminar 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 el proceso de eliminacin.
Evite tener movimientos en curso durante la eliminacin.
La detencin del programa durante la ejecucin de la instruccin EraseModule da lugar a
un paro protegido con los motores apagados y un mensaje de error "20025 Tiempo excesivo
Orden paro" en el FlexPendant.
Gestin de errores
Si el archivo de la instruccin EraseModule no puede ser eliminado porque no ha sido
encontrado, la variable ERRNO cambia a ERR_MODULE. A continuacin, este error puede
ser gestionado en el gestor de errores.
Contina en la pgina siguiente
1 Instrucciones
1.42. EraseModule - Elimina un mdulo
RobotWare - OS
91 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
EraseModule
[ModuleName':=']<expression (IN) of string>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Carga de mdulos de programa en paralelo
con la ejecucin de otro programa
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Aceptacin de una referencia no resuelta Manual de referencia tcnica - Parmetros del
sistema, seccin Controller
Continuacin
1 Instrucciones
1.43. ErrLog - Escribe un mensaje de error
RobotWare - OS
3HAC16581-5 Revisin: H 92


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.43. ErrLog - Escribe un mensaje de error
Utilizacin
ErrLog se utiliza para mostrar un mensaje de error en el FlexPendant y escribirlo en el
registro de eventos. Es necesario indicar el nmero de error y cinco argumentos acerca del
mismo. El mensaje se almacena en el dominio de proceso del registro del robot. ErrLog
tambin puede usarse para mostrar avisos y mensajes de informacin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ErrLog.
Ejemplo 1
Las ID ErrorId deben declararse en un archivo .xml. El nmero debe estar entre 5.000 y
9.999. El mensaje de error se escribe en el archivo .xml y los argumentos del mensaje
enviados en la instruccin ErrLog. El valor de ErrorId del archivo .xml es el mismo que se
indica en la instruccin ErrLog.
Ejemplo de mensaje en un archivo .xml:
<Message number="5210" eDefine="ERR_INPAR_RDONLY">
<Title>Parameter error</Title>
<Description>Task:<arg format="%s" ordinal="1" />
<p />Symbol <arg format="%s" ordinal="2" />is read-only
<p />Context:<arg format="%s" ordinal="3" /><p />
</Description>
</Message>
Ejemplo de instruccin:
MODULE MyModule
PROC main()
VAR num errorid := 5210;
VAR errstr arg := "P1";
ErrLog errorid, ERRSTR_TASK, arg,
ERRSTR_CONTEXT,ERRSTR_UNUSED, ERRSTR_UNUSED;
ErrLog errorid \W, ERRSTR_TASK, arg,
ERRSTR_CONTEXT,ERRSTR_UNUSED, ERRSTR_UNUSED;
ENDPROC
ENDMODULE
En el FlexPendant, el mensaje tendra el aspecto siguiente:
Mensaje de evento: 5210
Error de parmetro
Tarea: T_ROB1
El smbolo P1 es de slo lectura.
Contexto: MyModule/main/ErrLog
La primera instruccin ErrLog genera un mensaje de error. El mensaje se almacena en el
registro del robot, en el dominio de proceso. Tambin se muestra en la pantalla del
FlexPendant.
Contina en la pgina siguiente
1 Instrucciones
1.43. ErrLog - Escribe un mensaje de error
RobotWare - OS
93 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La segunda instruccin es una advertencia. Slo se almacena un mensaje en el registro del
robot.
En ambos casos, el programa sigue ejecutndose una vez terminada la instruccin.
Ejemplo 2
Si desea crear su propio archivo .xml, puede usar el valor de ErrorId 4800 como en el
ejemplo siguiente:
VAR errstr my_title := "myerror";
VAR errstr str1 := "errortext1";
VAR errstr str2 := "errortext2";
VAR errstr str3 := "errortext3";
VAR errstr str4 := "errortext4";
ErrLog 4800, my_title, str1,str2,str3,str4;
En el FlexPendant, el mensaje tendra el aspecto siguiente:
Mensaje de evento: 4800
myerror
errortext1
errortext2
errortext3
errortext4
Argumentos
ErrLog ErrorID [\W] | [\I] Argument1 Argument2 Argument3 Argument4
Argument5
ErrorId
Tipo de dato: num
El nmero de un error concreto que se desea monitorizar. El nmero del error debe estar entre
5.000 y 9.999 y puede escribirse en un archivo .xml.
[ \W ]
Warning
Tipo de dato: switch
Genera una advertencia que slo se almacena en el registro de eventos (no se muestra
directamente en la pantalla del FlexPendant).
[ \I ]
Information
Tipo de dato: switch
Genera un mensaje de informacin que slo se almacena en el registro de eventos (no se
muestra directamente en la pantalla del FlexPendant).
Si no se especifica ninguno de los argumentos \W o \I, la instruccin genera un mensaje de
error directamente en el FlexPendant y lo almacena tambin en el registro de eventos.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.43. ErrLog - Escribe un mensaje de error
RobotWare - OS
3HAC16581-5 Revisin: H 94


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argument 1
Tipo de dato: errstr
Primer argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument2
Tipo de dato: errstr
Segundo argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument3
Tipo de dato: errstr
Tercer argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument4
Tipo de dato: errstr
Cuarto argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument5
Tipo de dato: errstr
Quinto argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Ejecucin de programas
Un mensaje de error (mximo 5 lneas) se muestra en el FlexPendant y se escribe en el
registro de eventos.
En el caso del argumento \W o el argumento \I se escribe un aviso o un mensaje de
informacin en el registro de eventos.
ErrLog genera los errores de programa del nmero 5.000 al 9.999 en funcin del valor de
ErrorID indicado.
El mensaje se almacena en el dominio de proceso del registro de eventos.
Limitaciones
La longitud total de la cadena (Argument1-Argument5) est limitada a 195 caracteres.
Sintaxis
ErrLog
[ErrorId ':=' ] < expression (IN) of num> ','
[ '\'W ] | [' \' I ] ','
[Argument1 ':=' ] < expression (IN) of errstr> ','
[Argument2 ':=' ] < expression (IN) of errstr> ','
[Argument3 ':=' ] < expression (IN) of errstr> ','
[Argument4 ':=' ] < expression (IN) of errstr> ','
[Argument5 ':=' ] < expression (IN) of errstr> ';'
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.43. ErrLog - Escribe un mensaje de error
RobotWare - OS
95 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos predefinidos de tipo errstr errstr - Cadena de error en la pgina 1110
Visualizacin de mensajes en el FlexPendant TPWrite - Escribe en el FlexPendant en la
pgina 574
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Registro de eventos Manual del operador - IRC5 con FlexPendant
Mensajes del registro de eventos, explicacin
del archivo XML
Application manual - Additional options,
seccin Event log messages
Cmo instalar archivos XML al utilizar
opciones adicionales
Application manual - Additional options
Continuacin
1 Instrucciones
1.44. ErrRaise - Escribe un aviso y llama a un gestor de errores
RobotWare - OS
3HAC16581-5 Revisin: H 96


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.44. ErrRaise - Escribe un aviso y llama a un gestor de errores
Utilizacin
ErrRaise se utiliza para crear un error en el programa y llamar a continuacin al gestor de
errores de la rutina. Se almacena un aviso en el registro de eventos. ErrRaise 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.
Es necesario indicar el nombre del error, el nmero de error y cinco argumentos acerca del
mismo. El mensaje se almacena en el dominio de proceso del registro del robot.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ErrRaise.
Ejemplo 1
Las ID ErrorId deben declararse en un archivo .xml. El nmero debe estar entre 5.000 y
9.999. El mensaje de error se escribe en el archivo .xml y los argumentos del mensaje
enviados en la instruccin ErrRaise. El valor de ErrorId del archivo .xml es el mismo que
se indica en la instruccin ErrRaise.
Ejemplo de mensaje en un archivo .xml:
<Message number="7055" eDefine="SYS_ERR_ARL_INPAR_RDONLY">
<Title>Parameter error</Title>
<Description>Task:<arg format="%s" ordinal="1" />
<p />Symbol <arg format="%s" ordinal="2" />is read-only
<p />Context:<arg format="%s" ordinal="3" /><p /></
Description>
</Message>
Ejemplo de instruccin:
MODULE MyModule
VAR errnum ERR_BATT:=-1;
PROC main()
VAR num errorid := 7055;
BookErrNo ERR_BATT;
ErrRaise "ERR_BATT", errorid, ERRSTR_TASK,
ERRSTR_CONTEXT,ERRSTR_UNUSED, ERRSTR_UNUSED,
ERRSTR_UNUSED;
ERROR
IF ERRNO = ERR_BATT THEN
TRYNEXT;
ENDIF
ENDPROC
ENDMODULE
Contina en la pgina siguiente
1 Instrucciones
1.44. ErrRaise - Escribe un aviso y llama a un gestor de errores
RobotWare - OS
97 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En el FlexPendant, el mensaje tendra el aspecto siguiente (aviso y/o un error):
Mensaje de evento: 7055
Estado de batera de respaldo
Tarea: main
La batera de respaldo est totalmente cargada.
Contexto: MyModule/main/ErrRaise
Es necesario registrar un nmero de error con la instruccin BookErrNo. La cadena
correspondiente se indica como primer argumento,ErrorName en la instruccin ErrRaise.
ErrRaise crear un error y llama al gestor de errores. Si el error se ha resuelto, se genera un
aviso en el registro de eventos, dentro del dominio de proceso. De lo contrario, se genera un
error no recuperable y el programa se detiene.
ErrRaise tambin puede usarse en un gestor de errores en una subrutina. En este caso, la
ejecucin contina en el gestor de errores de la rutina desde la que se realiza la llamada.
Argumentos
ErrRaise ErrorName ErrorId Argument1 Argument2 Argument3 Argument4
Argument5
ErrorName
Tipo de dato: string
Es necesario registrar un nmero de error con la instruccin BookErrNo. La variable
correspondiente se indica como ErrorName.
ErrorId
Tipo de dato: num
El nmero de un error concreto que se desea monitorizar. El nmero del error debe estar entre
5.000 y 9.999 y puede escribirse en un archivo .xml.
Argument1
Tipo de dato: errstr
Primer argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument2
Tipo de dato: errstr
Segundo argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument3
Tipo de dato: errstr
Tercer argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Argument4
Tipo de dato: errstr
Cuarto argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.44. ErrRaise - Escribe un aviso y llama a un gestor de errores
RobotWare - OS
3HAC16581-5 Revisin: H 98


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argument5
Tipo de dato: errstr
Quinto argumento del mensaje de error. Puede usar cualquier cadena de tipo string o un dato
predefinido del tipo errstr.
Ejecucin de programas
ErrRaise genera los avisos de programa del nmero 5.000 al 9.999 en funcin del valor de
ErrorId indicado. Se almacena un aviso en el registro de mensajes del robot, en el dominio
de proceso.
Cuando se ejecuta ErrRaise, el comportamiento depende de cundo se ejecute:
Si se ejecuta la instruccin en el cuerpo de la rutina, se genera un aviso y la ejecucin
contina en el gestor de errores.
Si se ejecuta la instruccin en un gestor de errores, el aviso anterior se omite, se genera
uno nuevo y el control es elevado a la instruccin desde la que se hizo la llamada.
Limitaciones
La longitud total de la cadena (Argument1-Argument5) est limitada a 195 caracteres.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin ErrRaise.
Ejemplo 1
VAR errnum ERR_BATT:=-1;
VAR errnum ERR_NEW_ERR:=-1;
PROC main()
testerrraise;
ENDPROC
PROC testerrraise()
BookErrNo ERR_BATT;
BookErrNo ERR_NEW_ERR;
ErrRaise "ERR_BATT",7055,ERRSTR_TASK,ERRSTR_CONTEXT,
ERRSTR_UNUSED,ERRSTR_UNUSED,ERRSTR_UNUSED;
ERROR
IF ERRNO = ERR_BATT THEN
ErrRaise "ERR_NEW_ERR",7156,ERRSTR_TASK,ERRSTR_CONTEXT,
ERRSTR_UNUSED,ERRSTR_UNUSED, ERRSTR_UNUSED;
ENDIF
ENDPROC
Generar un nuevo aviso 7156 desde un gestor de errores. Elevar el control a la rutina desde
la que se hizo la llamada y detener la ejecucin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.44. ErrRaise - Escribe un aviso y llama a un gestor de errores
RobotWare - OS
99 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ErrRaise
[ErrorName ':=' ] < expression (IN) of string> ','
[ErrorId ':=' ] < expression (IN) of num> ','
[Argument1 ':=' ] < expression (IN) of errstr> ','
[Argument2 ':=' ] < expression (IN) of errstr> ','
[Argument3 ':=' ] < expression (IN) of errstr> ','
[Argument4 ':=' ] < expression (IN) of errstr> ','
[Argument5 ':=' ] < expression (IN) of errstr> ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos predefinidos de tipo errstr errstr - Cadena de error en la pgina 1110
Registro de nmeros de error BookErrNo - Registra un nmero de error de
sistema de RAPID en la pgina 29
Gestin de errores Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.45. ErrWrite - Escribe un mensaje de error
RobotWare - OS
3HAC16581-5 Revisin: H 100


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.45. ErrWrite - Escribe un mensaje de error
Utilizacin
ErrWrite (Error Write) se utiliza para mostrar un mensaje de error en el FlexPendant y
escribirlo en el registro de eventos. Tambin puede usarse para mostrar avisos y mensajes de
informacin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ErrWrite.
Ejemplo 1
ErrWrite "PLC error", "Fatal error in PLC" \RL2:="Call service";
Stop;
Se almacena un mensaje en el registro del robot. Tambin se muestra en la pantalla del
FlexPendant.
Ejemplo 2
ErrWrite \W, "Search error", "No hit for the first search";
RAISE try_search_again;
Slo se almacena un mensaje en el registro del robot. Despus la ejecucin del programa
contina.
Argumentos
ErrWrite [ \W ] | [\I] Header Reason [ \RL2] [ \RL3] [ \RL4]
[ \W ]
Warning
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 del FlexPendant).
[ \I ]
Information
Tipo de dato: switch
Genera un mensaje de informacin que slo se almacena en el registro de eventos (no se
muestra directamente en la pantalla del FlexPendant).
Si no se especifica ninguno de los argumentos \W o \I, la instruccin genera un mensaje de
error directamente en el FlexPendant y lo almacena tambin en el registro de eventos.
Header
Tipo de dato: string
El ttulo del mensaje de error (mximo 46 caracteres).
Reason
Tipo de dato: string
Motivo del error.
Contina en la pgina siguiente
1 Instrucciones
1.45. ErrWrite - Escribe un mensaje de error
RobotWare - OS
101 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \RL2]
Reason Line 2
Tipo de dato: string
Motivo del error.
[ \RL3]
Reason Line 3
Tipo de dato: string
Motivo del error.
[ \RL4]
Reason Line 4
Tipo de dato: string
Motivo del error.
Ejecucin de programas
Un mensaje de error (mximo 5 lneas) se muestra en el FlexPendant y se escribe en el
registro de mensajes del robot.
En el caso del argumento \W o el argumento \I se escribe un aviso o un mensaje de
informacin en el registro de eventos.
ErrWrite genera el error de programa n 80001 para un error, n 80002 para un aviso (\W) y
n 80003 para un mensaje de informacin (\I).
Limitaciones
La longitud total de la cadena (ttulo+motivo+\RL2+\RL3+\RL4) est limitada a 195
caracteres.
Sintaxis
ErrWrite
[ '\'W ] | [ '\' I ] ','
[ Header ':=' ] < expression (IN) of string>','
[ Reason ':=' ] < expression (IN) of string>
[ \RL2 ':=' < expression (IN) of string> ]
[ \RL3 ':=' < expression (IN) of string> ]
[ \RL4 ':=' < expression (IN) of string> ] ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos predefinidos de tipo errstr errstr - Cadena de error en la pgina 1110
Visualizacin de mensajes en el FlexPendant TPWrite - Escribe en el FlexPendant en la
pgina 574
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Registro de eventos Manual del operador - IRC5 con FlexPendant
Escritura de un mensaje de error - ErrLog ErrLog - Escribe un mensaje de error en la
pgina 92
Continuacin
1 Instrucciones
1.46. EXIT - Finaliza la ejecucin del programa
RobotWare - OS
3HAC16581-5 Revisin: H 102


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.46. EXIT - Finaliza la ejecucin del programa
Utilizacin
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.
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. Tras la ejecucin de la instruccin
EXIT, el puntero de programa se pierde. Para continuar con la ejecucin del programa, es
necesario establecer el puntero de programa.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin EXIT.
Ejemplo 1
ErrWrite "Fatal error","Illegal state";
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
Para obtener ms informacin sobre Consulte
Detencin temporal de la ejecucin del
programa
Stop - Detiene la ejecucin del programa
en la pgina 518
1 Instrucciones
1.47. ExitCycle - Interrumpe el ciclo actual y pasa al siguiente
RobotWare - OS
103 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.47. ExitCycle - Interrumpe el ciclo actual y pasa al siguiente
Utilizacin
ExitCycle se utiliza para interrumpir el ciclo actual y trasladar el puntero de programa (PP)
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ExitCycle.
Ejemplo 1
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;
! start to do something intelligent
...
ENDPROC
TRAP error_trap
TPWrite "ERROR, I will start on the next item";
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 que controla las unidades mecnicas da
lugar a lo siguiente en la tarea actual:
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.
Contina en la pgina siguiente
1 Instrucciones
1.47. ExitCycle - Interrumpe el ciclo actual y pasa al siguiente
RobotWare - OS
3HAC16581-5 Revisin: H 104


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La ejecucin de ExitCycle en cualquier otra tarea de programa que no controle las unidades
mecnicas 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
Para obtener ms informacin sobre Consulte
Paro despus de un error no recuperable EXIT - Finaliza la ejecucin del programa en la
pgina 102
Finalizacin de la ejecucin del programa EXIT - Finaliza la ejecucin del programa en la
pgina 102
Paro para acciones de programa Stop - Detiene la ejecucin del programa en la
pgina 518
Finalizacin de la ejecucin de una rutina RETURN - Finaliza la ejecucin de una rutina
en la pgina 373
Continuacin
1 Instrucciones
1.48. FOR - Repite un nmero determinado de veces
RobotWare - OS
105 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.48. FOR - Repite un nmero determinado de veces
Utilizacin
FOR se utiliza cuando es necesario repetir una o varias instrucciones un nmero determinado
de veces.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin FOR.
Consulte tambin Ms ejemplos en la pgina 106.
Ejemplo 1
FOR i FROM 1 TO 10 DO
routine1;
ENDFOR
Repite el procedimiento routine1 10 veces.
Argumentos
FOR Loop counter FROM Start value TO End value [STEP Step value]
DO ... ENDFOR
Loop counter
Identifier
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.
Start value
Tipo de dato: Num
El valor inicial deseado para el contador del bucle. (normalmente valores enteros)
End value
Tipo de dato: Num
El valor final deseado para el contador del bucle. (normalmente valores enteros)
Step value
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).
Contina en la pgina siguiente
1 Instrucciones
1.48. FOR - Repite un nmero determinado de veces
RobotWare - OS
3HAC16581-5 Revisin: H 106


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin FOR.
Ejemplo 1
FOR i FROM 10 TO 2 STEP -2 DO
a{i} := a{i-1};
ENDFOR
Se ajustan hacia arriba los valores de una matriz de forma que a{}:=a{}, a{}:=a{} 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.
Sintaxis
(EBNF)
FOR <loop variable> FROM <expression> TO <expression>
[ STEP <expression> ] DO
<instruction list>
ENDFOR
<loop variable> ::= <identifier>
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.48. FOR - Repite un nmero determinado de veces
RobotWare - OS
107 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Expresiones Manual de referencia tcnica - Descripcin
general de RAPID
Repeticin siempre y cuando se cumpla una
condicin
WHILE - Repite una o varias operaciones
siempre y cuando... en la pgina 710
Identificadores Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
1 Instrucciones
1.49. GetDataVal - Obtiene el valor de un objeto de datos
RobotWare - OS
3HAC16581-5 Revisin: H 108


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.49. GetDataVal - Obtiene el valor de un objeto de datos
Utilizacin
GetDataVal (Get Data Value) permite obtener un valor de un objeto de datos que se
especifica mediante una variable de cadena de caracteres.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin GetDataVal.
Ejemplo 1
VAR num value;
...
GetDataVal "reg"+ValToStr(ReadNum(mycom)),value;
Esta instruccin obtiene el valor de un registro cuyo nmero se recibe del canal serie mycom.
El valor se almacena en la variable value.
Ejemplo 2
VAR datapos block;
VAR string name;
VAR num valuevar;
...
SetDataSearch "num" \Object:="my.*" \InMod:="mymod";
WHILE GetNextSym(name,block) DO
GetDataVal name\Block:=block,valuevar;
TPWrite name+" "\Num:=valuevar;
ENDWHILE
Esta sesin imprime en el FlexPendant todas las variables de tipo num cuyo nombre comience
con my en el mdulo mymod, junto con sus valores respectivos.
Ejemplo 3
VAR num NumArrConst_copy{2};
...
GetDataVal "NumArrConst", NumArrConst_copy;
TPWrite "Pos1 = " \Num:=NumArrConst_copy{1};
TPWrite "Pos2 = " \Num:=NumArrConst_copy{2};
Esta sesin imprimir las variables num de la matriz NumArrConst..
Argumentos
GetDataVal Object [\Block]|[\TaskRef]|[\TaskName]Value
Object
Tipo de dato: string
El nombre del objeto de datos.
Contina en la pgina siguiente
1 Instrucciones
1.49. GetDataVal - Obtiene el valor de un objeto de datos
RobotWare - OS
109 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Block ]
Tipo de dato: datapos
El bloque que contiene el objeto de datos. Slo es posible realizar la obtencin con la funcin
GetNextSym.
Si se omite el argumento, se captura el valor del objeto de datos visible en el mbito de
ejecucin actual del programa.
[\TaskRef]
Task Reference
Tipo de dato: taskid
La identidad de tarea de programa en la que se buscar el objeto de datos especificado. Con
ayuda de este argumento, puede buscar declaraciones PERS o TASK PERS en otras tareas.
Cualquier otra declaracin dar lugar a un error.
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 T_ROB1 la identificacin de la tarea es T_ROB1Id.
[\TaskName]
Tipo de dato: string
El nombre de la tarea de programa en la que se buscar el objeto de datos especificado. Con
ayuda de este argumento, puede buscar declaraciones PERS o TASK PERS en otras tareas.
Cualquier otra declaracin dar lugar a un error.
Value
Tipo de dato: anytype
La variable en la que se almacena el valor obtenido. Su tipo de dato debe ser el mismo que el
del objeto de datos a buscar. El valor obtenido puede capturarse de una constante, una variable
o una variable persistente, pero debe almacenarse en una variable.
Gestin de errores
La variable de sistema ERRNO cambia a ERR_SYM_ACCESS si:
El objeto de datos no existe.
Si el objeto de datos es un dato o un parmetro de rutina y no est situado en la rutina
activa actualmente.
Buscar en otras tareas declaraciones distintas de PERS o TASKPERS
Con ayuda de los argumentos TaskRef o TaskName, puede buscar declaraciones PERS o
TASK PERS en otras tareas. Cualquier otra declaracin da lugar a un error y la variable de
sistema ERRNO cambia a ERR_SYM_ACCESS. La bsqueda de una PERS declarada como
LOCAL en otras tareas tambin da lugar a un error y al cambio de la variable ERRNO al valor
ERR_SYM_ACCESS.
La variable de sistema ERRNO cambia a ERR_INVDIM si el objeto de datos y la variable
utilizados en el argumento Value tienen dimensiones diferentes.
El error puede ser gestionado en el gestor de errores de la rutina.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.49. GetDataVal - Obtiene el valor de un objeto de datos
RobotWare - OS
3HAC16581-5 Revisin: H 110


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
En el caso de los tipos de datos de semivalor, no es posible buscar por el tipo de dato asociado
al valor. Por ejemplo, si se busca dionum, no se obtendr ninguna coincidencia de bsqueda
con las seales signaldi. Si se busca num, no se obtendr ninguna coincidencia de bsqueda
con las seales signalgi o signalai.
No es posible obtener el valor de una variable declarada como LOCAL en un mdulo de
RAPID incorporado.
Sintaxis
GetDataVal
[ Object := ] < expression (IN) of string >
[\Block :=<variable (VAR) of datapos>]
|[ \TaskRef := <variable (VAR) of taskid>]
|[ \TaskName := <expression (IN) of string>] ,]
[ Value := ] <variable (VAR) of anytype>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de un conjunto de smbolos en una
sesin de bsqueda
SetDataSearch - Definir el conjunto de
smbolos de una secuencia de bsqueda en
la pgina 441
Obtencin del siguiente smbolo coincidente GetNextSym - Obtiene el siguiente smbolo
coincidente en la pgina 862
Asignacin del valor de un objeto de datos SetDataVal - Establece el valor de un objeto
de datos en la pgina 445
Asignacin del valor de varios objetos de
datos
SetAllDataVal - Establece un valor en todos
los objetos de datos de un conjunto definido
en la pgina 437
El tipo de datos relacionado datapos datapos - Inclusin de un bloque para un
objeto de datos en la pgina 1097
Continuacin
1 Instrucciones
1.50. GetSysData - Obtiene datos del sistema
RobotWare - OS
111 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.50. GetSysData - Obtiene datos del sistema
Utilizacin
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 sobre la herramienta, el objeto de trabajo o la carga
til (del robot), adems de su nombre, en la tarea de movimiento actual o la conectada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin GetSysData.
Ejemplo 1
PERS tooldata curtoolvalue := [TRUE, [[0, 0, 0], [1, 0, 0, 0]],
[2, [0, 0, 2], [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.
Ejemplo 2
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.
No es posible usar una matriz ni un componente de registro.
[\ObjectName]
Tipo de dato:string
El argumento opcional (variable o variable persistente) para capturar tambin el nombre del
dato de sistema activo.
Tipo de dato Tipo de dato de sistema
tooldata Herramienta
wobjdata Objeto de trabajo
loaddata Carga til
Contina en la pgina siguiente
1 Instrucciones
1.50. GetSysData - Obtiene datos del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 112


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. La carga til se activa mediante la
ejecucin de la instruccin GripLoad.
Sintaxis
GetSysData
[ DestObject :=] < persistent(PERS) of anytype>
[\ObjectName := < variable or persistent (INOUT) of string>
] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Definicin de una carga til loaddata - Datos de carga en la pgina 1128
Establecimiento de datos del sistema SetSysData - Establece datos del sistema en
la pgina 453
Continuacin
1 Instrucciones
1.51. GetTrapData - Obtiene datos de interrupcin para la rutina TRAP actual
RobotWare - OS
113 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.51. GetTrapData - Obtiene datos de interrupcin para la rutina TRAP actual
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin GetTrapData.
Consulte tambin Ms ejemplos en la pgina 113.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin GetTrapData.
Ejemplo 1
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.
Sintaxis
GetTrapData
[TrapEvent :=] <variable (VAR) of trapdata>;
Contina en la pgina siguiente
1 Instrucciones
1.51. GetTrapData - Obtiene datos de interrupcin para la rutina TRAP actual
RobotWare - OS
3HAC16581-5 Revisin: H 114


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Datos de interrupcin para la rutina TRAP
actual
trapdata - Datos de interrupcin para la rutina
TRAP actual en la pgina 1212
Solicitud de una interrupcin para errores IError - Solicita una interrupcin para errores
en la pgina 124
Obtencin de informacin sobre un error ReadErrData - Obtiene informacin sobre un
error en la pgina 356
Continuacin
1 Instrucciones
1.52. GOTO - Salta a otra instruccin
RobotWare - OS
115 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.52. GOTO - Salta a otra instruccin
Utilizacin
GOTOse utiliza para transferir la ejecucin del programa a otra lnea (una etiqueta) creada
dentro de la misma rutina.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin GOTO.
Ejemplo 1
GOTO next;
...
next:
La ejecucin del programa contina en la instruccin que sigue a la etiqueta "next".
Ejemplo 2
reg1 := 1;
next:
...
reg1 := reg1 + 1;
IF reg1<=5 GOTO next;
La ejecucin se transfiere cuatro veces a next (for reg1= 2, 3, 4, 5).
Ejemplo 3
IF reg1>100 THEN
GOTO highvalue
ELSE
GOTO lowvalue
ENDIF
lowvalue:
...
GOTO ready;
highvalue:
...
ready:
Si reg1 es mayor que 100, la ejecucin se transfiere a la etiqueta highvalue. De lo
contrario, la ejecucin se transfiere a la etiqueta lowvalue.
Argumentos
GOTO Label
Label
Identifier
La etiqueta que indica dnde debe continuar la ejecucin del programa.
Contina en la pgina siguiente
1 Instrucciones
1.52. GOTO - Salta a otra instruccin
RobotWare - OS
3HAC16581-5 Revisin: H 116


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 <identifier>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Label Etiqueta - Nombre de lnea en la pgina 208
Otras instrucciones que modifican el flujo del
programa
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Control del flujo del programa
Continuacin
1 Instrucciones
1.53. GripLoad - Define la carga til del robot
RobotWare - OS
117 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.53. GripLoad - Define la carga til del robot
Utilizacin
GripLoad se utiliza para definir la carga til que se sostiene con la pinza del robot.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Descripcin
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
AVISO!
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin GripLoad.
Ejemplo 1
GripLoad piece1;
La pinza del robot sostiene una carga denominada piece1.
Ejemplo 2
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.
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
Contina en la pgina siguiente
1 Instrucciones
1.53. GripLoad - Define la carga til del robot
RobotWare - OS
3HAC16581-5 Revisin: H 118


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
GripLoad
[ Load := ] < persistent (PERS) of loaddata > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificacin de carga de la herramienta o la
carga til
Manual del operador - IRC5 con FlexPendant,
seccin Programacin y testing - Rutinas de
servicio - Loadidentify, rutina de servicio de
identificacin de cargas
Definicin de datos de carga loaddata - Datos de carga en la pgina 1128
Definicin de la carga de una herramienta tooldata - Datos de herramientas en la pgina
1206
Definicin de la carga del objeto de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Continuacin
1 Instrucciones
1.54. HollowWristReset - Restablece la mueca hueca en los modelos IRB5402 e IRB5403
RobotWare - OS
119 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.54. HollowWristReset - Restablece la mueca hueca en los modelos IRB5402 e
IRB5403
Utilizacin
HollowWristReset (Reset hollow wris) restablece la posicin de las articulaciones de
mueca de los manipuladores de mueca hueca, como los modelos IRB5402 e IRB5403.
Esta instruccin hace posible evitar el rebobinado de los ejes 4 y 5 de la mueca despus de
que hayan descrito una o varias revoluciones en un sentido. Despus de ejecutar una
instruccin HollowWristReset, los ejes de la mueca pueden continuar el giro en el mismo
sentido.
Descripcin
HollowWristReset facilita la creacin de programas de aplicacin. No tiene que
asegurarse de que la posicin de la mueca est dentro de 2 revoluciones en el momento de
la programacin. Adems, puede ahorrar tiempo de ciclo porque el robot no tiene que perder
tiempo rebobinando la mueca. Sin embargo, existe una limitacin de 144 revoluciones para
el avance de los ejes 4 y 5 antes de que la posicin de la mueca se restablezca con
HollowWristReset. El programador del robot debe ser consciente de esta limitacin y
tenerla en cuenta al planificar los programas del robot. Para garantizar que no se supere el
lmite de 144 revoluciones despus de ejecutar varias veces un programa de giro de mueca,
debe esperar siempre a que el robot se haya detenido completamente y restablecer la posicin
absoluta en cada programa (o cada ciclo/rutina/mdulo, etc., segn sus necesidades).
Recuerde que todos los ejes deben permanecer parados durante la ejecucin de la instruccin
HollowWristReset. Siempre que se tengan en cuenta estas limitaciones, los ejes 4 y 5
pueden girar indefinidamente y de forma independiente del eje 6 durante la ejecucin del
programa.
Utilice HollowWristReset en lugar de IndReset para restablecer la mueca hueca dado
que esta instruccin conserva los lmites del eje 6, impidiendo as que se produzca una torsin
excesiva de los tubos o cables de las aplicaciones de pintura.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin HollowWristReset.
Ejemplo 1
MoveL p10,v800,fine,paintgun1\WObj:=workobject1;
HollowWristReset;
Todos los ejes activos se detienen con un punto de parada y la mueca se restablece.
Limitaciones
Todos los ejes activos deben permanecer parados mientras se ejecuta la instruccin
HollowWristReset.
Los ejes de la mueca deben ser restablecidos antes de que cualquiera de ellos alcance el
lmite de 144 revoluciones (es decir, 51.840grados/ 904rad).
Siempre que tiene lugar un paro de programa, un paro de emergencia o un paro de cada de
alimentacin, el controlador conserva el contexto de la trayectoria para poder volver a sta y
permitir que el robot prosiga con la ejecucin del programa en el punto en el que se
Contina en la pgina siguiente
1 Instrucciones
1.54. HollowWristReset - Restablece la mueca hueca en los modelos IRB5402 e IRB5403
RobotWare - OS
3HAC16581-5 Revisin: H 120


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
interrumpi la trayectoria. En el modo manual, si se ha sacado al manipulador de la
trayectoria entre un paro y el reinicio, se informa de este hecho al operador con el mensaje
siguiente del FlexPendant: Fuera de trayectoria! El robot ha sido movido tras el paro
de programa. Desea que el robot vuelva a la trayectoria en el momento del inicio? S/
No/Cancelar. De esta forma, podr volver a la trayectoria antes del reinicio. En el modo
automtico, el robot vuelve automticamente a la trayectoria.
HollowWristReset elimina el contexto de la trayectoria. Esto significa que no es posible
volver a la trayectoria en caso de un reinicio de programa, si en el intervalo se ha ejecutado
la instruccin HollowWristReset. Si se ejecuta esta instruccin manualmente (Depurar +
Llamar rut. serv. en el Editor de programas), slo debe ejecutarse en situaciones en las que
no sea necesario volver a la trayectoria. Es decir, debe usarse una vez que un programa ha
terminado completamente o que una instruccin haya finalizado completamente la ejecucin
paso a paso sin que el manipulador haya sido sacado de su trayectoria con movimientos
manuales, etc.
Sintaxis
HollowWristReset ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Parmetros del sistema relacionados Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm -
Independent Joint
Regreso a la trayectoria Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Continuacin
1 Instrucciones
1.55. IDelete - Cancela una interrupcin
IDelete
121 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.55. IDelete - Cancela una interrupcin
Utilizacin
IDelete (Interrupt Delete) se utiliza para cancelar (eliminar) una interrupcin.
Si slo se desea desactivar temporalmente la interrupcin, deben utilizarse las instrucciones
ISleep o IDisable.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IDelete.
Ejemplo 1
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.
Se recomienda colocar un punto de paro antes de IDelete. De lo contrario, la interrupcin
se desactivar antes de alcanzar el punto final de la trayectoria del movimiento.
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) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de inter-
rupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Desactivacin temporal de una interrupcin ISleep - Desactiva una interrupcin en la
pgina 198
Desactivacin temporal de todas las
interrupciones
IDisable - Desactiva todas las interrupciones
en la pgina 122
1 Instrucciones
1.56. IDisable - Desactiva todas las interrupciones
RobotWare - OS
3HAC16581-5 Revisin: H 122


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.56. IDisable - Desactiva todas las interrupciones
Utilizacin
IDisable(Interrupt Disable) 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IDisable.
Ejemplo 1
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 activo de forma predeterminado. IEnable se define 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
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de interrup-
ciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Activacin de interrupciones IEnable - Habilita el uso de interrupciones en
la pgina 123
1 Instrucciones
1.57. IEnable - Habilita el uso de interrupciones
RobotWare - OS
123 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.57. IEnable - Habilita el uso de interrupciones
Utilizacin
IEnable(Interrupt Enable) se utiliza para permitir el uso de interrupciones durante la
ejecucin del programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IEnable.
Ejemplo 1
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
(IEnable), se empiezan a generar inmediatamente las interrupciones, 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
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de interrup-
ciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Desactivacin de interrupciones IDisable - Desactiva todas las interrupciones
en la pgina 122
1 Instrucciones
1.58. IError - Solicita una interrupcin para errores
RobotWare - OS
3HAC16581-5 Revisin: H 124


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.58. IError - Solicita una interrupcin para errores
Utilizacin
IError (Interrupt Errors) se utiliza para solicitar y activar una interrupcin cuando se
produce un error.
IError permite registrar los errores, advertencias o cambios de estado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IError.
Consulte tambin Ms ejemplos en la pgina 125.
Ejemplo 1
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 el tipo de dato predefinido errtype. Para especificar cualquier tipo,
utilice TYPE_ALL.
Interrupt
Tipo de dato: intnum
La identidad de la interrupcin. La interrupcin debe estar ya conectada a una rutina TRAP
mediante la instruccin CONNECT.
Contina en la pgina siguiente
1 Instrucciones
1.58. IError - Solicita una interrupcin para errores
RobotWare - OS
125 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IError.
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_interrupt;
...
IDelete err_interrupt;
...
TRAP trap_err
GetTrapData err_data;
ReadErrData err_data, err_domain, err_number, err_type;
! Set domain no 1 ... 11
SetGO go_err1, err_domain;
! Set error no 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 seales digitales de salida.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.58. IError - Solicita una interrupcin para errores
RobotWare - OS
3HAC16581-5 Revisin: H 126


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitacin
No es posible solicitar interrupciones para los errores internos.
En una tarea de tipo NORMAL, el evento es descartado al pararse el programa, de forma que no
todos los eventos pueden ser capturados en una tarea NORMAL. Para capturar todos los
eventos, la tarea debe ser de tipo esttico o semiesttico.
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.
PROC main ( )
VAR intnum err_interrupt;
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 inicialmente 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 :=] <expression (IN) of errdomain>
[\ErrorId:= <expression (IN) of num>\\ ,
[ErrorType :=] <expression (IN) of errtype> ,
[Interrupt :=] <variable (VAR) of intnum>;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.58. IError - Solicita una interrupcin para errores
RobotWare - OS
127 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Dominios de error, constantes predefinidas errdomain - Dominio de error en la pgina
1102
Tipos de errores, constantes predefinidas errtype - Tipo de error en la pgina 1111
Obtencin de datos de interrupcin para la
rutina TRAP actual
GetTrapData - Obtiene datos de interrupcin
para la rutina TRAP actual en la pgina 113
Obtencin de informacin sobre un error ReadErrData - Obtiene informacin sobre un
error en la pgina 356
Continuacin
1 Instrucciones
1.59. IF - Si se cumple una condicin, ...; de lo contrario, ...
RobotWare - OS
3HAC16581-5 Revisin: H 128


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.59. IF - Si se cumple una condicin, ...; de lo contrario, ...
Utilizacin
IFse utiliza cuando es necesario ejecutar instrucciones diferentes en funcin de si se cumple
una condicin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IF.
Consulte tambin Ms ejemplos en la pgina 128.
Ejemplo 1
IF reg1 > 5 THEN
Set do1;
Set do2;
ENDIF
Las seales do1 and do2 slo se activan si reg1 es mayor que 5.
Ejemplo 2
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 Condition THEN ...
{ELSEIF Condition THEN ...}
[ELSE ...]
ENDIF
Condition
Tipo de dato: bool
La condicin que debe cumplirse para que se ejecuten las instrucciones que se encuentran
entre THEN y ELSE/ELSEIF.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin IF.
Ejemplo 1
IF counter > 100 THEN
counter := 100;
ELSEIF counter < 0 THEN
counter := 0;
ELSE
counter := counter + 1;
ENDIF
Contina en la pgina siguiente
1 Instrucciones
1.59. IF - Si se cumple una condicin, ...; de lo contrario, ...
RobotWare - OS
129 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Se incrementa el valor de Counter en 1. Sin embargo, si el valor de counter se encuentra
fuera de los lmites 0-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 <conditional expression> THEN
<instruction list>
{ELSEIF <conditional expression> THEN <instruction list> | <EIT>}
[ELSE
<instruction list>]
ENDIF
Informacin relacionada
Para obtener ms informacin sobre Consulte
Condiciones (expresiones lgicas) Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Continuacin
1 Instrucciones
1.60. Incr - Aumenta en 1 un valor
RobotWare - OS
3HAC16581-5 Revisin: H 130


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.60. Incr - Aumenta en 1 un valor
Utilizacin
Incr se utiliza para sumar 1 a una variable o una variable persistente de tipo numrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Incr.
Consulte tambin Ms ejemplos en la pgina 130.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin Incr.
Ejemplo 1
WHILE stop_production=0 DO
produce_part;
Incr no_of_parts;
TPWrite "No of produced parts= "\Num:=no_of_parts;
ENDWHILE
Con cada ciclo, se actualiza en el FlexPendant el nmero de piezas. La produccin sigue en
marcha siempre y cuando no se active la seal de entrada stop_production.
Sintaxis
Incr
[ Name := ] < var or pers (INOUT) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Decremento de una variable en 1 Decr - Reduce un nmero en 1 en la pgina 80
Suma de cualquier valor a una variable Add - Suma un valor numrico en la pgina 19
Cambio de un dato mediante una expresin
arbitraria, por ejemplo una multiplicacin
":=" - Asigna un valor en la pgina 23
1 Instrucciones
1.61. IndAMove - Movimiento independiente de posicin absoluta
Independent Axis
131 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.61. IndAMove - Movimiento independiente de posicin absoluta
Utilizacin
IndAMove(Independent Absolute Movement) se utiliza para cambiar un eje al modo
independiente y mover el eje a una posicin determinada.
Los ejes independientes son ejes que se mueven independientemente de los dems ejes del
sistema de robot. Dado que la ejecucin del programa prosigue inmediatamente, es posible
ejecutar otras instrucciones (incluidas las instrucciones de posicionamiento) durante el
tiempo del movimiento del eje independiente.
Si el eje debe moverse dentro de una revolucin, se debe utilizar en su lugar la instruccin
IndRMove. Si el movimiento debe producirse a una corta distancia de la posicin actual, se
debe utilizar la instruccin IndDMove.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndAMove.
Consulte tambin Ms ejemplos en la pgina 133.
Ejemplo 1
IndAMove Station_A,2\ToAbsPos:=p4,20;
El eje 2 de Station_A se mueve hasta la posicin p4 a una velocidad de 20 grados/s.
Argumentos
IndAMove MecUnit Axis [\ToAbsPos] | [\ToAbsNum] Speed [\Ramp]
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
[\ToAbsPos]
To Absolute Position
Tipo de dato: robtarget
La posicin del eje se especifica como un robtarget. Slo se utiliza el componente de este
eje Axis en concreto. El valor se utiliza como un valor de posicin absoluta en grados (mm
en el caso de los ejes lineales).
La posicin del eje se ver afectada si el eje se desplaza utilizando la instruccin EOffsSet
o EOffsOn.
En el caso de los ejes del robot, se debe utilizar en su lugar el argumento \ToAbsNum.
Contina en la pgina siguiente
1 Instrucciones
1.61. IndAMove - Movimiento independiente de posicin absoluta
Independent Axis
3HAC16581-5 Revisin: H 132


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\ToAbsNum]
To Absolute Numeric value
Tipo de dato: num
La posicin del eje se define en grados (mm si es un eje lineal).
Mediante este argumento, la posicin NO se ver afectada por ningn desplazamiento, por
ejemplo EOffsSet o PDispOn.
Tiene la misma funcin que \ToAbsPos, pero la posicin se define como un valor numrico
para facilitar el cambio manual de la posicin.
Speed
Tipo de dato: num
Velocidad del eje en grados/s (mm/s si es un eje lineal).
[\Ramp]
Tipo de dato: num
Reduccin de la aceleracin y deceleracin respecto del rendimiento mximo
1- 100%, 100%=rendimientomximo).
Ejecucin de programas
Cuando se ejecuta IndAMove, el eje especificado se mueve a la velocidad programada hasta
la posicin de eje especificada. Si se programa \Ramp, se producir una reduccin de la
aceleracin o deceleracin.
Para devolver el eje al modo normal, se utiliza la instruccin IndReset. En conexin con
este cambio, es posible cambiar la posicin lgica del eje de forma que se eliminen varias
revoluciones completas de la posicin para evitar que se produzca el retroceso en el giro para
el movimiento siguiente.
La velocidad puede alterarse mediante la ejecucin de otra instruccin IndAMove (u otra
instruccin IndXMove). Si se selecciona una velocidad en el sentido opuesto, el eje se detiene
y acelera hasta la nueva velocidad y en el nuevo sentido.
Durante la ejecucin paso a paso de la instruccin, el eje se ajusta slo en el modo
independiente. El eje empieza a moverse cuando se ejecuta la instruccin siguiente y contina
siempre y cuando tenga lugar la ejecucin del programa. Para obtener ms informacin,
consulte el Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes.
Cuando se sita un puntero de programa al principio del programa o en una nueva rutina,
todos los ejes cambian automticamente al modo normal, sin cambiar el sistema de medicin
(lo que equivale a la ejecucin de la instruccin IndReset\Old).
NOTA!
Una instruccin IndAMove a continuacin de una operacin IndCMove puede dar lugar a que
el eje deshaga el movimiento realizado en la instruccin IndCMove. Para evitarlo, utilice una
instruccin IndReset antes de la instruccin IndAMove o bien utilice una instruccin
IndRMove.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.61. IndAMove - Movimiento independiente de posicin absoluta
Independent Axis
133 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los ejes en el modo independiente no pueden tener movimientos asignados. Si se intenta
ejecutar el eje manualmente, ste no se mueve y se muestra un mensaje de error. Ejecute una
instruccin IndReset o mueva el puntero del programa a main para poder salir del modo
independiente.
Si se produce una cada de alimentacin mientras hay un eje en modo independiente, no es
posible reanudar el programa. En este caso aparece un mensaje de error y es necesario
reiniciar un programa desde el principio.
Esta instruccin no es recomendable en el caso de los ejes de mueca de robot acoplados
(consulte Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes).
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IndAMove.
Ejemplo 1
ActUnit Station_A;
weld_stationA;
IndAMove Station_A,1\ToAbsNum:=90,20\Ramp:=50;
ActUnit Station_B;
weld_stationB_1;
WaitUntil IndInpos(Station_A,1 ) = TRUE;
WaitTime 0.2;
DeactUnit Station_A;
weld_stationB_2;
Se activa Station_A y se inicia la soldadura en la estacin A.
A continuacin, se mueve Station_A (el eje 1) hasta la posicin de 90 grados mientras el
robot realiza la soldadura en la estacin B. La velocidad del eje es de 20 grados/s. La
velocidad cambia con la aceleracin/deceleracin reducida al 50% del rendimiento mximo.
Cuando la estacin A alcanza esta posicin, es desactivada y es posible realizar la recarga en
la estacin al mismo tiempo que el robot contina soldando en la estacin B.
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
IndAMove
[ MecUnit:= ] < variable (VAR) of mecunit> ,
[ Axis:= ] < expression (IN) of num>
[ \ToAbsPos:= < expression (IN) of robtarget> ]
| [ \ ToAbsNum:= < expression (IN) of num> ] ,
[ Speed := ] < expression (IN) of num>
[ \ Ramp:= < expression (IN) of num > ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.61. IndAMove - Movimiento independiente de posicin absoluta
Independent Axis
3HAC16581-5 Revisin: H 134


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa - Ejes
independientes
Cambio de nuevo al modo manual IndReset - Restablecimiento independiente
en la pgina 143
Restablecimiento del sistema de medicin IndReset - Restablecimiento independiente
en la pgina 143
Otros movimientos de ejes independientes IndRMove - Movimiento independiente de
posicin relativa en la pgina 148
IndDMove - Movimiento independiente de
posicin delta en la pgina 139
IndCMove - Movimiento independiente
continuo en la pgina 135
Comprobacin del estado de velocidad de los
ejes independientes
IndInpos - Estado de velocidad de un eje
independiente en la pgina 880
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Definicin de ejes independientes Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm -
Independent Joint
Continuacin
1 Instrucciones
1.62. IndCMove - Movimiento independiente continuo
Independent Axis
135 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.62. IndCMove - Movimiento independiente continuo
Utilizacin
IndCMove (Independent Continuous Movement) se utiliza para cambiar un eje al modo
independiente y empezar a moverlo continuamente a una velocidad determinada.
Los ejes independientes son ejes que se mueven independientemente de los dems ejes del
sistema de robot. Dado que la ejecucin del programa prosigue inmediatamente, es posible
ejecutar otras instrucciones (incluidas las instrucciones de posicionamiento) durante el
tiempo del movimiento del eje independiente.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndCMove.
Consulte tambin Ms ejemplos en la pgina 137.
Ejemplo 1
IndCMove Station_A,2,-30.5;
El eje 2 de Station_A empieza a moverse en el sentido negativo a una velocidad de 30,5
grados/s.
Argumentos
IndCMove MecUnit Axis Speed [\Ramp]
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
Speed
Tipo de dato: num
Velocidad del eje en grados/s (mm/s si es un eje lineal).
El sentido del movimiento se especifica con el signo del argumento de velocidad.
[\Ramp]
Tipo de dato: num
Reduccin de la aceleracin y deceleracin respecto del rendimiento mximo
1- 100%, 100%=rendimientomximo).
Contina en la pgina siguiente
1 Instrucciones
1.62. IndCMove - Movimiento independiente continuo
Independent Axis
3HAC16581-5 Revisin: H 136


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Cuando se ejecuta IndCMove, el eje especificado empieza a moverse a la velocidad
programada. El sentido del movimiento se especifica con el signo del argumento de
velocidad. Si se programa \Ramp, se producir una reduccin de la aceleracin o
deceleracin.
Para devolver el eje al modo normal, se utiliza la instruccin IndReset. La posicin lgica
del eje puede cambiarse en conexin con este cambio. Por ejemplo, es posible eliminar un
nmero de revoluciones completas para evitar que se produzca el retroceso en el giro para el
movimiento siguiente.
Es posible cambiar la velocidad ejecutando una instruccin IndCMove posterior. Si se solicita
una velocidad en el sentido opuesto, el eje se detiene y acelera hasta la nueva velocidad y en
el nuevo sentido. Para detener el eje, puede usarse el argumento de velocidad 0. En este caso,
sigue teniendo el modo independiente.
Durante la ejecucin paso a paso de la instruccin, el eje se ajusta slo en el modo
independiente. El eje empieza a moverse cuando se ejecuta la instruccin siguiente y contina
siempre y cuando contine tambin la ejecucin del programa. Para obtener ms informacin,
consulte el Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes.
Cuando se sita un puntero de programa al principio del programa o en una nueva rutina,
todos los ejes cambian automticamente al modo normal, sin cambiar el sistema de medicin
(lo que equivale a la ejecucin de la instruccin IndReset\Old).
Limitaciones
La resolucin de la posicin del eje empeora a medida que se mueve hasta su posicin cero
lgica (normalmente el centro del rea de trabajo). Para volver a disponer de una resolucin
elevada, es posible cambiar a cero el rea de trabajo lgica con la instruccin IndReset. Para
obtener ms informacin, consulte el Manual de referencia de RAPID - Descripcin general
de RAPID, seccin Principios de movimiento y E/S - Posicionamiento durante la ejecucin
del programa - Ejes independientes.
Los ejes en el modo independiente no pueden tener movimientos asignados. Si se intenta
ejecutar el eje manualmente, ste no se mueve y se muestra un mensaje de error. Ejecute una
instruccin IndReset o mueva el puntero del programa a main para poder salir del modo
independiente.
Si se produce una cada de alimentacin cuando el eje se encuentra en el modo independiente,
no es posible reanudar el programa. En este caso aparece un mensaje de error y es necesario
reiniciar un programa desde el principio.
Esta instruccin no es recomendable en el caso de los ejes de mueca de robot acoplados
(consulte Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.62. IndCMove - Movimiento independiente continuo
Independent Axis
137 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IndCMove.
IndCMove Station_A,2,20;
WaitUntil IndSpeed(Station_A,2 \InSpeed) = TRUE;
WaitTime 0.2;
MoveL p10, v1000, fine, tool1;
IndCMove Station_A,2,-10\Ramp:=50;
MoveL p20, v1000, z50, tool1;
IndRMove Station_A,2 \ToRelPos:=p1 \Short,10;
MoveL p30, v1000, fine, tool1;
WaitUntil IndInpos(Station_A,2 ) = TRUE;
WaitTime 0.2;
IndReset Station_A,2 \RefPos:=p40\Short;
MoveL p40, v1000, fine, tool1;
El eje 2 de Station_A empieza a moverse en el sentido positivo a una velocidad de 20
grados/s. Cuando el eje ha alcanzado la velocidad seleccionada, los ejes del robot empiezan
a moverse.
Cuando el robot alcanza la posicin p10, el eje externo cambia de sentido y gira a una
velocidad de 10 grados/s. El cambio de velocidad se realiza con una aceleracin/deceleracin
reducida al 50% del rendimiento mximo. Al mismo tiempo, el robot ejecuta el movimiento
hacia p20.
A continuacin, el eje 2 de Station_A se detiene lo ms rpidamente posible en la posicin
p1 dentro de la revolucin actual.
Una vez que el eje 2 ha alcanzado esta posicin y el robot se ha detenido en la posicin p30,
el eje 2 vuelve de nuevo al modo normal. El offset del sistema de medicin para este eje se
cambia a un nmero entero de revoluciones de eje, de forma que la posicin actual est lo ms
cerca posible de p40.
A continuacin, cuando el robot se mueve hasta la posicin p40, el eje 2 de Station_A es
movido por la instruccin MoveL p40 por la va ms corta hasta la posicin p40 (mx. 180
grados).
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
IndCMove
[ MecUnit:= ] < variable (VAR) of mecunit> ,
[ Axis:= ] < expression (IN) of num> ,
[ Speed := ] < expression (IN) of num>
[ \ Ramp:= < expression (IN) of num > ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.62. IndCMove - Movimiento independiente continuo
Independent Axis
3HAC16581-5 Revisin: H 138


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa - Ejes independi-
entes
Cambio de nuevo al modo manual IndReset - Restablecimiento independiente
en la pgina 143
Restablecimiento del sistema de medicin IndReset - Restablecimiento independiente
en la pgina 143
Otros movimientos de ejes independientes IndAMove - Movimiento independiente de
posicin absoluta en la pgina 131
IndRMove - Movimiento independiente de
posicin relativa en la pgina 148
IndDMove - Movimiento independiente de
posicin delta en la pgina 139
Comprobacin del estado de velocidad de los
ejes independientes
IndInpos - Estado de velocidad de un eje
independiente en la pgina 880
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Definicin de ejes independientes Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm -
Independent Joint
Continuacin
1 Instrucciones
1.63. IndDMove - Movimiento independiente de posicin delta
Independent Axis
139 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.63. IndDMove - Movimiento independiente de posicin delta
Utilizacin
IndDMove(Independent Delta Movement se utiliza para cambiar un eje al modo
independiente y mover el eje a una distancia determinada.
Los ejes independientes son ejes que se mueven independientemente de los dems ejes del
sistema de robot. Dado que la ejecucin del programa prosigue inmediatamente, es posible
ejecutar otras instrucciones (incluidas las instrucciones de posicionamiento) durante el
tiempo del movimiento del eje independiente.
Si se desea mover el eje hasta una posicin determinada, debe utilizar en su lugar una
instruccin IndAMove o IndRMove.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndDMove.
Consulte tambin Ms ejemplos en la pgina 141.
Ejemplo 1
IndDMove Station_A,2,-30,20;
Se mueve el eje 2 de Station_A 30 grados en el sentido negativo a una velocidad de 20
grados/s.
Argumentos
IndDMove MecUnit Axis Delta Speed [\Ramp]
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
Delta
Tipo de dato: num
La distancia que se desea mover el eje actual, expresada en grados (mm en el caso de los ejes
lineales). El signo especifica el sentido del movimiento.
Speed
Tipo de dato: num
Velocidad del eje en grados/s (mm/s si es un eje lineal).
[ \Ramp ]
Tipo de dato: num
Reduccin de la aceleracin y deceleracin respecto del rendimiento mximo
1- 100%, 100%=rendimientomximo).
Contina en la pgina siguiente
1 Instrucciones
1.63. IndDMove - Movimiento independiente de posicin delta
Independent Axis
3HAC16581-5 Revisin: H 140


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Cuando se ejecuta IndDMove, el eje especificado se mueve a la velocidad programada hasta
la distancia especificada. El sentido del movimiento se especifica con el signo del argumento
Delta. Si se programa \Ramp, se producir una reduccin de la aceleracin o deceleracin.
Si el eje se est moviendo, la nueva posicin se calcula a partir de la posicin momentnea
que tiene el eje en el momento de ejecutar la instruccin IndDMove. Si se ejecuta una
instruccin IndDMove con una distancia 0 y el eje ya est cambiando de posicin, el eje se
detiene y retrocede hasta la posicin ocupada por el eje en el momento de la ejecucin de la
instruccin.
Para devolver el eje al modo normal, se utiliza la instruccin IndReset. La posicin lgica
del eje puede cambiarse en conexin con este cambio. Por ejemplo, es posible eliminar un
nmero de revoluciones completas de la posicin para evitar que se produzca el retroceso en
el giro para el movimiento siguiente.
La velocidad puede cambiarse ejecutando una instruccin IndDMove adicional (u otra
instruccin IndXMove). Si se selecciona una velocidad en el sentido opuesto, el eje se detiene
y acelera hasta la nueva velocidad y en el nuevo sentido.
Durante la ejecucin paso a paso de la instruccin, el eje se ajusta slo en el modo
independiente. El eje empieza a moverse cuando se ejecuta la instruccin siguiente y contina
siempre y cuando contine tambin la ejecucin del programa. Para obtener ms informacin,
consulte el Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes.
Cuando se sita un puntero de programa al principio del programa o en una nueva rutina,
todos los ejes cambian automticamente al modo normal, sin cambiar el sistema de medicin
(lo que equivale a la ejecucin de la instruccin IndReset \Old).
Limitaciones
Los ejes en el modo independiente no pueden tener movimientos asignados. Si se intenta
ejecutar el eje manualmente, ste no se mueve y se muestra un mensaje de error. Ejecute una
instruccin IndReset o mueva el puntero del programa a main para poder salir del modo
independiente.
Si se produce un fallo de cada de alimentacin cuando el eje se encuentra en el modo
independiente, no es posible reanudar el programa. En este caso aparece un mensaje de error
y es necesario reiniciar un programa desde el principio.
Esta instruccin no es recomendable en el caso de los ejes de mueca de robot acoplados
(consulte Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.63. IndDMove - Movimiento independiente de posicin delta
Independent Axis
141 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IndDMove.
Ejemplo 1
IndAMove ROB_1,6\ToAbsNum:=90,20;
WaitUntil IndInpos(ROB_1,6) = TRUE;
WaitTime 0.2;
IndDMove Station_A,2,-30,20;
WaitUntil IndInpos(ROB_1,6) = TRUE;
WaitTime 0.2;
IndDMove ROB_1,6,400,20;
Se mueve el eje 6 del robot hasta las posiciones siguientes:
90 grados
60 grados
460 grados (1 revolucin +100 grados)
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
IndDMove
[ MecUnit:= ] < variable (VAR) of mecunit> ,
[ Axis:= ] < expression (IN) of num> ,
[ Delta:= ] < expression (IN) of num>,
[ Speed := ] < expression (IN) of num>
[ \ Ramp:= < expression (IN) of num > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante la
ejecucin del programa - Ejes independientes
Cambio de nuevo al modo manual IndReset - Restablecimiento independiente en
la pgina 143
Restablecimiento del sistema de medicin IndReset - Restablecimiento independiente en
la pgina 143
Otros movimientos de ejes independientes IndAMove - Movimiento independiente de
posicin absoluta en la pgina 131
IndRMove - Movimiento independiente de
posicin relativa en la pgina 148
IndCMove - Movimiento independiente
continuo en la pgina 135
Comprobacin del estado de velocidad de
los ejes independientes
IndInpos - Estado de velocidad de un eje inde-
pendiente en la pgina 880
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.63. IndDMove - Movimiento independiente de posicin delta
Independent Axis
3HAC16581-5 Revisin: H 142


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de ejes independientes Manual de referencia tcnica - Parmetros del
sistema, seccin Motion - Arm -
Independent Joint
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.64. IndReset - Restablecimiento independiente
Independent Axis
143 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.64. IndReset - Restablecimiento independiente
Utilizacin
IndReset (Independent Reset) se utiliza para devolver un eje independiente al modo normal.
Al mismo tiempo, el sistema de medicin de los ejes de rotacin puede moverse un nmero
de revoluciones de eje.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndReset.
Consulte tambin Ms ejemplos en la pgina 146.
IndCMove Station_A,2,5;
MoveL *,v1000,fine,tool1;
IndCMove Station_A,2,0;
WaitUntil IndSpeed(Station_A,2\ZeroSpeed);
WaitTime 0.2
IndReset Station_A,2;
Se mueve en primer lugar el eje 2 de Station_A en el modo independiente, devolvindolo
a continuacin al modo normal. El eje se mantendr en su posicin.
NOTA!
Ni el eje independiente actual ni los ejes normales deben moverse cuando se ejecuta la
instruccin IndReset. Por eso la posicin anterior es un punto de paro y la instruccin
IndCMove se ejecuta con la velocidad cero. Adems, se utiliza una pausa de 0,2 segundos
para garantizar que se ha conseguido el estado correcto.
Argumentos
IndReset MecUnit Axis [\RefPos] | [\RefNum] [\Short] | [\Fwd]
|[\Bwd] | \Old]
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
Contina en la pgina siguiente
1 Instrucciones
1.64. IndReset - Restablecimiento independiente
Independent Axis
3HAC16581-5 Revisin: H 144


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \RefPos ]
Reference Position
Tipo de dato: robtarget
La posicin del eje de referencia se especifica como un robtarget. Slo se utiliza el
componente de este eje Axis en concreto. La posicin debe estar dentro del rea de trabajo
normal.
En el caso de los ejes del robot, se debe utilizar en su lugar el argumento \RefNum.
Este argumento slo debe ser definido junto con el argumento \Short, \Fwd o \Bwd. No se
permite junto con el argumento \Old.
[ \RefNum ]
Reference Numeric value
Tipo de dato: num
La posicin del eje de referencia se define en grados (mm si es un eje lineal). La posicin debe
estar dentro del rea de trabajo normal.
Este argumento slo debe ser definido junto con el argumento \Short, \Fwd o \Bwd. No se
permite junto con el argumento \Old.
Tiene la misma funcin que \RefPos, pero la posicin se define como un valor numrico
para facilitar el cambio manual de la posicin.
[ \Short ]
Tipo de dato: switch
El sistema de medicin cambiar un nmero entero de revoluciones en el lado del eje, de
forma que el eje quede lo ms cerca posible de la posicin especificada con \RefPos o
\RefNum. Si se ejecuta una instruccin de posicionamiento con la misma posicin despus
de IndReset, el eje se desplaza por la ruta ms corta, inferior a 180 grados, para alcanzar
la posicin.
[ \Fwd ]
Forward
Tipo de dato: switch
El sistema de medicin cambiar un nmero entero de revoluciones en el lado del eje, de
forma que la posicin de referencia quede en el lado positivo de la posicin especificada con
\RefPos o \RefNum. Si se ejecuta una instruccin de posicionamiento con la misma
posicin despus de IndReset, el eje gira en sentido positivo menos de 360 grados para
alcanzar la posicin.
[ \Bwd ]
Backward
Tipo de dato: switch
El sistema de medicin cambiar un nmero entero de revoluciones en el lado del eje, de
forma que la posicin de referencia quede en el lado negativo de la posicin especificada con
\RefPos o \RefNum. Si se ejecuta una instruccin de posicionamiento con la misma
posicin despus de IndReset, el eje gira en sentido negativo menos de 360 grados para
alcanzar la posicin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.64. IndReset - Restablecimiento independiente
Independent Axis
145 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Old ]
Tipo de dato: switch
Mantiene la posicin anterior.
NOTA!
La resolucin se reduce en las posiciones ms alejadas de la posicin cero.
Si no se especifica ningn argumento \Short, \Fwd, \Bwd u \Old, se utiliza \Old como
valor predeterminado.
Ejecucin de programas
Si se ejecuta IndReset, el eje independiente vuelve al modo normal. Al mismo tiempo, el
sistema de medicin del eje puede moverse un nmero entero de revoluciones de eje.
Esta instruccin tambin puede utilizarse en el modo normal con el fin de cambiar de sistema
de medicin.
NOTA!
La posicin slo se utiliza para ajustar el sistema de medicin. El eje en s no se mueve hasta
la posicin.
Limitaciones
Esta instruccin slo puede ejecutarse cuando todos los ejes activos que se encuentren en el
modo normal estn parados. Todos los ejes activos de todas las unidades mecnicas
conectadas al mismo planificador de movimientos deben permanecer parados. El eje
independiente que se desea cambiar al modo normal tambin debe estar en reposo. En el caso
de los ejes que se encuentran en el modo normal, esto se consigue ejecutando una instruccin
de movimiento con el argumento fine. El eje independiente se detiene con una instruccin
IndCMove con Speed:=0 (seguida de un periodo de espera de 0,2 segundos), IndRMove,
IndAMove o IndDMove.
La resolucin de las posiciones se reduce al alejarse de la posicin lgica 0. Por tanto, un eje
que gira progresivamente ms y ms desde la posicin 0 debe ser puesto a cero con la
instruccin IndReset, utilizando un argumento distinto de \Old.
No es posible cambiar el sistema de medicin de los ejes lineales.
Para garantizar una puesta en marcha adecuada tras ejecutar IndReset con un eje y
utilizando un sistema de medicin relativo (modificadores de sincronizacin), es necesario
aadir un retardo adicional de 0,12 segundos tras la instruccin IndReset.
El nico eje del robot que puede usarse como eje independiente es el eje 6. La instruccin
IndReset tambin puede usarse con el eje 4 en los modelos IRB2400 e IRB 4400. Si se
utiliza IndReset en el eje 4 del robot, el eje 6 no debe estar en el modo independiente.
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.
IndReset no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop o Restart.
IndReset slo conmuta el estado independiente de un solo eje. No puede usarse para detener
un movimiento independiente. Para detener un movimiento independiente, debe alcanzar una
condicin de paro o el usuario debe, por ejemplo, mover el PP a main.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.64. IndReset - Restablecimiento independiente
Independent Axis
3HAC16581-5 Revisin: H 146


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndReset.
Ejemplo 1
IndAMove Station_A,1\ToAbsNum:=750,50;
WaitUntil IndInpos(Station_A,1);
WaitTime 0.2;
IndReset Station_A,1 \RefNum:=0 \Short;.
IndAMove Station_A,1\ToAbsNum:=750,50;
WaitUntil IndInpos(Station_A,1);
WaitTime 0.2;
IndReset Station_A,1 \RefNum:=300 \Short;
Se mueve en primer lugar el eje 1 de Station_A de forma independiente hasta la posicin
de 750 grados (2 revoluciones ms 30 grados). En el mismo momento en que cambia al modo
normal, se cambia la posicin lgica a 30 grados.
A continuacin, se mueve el eje 1 de Station_A de forma independiente hasta la posicin
de 750 grados (2 revoluciones ms 30 grados). En el mismo momento en que cambia al modo
normal, se cambia la posicin lgica a 390grados (1 revolucin ms 30 grados).
Gestin de errores
Si el eje est en movimiento, la variable de sistema ERRNO cambia a ERR_AXIS_MOVING.
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
IndReset
[ MecUnit:= ] < variable (VAR) of mecunit> ,
[ Axis:= ] < expression (IN) of num>
[ \ RefPos:= < expression (IN) of robtarget> ] |
[ \ RefNum:= < expression (IN) of num> ]
[ \ Short ] | [ \ Fwd ] | [ \ Bwd ] | [ \ Old ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa - Ejes independi-
entes
Cambio de un eje al modo independiente IndAMove - Movimiento independiente de
posicin absoluta en la pgina 131
IndCMove - Movimiento independiente
continuo en la pgina 135
IndDMove - Movimiento independiente de
posicin delta en la pgina 139
IndRMove - Movimiento independiente de
posicin relativa en la pgina 148
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.64. IndReset - Restablecimiento independiente
Independent Axis
147 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Comprobacin del estado de velocidad de
los ejes independientes
IndInpos - Estado de velocidad de un eje inde-
pendiente en la pgina 880
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Definicin de ejes independientes Manual de referencia tcnica - Parmetros del
sistema, seccin Motion - Arm - Independent
Joint
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.65. IndRMove - Movimiento independiente de posicin relativa
Independent Axis
3HAC16581-5 Revisin: H 148


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.65. IndRMove - Movimiento independiente de posicin relativa
Utilizacin
IndRMove (Independent Relative Movement) se utiliza para cambiar un eje de rotacin al
modo independiente y mover el eje a una posicin determinada dentro de una revolucin.
Los ejes independientes son ejes que se mueven independientemente de los dems ejes del
sistema de robot. Dado que la ejecucin del programa prosigue inmediatamente, es posible
ejecutar otras instrucciones (incluidas las instrucciones de posicionamiento) durante el
tiempo del movimiento del eje independiente.
Si se desea mover el eje hasta una posicin absoluta (varias revoluciones) o se trata de un eje
lineal, se debe utilizar en su lugar la instruccin IndAMove. Si el movimiento debe producirse
a una distancia determinada de la posicin actual, se debe utilizar la instruccin IndDMove.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IndRMove.
Consulte tambin Ms ejemplos en la pgina 151.
Ejemplo 1
IndRMove Station_A,2\ToRelPos:=p5 \Short,20;
Se mueve el eje 2 de Station_A por la ruta ms corta hasta la posicin p5 dentro de una
revolucin (rotacin mxima 180 grados) a una velocidad de 20 grados/s.
Argumentos
IndRMove MecUnit Axis [\ToRelPos] | [\ToRelNum] [\Short] | [\Fwd]
| [\Bwd] Speed [\Ramp]
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
[ \ToRelPos ]
To Relative Position
Tipo de dato: robtarget
La posicin del eje se especifica como un robtarget. Slo se utiliza el componente de este
eje Axis en concreto. El valor se utiliza como un valor de posicin en grados dentro de una
revolucin de eje. Esto significa que el eje se mueve menos de una revolucin.
La posicin del eje se ver afectada si el eje se desplaza utilizando la instruccin EOffsSet
o EOffsOn.
En el caso de los ejes del robot, se debe utilizar en su lugar el argumento \ToRelNum.
Contina en la pgina siguiente
1 Instrucciones
1.65. IndRMove - Movimiento independiente de posicin relativa
Independent Axis
149 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ToRelNum ]
To Relative Numeric value
Tipo de dato: num
La posicin del eje, definida en grados.
Mediante este argumento, la posicin NO se ver afectada por ningn desplazamiento, por
ejemplo EOffsSet o PDispOn.
Tiene la misma funcin que \ToRelPos, pero la posicin se define como un valor numrico
para facilitar el cambio manual de la posicin.
[ \Short ]
Tipo de dato: switch
El eje se mueve por la ruta ms corta hasta la nueva posicin. Esto significa que la rotacin
mxima ser de 180 grados en cualquier sentido. Por tanto, el sentido del movimiento
depende de la ubicacin actual del eje.
[ \Fwd ]
Forward
Tipo de dato: switch
El eje se mueve en sentido positivo hasta la nueva posicin. Esto significa que la rotacin
mxima ser de 360 grados y siempre en sentido positivo (con aumento del valor de
posicin).
[ \Bwd ]
Backward
Tipo de dato: switch
El eje se mueve en sentido negativo hasta la nueva posicin. Esto significa que la rotacin
mxima ser de 360 grados y siempre en sentido negativo (con reduccin del valor de
posicin).
Si se omite el argumento \Short, \Fwd o \Bwd, se utiliza \Short como valor
predeterminado.
Speed
Tipo de dato: num
La velocidad del eje en grados/s.
[ \Ramp ]
Tipo de dato: num
Reduccin de la aceleracin y deceleracin respecto del rendimiento mximo
1- 100%, 100%=rendimientomximo).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.65. IndRMove - Movimiento independiente de posicin relativa
Independent Axis
3HAC16581-5 Revisin: H 150


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Cuando se ejecuta IndRMove, el eje especificado se mueve a la velocidad programada hasta
la posicin de eje especificada, pero slo una revolucin como mximo. Si se programa
\Ramp, se producir una reduccin de la aceleracin o deceleracin.
Para devolver el eje al modo normal, se utiliza la instruccin IndReset. La posicin lgica
del eje puede cambiarse en conexin con este cambio. Por ejemplo, es posible eliminar un
nmero de revoluciones completas de la posicin para evitar que se produzca el retroceso en
el giro para el movimiento siguiente.
La velocidad puede cambiarse ejecutando una instruccin IndRMove adicional (u otra
instruccin IndXMove). Si se selecciona una velocidad en el sentido opuesto, el eje se detiene
y acelera hasta la nueva velocidad y en el nuevo sentido.
Durante la ejecucin paso a paso de la instruccin, el eje se ajusta slo en el modo
independiente. El eje empieza a moverse cuando se ejecuta la instruccin siguiente y contina
siempre y cuando contine tambin la ejecucin del programa. Para obtener ms informacin,
consulte el Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes.
Cuando se sita un puntero de programa al principio del programa o en una nueva rutina,
todos los ejes cambian automticamente al modo normal, sin cambiar el sistema de medicin
(lo que equivale a la ejecucin de la instruccin IndReset \Old).
Limitaciones
Los ejes en el modo independiente no pueden tener movimientos asignados. Si se intenta
ejecutar el eje manualmente, ste no se mueve y se muestra un mensaje de error. Ejecute una
instruccin IndReset o mueva el puntero del programa a main para poder salir del modo
independiente.
Si se produce una cada de alimentacin cuando el eje se encuentra en el modo independiente,
no es posible reanudar el programa. En este caso aparece un mensaje de error y es necesario
reiniciar un programa desde el principio.
Esta instruccin no es recomendable en el caso de los ejes de mueca de robot acoplados
(consulte Manual de referencia de RAPID - Descripcin general de RAPID, seccin
Principios de movimiento y E/S - Posicionamiento durante la ejecucin del programa - Ejes
independientes).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.65. IndRMove - Movimiento independiente de posicin relativa
Independent Axis
151 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IndRMove.
Ejemplo 1
IndRMove Station_A,1\ToRelPos:=p5 \Fwd,20\Ramp:=50;
El eje 1 de Station_A empieza a moverse en sentido positivo hacia la posicin p5 dentro de
una revolucin (rotacin mxima 360 grados) a una velocidad de 20 grados/s. La velocidad
cambia con la aceleracin/deceleracin reducida al 50% del rendimiento mximo.
IndAMove Station_A,1\ToAbsNum:=90,20;
WaitUntil IndInpos(Station_A,1 ) = TRUE;
IndRMove Station_A,1\ToRelNum:=80 \Fwd,20;
WaitTime 0.2;
WaitUntil IndInpos(Station_A,1 ) = TRUE;
WaitTime 0.2;
IndRMove Station_A,1\ToRelNum:=50 \Bwd,20;
WaitUntil IndInpos(Station_A,1 ) = TRUE;
WaitTime 0.2;
IndRMove Station_A,1\ToRelNum:=150 \Short,20;
WaitUntil IndInpos(Station_A,1 ) = TRUE;
WaitTime 0.2;
IndAMove Station_A,1\ToAbsNum:=10,20;
Se mueve el eje 1 de Station_A hasta las posiciones siguientes:
90 grados
440 grados (1 revolucin +80 grados)
410 grados (1 revolucin +50 grados)
510 grados (1 revolucin +150 grados)
10 grados
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
IndRMove
[ MecUnit:= ] < variable (VAR) of mecunit> ,
[ Axis:= ] < expression (IN) of num>
[ \ToRelPos:= < expression (IN) of robtargets> ]
| [ \ToRelNum:= < expression (IN) of num> ]
[ \Short ] | [ \ Fwd ] | [ \ Bwd ] ,
[ Speed := ] < expression (IN) of num>
[ \Ramp:= < expression (IN) of num > ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.65. IndRMove - Movimiento independiente de posicin relativa
Independent Axis
3HAC16581-5 Revisin: H 152


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa - Ejes independi-
entes
Cambio de nuevo al modo manual IndReset - Restablecimiento independiente
en la pgina 143
Restablecimiento del sistema de medicin IndReset - Restablecimiento independiente
en la pgina 143
Otros movimientos de ejes independientes IndAMove - Movimiento independiente de
posicin absoluta en la pgina 131
IndDMove - Movimiento independiente de
posicin delta en la pgina 139
IndCMove - Movimiento independiente
continuo en la pgina 135
Comprobacin del estado de velocidad de los
ejes independientes
IndInpos - Estado de velocidad de un eje
independiente en la pgina 880
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Definicin de ejes independientes Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm -
Independent Joint
Continuacin
1 Instrucciones
1.66. InvertDO - Invierte el valor de una seal de salida digital
RobotWare - OS
153 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.66. InvertDO - Invierte el valor de una seal de salida digital
Utilizacin
InvertDO (Invert Digital Output) invierte el valor de una seal digital de salida
(0 ->1 y 1 ->0).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin InvertDO.
Ejemplo 1
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 siguiente).
En la figura siguiente se muestra la inversin de una seal digital de salida.
xx0500002164
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. Si se ha perdido el contacto con la unidad, la variable de sistema ERRNO
cambia a:
ERR_NORUNUNIT
Sintaxis
InvertDO
[ Signal := ] < variable (VAR) of signaldo > ;
Contina en la pgina siguiente
1 Instrucciones
1.66. InvertDO - Invierte el valor de una seal de salida digital
RobotWare - OS
3HAC16581-5 Revisin: H 154


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.67. IOBusStart - Start of I/O bus
RobotWare - OS
155 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.67. IOBusStart - Start of I/O bus
Utilizacin
IOBusStart se utiliza para poner en marcha un determinado bus de E/S.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin IOBusStart.
Ejemplo 1
IOBusStart "IBS";
La instruccin pone en marcha el bus con el nombre IBS.
Argumentos
IOBusStart BusName
BusName
Tipo de dato: string
El nombre del bus que se desea poner en marcha.
Ejecucin de programas
Se pone en marcha el bus cuyo nombre se especifica en el parmetro BusName.
Gestin de errores
La variable de sistema ERRNO cambia a ERR_NAME_INVALID si el nombre de bus no existe.
Ese error puede ser gestionado en un gestor de ERROR.
Sintaxis
IOBusStart
[ BusName := ] < expression (IN) of string>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cmo obtener el estado del bus de E/S IOBusState - Obtener el estado actual de un
bus de E/S en la pgina 156
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
1 Instrucciones
1.68. IOBusState - Obtener el estado actual de un bus de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 156


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.68. IOBusState - Obtener el estado actual de un bus de E/S
Utilizacin
IOBusState se usa para leer el estado de un bus de E/S determinado. Su estado fsico y su
estado lgico definen el estado de un bus de E/S.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IOBusState.
Ejemplo 1
VAR busstate bstate;
IOBusState "IBS", bstate \Phys;
TEST bstate
CASE IOBUS_PHYS_STATE_RUNNING:
! Possible to access the signals on the IBS bus
DEFAULT:
! Actions for not up and running IBS bus
ENDTEST
Esta instruccin devuelve el estado fsico del bus de IBS en la variable bstate del tipo
busstate.
Ejemplo 2
VAR busstate bstate;
IOBusState "IBS", bstate \Logic;
TEST bstate
CASE IOBUS_LOG_STATE_STARTED:
! The IBS bus is started
DEFAULT:
! Actions for stopped IBS bus
ENDTEST
Esta instruccin devuelve el estado lgico del bus de IBS en la variable bstate del tipo
busstate.
Argumentos
IOBusState BusName State [\Phys] | [\Logic]
BusName
Tipo de dato: string
El nombre del bus cuyo estado se desea averiguar.
State
Tipo de dato: busstate
La variable en la que se devuelve el estado del bus. Consulte los datos predefinidos del tipo
busstate que aparecen ms abajo, en Ejecucin de programas.
Contina en la pgina siguiente
1 Instrucciones
1.68. IOBusState - Obtener el estado actual de un bus de E/S
RobotWare - OS
157 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Phys]
Physical
Tipo de dato: switch
Si se utiliza este parmetro, se lee el estado fsico del bus .
[\Logic]
Logical
Tipo de dato: switch
Si se utiliza este parmetro, se lee el estado lgico del bus.
Ejecucin de programas
Devuelve en el parmetro State el estado del bus especificado en el parmetro BusName.
Los estados lgicos del bus de E/S describen el estado cuya activacin puede solicitar el
usuario. El estado del bus de E/S se define en la tabla siguiente cuando se utiliza el argumento
opcional \Logic.
El estado fsico del bus de E/S describe el estado cuya activacin puede ordenar el controlador
de bus de campo. El estado del bus de E/S se define en la tabla siguiente cuando se utiliza el
argumento opcional \Phys.
-
NOTA!
Ni en RobotWare 5.08 ni en versiones anteriores es posible utilizar la instruccin
IOBusState con el argumento opcional \Phys o \Logic. En RobotWare 5.09, se
recomienda usar el argumento opcional \Phys o \Logic.k
Valor de
retorno
Constante simblica Comentario
10 IOBUS_LOG_STATE_STOPPED El bus se ha detenido debido a un error
2)
11 IOBUS_LOG_STATE_STARTED El bus se ha iniciado
1)
Valor de
retorno
Constante simblica Comentario
20 IOBUS_PHYS_STATE_HALTED El bus se ha detenido
3)
21 IOBUS_PHYS_STATE_RUNNING Bus en funcionamiento
1)
22 IOBUS_PHYS_STATE_ERROR El bus no est trabajando
2)
23 IOBUS_PHYS_STATE_STARTUP El bus est en el modo de puesta en
marcha. No se comunica con ninguna
unidad.
24 IOBUS_PHYS_STATE_INIT El bus slo ha sido creado
3)
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.68. IOBusState - Obtener el estado actual de un bus de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 158


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El estado del bus de E/S se define en la tabla siguiente cuando no se utiliza ninguno de los
argumentos opcionales, \Phys ni \Logic.
1)
Si el bus est funcionando, el estado devuelto en el argumento State de la instruccin
IOBusState puede ser IOBUS_LOG_STATE_STARTED, IOBUS_PHYS_STATE_RUNNING o
BUSSTATE_RUN en funcin de si se utilizan o no parmetros opcionales en IOBusState.
2)
Si el bus se ha detenido debido a algn error, el estado devuelto en el argumento State
puede ser IOBUS_LOG_STATE_STOPPED, IOBUS_PHYS_STATE_ERROR o
BUSSTATE_ERROR en funcin de si se usan parmetros opcionales o no en IOBusState.
3)
No es posible obtener este estado en el programa de RAPID con la versin actual de
Robotware - OS.
Gestin de errores
La variable de sistema ERRNO cambia a ERR_NAME_INVALID si el nombre de bus no existe.
Ese error puede ser gestionado en un gestor de ERROR.
Sintaxis
IOBusState
[ BusName := ] < expression (IN) of string> ,
[ State := ] < variable (VAR) of busstate>
[ \ Phys] | [ \ Logic];
Informacin relacionada
Valor de
retorno
Constante simblica Comentario
0 BUSSTATE_HALTED El bus se ha detenido
3)
1 BUSSTATE_RUN Bus en funcionamiento
1)
2 BUSSTATE_ERROR El bus no est trabajando
2)
3 BUSSTATE_STARTUP El bus est en el modo de puesta en marcha. No
se comunica con ninguna unidad.
4 BUSSTATE_INIT El bus slo ha sido creado
3)
Para obtener ms informacin sobre Consulte
Definicin de estado de bus busstate - Estado de bus de E/S en la pgina
1084
Inicio de un bus de E/S IOBusStart - Start of I/O bus en la pgina 155
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.69. IODisable - Desactiva una unidad de E/S
RobotWare - OS
159 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.69. IODisable - Desactiva una unidad de E/S
Utilizacin
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.
NOTA!
No es posible desactivar una unidad cuyo Trustlevel tenga el valor Required.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IODisable.
Consulte tambin Ms ejemplos en la pgina 160.
Ejemplo 1
CONST string cell1:="cell1";
IODisable cell1, 5;
Desactivar una unidad de E/S denominada cell1. El tiempo de espera mximo es de 5 s.
Argumentos
IODisable UnitName MaxTime
UnitName
Tipo de dato: string
El nombre de una unidad de E/S (el nombre de la unidad debe estar presente en los parmetros
del sistema).
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 del programa. No obstante, el proceso
de desactivacin de la unidad de E/S siempre contina independientemente del valor de
MaxTime o del error.
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.
Contina en la pgina siguiente
1 Instrucciones
1.69. IODisable - Desactiva una unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 160


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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:
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IODisable.
Ejemplo 1
PROC go_home()
VAR num recover_flag :=0;
...
! Start to disable I/O unit cell1
recover_flag := 1;
IODisable "cell1", 0;
! Move to home position
MoveJ home, v1000,fine,tool1;
! Wait until deactivation of I/O unit cell1 is ready
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
RAISE;
ELSE
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 s), la ejecucin del robot se detiene con un mensaje de error.
El mismo principio puede usarse con IOEnable (de esta forma, se ahorra tiempo de ciclo en
comparacin con IODisable).
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 desac-
tivacin de la unidad.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.69. IODisable - Desactiva una unidad de E/S
RobotWare - OS
161 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
IODisable
[ UnitName := ] < expression (IN) of string> ,
[ MaxTime := ] < expression (IN) of num> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de una unidad de E/S IOEnable - Activa una unidad de E/S en la
pgina 162
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.70. IOEnable - Activa una unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 162


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.70. IOEnable - Activa una unidad de E/S
Utilizacin
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.
La accin del controlador al activar una unidad depende del nivel Trustlevel definido para la
unidad. Consulte Parmetros del sistema, Unit Trustlevel.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IOEnable.
Consulte tambin Ms ejemplos en la pgina 163.
Ejemplo 1
CONST string cell1:="cell1";
I OEnable cell1, 5;
Se activa la unidad de E/S con el nombre cell1. El tiempo de espera es de 5 s.
Argumentos
IOEnable UnitName MaxTime
UnitName
Tipo de dato: string
El nombre de una unidad de E/S (el nombre de la unidad debe estar presente en los parmetros
del sistema).
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. No obstante, el proceso de activacin de la unidad
de E/S siempre contina independientemente del valor de MaxTime o del error.
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).
Contina en la pgina siguiente
1 Instrucciones
1.70. IOEnable - Activa una unidad de E/S
RobotWare - OS
163 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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:
Ms ejemplos
IOEnable tambin puede usarse para comprobar si una unidad de E/S est desconectada por
algn motivo.
A continuacin aparecen ms ejemplos de cmo usar la instruccin IOEnable.
Ejemplo 1
VAR num max_retry:=0;
...
IOEnable "cell1", 0;
SetDO cell1_sig3, 1;
...
ERROR
IF ERRNO = ERR_IOENABLE THEN
WaitTime 1;
RETRY;
ELSE IF ERRNO <> Err_EXCRTYMAX THEN
RAISE;
ELSE
ErrWrite "IOEnable error", "Not possible to enable I/O
unit cell";
Stop;
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 := ] < expression (IN) of string> ,
[ MaxTime := ] < expression (IN) of num > ;
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
activacin de la unidad.
ERR_BUSSTATE Se ejecuta IOEnable y el bus se encuentra en el estado
de error o entra en el estado de error antes de que la
unidad se active.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.70. IOEnable - Activa una unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 164


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin de una unidad de E/S IODisable - Desactiva una unidad de E/S en
la pgina 159
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
1 Instrucciones
1.71. IPers - Interrupcin en caso de cambio de valor de una variable persistente
RobotWare - OS
165 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.71. IPers - Interrupcin en caso de cambio de valor de una variable persistente
Utilizacin
IPers (Interrupt Persistent) se utiliza para solicitar y activar la generacin de interrupciones
en caso de cambio de valor de una variable persistente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IPers.
Ejemplo 1
VAR intnum pers1int;
PERS num counter := 0;
PROC main()
CONNECT pers1int WITH iroutine1;
IPers counter, pers1int;
...
Idelete pers1int;
ENDPROC
TRAP iroutine1
TPWrite "Current value of counter = " \Num:=counter;
ENDTRAP
Solicitita una interrupcin que debe tener lugar cada vez que cambie el valor de la variable
persistente counter. En este caso, se realiza una llamada a la rutina TRAP iroutine1.
Argumentos
IPers Name Interrupt
Name
Tipo de dato: anytype
La variable persistente a partir de la cual deben generarse las interrupciones.
Puede usar todo tipo de datos, como atmico, registro, componente de registro, matriz o
elemento de matriz.
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 variable persistente cambia de valor, 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 variable persistente cambia de valor durante un paro de programa, no tendr lugar
ninguna interrupcin cuando el programa se inicie de nuevo.
Contina en la pgina siguiente
1 Instrucciones
1.71. IPers - Interrupcin en caso de cambio de valor de una variable persistente
RobotWare - OS
3HAC16581-5 Revisin: H 166


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Consulte la instruccin ISignalDI.
Si se indica una parte de un dato, por ejemplo un componente de registro o un elemento de
matriz, en el parmetro Name, la interrupcin tendr lugar cada vez que se cambie cualquier
parte del dato.
Sintaxis
IPers
[ Name := ] < persistent (PERS) of anytype > ,
[ Interrupt := ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Interrupcin a partir de una seal de entrada ISignalDI - Solicita interrupciones a partir de
una seal digital de entrada en la pgina 186
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la
pgina 1121
Continuacin
1 Instrucciones
1.72. IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato
FlexPendant Interface, PC Interface, or Multitasking
167 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.72. IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato
Utilizacin
IRMQMessage (Interrupt RAPID Message Queue Message) se usa para solicitar y activar
interrupciones para un tipo de dato en concreto al utilizar la funcionalidad RMQ.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IRMQMessage.
Consulte tambin Ms ejemplos.
Ejemplo 1
VAR intnum rmqint;
VAR string dummy;
...
CONNECT rmqint WITH iroutine1;
IRMQMessage dummy, rmqint;
Solicita una interrupcin que debe producirse cada vez que se reciba un nuevo rmqmessage
que contenga el tipo de dato string. En este caso, se realiza una llamada a la rutina TRAP
iroutine1.
Argumentos
IRMQMessage InterruptDataType Interrupt
InterruptDataType
Tipo de dato: anytype
Una referencia a una variable, una variable persistente o una constante de un tipo de dato que
generar una interrupcin cuando se reciba un rmqmessage con el tipo de dato especificado.
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 se recibe el mensaje RMQ con el tipo de dato 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.
Todos los mensajes que contengan datos del mismo tipo de dato, independientemente de su
nmero de dimensiones, sern gestionadas por la misma interrupcin. Si se utilizan diferentes
dimensiones, utilice RMQGetMsgHeader para adaptarse a ello.
Cualquier mensaje que contenga datos de un tipo de dato que no tiene conectada ninguna
interrupcin generar un aviso.
La instruccin RMQSendWait tiene la mxima prioridad si se recibe un mensaje y ste se
corresponde con la descripcin tanto de la respuesta esperada como de un mensaje conectado
a una rutina TRAP con la instruccin IRMQMessage.
No todos los tipos de datos pueden usarse en el argumento InterruptDataType (consulte
las limitaciones).
Contina en la pgina siguiente
1 Instrucciones
1.72. IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 168


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Se considera que la interrupcin es una interrupcin segura. Una interrupcin segura no
puede ponerse en reposo con la instruccin ISleep. El evento de interrupcin segura se
almacena en la cola en caso de paro del programa y ejecucin paso a paso y cuando se inicia
de nuevo en el modo continuo, la interrupcin se ejecuta. El nico momento en el que una
interrupcin segura se desecha es cuando la cola de interrupciones est llena. En este caso se
genera un error. La interrupcin no sobrevive al restablecimiento del programa, por ejemplo
el traslado del PP a main.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin IRMQMessage.
Ejemplo 1
MODULE ReceiverMod
VAR intnum intno1;
VAR rmqheader rmqheader1;
VAR rmqslot rmqslot1;
VAR rmqmessage rmqmessage1;
PROC main()
VAR string interrupt_on_str := stEmpty;
CONNECT intno1 WITH RecMsgs;
! Set up interrupts for data type string
IRMQMessage interrupt_on_str, intno1;
! Perform cycle
WHILE TRUE DO
...
ENDWHILE
ENDPROC
TRAP RecMsgs
VAR string receivestr;
VAR string client_name;
VAR num userdef;
! Get the message from the RMQ
RMQGetMessage rmqmessage1;
! Get information about the message
RMQGetMsgHeader rmqmessage1 \Header:=rmqheader1
\SenderId:=rmqslot1 \UserDef:=userdef;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.72. IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato
FlexPendant Interface, PC Interface, or Multitasking
169 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
IF rmqheader1.datatype = "string" AND rmqheader1.ndim = 0 THEN
! Get the data received in rmqmessage1
RMQGetMsgData rmqmessage1, receivestr;
client_name := RMQGetSlotName(rmqslot1);
TPWrite "Rec string: " + receivestr;
TPWrite "User Def: " + ValToStr(userdef);
TPWrite "From: " + client_name;
ELSE
TPWrite "Faulty data received!"
ENDIF
ENDTRAP
ENDMODULE
Este ejemplo muestra cmo configurar interrupciones para un tipo de dato en concreto.
Cuando se recibe un mensaje, se ejecuta la rutina TRAP RecMsgs y los datos recibidos en el
mensaje se muestran en el FlexPendant. Si el tipo de dato recibido o la dimensin de los datos
son distintos de lo esperado, esta situacin se muestra en el FlexPendant.
Limitaciones
No se permite ejecutar IRMQMessage en el modo sincronizado. Provocara un error de
tiempo de ejecucin no recuperable.
No es posible usar en interrupciones, enviar ni recibir instancias de tipos de datos que no
tienen valor, son de semivalor o corresponden al tipo de dato motsetdata.
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.
PROC main ()
VAR intnum rmqint;
VAR mytype dummy;
CONNECT rmq1int WITH iroutine1;
IRMQMessage dummy, rmqint;
WHILE TRUE DO
...
ENDWHILE
ENDPROC
Al principio del programa se produce la activacin de todas las interrupciones. En este caso,
las instrucciones iniciales se mantienen fuera del flujo principal del programa.
PROC main ( )
VAR intnum rmqint;
VAR mytype dummy;
CONNECT rmqint WITH iroutine1;
IRMQMessage dummy, rmqint;
...
IDelete rmqint;
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.72. IRMQMessage - Ordenar interrupciones de RMQ para un tipo de dato
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 170


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
IRMQMessage
[ InterruptDataType := ] < reference (REF) of anytype >
[ Interrupt := ] < variable (VAR) of intnum >;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder.
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente.
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage.
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder.
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Extraer los datos de un rmqmessage. RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Obtener el nombre de ranura de una
identidad de ranura especificada.
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
Continuacin
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
171 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
Utilizacin
ISignalAI (Interrupt Signal Analog Input) se utiliza para solicitar y activar interrupciones
a partir de una seal analgica de entrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalAI.
Ejemplo 1
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.
Ejemplo 2
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.
Ejemplo 3
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] | [\SingleSafe] 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 omiten los
argumentos Single y SingleSafe, se genera una interrupcin cada vez que se cumpla la
condicin.
[\SingleSafe]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 172


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Signal
Tipo de dato: signalai
El nombre de la seal a partir de la cual deben generarse las interrupciones.
Condition
Tipo de dato: aiotrigg
Especifica cmo LowValue y HighValue definen la condicin que debe cumplirse:
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.
Valor Constante simblica Comentario
1 AIO_ABOVE_HIGH La seal genera interrupciones si se encuentra por
encima del valor mximo especificado
2 AIO_BELOW_HIGH La seal genera interrupciones si se encuentra por
debajo del valor mximo especificado
3 AIO_ABOVE_LOW La seal genera interrupciones si se encuentra por
encima del valor mnimo especificado
4 AIO_BELOW_LOW La seal genera interrupciones si se encuentra por
debajo del valor mnimo especificado
5 AIO_BETWEEN La seal genera interrupciones si se encuentra entre los
valores mnimo y mximo especificados
6 AIO_OUTSIDE La seal genera interrupciones si se encuentra por
debajo del valor mnimo especificado o por encima del
valor mximo especificado
7 AIO_ALWAYS La seal siempre genera interrupciones
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
173 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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.
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 ha especificado DeltaValue =0, y
tras el momento de la suscripcin de la interrupcin se muestrea la seal. A continuacin, se
compara el valor de la seal con HighValue y LowValue segn el valor de Condition y
teniendo en cuenta el valor de DeltaValue para decidir si debe generarse o no una
interrupcin. Si el nuevo valor ledo satisface los valores especificados en HighValue y
LowValue 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, \DPos0 o \DNeg).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 174


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Si se utiliza el modificador \Single, slo se genera una interrupcin como mximo. Si el
modificador \Single (interrupcin cclica) no se utiliza, se realiza una nueva prueba con las
condiciones especificadas (tanto Condition como DeltaValue) con cada muestreo del
valor de la seal. Se realiza una comparacin entre el valor actual de la seal y el ltimo valor
de referencia almacenado para decidir si debe generarse una interrupcin o no.
Condicin para la generacin de una interrupcin en el momento de la suscripcin
xx0500002165
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
175 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Condicin para la generacin de una interrupcin con cada muestreo a partir del momento de la suscripcin
xx0500002166
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 176


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 1 de generacin de interrupciones
xx0500002167
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
177 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2 de generacin de interrupciones
xx0500002168
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 entre las seales respecto del muestreo 2 en el
sentido positivo es superior a DeltaValue.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 178


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 3 de generacin de interrupciones
xx0500002169
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
179 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 4 de generacin de interrupciones
xx0500002170
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 180


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
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,] | [ \ SingleSafe,]
[ Signal:= ]<variable (VAR) of signalai>,
[ Condition:= ]<expression (IN) of aiotrigg>,
[ HighValue:= ]<expression (IN) of num>,
[ LowValue:= ]<expression (IN) of num>,
[ DeltaValue:= ]<expression (IN) of num>
[[\DPos] | [ \DNeg] ,]
[ Interrupt:= ]<variable (VAR) of intnum>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Definicin de constantes aiotrigg - Condicin de disparo con E/S
analgica en la pgina 1079
Interrupcin a partir de una seal analgica
de salida
ISignalAO - Interrupciones a partir de una
seal analgica de salida en la pgina 182
Interrupcin a partir de una seal digital de
entrada
ISignalDI - Solicita interrupciones a partir de
una seal digital de entrada en la pgina 186
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.73. ISignalAI - Interrupciones a partir de una seal analgica de entrada
RobotWare - OS
181 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Interrupcin a partir de una seal digital de
salida
ISignalDO - Interrupciones a partir de una
seal digital de salida en la pgina 189
Ms informacin sobre la gestin de inter-
rupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la pgina
1121
Parmetros del sistema relacionados (filtro) Manual de referencia tcnica - Parmetros del
sistema, seccin IO signals
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.74. ISignalAO - Interrupciones a partir de una seal analgica de salida
RobotWare - OS
3HAC16581-5 Revisin: H 182


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.74. ISignalAO - Interrupciones a partir de una seal analgica de salida
Utilizacin
ISignalAO (Interrupt Signal Analog Output) se utiliza para solicitar y activar interrupciones
a partir de una seal analgica de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalAO.
Ejemplo 1
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.
Ejemplo 2
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.
Ejemplo 3
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] | [\SingleSafe] 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 omiten los
argumentos Single y SingleSafe, se genera una interrupcin cada vez que se cumpla la
condicin.
[\SingleSafe]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Contina en la pgina siguiente
1 Instrucciones
1.74. ISignalAO - Interrupciones a partir de una seal analgica de salida
RobotWare - OS
183 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Signal
Tipo de dato: signalao
El nombre de la seal a partir de la cual deben generarse las interrupciones.
Condition
Tipo de dato: aiotrigg
Especifica cmo LowValue y HighValue definen la condicin que debe cumplirse:
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.
Valor Constante simblica Comentario
1 AIO_ABOVE_HIGH La seal genera interrupciones si se encuentra por
encima del valor mximo especificado
2 AIO_BELOW_HIGH La seal genera interrupciones si se encuentra por
debajo del valor mximo especificado
3 AIO_ABOVE_LOW La seal genera interrupciones si se encuentra por
encima del valor mnimo especificado
4 AIO_BELOW_LOW La seal genera interrupciones si se encuentra por
debajo del valor mnimo especificado
5 AIO_BETWEEN La seal genera interrupciones si se encuentra entre
los valores mnimo y mximo especificados
6 AIO_OUTSIDE La seal genera interrupciones si se encuentra por
debajo del valor mnimo especificado o por encima del
valor mximo especificado
7 AIO_ALWAYS La seal siempre genera interrupciones
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.74. ISignalAO - Interrupciones a partir de una seal analgica de salida
RobotWare - OS
3HAC16581-5 Revisin: H 184


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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.
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.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
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,] | [ \SingleSafe,]
[ Signal:= ]<variable (VAR) of signalao>,
[ Condition:= ]<expression (IN) of aiotrigg>,
[ HighValue:= ]<expression (IN) of num>,
[ LowValue:= ]<expression (IN) of num>,
[ DeltaValue:= ]<expression (IN) of num>
[\DPos] | [ \DNeg] ,]
[ Interrupt:= ]<variable (VAR) of intnum>;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.74. ISignalAO - Interrupciones a partir de una seal analgica de salida
RobotWare - OS
185 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Definicin de constantes aiotrigg - Condicin de disparo con E/S
analgica en la pgina 1079
Interrupcin a partir de una seal analgica
de entrada
ISignalAI - Interrupciones a partir de una
seal analgica de entrada en la pgina 171
Interrupcin a partir de una seal digital de
entrada
ISignalDI - Solicita interrupciones a partir de
una seal digital de entrada en la pgina 186
Interrupcin a partir de una seal digital de
salida
ISignalDO - Interrupciones a partir de una
seal digital de salida en la pgina 189
Ms informacin sobre la gestin de interrup-
ciones
Manual de referencia de RAPID - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la
pgina 1121
Parmetros del sistema relacionados (filtro) Manual de referencia tcnica - Parmetros
del sistema, seccin IO signals
Continuacin
1 Instrucciones
1.75. ISignalDI - Solicita interrupciones a partir de una seal digital de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 186


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.75. ISignalDI - Solicita interrupciones a partir de una seal digital de entrada
Utilizacin
ISignalDI (Interrupt Signal Digital In) se utiliza para solicitar y activar interrupciones a
partir de una seal digital de entrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalDI.
Ejemplo 1
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.
Ejemplo 2
ISignalDI di1,0,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal digital de entrada di1
cambie a 0.
Ejemplo 3
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] | [ \SingleSafe] 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 omiten los argumentos Single y SingleSafe, se genera una interrupcin cada vez que
se cumpla la condicin.
[ \SingleSafe ]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Signal
Tipo de dato: signaldi
El nombre de la seal a partir de la cual deben generarse las interrupciones.
Contina en la pgina siguiente
1 Instrucciones
1.75. ISignalDI - Solicita interrupciones a partir de una seal digital de entrada
RobotWare - OS
187 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. Las interrupciones de una seal digital de entrada a partir del nivel de
seal 1 se ilustran en la figura siguiente.
xx0500002189
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.

Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.75. ISignalDI - Solicita interrupciones a partir de una seal digital de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 188


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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 iniciales 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,] | [ \ SingleSafe,]
[ Signal := ] < variable (VAR) of signaldi > ,
[ TriggValue := ] < expression (IN) of dionum > ,
[ Interrupt := ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Interrupcin a partir de una seal de salida ISignalDO - Interrupciones a partir de una
seal digital de salida en la pgina 189
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la
pgina 1121
Continuacin
1 Instrucciones
1.76. ISignalDO - Interrupciones a partir de una seal digital de salida
RobotWare - OS
189 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.76. ISignalDO - Interrupciones a partir de una seal digital de salida
Utilizacin
ISignalDO (Interrupt Signal Digital Out) se utiliza para solicitar y activar interrupciones a
partir de una seal digital de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalDO.
Ejemplo 1
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.
Ejemplo 2
ISignalDO do1,0,sig1int;
Solicita una interrupcin que debe producirse cada vez que la seal de salida digital do1
cambie a 0.
Ejemplo 3
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 ] | [ \SingleSafe ] 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 omiten los argumentos Single y SingleSafe, se genera una interrupcin cada vez que
se cumpla la condicin.
[ \SingleSafe ]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Signal
Tipo de dato: signaldo
El nombre de la seal a partir de la cual deben generarse las interrupciones.
Contina en la pgina siguiente
1 Instrucciones
1.76. ISignalDO - Interrupciones a partir de una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 190


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. Las interrupciones de una seal digital de salida a partir del nivel de
seal 1 se ilustran en la figura siguiente.
xx0500002190
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.

Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.76. ISignalDO - Interrupciones a partir de una seal digital de salida
RobotWare - OS
191 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
PROC main ( )
VAR intnum sig1int;
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 iniciales 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,] | [ \ SingleSafe,]
[ Signal := ] < variable (VAR) of signaldo > ,
[ TriggValue := ] < expression (IN) of dionum > ,
[ Interrupt := ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Interrupcin a partir de una seal de entrada ISignalDI - Solicita interrupciones a partir de
una seal digital de entrada en la pgina 186
Ms informacin sobre la gestin de interrup-
ciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la
pgina 1121
Continuacin
1 Instrucciones
1.77. ISignalGI - Solicita interrupciones de un grupo de seales digitales de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 192


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.77. ISignalGI - Solicita interrupciones de un grupo de seales digitales de entrada
Utilizacin
ISignalGI(Interrupt Signal Group Digital In) se utiliza para solicitar y activar
interrupciones a partir de un grupo de seales digitales de entrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalGI.
Ejemplo 1
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGI gi1,sig1int;
Solicita una interrupcin ante un cambio de valor de una seal de un grupo de entradas
digitales.
Argumentos
ISignalGI [ \Single ] | [ \SingleSafe ] Signal 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 omiten los argumentos Single y SingleSafe, se genera una interrupcin cada vez que
se cumpla la condicin.
[ \SingleSafe ]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Signal
Tipo de dato: signalgi
El nombre de la seal de entrada de grupo a partir de la cual deben generarse las
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.
Contina en la pgina siguiente
1 Instrucciones
1.77. ISignalGI - Solicita interrupciones de un grupo de seales digitales de entrada
RobotWare - OS
193 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
En el momento en el que la seal de grupo cambia de valor, 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 de valor antes de la solicitud de la interrupcin, no se produce ninguna
interrupcin.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Limitaciones
El nmero mximo de seales que pueden usarse con un grupo determinado es de 32.
No se posible usar una condicin con valor numrico en la instruccin para especificar que
debe producirse una interrupcin si el valor cambia a ese valor especfico. Esta funcionalidad
debe ser creada en el programa de usuario, mediante la lectura del valor de la seal de grupo
en el momento de la ejecucin de la rutina TRAP.
Las interrupciones se generan como interrupciones de bits, es decir, las interrupciones ante
seales digitales de entrada individuales cambian dentro del grupo. Si los bits de la seal de
grupo cambian de valor con un retardo que est dentro de los valores especificados, se
generarn varias interrupciones. Es necesario contar con conocimientos sobre cmo funciona
la tarjeta de E/S, con el fin de obtener la funcionalidad correcta al utilizar ISignalGI. Si se
generan varias interrupciones en los valores de entrada del grupo, utilice en su lugar
ISignalDI con una seal de muestreo que se activa cuando todos los bits de la seal de
grupo estn activados.
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.
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGI gi1, sig1int;
WHILE TRUE DO
...
ENDWHILE
ENDPROC
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.77. ISignalGI - Solicita interrupciones de un grupo de seales digitales de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 194


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Al principio del programa se produce la activacin de todas las interrupciones. En este caso,
las instrucciones iniciales se mantienen fuera del flujo principal del programa.
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGI gi1, 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
ISignalGI
[ \ Single,] | [ \ SingleSafe,]
[ Signal := ] < variable (VAR) of signalgi > ,
[ Interrupt:= ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Interrupcin a partir de una seal de entrada ISignalDI - Solicita interrupciones a partir de
una seal digital de entrada en la pgina 186
Interrupcin a partir de seales de salida de
grupo
ISignalGO - Solicita interrupciones de un grupo
de seales digitales de salida en la pgina 195
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la pgina
1121
Continuacin
1 Instrucciones
1.78. ISignalGO - Solicita interrupciones de un grupo de seales digitales de salida
RobotWare - OS
195 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.78. ISignalGO - Solicita interrupciones de un grupo de seales digitales de salida
Utilizacin
ISignalGO (Interrupt Signal Group Digital Out) se utiliza para solicitar y activar
interrupciones a partir de un grupo de seales digitales de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ISignalGO.
Ejemplo 1
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGO go1,sig1int;
Solicita una interrupcin ante un cambio de valor de una seal de un grupo de salidas
digitales.
Argumentos
ISignalGO [ \Single ] | [ \SingleSafe ] Signal 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 omiten los argumentos Single y SingleSafe, se genera una interrupcin cada vez que
se cumpla la condicin.
[ \SingleSafe ]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta. El nico momento en el que una interrupcin segura se desecha es
cuando la cola de interrupciones est llena. En este caso se genera un error. La interrupcin
no sobrevive al restablecimiento del programa, por ejemplo el traslado del PP a main.
Signal
Tipo de dato: signalgo
El nombre de la seal de salida de grupo a partir de la cual deben generarse las 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.
Contina en la pgina siguiente
1 Instrucciones
1.78. ISignalGO - Solicita interrupciones de un grupo de seales digitales de salida
RobotWare - OS
3HAC16581-5 Revisin: H 196


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
En el momento en el que la seal de grupo cambia de valor, 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 de valor antes de la solicitud de la interrupcin, no se produce ninguna
interrupcin.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Limitaciones
El nmero mximo de seales que pueden usarse con un grupo determinado es de 23. Esta
limitacin se aplica a todas las instrucciones y funciones que utilicen seales de grupo.
No se posible usar una condicin con valor numrico en la instruccin para especificar que
debe producirse una interrupcin si el valor cambia a ese valor especfico. Esta funcionalidad
debe ser creada en el programa de usuario, mediante la lectura del valor de la seal de grupo
en el momento de la ejecucin de la rutina TRAP.
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.
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGO go1, sig1int;
WHILE TRUE DO
...
ENDWHILE
ENDPROC
Al principio del programa se produce la activacin de todas las interrupciones. En este caso,
las instrucciones iniciales se mantienen fuera del flujo principal del programa.
PROC main ( )
VAR intnum sig1int;
CONNECT sig1int WITH iroutine1;
ISignalGO go1, 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.78. ISignalGO - Solicita interrupciones de un grupo de seales digitales de salida
RobotWare - OS
197 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ISignalGO
[ \ Single,] | [ \ SingleSafe,]
[ Signal := ] < variable (VAR) of signalgo > ,
[ Interrupt:= ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Interrupcin a partir de una seal de salida ISignalDO - Interrupciones a partir de una
seal digital de salida en la pgina 189
Interrupcin a partir de seales de entrada de
grupo
ISignalGI - Solicita interrupciones de un
grupo de seales digitales de entrada en la
pgina 192
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Identidad de interrupcin intnum - Identidad de interrupcin en la
pgina 1121
Continuacin
1 Instrucciones
1.79. ISleep - Desactiva una interrupcin
RobotWare - OS
3HAC16581-5 Revisin: H 198


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.79. ISleep - Desactiva una interrupcin
Utilizacin
ISleep(Interrupt Sleep) 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin.
Consulte tambin Ms ejemplos en la pgina 198.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ISleep.
Ejemplo 1
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 "The serial communication is broken";
EXIT;
ENDIF
ENDTRAP
Contina en la pgina siguiente
1 Instrucciones
1.79. ISleep - Desactiva una interrupcin
RobotWare - OS
199 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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
errnum - Nmero de error en la pgina 1104). Si se est intentando desactivar temporalmente
una interrupcin segura con ISleep, la variable de sistema ERRNO cambia a
ERR_INOISSAFE. Estos errores pueden ser gestionados en un gestor de errores.
Sintaxis
ISleep
[ Interrupt := ] < variable (VAR) of intnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Activacin de interrupciones IWatch - Activar una interrupcin en la pgina
206
Desactivacin de todas las interrupciones IDisable - Desactiva todas las interrupciones
en la pgina 122
Cancelacin de una interrupcin IDelete - Cancela una interrupcin en la
pgina 121
Continuacin
1 Instrucciones
1.80. ITimer - Solicita una interrupcin temporizada
RobotWare - OS
3HAC16581-5 Revisin: H 200


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.80. ITimer - Solicita una interrupcin temporizada
Utilizacin
ITimer (Interrupt Timer) 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 bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ITimer.
Consulte tambin Ms ejemplos en la pgina 201.
Ejemplo 1
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.
Ejemplo 2
ITimer \Single, 60, timeint;
Solicita una interrupcin que debe producirse una vez cada 60 segundos.
Argumentos
ITimer [ \Single ] | [ \SingleSafe ] 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 omiten los
argumentos Single y SingleSafe, se genera una interrupcin cada vez que se alcanza el
momento especificado.
[ \SingleSafe ]
Tipo de dato: switch
Especifica que la interrupcin es nica y segura. Para la definicin de nica, consulte la
descripcin del argumento Single. Una interrupcin segura no puede ponerse en reposo con
la instruccin ISleep. El evento de interrupcin segura se almacena en la cola en caso de
paro del programa y ejecucin paso a paso y cuando se inicia de nuevo en el modo continuo,
la interrupcin se ejecuta.
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 ha definido Single o SingleSafe, este tiempo no
puede ser inferior a los 0,01 segundos. El tiempo correspondiente para las interrupciones
cclicas es de 0,1 segundos.
Contina en la pgina siguiente
1 Instrucciones
1.80. ITimer - Solicita una interrupcin temporizada
RobotWare - OS
201 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Si la interrupcin se produce de forma cclica, comienza un nuevo clculo del tiempo a partir
del momento en que se produce.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ITimer.
Ejemplo 1
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 "The serial communication is broken";
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 finaliza y aparece un mensaje de error.
Limitaciones
No es posible utilizar ms de una vez la identidad de la interrupcin sin eliminarla
previamente. Consulte la instruccin ISignalDI.
Sintaxis
ITimer
[ \ Single,] | [ \ SingleSafe,]
[ Time := ] < expression (IN) of num >,
[ Interrupt := ] < variable (VAR) of intnum > ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.80. ITimer - Solicita una interrupcin temporizada
RobotWare - OS
3HAC16581-5 Revisin: H 202


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Continuacin
1 Instrucciones
1.81. IVarValue - Solicita una interrupcin a partir del valor de una variable
Optical Tracking
203 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.81. IVarValue - Solicita una interrupcin a partir del valor de una variable
Utilizacin
IVarVal (Interrupt Variable Value) 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 utilizarse para obtener valores de volumen de cordn o
valores de huecos de un sistema de seguimiento de cordn.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IVarValue.
Ejemplo 1
LOCAL PERS num
adptVlt{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()
! Setup the interrupt. The trap routine AdapTrp will be called
! when the gap variable with number GAP_VARIABLE_NO'in the
!sensor interface has been changed. The new value will be
! available in the PERS gp_value variable.
! Connect to the sensor device "sen1:" (defined in sio.cfg).
SenDevice "sen1:";
CONNECT IntAdap WITH AdapTrp;
IVarValue "sen1:", GAP_VARIABLE_NO, gap_value, IntAdap;
! Start welding
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ArcL\On,*,v100,adaptSm,adaptWd,adaptWv,z10,tool\j\Track:=track;
ENDPROC
Contina en la pgina siguiente
1 Instrucciones
1.81. IVarValue - Solicita una interrupcin a partir del valor de una variable
Optical Tracking
3HAC16581-5 Revisin: H 204


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
TRAP AdapTrap
VAR num ArrInd;
!Scale the raw gap value received
ArrInd:=ArrIndx(gap_value);
! Update active welddata PERS variable adaptWd with new data
! from the arrays of predefined parameter arrays. The scaled gap
! value is used as index in the voltage, wirefeed and
! speed arrays.
adaptWd.weld_voltage:=adptVlt{ArrInd};
adaptWd.weld_wirefeed:=adptWfd{ArrInd};
adaptWd.weld_speed:=adptSpd{ArrInd};
!Request a refresh of AW parameters using the new data i adaptWd
ArcRefresh;
ENDTRAP
Argumentos
IVarValue device VarNo Value Interrupt [ \Unit ] [ \DeadBand ]
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
VarNo
Tipo de dato: num
El nmero de la variable a controlar.
Value
Tipo de dato: num
Una variable PERS 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.
[ \Unit ]
Tipo de dato:num
El factor de escala por el que se multiplicar el valor de sensor de VarNo antes de la
comprobacin y antes del guardado en Value.
[ \DeadBand ]
Tipo de dato:num
Si el valor de Varno devuelto por el sensor est dentro de +/- DeadBand, no se genera
ninguna interrupcin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.81. IVarValue - Solicita una interrupcin a partir del valor de una variable
Optical Tracking
205 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
CUIDADO!
Una frecuencia de interrupcin demasiado elevada bloquear toda la ejecucin de RAPID.
Sintaxis
IVarValue
[ device := ] < expression (IN) of string>,
[ VarNo := ] < expression (IN) of num >,
[ Value := ] < persistent (PERS) of num >,
[ Interrupt := ] < variable (VAR) of intnum > ,
[ \ Unit := ] < expression (IN) of num >,
[ \ DeadBand := ] < expression (IN) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Establecimiento de una conexin a un
dispositivo de sensor
SenDevice - Establece una conexin a un
dispositivo de sensor en la pgina 433
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de
interrupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Optical Tracking Application manual - Continuous application
platform
Optical Tracking Art Application manual - Arc and Arc Sensor
Continuacin
1 Instrucciones
1.82. IWatch - Activar una interrupcin
RobotWare - OS
3HAC16581-5 Revisin: H 206


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.82. IWatch - Activar una interrupcin
Utilizacin
IWatch(Interrupt Watch) se utiliza para activar una interrupcin que se ha solicitado
anteriormente pero que ha sido desactivada mediante ISleep.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IWatch.
Consulte tambin Ms ejemplos en la pgina 206.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin IWatch.
Ejemplo 1
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.
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
cambia a ERR_UNKINO (consulte errnum - Nmero de error en la pgina 1104). El error
puede ser gestionado en el gestor de errores.
Sintaxis
IWatch
[ Interrupt := ] < variable (VAR) of intnum > ;
Contina en la pgina siguiente
1 Instrucciones
1.82. IWatch - Activar una interrupcin
RobotWare - OS
207 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Desactivacin de una interrupcin ISleep - Desactiva una interrupcin en la
pgina 198
Continuacin
1 Instrucciones
1.83. Etiqueta - Nombre de lnea
RobotWare - OS
3HAC16581-5 Revisin: H 208


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.83. Etiqueta - Nombre de lnea
Utilizacin
Labelse 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 dentro de la misma rutina.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Label.
Ejemplo 1
GOTO next;
...
next:
La ejecucin del programa contina en la instruccin que sigue a la etiqueta next.
Argumentos
Label:
Label
Identifier
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)
<identifier>:
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificadores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Trasladar la ejecucin del programa a una
etiqueta
GOTO - Salta a otra instruccin en la pgina
115
1 Instrucciones
1.84. Load - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
209 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.84. Load - Carga un mdulo de programa durante la ejecucin
Utilizacin
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.
Tanto los mdulos cargados en modo esttico como los cargados en modo dinmico se
descargan al utilizar la instruccin UnLoad.
Modo esttico
En la tabla siguiente se describe cmo afectan las distintas operaciones a los programas o
mdulos de sistema cargados en el modo esttico.
Modo dinmico
En la tabla siguiente se describe cmo afectan las distintas operaciones a los programas o
mdulos de sistema cargados en el modo dinmico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Load.
Consulte tambin Ms ejemplos en la pgina 211.
Ejemplo 1
Load \Dynamic, diskhome \File:="PART_A.MOD";
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.
Ejemplo 2
Load \Dynamic, diskhome \File:="PART_A.MOD";
Load \Dynamic, diskhome \File:="PART_B.MOD" \CheckRef;
Carga el mdulo de programa PART_A.MOD en la memoria de programas y a continuacin se
carga PART_B.MOD. Si PART_A.MOD contiene referencias a PART_B.MOD, puede usarse
\CheckRef para comprobar si hay referencias no resueltas slo cuando se carga el ltimo
mdulo. Si se usa \CheckRef en PART_A.MOD, se producira un error de enlace y el mdulo
no se cargara.
Tipo de mdulo
Trasladar el puntero de
programa a main desde el
FlexPendant
Abrir un nuevo programa
de RAPID
Mdulo de programa No se ve afectado Descargado
Mdulo de sistema No se ve afectado No se ve afectado
Tipo de mdulo
Trasladar el puntero de
programa a main desde el
FlexPendant
Abrir un nuevo programa
de RAPID
Mdulo de programa Descargado Descargado
Mdulo de sistema Descargado Descargado
Contina en la pgina siguiente
1 Instrucciones
1.84. Load - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 210


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
Load [\Dynamic] FilePath [\File] [\CheckRef]
[\Dynamic]
Tipo de dato: switch
El modificador permite cargar un mdulo 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.
[\CheckRef]
Tipo de dato: switch
Busca referencias no resueltas en la tarea de programa despus de la carga del mdulo. Si no
se usa, no se realiza ninguna bsqueda de referencias no resueltas.
Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de cargarse antes de
continuar en la instruccin siguiente.
Las referencias no resueltas se aceptan siempre en la operacin de carga, si el parmetro
\CheckRef no se usa, pero se producir un error de tiempo de ejecucin durante la ejecucin
de las referencias no resueltas.
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 a los valores de la
unidad.
Si se produce algn error en la operacin de carga, incluidas las referencias no resueltas si se
usa el modificador \CheckRef, el mdulo cargado no estar ya disponible en la memoria de
programas.
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 principal desde un programa
principal (que tiene su propio procedimiento principal), consulte Ms ejemplos en la pgina
211 a continuacin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.84. Load - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
211 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin Load.
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 procedimiento routine_x se enlazar durante la ejecucin (enlazamiento en tiempo de
ejecucin).
El programa cargado contiene un procedimiento principal
xx0500002104
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.
En el programa car.prg, se carga door.prg o window.prg, situados 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.84. Load - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 212


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Gestin de errores
Si no es posible encontrar el archivo especificado en la instruccin Load, la variable de
sistema ERRNO cambia a ERR_FILNOTFND en el momento de la ejecucin.
Si se produce otro tipo de problemas para leer el archivo a cargar, la variable de sistema
ERRNO cambia a ERR_IOERROR.
Si no es posible cargar el mdulo porque la memoria de programas est llena, la variable de
sistema ERRNO cambia a ERR_PRGMEMFULL.
Si el mdulo ya est cargado en la memoria de programa, la variable de sistema ERRNO
cambia a ERR_LOADED.
Si el mdulo cargado contiene errores de sintaxis, la variable de sistema ERRNO cambia a
ERR_SYNTAX.
Si el mdulo cargado da lugar a errores de enlace no recuperables, la variable de sistema
ERRNO cambia a ERR_LINKREF.
Si se usa Load con el modificador \CheckRef para buscar errores de referencia y la memoria
de programas contiene referencias no resueltas, la variable de sistema ERRNO cambia a
ERR_LINKREF.
Estos errores pueden ser gestionados en el gestor de ERROR. Si se produce alguno de estos
errores, el propio mdulo se descarga y no estar disponible en el gestor de ERROR.
Sintaxis
Load
[\Dynamic,]
[FilePath:=]<expression (IN) of string>
[\File:= <expression (IN) of string>]
[\CheckRef];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Carga de mdulos de programa en paralelo
con la ejecucin de otro programa
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Comprobar referencias de programa CheckProgRef - Comprobar referencias de
programa en la pgina 36
Continuacin
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
213 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
Utilizacin
LoadId (Load Identification) puede usarse para la identificacin de la carga de una
herramienta (tambin de una herramienta de pinza si tiene un TCP fijo en el espacio) o de una
carga til (se activa con la instruccin GripLoad), mediante la ejecucin de un programa de
RAPID definido por el usuario.
NOTA!
Una forma ms fcil de identificar la carga de la herramienta o la carga til es utilizar el
programa de RAPID de dilogo interactivo LoadIdentify. Este programa puede iniciarse
desde el men Program Editor/Debug/Call Service Rout./LoadIdentify.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin LoadId.
Consulte tambin Ms ejemplos en la pgina 217.
Ejemplo 1
VAR bool invalid_pos := TRUE;
VAR jointtarget joints;
VAR bool valid_joints{12};
CONST speeddata low_ori_speed := [20, 5, 20, 5];
VAR bool slow_test_flag := TRUE;
PERS tooldata grip3 := [ TRUE, [[97.4, 0, 223.1], [0.924, 0, 0.383
,0]], [0, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0]];
! Check if valid robot type
IF ParIdRobValid(TOOL_LOAD_ID) <> ROB_LOAD_VAL THEN
EXIT;
ENDIF
! Check if valid robot position
WHILE invalid_pos = TRUE DO
joints := CJointT();
IF ParIdPosValid (TOOL_LOAD_ID, joints, valid_joints) = TRUE
THEN
! Valid position
invalid_pos := FALSE;
ELSE
! Invalid position
! Adjust the position by program movements (horizontal tilt
house)
MoveAbsJ joints, low_ori_speed, fine, tool0;
ENDIF
ENDWHILE
! Do slow test for check of free working area
IF slow_test_flag = TRUE THEN
LoadId TOOL_LOAD_ID, MASS_WITH_AX3, grip3 \SlowTest;
ENDIF
Contina en la pgina siguiente
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
3HAC16581-5 Revisin: H 214


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
! Do measurement and update all load data in grip3
LoadId TOOL_LOAD_ID, MASS_WITH_AX3, grip3;
Identificacin de la carga de la herramienta grip3.
Condiciones
Las condiciones siguientes deben cumplirse antes de las mediciones de carga con LoadId:
Asegrese de que todas las cargas estn montadas correctamente en el robot.
Compruebe si el tipo de robot es vlido, con ayuda de ParIdRobValid
Compruebe si la posicin es vlida, con ayuda de ParIdPosValid: - Los ejes 3, 5 y
6 no se encuentran cerca de su rango de trabajo correspondiente.-Carcasa de
inclinacin casi horizontal, es decir, el eje 4 est en la posicin cero.
Es necesario definir los datos siguientes en los parmetros del sistema y en los
argumentos de LoadId antes de ejecutar LoadId
En la tabla siguiente se ilustra la identificacin de carga de la herramienta.
En la tabla siguiente se ilustra la identificacin de carga de la carga til.
Modo de funcionamiento y redefinicin de velocidad: - Prueba lenta en el modo
manual con velocidad reducida - Mediciones de carga en el modo automtico (o en el
modo manual a mxima velocidad) con una redefinicin de velocidad del 100%
Modos de identificacin
de carga / Datos definidos
antes de LoadId
Se conoce
la masa del
TCP mvil
Se
desconoce
la masa del
TCP mvil
Se conoce
la masa
del TCP
fijo
Se
desconoce
la masa del
TCP fijo
Carga del brazo superior
(parmetro del sistema)
Definido Definido
Masa de la herramienta Definido Definido
Modos de identificacin
de carga / Datos definidos
antes de LoadId
Se conoce
la masa del
TCP mvil
Se
desconoce
la masa del
TCP mvil
Se conoce
la masa
del TCP
fijo
Se
desconoce
la masa del
TCP fijo
Carga del brazo superior
(parmetros del sistema)
Definido Definido
Datos de carga de la
herramienta
Definido Definido Definido Definido
Masa de la carga til Definido Definido
Base de coordenadas de
herramienta en la herramienta
Definido Definido
Base de coordenadas de
usuario en el objeto de trabajo
Definido Definido
Base de coordenadas de objeto
en el objeto de trabajo
Definido Definido
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
215 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
LoadId ParIdType LoadIdType Tool [\PayLoad] [\WObj] [\ConfAngle]
[\SlowTest] [\Accuracy]
ParIdType
Tipo de dato: paridnum
Un tipo de identificacin de carga de los definidos en la tabla siguiente.
LoadIdType
Tipo de dato: loadidnum
Un tipo de identificacin de carga de los definidos en la tabla siguiente.
Tool
Tipo de dato: tooldata
Variable persistente de la herramienta que se desea identificar. Si se especifica el argumento
\PayLoad, la variable persistente de la herramienta en uso.
Para la identificacin de la carga de la herramienta, no deben especificarse los argumentos
\PayLoad ni \WObj.
[ \ PayLoad ]
Tipo de dato: loaddata
Variable persistente de la carga til que se desea identificar.
Este argumento opcional debe especificarse siempre para la identificacin de la carga de una
carga til.
[ \ WObj ]
Tipo de dato: wobjdata
Variable persistente del objeto de trabajo en uso.
Este argumento opcional debe especificarse siempre para la identificacin de la carga de una
carga til con un TCP fijo en el espacio.
Valor Constante simblica Comentario
1 TOOL_LOAD_ID Identificacin de la carga de la herramienta
2 PAY_LOAD_ID Identificacin de la carga til (consulte la instruccin
GripLoad)
Valor Constante simblica Comentario
1 MASS_KNOWN Masa conocida de la herramienta o de la carga til
respectivamente. (Debe especificarse la masa de la
herramienta o la carga til especificada)
2 MASS_WITH_AX3 Masa de la herramienta o de la carga til desconocida
respectivamente. La identificacin de la masa de la
herramienta o la carga til se realiza con los
movimientos del eje 3.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
3HAC16581-5 Revisin: H 216


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ ConfAngle ]
Tipo de dato: num
El argumento de opcin para la especificacin de un ngulo de configuracin especfico
grados para su uso en la identificacin de parmetros.
xx0500002198
Si no se especifica este argumento, el valor predeterminado es +90 grados. Mn. + -30
grados. Valor ptimo +o -90 grados.
[ \ SlowTest ]
Tipo de dato: switch
Este argumento opcional permite especificar si debe realizarse una prueba lenta para la com-
probacin del rea de trabajo libre. Consulte la tabla siguiente:
[ \ Accuracy ]
Tipo de dato: num
Una variable para la salida de la exactitud de medicin calculada en % para todo el clculo
de identificacin de la carga (el 100% significa la mxima exactitud).
Ejecucin de programas
El robot realizar un gran nmero de movimientos relativos pequeos de transporte y
medicin en los ejes 5 y 6. Para la identificacin de la masa, tambin se realizarn
movimientos con el eje 3.
Despus del conjunto de mediciones, movimientos y clculos de carga, los datos de carga se
devuelven en el argumento Tool o PayLoad. Se calculan los datos de carga siguientes:
Masa en kg (si la masa es desconocida, de lo contrario no se ve afectado)
Centro de gravedad x, y, z y eje de momento
Inercia ix, iy, iz en kgm
LoadId ... \SlowTest Realizar slo la prueba lenta
LoadId ... Realizar slo la medicin y actualizar la herramienta o la carga
til
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
217 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin LoadId.
Ejemplo 1
PERS tooldata grip3 := [ FALSE, [[97.4, 0, 223.1], [0.924, 0, 0.383
,0]], [6, [10, 10, 100], [0.5, 0.5, 0.5, 0.5], 1.2, 2.7,
0.5]];
PERS loaddata piece5 := [ 5, [0, 0, 0], [1, 0, 0, 0], 0, 0, 0];
PERS wobjdata wobj2 := [ TRUE, TRUE, "", [ [34, 0, -45], [0.5, -
0.5, 0.5 ,-0.5] ], [ [0.56, 10, 68], [0.5, 0.5, 0.5 ,0.5] ] ];
VAR num load_accuracy;
! Do measurement and update all payload data except mass in piece5
LoadId PAY_LOAD_ID, MASS_KNOWN, grip3 \PayLoad:=piece5
\WObj:=wobj2 \Accuracy:=load_accuracy;
TPWrite "Exactitud de carga de piece5 (%) = " \Num:=load_accuracy;
Identificacin de carga de la carga til piece5 con una masa conocida en una instalacin
cuyo TCP est fijo en el espacio.
Limitaciones
Normalmente, la identificacin de la carga de la herramienta o de la carga til se realiza con
la rutina de servicio LoadIdentify. Tambin es posible realizar esta identificacin con la
instruccin de RAPID LoadId. Antes de cargar o ejecutar el programa con LoadId, debe
cargar los mdulos siguientes en el sistema:
Load \Dynamic, "RELEASE:/system/mockit.sys";
Load \Dynamic, "RELEASE:/system/mockit1.sys";
No es posible reiniciar los movimientos de identificacin de la carga despus de ningn tipo
de paro, como el paro programado, el paro de emergencia o la cada de alimentacin. En este
caso, los movimientos de identificacin de carga deben iniciarse desde el principio.
Gestin de errores
Con cualquier error durante la ejecucin de la rutina de RAPID NOSTEPIN LoadId, la
variable de sistema ERRNO cambia a ERR_PID_MOVESTOP, ERR_PID_RAISE_PP o
ERR_LOADID_FATAL y el puntero de programa es elevado hacia la llamada del usuario a
LoadId.
Sintaxis
LoadId
[ ParIdType := ] <expression (IN) of paridnum>,
[ LoadIdType := ] <expression (IN) of loadidnum> ,
[ Tool := ] <persistent (PERS) of tooldata>
[ \ PayLoad := <persistent (PERS) of loaddata> ]
[ \ WObj := <persistent (PERS) of wobjdata> ]
[ \ ConfAngle := <expression (IN) of num> ]
[ \ SlowTest ]
[ \ Accuracy := <variable (VAR) of num> ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.85. LoadId - Identificacin de carga de la herramienta o la carga til
RobotWare-OS
3HAC16581-5 Revisin: H 218


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Programa predefinido Load Identify Manual del operador - IRC5 con Flex-
Pendant, seccin Programacin y testing -
Rutinas de servicio - LoadIdentify, rutina de
servicio de identificacin de cargas
Tipo de identificacin de parmetro paridnum - Tipo de identificacin de
parmetro en la pgina 1150
Resultado de ParIdRobValid paridvalidnum - Resultado de ParIdRobValid
en la pgina 1152
Tipo de identificacin de carga loadidnum - Tipo de identificacin de la carga
en la pgina 1133
Tipo de robot vlido ParIdRobValid - Tipo de robot vlido para la
identificacin de parmetros en la pgina 926
Posicin de robot vlida ParIdPosValid - Posicin de robot vlida para
la identificacin de parmetros en la pgina
923
Continuacin
1 Instrucciones
1.86. MakeDir - Crea un nuevo directorio
RobotWare - OS
219 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.86. MakeDir - Crea un nuevo directorio
Utilizacin
MakeDir se utiliza para crear un nuevo directorio. El usuario debe tener permisos de escritura
y ejecucin del directorio principal debajo del cual se crear el nuevo directorio.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MakeDir.
Ejemplo 1
MakeDir "HOME:/newdir";
En este ejemplo se crea un nuevo directorio llamado newdir dentro de HOME:
Argumentos
MakeDir Path
Path
Tipo de dato:string
El nombre del nuevo directorio, especificado con una ruta completa o relativa.
Gestin de errores
Si no es posible crear el directorio, la variable de sistema ERRNO cambia a ERR_FILEACC. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
MakeDir
[ Path:= ] < expression (IN) of string>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Eliminacin de un directorio RemoveDir - Elimina un directorio en la pgina
362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un archivo
en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
1 Instrucciones
1.87. ManLoadIdProc - Identificacin de carga de los manipuladores IRBP
RobotWare-OS
3HAC16581-5 Revisin: H 220


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.87. ManLoadIdProc - Identificacin de carga de los manipuladores IRBP
Utilizacin
ManLoadIdProc (Manipulator Load Identification Procedure) se utiliza para la
identificacin de carga de la carga til de los manipuladores externos, mediante la ejecucin
de un programa de RAPID definido.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
NOTA!
Una forma ms fcil de identificar la carga til es usar el programa de RAPID de dilogo
interactivo ManLoadIdentify. Este programa puede iniciarse desde el men
Program Editor/Debug/Call Routine.../ManLoadIdentify.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ManLoadIdProc.
PERS loaddata myload := [6,[0,0,0],[1,0,0,0],0,0,0];
VAR bool defined;
ActUnit STN1;
ManLoadIdProc \ParIdType := IRBP_L
\MechUnit := STN1
\PayLoad := myload
\ConfigAngle := 60
\AlreadyActive
\DefinedFlag := defined;
DeactUnit STN1;
Identificacin de carga de la carga til myload montada sobre la unidad mecnica STN1. El
manipulador externo es del tipo IRBP-L. Se establece el ngulo de configuracin en 60
grados. El manipulador se activa antes de la identificacin de carga y se desactiva a
continuacin. Tras la identificacin, myload se ha actualizado y su definicin cambia a TRUE.
Argumentos
ManLoadIdProc [\ParIdType] [\MechUnit] | [\MechUnitName]
[\AxisNumber] [\PayLoad] [\ConfigAngle] [\DeactAll] |
[\AlreadyActive] [DefinedFlag] [DoExit]
[ \ ParIdType ]
Tipo de dato: paridnum
Tipo de identificacin de parmetro Las constantes predefinidas se encuentran dentro del tipo
de dato paridnum.
[ \ MechUnit ]
Tipo de dato: mecunit
La unidad mecnica utilizada para la identificacin de carga. No puede utilizarse
conjuntamente con el argumento \MechUnitName.
Contina en la pgina siguiente
1 Instrucciones
1.87. ManLoadIdProc - Identificacin de carga de los manipuladores IRBP
RobotWare-OS
221 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ MechUnitName ]
Tipo de dato: string
La unidad mecnica utilizada para la identificacin de carga, indicada como una cadena. No
puede utilizarse conjuntamente con el argumento \MechUnit.
[ \ AxisNumber ]
Tipo de dato: num
Dentro de la unidad mecnica, el nmero del eje que sostiene la carga que se desea identificar.
[ \ PayLoad ]
Tipo de dato: loaddata
Variable de la carga til que se desea identificar. Es necesario especificar el componente
mass.
Esta variable se actualiza despus de la identificacin.
[ \ ConfigAngle ]
Tipo de dato: num
Especificacin de un ngulo de configuracin especfico grados para su uso en la
identificacin de parmetros.
xx0500002197
Mn. + -30 grados. Valor ptimo +o -90 grados.
[ \ DeactAll ]
Tipo de dato: switch
Si se utiliza este modificador, todas las unidades mecnicas del sistema se desactivarn antes
de la realizacin de la identificacin. A continuacin, se activa la unidad mecnica a
identificar. No puede utilizarse conjuntamente con el argumento \AlreadyActive.
[ \ AlreadyActive ]
Tipo de dato: switch
Este modificador se utiliza si la unidad mecnica a identificar est activa. No puede utilizarse
conjuntamente con el argumento \DeactAll.
[ \ DefinedFlag ]
Tipo de dato: bool
Este argumento tendr el valor TRUE si la identificacin ha sido realizada o FALSE en caso
contrario.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.87. ManLoadIdProc - Identificacin de carga de los manipuladores IRBP
RobotWare-OS
3HAC16581-5 Revisin: H 222


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ DoExit]
Tipo de dato: bool
Si tiene el valor TRUE, la identificacin de la carga terminar con un comando EXIT para
forzar al usuario a cambiar el PP a Main antes de continuar con la ejecucin. Si no est
presente o tiene el valor FALSE, no se ejecuta EXIT. Recuerde que ManLoadIdProc siempre
elimina la trayectoria actual.
Ejecucin de programas
Todos los argumentos son opcionales. Si no se indica un argumento, se solicitar al usuario
el valor a travs del FlexPendant (excepto \DoExit).
Siempre se pedir al usuario que indique la masa y, si el manipulador es del tipo IRBP R, el
valor de z en mm.
La unidad mecnica realizar un gran nmero de movimientos relativos pequeos de
transporte y medicin.
Despus del conjunto de mediciones, movimientos y clculos de carga, los datos de carga se
devuelven en el argumento Payload si se usa. Se calculan los datos de carga siguientes.
Los datos calculados se muestran en el FlexPendant.
Limitaciones
Normalmente, la identificacin de la carga del manipulador externo se realiza con la rutina
de servicio ManLoadIdentify. Tambin es posible realizar esta identificacin con la
instruccin de RAPID ManLoadIdProc.
Cualquier trayectoria en curso se borrar antes de la identificacin de la carga. El puntero de
programa se perder tras la identificacin de la carga si se usa el argumento \DoExit:=TRUE.
No es posible reiniciar los movimientos de identificacin de la carga despus de ningn tipo
de paro, como el paro programado, el paro de emergencia o la cada de alimentacin. Los
movimientos de identificacin de carga deben reiniciarse de nuevo desde el principio.
Gestin de errores
Con cualquier error durante la ejecucin de la rutina NOSTEPIN de RAPID ManLoadIdProc,
la variable de sistema ERRNO cambia a ERR_PID_MOVESTOP, ERR_PID_RAISE_PP, o
ERR_LOADID_FATAL y el puntero de programa son elevados hacia la llamada de usuario de
ManLoadIdProc.
Tipo de manipulador/datos
calculados
IRBP-K
IRBP-L
IRBP-C
IRBP_T
IRBP-R
IRBP-A
IRBP-B
IRBP-D
Parmetro PayLoad -
cog.x, cog.y, cog.z de loaddata en mm
cog.x cog.y cog.x cog.y cog.x cog.y cog.x cog.y
cog.z
Parmetro PayLoad - ix, iy, iz de
loaddata en kgm2
iz iz
ix
iy
iz
ix
iy
iz
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.87. ManLoadIdProc - Identificacin de carga de los manipuladores IRBP
RobotWare-OS
223 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ManLoadIdProc
[ \ParIdType := <expression (IN) of paridnum>]
[ \'MechUnit ':='<variable (VAR) of mecunit> ]
|[\MechUnitName := <expression (IN) of string> ]
[\ AxisNumber := <expression (IN) of num> ]
[\'PayLoad ':='<var or pers (INOUT) of loaddata>
[ \'ConfigAngle ':='<expression (IN) of num>]
[ \'DeactAll] | [\'AlreadyActive]
[ \ DefinedFlag := <variable (VAR) of bool> ]
[ \ DoExit := <expression (IN) of bool> ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de identificacin de parmetro paridnum - Tipo de identificacin de
parmetro en la pgina 1150
Unidad mecnica mecunit - Unidad mecnica en la pgina 1135
Carga til loaddata - Datos de carga en la pgina 1128
Continuacin
1 Instrucciones
1.88. MechUnitLoad - Define una carga til para una unidad mecnica
RobotWare - OS
3HAC16581-5 Revisin: H 224


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.88. MechUnitLoad - Define una carga til para una unidad mecnica
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MechUnitLoad.
Figura
En la figura siguiente se muestra una unidad mecnica con el nombre IRBP_L y del tipo IRBP
L.
xx0500002142
Ejemplo 1
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.
Ejemplo 2
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.
Ejemplo 3
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.
Contina en la pgina siguiente
1 Instrucciones
1.88. MechUnitLoad - Define una carga til para una unidad mecnica
RobotWare - OS
225 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
MechUnitLoad MechUnit AxisNo Load
MechUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
AxisNo
Axis Number
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.
En la figura siguiente se muestra una carga til montada en el elemento terminal de una
unidad mecnica.
xx0500002143
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.88. MechUnitLoad - Define una carga til para una unidad mecnica
RobotWare - OS
3HAC16581-5 Revisin: H 226


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin MechUnitLoad.
Figura
En la figura siguiente se muestra una unidad mecnica con el nombre IRBP_K y el tipo IRBP
K con tres ejes.
xx0500002144
Ejemplo 1
MoveL homeside1, v1000, fine, gun1;
...
ActUnit IRBP_K;
Se activa la totalidad de la unidad mecnica IRBP_K.
Ejemplo 2
MechUnitLoad IRBP_K, 2, workpiece1;
Define la carga til workpiece1 en el eje 2 de la unidad mecnica IRBP_K.
Ejemplo 3
MechUnitLoad IRBP_K, 3, workpiece2;
Define la carga til workpiece2 en el eje 3 de la unidad mecnica IRBP_K.
Ejemplo 4
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
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.
MechUnitLoad no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop o Restart.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.88. MechUnitLoad - Define una carga til para una unidad mecnica
RobotWare - OS
227 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
MechUnitLoad
[MechUnit := ] <variable (VAR) of mecunit> ,
[AxisNo := ] <expression (IN) of num> ,
[Load := ] <persistent (PERS) of loaddata>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificacin de la carga til de las
unidades mecnicas externas
Application manual - Additional axes and stand
alone controller
Unidades mecnicas mecunit - Unidad mecnica en la pgina 1135
Definicin de datos de carga loaddata - Datos de carga en la pgina 1128
Definicin de una carga til para el robot GripLoad - Define la carga til del robot en la
pgina 117
Continuacin
1 Instrucciones
1.89. MotionSup - Desactiva/activa la supervisin del movimiento
Collision Detection
3HAC16581-5 Revisin: H 228


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.89. MotionSup - Desactiva/activa la supervisin del movimiento
Utilizacin
MotionSup (Motion Supervision) se utiliza para desactivar o activar la funcin de
supervisin del movimiento para los movimientos del robot durante la ejecucin del
programa.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Descripcin
Se conoce como supervisin de movimiento a un conjunto de funciones que permiten
supervisar el robot con una alta sensibilidad y con bases de coordenadas. En la actualidad,
contiene funcionalidad para supervisin de cargas, supervisin de atascos y deteccin de
colisiones. Dado que la supervisin se ha diseado de forma que sea muy sensible, puede
saltar si existen grandes fuerzas de proceso que actan sobre el robot.
Si la carga no est definida correctamente, utilice la funcin de identificacin de carga para
especificarla. Si existen grandes fuerzas de proceso externas en la mayor parte de la
aplicacin, por ejemplo durante la eliminacin de rebabas, utilice los parmetros del sistema
para aumentar el nivel la supervisin de movimientos hasta que deje de saltar. Sin embargo,
si las fuerzas externas son slo temporales, por ejemplo cuando se cierra una pistola de
soldadora por puntos de gran tamao, se debe utilizar la instruccin MotionSup para
aumentar el nivel de supervisin (o incluso desactivar la funcin) en las partes de la
aplicacin sobre las que acta esta alteracin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MotionSup.
Ejemplo 1
! If the motion supervision is active in the system parameters,
! then it is active by default during program execution
...
! If the motion supervision is deactivated through the system
! parameters,
! then it cannot be activated through the MotionSup instruction
...
! Deactivate motion supervision during program execution
MotionSup \Off;
...
! Activate motion supervision again during program execution
MotionSup \On;
...
! Tune the supervision level to 200% (makes the function less
! sensitive) of the level in
! the system parameters
MotionSup \On \TuneValue:= 200;
...
Contina en la pgina siguiente
1 Instrucciones
1.89. MotionSup - Desactiva/activa la supervisin del movimiento
Collision Detection
229 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
MotionSup [\On] | [\Off] [\TuneValue]
[\On ]
Tipo de dato: switch
Activacin de la funcin de supervisin del movimiento durante la ejecucin del programa
(si ya ha sido activada en los parmetros del sistema).
[ \Off ]
Tipo de dato: switch
Desactivacin de la funcin de supervisin del movimiento durante la ejecucin del
programa.
Es imprescindible especificar uno de los argumentos \On o \Off.
[ \TuneValue ]
Tipo de dato: num
Ajuste del nivel de sensibilidad de la supervisin de movimientos en porcentaje (del 1% al
300%) del nivel de los parmetros del sistema. Un nivel superior proporciona una
sensibilidad ms robusta. Este argumento slo puede ser combinado con el argumento \On.
Ejecucin de programas
Si la funcin de supervisin del movimiento est activada tanto en los parmetros del sistema
como en el programa de RAPID y se dispara la supervisin del movimiento debido a una
colisin:
El robot se detendr en el menor tiempo posible.
El robot retroceder para eliminar todas las fuerzas residuales.
La ejecucin del programa se detiene y se genera un mensaje de error.
Si la supervisin del movimiento est activada en los parmetros del sistema, est tambin
activada de forma predeterminada durante la ejecucin del programa (TuneValue 100%).
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
Limitaciones
La supervisin del movimiento no est nunca activa en el caso de los ejes externos ni al mover
uno o varios ejes en el modo de ejes independientes. Al utilizar el robot en el modo de servo
suave, es posible que sea necesario desactivar la supervisin del movimiento para evitar que
salte accidentalmente.
Sintaxis
MotionSup
[ '\'On] | [ '\'Off ]
['\'Tunevalue':='< expression (IN) of num> ] ';
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.89. MotionSup - Desactiva/activa la supervisin del movimiento
Collision Detection
3HAC16581-5 Revisin: H 230


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin general de la funcin Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Supervisin del
movimiento/deteccin de colisiones
Ajuste con los parmetros del sistema Manual de referencia tcnica - Parmetros del
sistema, seccin Motion - Motion Planner -
Use Motion Supervision
Continuacin
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
231 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
Utilizacin
MoveAbsJ (Move Absolute Joint) se utiliza para mover el robot hacia una posicin absoluta
definida en posiciones de ejes.
Ejemplos 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveAbsJ.
Consulte tambin Ms ejemplos en la pgina 234.
Ejemplo 1
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.
Ejemplo 2
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 [\ID] [\NoEOffs] Speed [\V] | [\T] Zone
[\Z] [\Inpos] Tool [\WObj]
[\Conc]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. El
argumento no se utiliza normalmente para acortar el tiempo de ciclo si, por ejemplo se realiza
una comunicacin con equipos externos y no se requiere sincronizacin.
Contina en la pgina siguiente
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
3HAC16581-5 Revisin: H 232


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 ToJointPos no es un punto de paro, la instruccin siguiente se
ejecuta algn tiempo antes de que el robot alcance la zona programada.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
ToJointPos
To J oint Position
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
[ \NoEOffs ]
No External Offsets
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
233 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 ]
Zone
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 ]
In position
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.
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 calcular la velocidad y la trayectoria de esquina del
movimiento.
[ \WObj ]
Work Object
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 calcular 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
3HAC16581-5 Revisin: H 234


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin MoveAbsJ.
Ejemplo 1
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/s y 45 mm respectivamente.
Ejemplo 2
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.
Ejemplo 3
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.
Ejemplo 4
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.
Ejemplo 5
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
235 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente).
La figura muestra la limitacin para la ejecucin hacia atrs con MoveAbsJ.
xx0500002201
Sintaxis
MoveAbsJ
[ \ Conc , ]
[ ToJointPos := ] < expression (IN) of jointtarget >
[ \ ID := < expression (IN) of identno >]
[ \ NoEoffs ] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ V := < expression (IN) of num > ]
| [ \ T := < expression (IN) of num > ] ,
[Zone := ] < expression (IN) of zonedata>
[\ Z := ] < expression (IN) of num >
[ \ Inpos := < expression (IN) of stoppointdata > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Definicin de jointtarget jointtarget - Datos de posicin de eje en la
pgina 1125
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.90. MoveAbsJ - Mueve el robot a una posicin de ejes absoluta
RobotWare - OS
3HAC16581-5 Revisin: H 236


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Ejecucin simultnea de programas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con instruc-
ciones lgicas
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
237 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.91. MoveC - Mueve el robot en crculo
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveC.
Consulte tambin Ms ejemplos en la pgina 241.
Ejemplo 1
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.
Ejemplo 2
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.
Ejemplo 3
MoveL p1, v500, fine, tool1;
MoveC p2, p3, v500, z20, tool1;
MoveC p4, p1, v500, fine, tool1;
La figura muestra cmo se realiza un crculo completo mediante dos instrucciones MoveC.
xx0500002212
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
3HAC16581-5 Revisin: H 238


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
MoveC [\Conc] CirPoint ToPoint [\ID] Speed [\V] | [\T] Zone [\Z]
[\Inpos] Tool [\WObj] [\Corr]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento no se utiliza normalmente, pero puede utilizarse para evitar los paros no deseados,
causados por la sobrecarga de la CPU al utilizar puntos de paso. Esto resulta til cuando los
puntos programados estn muy cercanos entre s y se trabaja a velocidades elevadas. Este
argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con equipos
externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
239 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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.
[ \Z ]
Zone
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 ]
In position
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
3HAC16581-5 Revisin: H 240


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \WObj ]
Work Object
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 ]
Correction
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
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
siguiente).
La figura muestra la orientacin de la herramienta durante un movimiento circular.
xx0500002214
La orientacin del punto circular no se alcanza. 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 distintos modos de orientacin de la herramienta durante una trayectoria circular se
describen en la instruccin CirPathMode.
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
241 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin MoveC.
Ejemplo 1
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/s y 45 mm, respectivamente.
Ejemplo 2
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..
Ejemplo 3
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.
Ejemplo 4
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.
xx0500002213
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
3HAC16581-5 Revisin: H 242


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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.
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.
AVISO!
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).
Para reducir al mnimo el riesgo, cambie el valor del parmetro de sistema Restrict placing of
circlepoints a TRUE (tipo Motion Planner, tema Motion). Este parmetro aade una
supervisin en el sentido de que la trayectoria circular no gire ms de 240 grados y que el
punto de crculo est situado en la parte central de la trayectoria circular.
Sintaxis
MoveC
[ \ Conc , ]
[ CirPoint := ] < expression (IN) of robtarget> ,
[ ToPoint := ] < expression (IN) of robtarget> ,
[ \ ID := < expression (IN) of identno>],
[ Speed := ] < expression (IN) of speeddata>
[ \ V := < expression (IN) of num> ]
[ \ T := < expression (IN) of num> ] ,
[Zone := ] < expression (IN) of zonedata>
[ \ Z := < expression (IN) of num> ]
[ \ Inpos := < expression (IN) of stoppointdata> ] ,
[ Tool := ] < persistent (PERS) of tooldata>
[ \ WObj := < persistent (PERS) of wobjdata> ]
[ \ Corr ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.91. MoveC - Mueve el robot en crculo
RobotWare - OS
243 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Reorientacin de la herramienta durante
trayectorias circulares
CirPathMode - Reorientacin de la
herramienta durante trayectorias circulares
en la pgina 37
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Ejecucin simultnea de programas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con
instrucciones lgicas
Parmetros del sistema Manual de referencia tcnica - Parmetros
del sistema
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.92. MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la esquina
RobotWare - OS
3HAC16581-5 Revisin: H 244


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.92. MoveCDO - Mueve el robot en una trayectoria circular y establece una salida
digital en la esquina
Utilizacin
MoveCDO (Move Circular Digital Output) se utiliza para trasladar el punto central de la
herramienta (TCP) en sentido circular 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveCDO.
Ejemplo 1
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 [\ID] 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 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).
Contina en la pgina siguiente
1 Instrucciones
1.92. MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la esquina
RobotWare - OS
245 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
[ \T ]
Time
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 ]
Work Object
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.92. MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la esquina
RobotWare - OS
3HAC16581-5 Revisin: H 246


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
La figura muestra la activacin/desactivacin de una seal digital de salida en la trayectoria
de esquina con MoveCDO.
xx0500002215
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 := ] < expression (IN) of robtarget > ,
[ ToPoint := ] < expression (IN) of robtarget > ,
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[ Zone := ] < expression (IN) of zonedata > ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ,
[ Signal := ] < variable (VAR) of signaldo > ] ,
[ Value := ] < expression (IN) of dionum > ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.92. MoveCDO - Mueve el robot en una trayectoria circular y establece una salida digital en la esquina
RobotWare - OS
247 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimiento del robot en crculo MoveC - Mueve el robot en crculo en la pgina
237
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Movimientos con parmetros de E/S Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con instruc-
ciones lgicas
Continuacin
1 Instrucciones
1.93. MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 248


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.93. MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un
procedimiento de RAPID
Utilizacin
MoveCSync (Move Circular Synchronously) se utiliza para trasladar el punto central de la
herramienta (TCP) en sentido circular hacia un punto de destino determinado. En el centro de
la trayectoria de esquina del punto de destino, se ordena la ejecucin del procedimiento de
RAPID especificado. Durante el movimiento, la orientacin suele permanecer sin cambios
respecto del crculo.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveCSync.
Ejemplo 1
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. El procedimiento proc1 se ejecuta en el centro
de la trayectoria de esquina de p2.
Argumentos
MoveCSync CirPoint ToPoint [\ID] 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).
Contina en la pgina siguiente
1 Instrucciones
1.93. MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de RAPID
RobotWare - OS
249 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
[ \T ]
Time
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 ]
Work Object
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
Procedure Name
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.93. MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 250


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
La figura muestra el orden de ejecucin del procedimiento de RAPID definido por el usuario
al llegar al centro de la trayectoria de esquina.
xx0500002216
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.
En la tabla se describe la ejecucin del procedimiento de RAPID especificado, con distintos
modos de ejecucin:
Limitacin
Limitaciones generales acorde con la instruccin MoveC.
Cuando el robot alcanza el centro de la trayectoria de esquina, existe normalmente un retardo
de 2 a 30 ms hasta que se ejecuta la rutina de RAPID especificada, en funcin de qu tipo de
movimiento se realice en el momento.
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
un procedimiento de RAPID que est en cola para su ejecucin en la trayectoria.
No es posible usar la instruccin MoveCSync en rutinas TRAP. No es posible comprobar el
procedimiento de RAPID con la ejecucin paso a paso.
Modo de ejecucin Ejecucin del procedimiento de RAPID
Continuous o Cycle De acuerdo con esta descripcin
Paso hacia delante En el punto de paro
Paso hacia atrs Ninguno en absoluto
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.93. MoveCSync - Mueve el robot en una trayectoria circular y ejecuta un procedimiento de RAPID
RobotWare - OS
251 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
MoveCSync
[ CirPoint := ] < expression (IN) of robtarget > ,
[ ToPoint := ] < expression (IN) of robtarget > ,
[\ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[ Zone := ] < expression (IN) of zonedata > ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ,
[ ProcName := ] < expression (IN) of string > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Mueve el robot en crculo MoveC - Mueve el robot en crculo en la
pgina 237
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Continuacin
1 Instrucciones
1.94. MoveExtJ - Mueve una o varias unidades mecnicas sin TCP
RobotWare - OS
3HAC16581-5 Revisin: H 252


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.94. MoveExtJ - Mueve una o varias unidades mecnicas sin TCP
Utilizacin
MoveExtJ (Move External Joints) se utiliza para mover ejes externos slo lineales o de
rotacin. Estos ejes externos pueden pertenecer a una o varias unidades mecnicas sin TCP.
Esta instruccin slo puede usarse con una tarea de programa real defnida como tarea de
movimiento y siempre y cuando la tarea controle una o varias unidades mecnicas sin TCP.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveExtJ.
Consulte tambin Ms ejemplos en la pgina 254.
Ejemplo 1
MoveExtJ jpos10, vrot10, z50;
Mueve el eje externo de rotacin a la posicin de eje jpos10 a una velocidad de 10 grados/
s con los datos de zona z50.
Ejemplo 2
MoveExtJ \Conc, jpos20, vrot10 \T:=5, fine \InPos:=inpos20;
Mueve los ejes externos a la posicin de eje jpos20 en 5 s. La ejecucin del programa avanza
de una vez pero el eje externo se detiene en la posicin jpos20 hasta que se cumplan los
criterios de convergencia en inpos20.
Argumentos
MoveExtJ [\Conc] ToJointPos [\ID] [\UseEOffs] Speed [\T] Zone
[\Inpos]
[ \Conc ]
Concurrent
Tipo de dato:switch
Las instrucciones posteriores se ejecutan mientras el eje externo est en movimiento. Este
argumento no se utiliza normalmente, pero puede utilizarse para evitar los paros no deseados,
causados por la sobrecarga de la CPU al utilizar puntos de paso. Esto resulta til cuando los
puntos programados estn muy cercanos entre s y se trabaja a velocidades elevadas. Este
argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con equipos
externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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 ToJointPos no es un punto de paro, la instruccin siguiente se
ejecuta algn tiempo antes de que los ejes externos alcancen la zona programada.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
Contina en la pgina siguiente
1 Instrucciones
1.94. MoveExtJ - Mueve una o varias unidades mecnicas sin TCP
RobotWare - OS
253 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ToJointPos
To J oint Position
Tipo de dato:jointtarget
La posicin absoluta de destino 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).
[ \ID ]
Synchronization ID
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
[ \UseEOffs ]
Use External Offset
Tipo de dato: switch
El offset de los ejes externos, configurado por la instruccin EOffsSet, se activa para la
instruccin MoveExtJ cuando se utiliza el argumento UseEOffs. Consulte la instruccin
EOffsSet para obtener ms informacin acerca del offset externo.
Speed
Tipo de dato: speeddata
Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad definen la
velocidad del eje externo lineal o de rotacin.
[ \T ]
Time
Tipo de dato: num
Este argumento se utiliza para especificar el tiempo total en segundos que dura el movimiento
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 definen un punto de paro o un punto de
paso. En un punto de paso, el tamao de la zona describe la deceleracin y aceleracin de los
ejes externos lineales o de rotacin.
[ \Inpos ]
In position
Tipo de dato:stoppointdata
Este argumento se utiliza para especificar los criterios de convergencia para la posicin del
eje externo en el punto de paro. Los datos de puntos de paro sustituyen a la zona especificada
en el parmetro Zone.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.94. MoveExtJ - Mueve una o varias unidades mecnicas sin TCP
RobotWare - OS
3HAC16581-5 Revisin: H 254


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Los ejes externos lineales o de rotacin se mueven hasta el punto programado a la velocidad
programada.
Ms ejemplos
CONST jointtarget j1 :=
[[9E9,9E9,9E9,9E9,9E9,9E9],[0,9E9,9E9,9E9,9E9,9E9]];
CONST jointtarget j2 :=
[[9E9,9E9,9E9,9E9,9E9,9E9],[30,9E9,9E9,9E9,9E9,9E9]];
CONST jointtarget j3 :=
[[9E9,9E9,9E9,9E9,9E9,9E9],[60,9E9,9E9,9E9,9E9,9E9]];
CONST jointtarget j4 :=
[[9E9,9E9,9E9,9E9,9E9,9E9],[90,9E9,9E9,9E9,9E9,9E9]];
CONST speeddata rot_ax_speed := [0, 0, 0, 45];
MoveExtJ j1, rot_ax_speed, fine;
MoveExtJ j2, rot_ax_speed, z20;
MoveExtJ j3, rot_ax_speed, z20;
MoveExtJ j4, rot_ax_speed, fine;
En este ejemplo, el eje de rotacin sencillo se mueve hasta las posiciones de eje 0, 30, 60 y
90 grados a la velocidad de 45 grados/s.
Sintaxis
MoveExtJ
[ \ Conc , ]
[ ToJointPos := ] < expression (IN) of jointtarget >
[\ ID := < expression (IN) of identno >],
[ \ UseEOffs , ]
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[Zone := ] < expression (IN) of zonedata >
[ \ Inpos := < expression (IN) of stoppointdata >];
Informacin relacionada
Para obtener ms informacin
sobre
Consulte
Otras instrucciones de posiciona-
miento
Manual de referencia tcnica - Descripcin general
de RAPID, seccin Movimiento
Definicin de jointtarget jointtarget - Datos de posicin de eje en la pgina
1125
Definicin de velocidad speeddata - Datos de velocidad en la pgina 1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Movimiento en general Manual de referencia tcnica - Descripcin general
de RAPID, seccin Principios de movimiento y E/S
Ejecucin simultnea de programas Manual de referencia tcnica - Descripcin general
de RAPID, seccin Principios de movimiento y E/S
- Sincronizacin con instrucciones lgicas
Continuacin
1 Instrucciones
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
RobotWare - OS
255 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveJ.
Consulte tambin Ms ejemplos en la pgina 257.
Ejemplo 1
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.
Ejemplo 2
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 [\ID] Speed [\V] | [\T] Zone [\Z] [\Inpos]
Tool [\WObj]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento no se utiliza normalmente, pero puede utilizarse para evitar los paros no deseados,
causados por la sobrecarga de la CPU al utilizar puntos de paso. Esto resulta til cuando los
puntos programados estn muy cercanos entre s y se trabaja a velocidades elevadas. Este
argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con equipos
externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
Contina en la pgina siguiente
1 Instrucciones
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
RobotWare - OS
3HAC16581-5 Revisin: H 256


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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).
[ \ID]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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 ]
Zone
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
RobotWare - OS
257 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Inpos ]
In position
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 ]
Work Object
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.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin MoveJ.
Ejemplo 1
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/s y 45 mm,
respectivamente.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
RobotWare - OS
3HAC16581-5 Revisin: H 258


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
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.
Ejemplo 3
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.
Ejemplo 4
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.
Sintaxis
MoveJ
[ \ Conc , ]
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ V := < expression (IN) of num > ]
| [ '\'':='< expression (IN) of num > ] ','
[Zone := ] < expression (IN) of zonedata >
[ \ Z := < expression (IN) of num > ]
[ \ Inpos := < expression (IN) of stoppointdata > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.95. MoveJ - Mueve el robot mediante un movimiento de ejes
RobotWare - OS
259 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Ejecucin simultnea de programas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con instruc-
ciones lgicas
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.96. MoveJ DO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en la
esquina
3HAC16581-5 Revisin: H 260


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.96. MoveJDO - Mueve el robot mediante el movimiento de los ejes y activa una
salida digital en la esquina
Utilizacin
MoveJDO(Move Joint Digital Output) se utiliza para mover el robot rpidamente de un punto
a otro cuando no es imprescindible que el movimiento 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveJDO.
Ejemplo 1
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 [\ID] 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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
Contina en la pgina siguiente
1 Instrucciones
1.96. MoveJ DO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en la
esquina
261 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T ]
Time
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.
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 ]
Work Object
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.96. MoveJ DO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en la
esquina
3HAC16581-5 Revisin: H 262


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
La figura muestra la activacin/desactivacin de una seal digital de salida en la trayectoria
de esquina con MoveJDO.
xx0500002196
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 := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[ Zone := ] < expression (IN) of zonedata > ,
[ Tool := ] < persistent (PERS) of tooldata>
[ \ WObj := < persistent (PERS) of wobjdata > ] ,
[ Signal := ] < variable (VAR) of signaldo>] ,
[ Value := ] < expression (IN) of dionum > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimiento del robot mediante un
movimiento de ejes
MoveJ - Mueve el robot mediante un
movimiento de ejes en la pgina 255
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.96. MoveJ DO - Mueve el robot mediante el movimiento de los ejes y activa una salida digital en la
esquina
263 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Movimientos con parmetros de E/S Manual de referencia tcnica - Descripcin
general de RAPID, seccin Sincronizacin
mediante instrucciones lgicas
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.97. MoveJ Sync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 264


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.97. MoveJSync - Mueve el robot con un movimiento de ejes y ejecuta un
procedimiento de RAPID
Utilizacin
MoveJSync(Move Joint Synchronously) se utiliza para mover el robot rpidamente de un
punto a otro cuando no es imprescindible que el movimiento siga una lnea recta. En el centro
de la trayectoria de esquina del punto de destino, se ordena la ejecucin del 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveJSync.
Ejemplo 1
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. El
procedimiento proc1 se ejecuta en el centro de la trayectoria de esquina de p1.
Argumentos
MoveJSync ToPoint [\ID] 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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
Contina en la pgina siguiente
1 Instrucciones
1.97. MoveJ Sync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de RAPID
RobotWare - OS
265 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T ]
Time
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.
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 ]
Work Object
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
Procedure Name
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. La llamada al procedimiento es una llamada con enlazamiento
en tiempo de ejecucin y por tanto hereda sus propiedades.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.97. MoveJ Sync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 266


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
xx0500002195
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.
En la tabla se describe la ejecucin del procedimiento de RAPID especificado, con distintos
modos de ejecucin:
Limitacin
Cuando el robot alcanza el centro de la trayectoria de esquina, suele ser un retardo de entre 2
y 30 ms hasta que se ejecuta la rutina de RAPID especificada, en funcin del tipo de
movimiento que se est realizando en ese momento.
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
un procedimiento de RAPID que est en cola para su ejecucin en la trayectoria.
No es posible usar la instruccin MoveJSync en rutinas TRAP. No es posible comprobar el
procedimiento de RAPID con la ejecucin paso a paso.
Modo de ejecucin Ejecucin del procedimiento de RAPID
Continuous o Cycle De acuerdo con esta descripcin
Paso hacia delante En el punto de paro
Paso hacia atrs Ninguno en absoluto

Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.97. MoveJ Sync - Mueve el robot con un movimiento de ejes y ejecuta un procedimiento de RAPID
RobotWare - OS
267 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
MoveJSync
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num >] ,
[ Zone := ] < expression (IN) of zonedata >,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ,
[ ProcName := ] < expression (IN) of string > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimiento del robot mediante un
movimiento de ejes
MoveJ - Mueve el robot mediante un
movimiento de ejes en la pgina 255
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Continuacin
1 Instrucciones
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
RobotWare - OS
3HAC16581-5 Revisin: H 268


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveL.
Consulte tambin Ms ejemplos en la pgina 271.
Ejemplo 1
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.
Ejemplo 2
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 [\ID] Speed [\V] | [ \T] Zone [\Z] [\Inpos]
Tool [\WObj] [\Corr]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento no se utiliza normalmente, pero puede utilizarse para evitar los paros no deseados,
causados por la sobrecarga de la CPU al utilizar puntos de paso. Esto resulta til cuando los
puntos programados estn muy cercanos entre s y se trabaja a velocidades elevadas. Este
argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con equipos
externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
Contina en la pgina siguiente
1 Instrucciones
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
RobotWare - OS
269 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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 ]
Zone
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
RobotWare - OS
3HAC16581-5 Revisin: H 270


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Inpos ]
In position
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 ]
Work Object
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.
[ \Corr ]
Correction
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
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
RobotWare - OS
271 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin MoveL.
Ejemplo 1
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/s y 45 mm respectivamente.
Ejemplo 2
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..
Ejemplo 3
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.
Ejemplo 4
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 := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ V := < expression (IN) of num > ]
| [ \ T := < expression (IN) of num > ] ,
[Zone := ] < expression (IN) of zonedata >
[ '\'Z ':='< expression (IN) of num > ]
[ \ Inpos := < expression (IN) of stoppointdata > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ]
[ \ Corr ] ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.98. MoveL - Mueve el robot siguiendo una trayectoria lineal
RobotWare - OS
3HAC16581-5 Revisin: H 272


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Ejecucin simultnea de programas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con
instrucciones lgicas
Continuacin
1 Instrucciones
1.99. MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina.
RobotWare - OS
273 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.99. MoveLDO - Mueve el robot linealmente y establece una salida digital en la
esquina.
Utilizacin
MoveLDO (Move Linearly Digital Output) se utiliza para trasladar el punto central de la
herramienta (TCP) en sentido lineal 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveLDO.
Ejemplo 1
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 [\ID] 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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
Contina en la pgina siguiente
1 Instrucciones
1.99. MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina.
RobotWare - OS
3HAC16581-5 Revisin: H 274


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T ]
Time
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.
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 ]
Work Object
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.99. MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina.
RobotWare - OS
275 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
La figura muestra la activacin/desactivacin de una seal digital de salida en la trayectoria
de esquina con MoveLDO.
xx0500002193
En el caso de los puntos de paro, recomendamos el uso de una secuencia de programa
normal, con el uso de MoveL +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.
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 := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[ Zone := ] < expression (IN) of zonedata > ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := ] < persistent (PERS) of wobjdata > ,
[ Signal := ] < variable (VAR) of signaldo >] ,
[ Value := ] < expression (IN) of dionum > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimiento lineal del robot MoveL - Mueve el robot siguiendo una
trayectoria lineal en la pgina 268
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.99. MoveLDO - Mueve el robot linealmente y establece una salida digital en la esquina.
RobotWare - OS
3HAC16581-5 Revisin: H 276


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Movimientos con parmetros de E/S Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sincronizacin con
instrucciones lgicas
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.100. MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID
RobotWare - OS
277 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.100. MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de
RAPID
Utilizacin
MoveLSync (Move Linearly Synchronously) se utiliza para trasladar el punto central de la
herramienta (TCP) en sentido lineal hacia un punto de destino determinado. En el centro de
la trayectoria de esquina del punto de destino, se ordena la ejecucin del procedimiento de
RAPID especificado.
Cuando se desea que el TCP permanezca estacionario, esta instruccin puede usarse tambin
para reorientar la herramienta.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MoveLSync.
Ejemplo 1
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. El procedimiento proc1 se ejecuta en
el centro de la trayectoria de esquina de p1.
Argumentos
MoveLSync ToPoint [\ID] 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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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.
Contina en la pgina siguiente
1 Instrucciones
1.100. MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 278


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T ]
Time
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.
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 ]
Work Object
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
Procedure Name
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. La llamada al procedimiento es una llamada con enlazamiento
en tiempo de ejecucin y por tanto hereda sus propiedades.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.100. MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID
RobotWare - OS
279 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente.
La figura muestra el orden de ejecucin del procedimiento de RAPID definido por el usuario
al llegar al centro de la trayectoria de esquina.
xx0500002194
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.
En la tabla se describe la ejecucin del procedimiento de RAPID especificado, con distintos
modos de ejecucin:
Limitacin
Cuando el robot alcanza el centro de la trayectoria de esquina, suele ser un retardo de entre 2
y 30 ms hasta que se ejecuta la rutina de RAPID especificada, en funcin del tipo de
movimiento que se est realizando en ese momento.
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
un procedimiento de RAPID que est en cola para su ejecucin en la trayectoria.
No es posible usar la instruccin MoveLSync en rutinas TRAP. No es posible comprobar el
procedimiento de RAPID con la ejecucin paso a paso.
Modo de ejecucin: Ejecucin del procedimiento de RAPID:
Continuous o Cycle De acuerdo con esta descripcin
Paso hacia delante En el punto de paro
Paso hacia atrs Ninguno en absoluto

Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.100. MoveLSync - Mueve el robot de forma lineal y ejecuta un procedimiento de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 280


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
MoveLSync
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[ Zone := ] < expression (IN) of zonedata > ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ] ,
[ ProcName := ] < expression (IN) of string > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Movimiento
Movimiento lineal del robot MoveL - Mueve el robot siguiendo una
trayectoria lineal en la pgina 268
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Continuacin
1 Instrucciones
1.101. MToolRotCalib - Calibracin de la rotacin de una herramienta mvil
RobotWare - OS
281 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.101. MToolRotCalib - Calibracin de la rotacin de una herramienta mvil
Utilizacin
MToolRotCalib (Moving Tool Rotation Calibration) 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 FlexPendant (se
describe en el Manual del operador - IRC5 con FlexPendant, seccin Programacin y
testing).
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
correspondiente componente robhold (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.
tool0, wobj0 y PDispOff deben estar activados antes de mover el 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 z 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.,15
Contina en la pgina siguiente
1 Instrucciones
1.101. MToolRotCalib - Calibracin de la rotacin de una herramienta mvil
RobotWare - OS
3HAC16581-5 Revisin: H 282


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Consulte la figura siguiente para obtener una definicin del objetivo de ejes para RefTip,
ZPos, y opcionalmente XPos.
xx0500002192
NOTA!
No se recomienda modificar las posiciones de RefTip, ZPos y XPos en la instruccin
MToolRotCalib.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MToolRotCalib.
Ejemplo 1
! Created with the world fixed tip pointing at origin, positive
! z-axis, and positive x-axis of the wanted tool coordinate
! system.
CONST jointtarget pos_tip := [...];
C ONST 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]];
! Instructions for creating or ModPos of pos_tip, pos_z, and pos_x
MoveAbsJ pos_tip, v10, fine, tool0;
MoveAbsJ pos_z, v10, fine, tool0;
MoveAbsJ pos_x, v10, fine, tool0;
! Only tool calibration in the z direction
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.
Ejemplo 2
! Calibration with complete tool orientation
MToolRotCalib pos_tip, pos_z \XPos:=pos_x, tool1;
Se calcula la orientacin completa (tframe.rot) de la herramienta tool1.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.101. MToolRotCalib - Calibracin de la rotacin de una herramienta mvil
RobotWare - OS
283 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
MToolRotCalib RefTip ZPos [\XPos]Tool
RefTip
Tipo de dato: jointtarget
El punto al que est apuntando el TCP de la herramienta en la punta fijada a mundo.
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
La variable persistente de la herramienta a calibrar.
Ejecucin de programas
El sistema calcula y actualiza la orientacin de la herramienta tfame.rot en los datos
tooldata especificados. 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 := ] < expression (IN) of jointtarget > ,
[ ZPos := ] < expression (IN) of jointtarget >
[ \XPos := < expression (IN) of jointtarget > ] ,
[ Tool := ] < persistent (PERS) of tooldata > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin del TCP de una herramienta
mvil
MToolTCPCalib - Calibracin del TCP de una
herramienta mvil en la pgina 284
Calibracin del TCP de una herramienta fija SToolTCPCalib - Calibracin del TCP de una
herramienta estacionaria en la pgina 515
Calibracin del TCP y la rotacin de una
herramienta fija
SToolRotCalib - Calibracin del TCP y de la
rotacin de una herramienta estacionaria en la
pgina 512
Continuacin
1 Instrucciones
1.102. MToolTCPCalib - Calibracin del TCP de una herramienta mvil
RobotWare - OS
3HAC16581-5 Revisin: H 284


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.102. MToolTCPCalib - Calibracin del TCP de una herramienta mvil
Utilizacin
MToolTCPCalib (Moving Tool TCP Calibration) se usa para calibrar el TCP (punto central
de la herramienta) 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 FlexPendant (se
describe en el Manual del operador - IRC5 con FlexPendant, seccin Programacin y
testing).
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
correspondiente componente robhold (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.
tool0, wobj0 y PDispOff deben estar activados antes de mover el 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 las tres posiciones adicionales (p2,p3 y p4) todas con orientaciones diferentes.
Definicin de 4 jointtarget, de p1 a p4. Consulte la figura siguiente.
xx0500002191

Contina en la pgina siguiente


1 Instrucciones
1.102. MToolTCPCalib - Calibracin del TCP de una herramienta mvil
RobotWare - OS
285 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
NOTA!
No se recomienda modificar las posiciones de Pos1 a Pos4 en la instruccin
MToolTCPCalib.
La reorientacin entre las 4 posiciones debe ser la mayor posible, poniendo el robot en
configuraciones diferentes. Tambin resulta adecuado comprobar la calidad del TCP antes de
una calibracin. Esto puede realizarse reorientando la herramienta y comprobando si el TCP
permanece en la misma posicin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin MToolTCPCalib.
Ejemplo 1
! Created with actual TCP pointing at the world fixed tip
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;
...
! Instructions for createing or ModPos of p1 - 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.102. MToolTCPCalib - Calibracin del TCP de una herramienta mvil
RobotWare - OS
3HAC16581-5 Revisin: H 286


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Pos4
Tipo de dato: jointtarget
El cuarto punto de aproximacin.
Tool
Tipo de dato: tooldata
La variable persistente 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 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 := ] < expression (IN) of jointtarget > ,
[ Pos2 := ] < expression (IN) of jointtarget > ,
[ Pos3 := ] < expression (IN) of jointtarget > ,
[ Pos4 := ] < expression (IN) of jointtarget > ,
[ Tool := ] < persistent (PERS) of tooldata > ,
[ MaxErr := ] < variable (VAR) of num > ,
[ MeanErr := ] < variable (VAR) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin de la rotacin de una
herramienta mvil
MToolRotCalib - Calibracin de la rotacin de
una herramienta mvil en la pgina 281
Calibracin del TCP de una herramienta fija SToolTCPCalib - Calibracin del TCP de una
herramienta estacionaria en la pgina 515
Calibracin del TCP y la rotacin de una
herramienta fija
SToolRotCalib - Calibracin del TCP y de la
rotacin de una herramienta estacionaria en la
pgina 512
Continuacin
1 Instrucciones
1.103. Open - Abre un archivo o un canal serie
RobotWare - OS
287 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.103. Open - Abre un archivo o un canal serie
Utilizacin
Open se utiliza para abrir un archivo o un canal serie para su lectura o escritura.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Open.
Consulte tambin Ms ejemplos en la pgina 289.
Ejemplo 1
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.
Ejemplo 2
VAR iodev logfile;
...
Open "LOGFILE1.DOC", logfile \Write;
Mismo resultado que en el ejemplo 1. El directorio predeterminado es HOME:.
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:",
"com1:" o "pc:"(opcional).
En la tabla se describen los distintos dispositivos de E/S del controlador de robot.
Nombre del dispositivo de E/S
Ruta completa del
archivo
Tipo de dispositivo
de E/S
"HOME:" O bien diskhome
1
"/hd0a/xxxx/HOME/"
2
Disco Flash o disco
duro
"TEMP:" o disktemp
1
"/hd0a/temp/" Disco Flash o disco
duro
"RemovableDisk1:" o usbdisk1
1
"RemovableDisk2:" o usbdisk2
1
"RemovableDisk3:" o usbdisk3
1
"RemovableDisk4:" o usbdisk4
1
"RemovableDisk5:" o usbdisk5
1
"RemovableDisk6:" o usbdisk6
1
"RemovableDisk7:" o usbdisk7
1
"RemovableDisk8:" o usbdisk8
1
"RemovableDisk9:" o usbdisk9
1
"RemovableDisk10:" o usbdisk10
1
"/bd0/"
"/bd1/"
"/bd2/"
"/bd3/"
"/bd4/"
"/bd5/"
"/bd6/"
"/bd7/"
"/bd8/"
"/bd9/"
Por ejemplo, llave de
memoria USB
3
Contina en la pgina siguiente
1 Instrucciones
1.103. Open - Abre un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 288


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1. Cadena de RAPID para definir el nombre del dispositivo
2. "xxxx" indica el nombre del sistema, definido al arrancar el sistema
3.Atencin! RemovableDisk1 tambin puede ser una memoria USB en un sistema pero una
unidad de disquete USB en otro.
4. Nombre de canal serie definido por el usuario en los parmetros del sistema
5. Protocolo de aplicacin, ruta de servidor, definido en los parmetros del sistema
6. Protocolo de aplicacin, ruta de servidor, definido en los parmetros del sistema
En la tabla siguiente se describen los distintos dispositivos de E/S del controlador virtual.
1. Cadena de RAPID para definir el nombre del dispositivo
2. "xxxx" indica la ruta al directorio del sistema, definido al crear el sistema
3."yyyy" indica un directorio cuyo nombre coincide con la ID del sistema
4.Atencin! RemovableDisk1 tambin puede ser una memoria USB en un sistema pero una
unidad de disquete USB en otro.
[\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.
"com1:"
4
"com2:"
4
"com3:"
4
- Canal serie
"pc:"
5
"/c:/temp/"
6
Disco montado
Nombre del dispositivo de E/S
Ruta completa del
archivo
Tipo de dispositivo
de E/S
"HOME:" O bien diskhome
1
"/xxxx/HOME/"
2
"TEMP:" o disktemp "/c:/temp/yyyy/"
3
Disco duro
"RemovableDisk1:" o usbdisk1
"RemovableDisk2:" o usbdisk2
"RemovableDisk3:" o usbdisk3
"RemovableDisk4:" o usbdisk4
"/xxxx/HOME/
RemovableDisk1/"
"/xxxx/HOME/
RemovableDisk2/"
"/xxxx/HOME/
RemovableDisk3/"
"/xxxx/HOME/
RemovableDisk4/"
Por ejemplo, llave de
memoria USB
4
Nombre del dispositivo de E/S
Ruta completa del
archivo
Tipo de dispositivo
de E/S
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.103. Open - Abre un archivo o un canal serie
RobotWare - OS
289 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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.
Para abrir un archivo o un canal serie, utilice \Append sin los argumentos \Bin. La
instruccin abre un archivo o un canal serie alfanumrico para escritura.
Para abrir un archivo o un canal serie, utilice \Append y los argumentos \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 o \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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin Open.
Ejemplo 1
VAR iodev printer;
...
Open "com2:", printer \Bin;
WriteStrBin printer, "This is a message to the printer\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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.103. Open - Abre un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 290


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
En caso de un paro de programa y traslado del PP a Main, cualquier archivo o canal serie que
est abierto en la tarea de programa se cierra y el descriptor de E/S de la variable del tipo
iodev se restablece. Una excepcin a esta regla la constituyen las variables instaladas como
compartidas en el sistema, con los tipos global VAR o LOCAL VAR. Los archivos o canales
serie de este tipo pertenecientes a todo el sistema seguirn estando abiertos.
En caso de un reinicio tras una cada de alimentacin, todos los archivos o canales serie
abiertos del sistema se cierran y el descriptor de E/S de la variable del tipo iodev se
restablece.
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':='] <expression (IN) of string>
['\'File':='<expression (IN) of string>] ','
[IODevice :=] <variable (VAR) of iodev>
['\'Read] |
['\'Write] |
['\'Append]
['\'Bin] ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura, lectura y cierre de archivos o
canales serie
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
1 Instrucciones
1.104. OpenDir - Abre un directorio
RobotWare - OS
291 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.104. OpenDir - Abre un directorio
Utilizacin
OpenDir se utiliza para abrir un directorio para su anlisis posterior.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin OpenDir.
Ejemplo 1
PROC lsdir(string dirname)
VAR dir directory;
VAR string filename;
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
TPWrite filename;
ENDWHILE
CloseDir directory;
ENDPROC
Este ejemplo imprime los nombres de todos los archivos o subdirectorios que se encuentran
dentro del directorio especificado.
Argumentos
OpenDir Dev Path
Dev
Tipo de dato:dir
Una variable que hace referencia a un directorio, capturada con OpenDir. Esta variable se
utiliza posteriormente para hacer lecturas del directorio.
Path
Tipo de dato: string
La ruta del directorio.
Limitaciones
Los directorios abiertos deben ser cerrados siempre por el usuario despus de las operaciones
de lectura (instruccin CloseDir).
Gestin de errores
Si la ruta apunta a un directorio que no existe o si hay demasiados directorios abiertos a la
vez, la variable de sistema ERRNO cambia a ERR_FILEACC. A continuacin, este error puede
ser gestionado en el gestor de errores.
Sintaxis
OpenDir
[ Dev:= ] < variable (VAR) of dir>,
[ Path:= ] < expression (IN) of string>;
Contina en la pgina siguiente
1 Instrucciones
1.104. OpenDir - Abre un directorio
RobotWare - OS
3HAC16581-5 Revisin: H 292


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Directorio dir - Estructura de directorio de archivos en la
pgina 1099
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la pgina
362
Lectura de un directorio ReadDir - Lee la siguiente entrada de un
directorio en la pgina 953
Cierre de un directorio CloseDir - Cierra un directorio en la pgina 56
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un archivo
en la pgina 365
Continuacin
1 Instrucciones
1.105. PackDNHeader - Empaqueta un encabezado de DeviceNet en datos rawbytes
RobotWare - OS
293 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.105. PackDNHeader - Empaqueta un encabezado de DeviceNet en datos rawbytes
Utilizacin
PackDNHeader se utiliza para empaquetar el encabezado de un mensaje explcito de
DeviceNet en un 'contenedor' del tipo rawbytes.
A continuacin, la parte de datos del mensaje de DeviceNet puede definirse con la instruccin
PackRawBytes.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PackDNHeader.
Ejemplo 1
VAR rawbytes raw_data;
PackDNHeader "0E", "6,20 01 24 01 30 06,9,4", raw_data;
Se empaqueta el encabezado del mensaje explcito de DeviceNet con el cdigo de servicio
"0E" y la cadena de ruta "6,20 01 24 01 30 06,9,4" y lo almacena en el dato raw_data
correspondiente para obtener el nmero de serie de alguna unidad de E/S.
Este mensaje est listo para su envo sin necesidad de llenar el mensaje con datos adicionales.
Ejemplo 2
VAR rawbytes raw_data;
PackDNHeader "10", "20 1D 24 01 30 64", raw_data;
Se empaqueta el encabezado del mensaje explcito de DeviceNet con el cdigo de servicio
"10" y la cadena de ruta "20 1D 24 01 30 64" y lo almacena en el dato raw_data
correspondiente para la definicin del tiempo de filtro del borde de elevacin de la seal de
entrada 1 de una unidad de E/S.
Este mensaje debe complementarse con datos del tiempo de filtro. Esto puede hacerse con la
instruccin PackRawBytes, empezando por el nmero de ndice
RawBytesLen(raw_data)+1 (se hace despus de PackDNHeader).
Argumentos
PackDNHeader Service Path RawData
Service
Tipo de dato: string
El servicio que debe realizarse, por ejemplo obtener o definir el atributo. Debe especificarse
con un cdigo hexadecimal en una cadena, por ejemplo "IF".
Los valores de Service se almacenan en el archivo EDS. Para obtener una descripcin ms
detallada, consulte el documento ODVA DeviceNet Specification revision 2.0.
(Especificacin de DeviceNet ODVA revisin 2.0) de la Open DeviceNet Vendor
Association.
Longitud de cadena 2 caracteres
Formato 0 - 9, a -f, A - F
Rango "00" - "FF"
Contina en la pgina siguiente
1 Instrucciones
1.105. PackDNHeader - Empaqueta un encabezado de DeviceNet en datos rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 294


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Path
Tipo de dato: string
Los valores de Path se almacenan en el archivo EDS. Para obtener una descripcin ms
detallada, consulte el documento ODVA DeviceNet Specification revision 2.0.
(Especificacin de DeviceNet ODVA revisin 2.0) de la Open DeviceNet Vendor
Association.
Se admiten tanto el formato de cadena largo (por ejemplo, "6,20 1D 24 01 30 64,8,1")
como el corto (por ejemplo "20 1D 24 01 30 64").
RawData
Tipo de dato: rawbytes
El contenedor de variable que se desea empaquetar con los datos del encabezado del mensaje,
a partir del nmero de ndice 1 de RawData.
Ejecucin de programas
Durante la ejecucin del programa, se hace lo siguiente con el contenedor del mensaje de
DeviceNet RawData:
Se borra completamente en primer lugar.
A continuacin, se empaqueta la parte de encabezado con datos.
Formato del encabezado de DeviceNet
La instruccin PackDNHeader crea un encabezado de mensaje de DeviceNet con el formato
siguiente:
A continuacin, la parte de datos del mensaje de DeviceNet puede definirse con la instruccin
PackRawBytes, a partir del nmero de ndice capturado con
(RawBytesLen(my_rawdata)+1).
Sintaxis
PackDNHeader
[Service := ] < expression (IN) of string> ,
[Path := ] < expression (IN) of string> ,
[RawData := ] < variable (VAR) of rawbytes> ;
Informacin relacionada
Formato de encabezado
RawData
N de bytes Nota
Formato 1 Cdigo interno del IRC5 para DeviceNet
Servicio 1 Cdigo hexadecimal del servicio
Tamao de ruta 1 Bytes de entrada
Ruta x Caracteres ASCII
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.105. PackDNHeader - Empaqueta un encabezado de DeviceNet en datos rawbytes
RobotWare - OS
295 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Borrado del contenido de un dato
rawbytes
ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato
rawbytes
CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un dato
de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Funciones para bits/bytes Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.106. PackRawBytes - Empaqueta datos en un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 296


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.106. PackRawBytes - Empaqueta datos en un dato de tipo rawbytes
Utilizacin
PackRawBytes se utiliza para empaquetar el contenido de las variables de tipo num, dnum,
byte o string en un contenedor del tipo rawbytes.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PackRawBytes.
VAR rawbytes raw_data;
VAR num integer := 8;
VAR dnum bigInt := 0d4294967295;
VAR num float := 13.4;
VAR byte data1 := 122;
VAR byte byte1;
VAR string string1:="abcdefg";
PackDNHeader "10", "20 1D 24 01 30 64", raw_data;
Empaquetamiento del encabezado de DeviceNet en un dato raw_data.
A continuacin, se empaquetan en raw_data los datos de bus de campo solicitados, con
ayuda de PackRawBytes. En el ejemplo siguiente se demuestra la posibilidad de aadir
distintos tipos de datos.
Ejemplo 1
PackRawBytes integer, raw_data, (RawBytesLen(raw_data)+1) \IntX :=
DINT;
El contenido de los 4 bytes siguientes al encabezado de raw_data ser un 8 decimal.
Ejemplo 2
PackRawBytes bigInt, raw_data, (RawBytesLen(raw_data)+1) \IntX :=
LINT;
El contenido de los 8 bytes siguientes al encabezado de raw_data ser 4294967295
decimal.
Ejemplo 3
PackRawBytes float, raw_data, RawBytesLen(raw_data)+1) \Float4;
El contenido de los 4 bytes siguientes de raw_data ser un 13,4 decimal.
Ejemplo 4
PackRawBytes data1, raw_data, (RawBytesLen(raw_data)+1) \ASCII;
El contenido del byte siguiente de raw_data ser 122, el cdigo ASCII de "z".
Ejemplo 5
PackRawBytes string1, raw_data, (RawBytesLen(raw_data)+1) \ASCII;
El contenido de los 7 bytes siguientes de raw_data ser "abcdefg", codificado en ASCII.
Ejemplo 6
byte1 := StrToByte("1F" \Hex);
PackRawBytes byte1, raw_data, (RawBytesLen(raw_data)+1) \Hex1;
El contenido del byte siguiente de raw_data ser "1F" hexadecimal.
Contina en la pgina siguiente
1 Instrucciones
1.106. PackRawBytes - Empaqueta datos en un dato de tipo rawbytes
RobotWare - OS
297 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
PackRawBytes Value RawData [ \Network ] StartIndex
[ \Hex1 ] | [ \IntX ] | [ \Float4 ] | [ \ASCII ]
Value
Tipo de dato: anytype
Datos a empaquetar en RawData.
Los tipos de datos permitidos son: num, dnum, byte o string. No es posible usar una
matriz.
RawData
Tipo de dato: rawbytes
El contenedor de variable en el que se almacenarn los datos empaquetados.
[ \Network ]
Tipo de dato: switch
Indica que los valores de tipo integer y float deben empaquetarse con la representacin
big-endian (orden de red) en RawData. Tanto ProfiBus como InterBus utilizan big-endian.
Sin este modificador, los valores integer y float se empaquetan con la representacin
little-endian (sin el orden de la red) en RawData. DeviceNet utiliza little-endian.
Slo relevante junto con los parmetros opcionales \IntX - UINT, UDINT, INT, DINT y
\Float4.
StartIndex
Tipo de dato: num
StartIndex, entre 1 y 1.024, indica en qu lugar de Value debe situarse el primer byte
contenido en RawData.
[ \Hex1 ]
Tipo de dato: switch
El Value a empaquetar tiene el formato byte y debe convertirse al formato hexadecimal y
almacenarse en 1 byte en RawData.
[ \IntX ]
Tipo de dato: inttypes
El valor Value a empaquetar tiene el formato num o dnum. Se trata de un entero y debe
almacenarse en RawData de acuerdo con esta constante especificada del tipo de dato
inttypes.
Consulte Datos predefinidos en la pgina 298.
[ \Float4 ]
Tipo de dato: switch
El Value a empaquetar tiene el formato num y debe almacenarse en RawData como flotante
en 4 bytes.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.106. PackRawBytes - Empaqueta datos en un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 298


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ASCII ]
Tipo de dato: switch
El Value a empaquetar tiene el formato byte o string.
Si el valor Value a empaquetar tiene el formato byte, se almacenar en RawData como 1
byte que interpreta Value como el cdigo ASCII de un carcter.
Si el valor Value a empaquetar tiene el formato de cadena (de 1 a 80 caracteres), se
almacenar en RawData como caracteres ASCII con tantos caracteres como contenga Value.
Los datos de cadena no son terminados con NULL por el sistema en el caso de los datos de tipo
rawbytes. El programador es el responsable de aadir un encabezado de cadena en caso
necesario (obligatorio en el caso de DeviceNet).
Es imprescindible programar uno de los argumentos \Hex1, \IntX, \Float4 o \ASCII.
Se permiten las combinaciones siguientes:
*) Debe ser un entero dentro del rango de valor de la constante simblica seleccionada,
USINT, UINT, UDINT, SINT, INT o DINT.
*) Debe ser un entero dentro del rango de valor de la constante simblica seleccionada,
USINT, UINT, UDINT, ULINT, SINT, INT, DINT o LINT.
Ejecucin de programas
Durante la ejecucin del programa, se empaquetan los datos de la variable de tipo anytype
en un contenedor de tipo rawbytes.
La longitud actual de los bytes vlidos de la variable RawData cambia a:
(StartIndex +nmero_de_bytes_empaquetados - 1)
La longitud actual de los bytes vlidos de la variable RawData no cambia si la
totalidad de la operacin de empaquetado se realiza dentro de la longitud anterior de
bytes vlidos de la variable RawData.
Datos predefinidos
Se han definido las constantes simblicas siguientes para el tipo de dato inttypes. Puede
usarlas para especificar el entero en el parmetro \IntX.
Tipo de dato de Value: Parmetros de opcin permitidos:
num *) \IntX
dnum **) \IntX
num \Float4
string \ASCII (de 1 a 80 caracteres)
byte \Hex1 \ASCII ob
Constante
simblica
Valor
constante
Formato de entero Rango de valores enteros
USINT 1 Entero de 1 byte sin signo 0 ... 255
UINT 2 Entero de 2 byte sin signo 0 ... 65 535
UDINT 4 Entero de 4 byte sin signo 0 - 8 388 608 *)
ULINT 8 Entero de 8 byte sin signo 0 - 4503599627370495**)
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.106. PackRawBytes - Empaqueta datos en un dato de tipo rawbytes
RobotWare - OS
299 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
*) Limitacin de RAPID para el almacenamiento de enteros en el tipo de dato num.
*) Limitacin de RAPID para el almacenamiento de enteros en el tipo de dato dnum.
Sintaxis
PackRawBytes
[Value := ] < expression (IN) of anytype> ,
[RawData := ] < variable (VAR) of rawbytes>
[ \ Network ] ,
[StartIndex := ] < expression (IN) of num>
[ \ Hex1 ]
| [ \ IntX := < expression (IN) of inttypes>]
|[ \ Float4 ]
| [ \ ASCII] ;
Informacin relacionada
SINT - 1 Entero de 1 bytes con signo - 128 ... 127
INT - 2 Entero de 2 bytes con signo - 32 768 ... 32 767
DINT - 4 Entero de 4 bytes con signo - 8 388 607 ... 8 388 608 *)
LINT - 8 Entero de 8 bytes con signo - 4503599627370495...
4503599627370495 **)
Constante
simblica
Valor
constante
Formato de entero Rango de valores enteros
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Borrado del contenido de un dato rawbytes ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato rawbytes CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Funciones para bits/bytes Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Continuacin
1 Instrucciones
1.107. PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 300


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.107. PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria
Utilizacin
PathAccLim (Path Acceleration Limitation) se usa para establecer o restablecer limitaciones
de aceleracin y/o deceleracin de 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
xx0500002184
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PathAccLim.
Consulte tambin Ms ejemplos en la pgina 301.
Ejemplo 1
PathAccLim TRUE \AccMax := 4, TRUE \DecelMax := 4;
Se limita a 4 m/s
2
la aceleracin y la deceleracin del TCP.
Ejemplo 2
PathAccLim FALSE, FALSE;
Se devuelven la aceleracin y deceleracin del TCP a sus valores mximos
(predeterminados).
Contina en la pgina siguiente
1 Instrucciones
1.107. PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria
RobotWare - OS
301 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 usa una combinacin de instrucciones AccSet y PathAccLim, el sistema reduce la
aceleracin y deceleracin en el orden siguiente:
Segn AccSet
Segn PathAccLim
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PathAccLim.
xx0500002183
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.107. PathAccLim - Reduce la aceleracin del TCP a lo largo de la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 302


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 1
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 la aceleracin del TCP a 4 m/s
2
entre p1 y p3.
Ejemplo 2
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 la aceleracin del TCP a 3 m/s
2
entre p2 y p3.
Se limita a 4 m/s
la deceleracin del TCP2
entre p2 y p3.
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.
Limitaciones
La aceleracin/deceleracin mnima permitida es de 0,5 m/s
2
.
Sintaxis
PathAccLim
[ AccLim := ] < expression (IN) of bool >
[\AccMax := <expression (IN) of num >],
[DecelLim := ] < expression (IN) of bool>
[\DecelMax := <expression (IN) of num >];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Datos de parmetros de movimiento motsetdata - Datos de parmetros de
movimiento en la pgina 1137
Reduccin de la aceleracin AccSet - Reduce la aceleracin en la pgina
15
Continuacin
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
303 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Utilizacin
PathRecMoveBwd se utiliza para hacer retroceder el robot a lo largo de una trayectoria
grabada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PathRecMoveBwd.
Consulte tambin Ms ejemplos en la pgina 305.
Ejemplo 1
VAR pathrecid fixture_id;
PathRecMoveBwd \ID:=fixture_id \ToolOffs:=[0, 0, 10] \Speed:=v500;
El robot se mueve hacia atrs hasta la posicin del programa en la que la instruccin
PathRecStart insert el identificador fixture_id. El offset del TCP est situado 10 mm
en la direccin Z y la velocidad es de 500 mm/s.
Argumentos
PathRecMoveBwd [\ID] [\ToolOffs] [\Speed]
[\ID]
Identifier
Tipo de dato: pathrecid
Una variable que especifica la posicin de ID hasta la que se desea retroceder. El tipo de dato
pathrecid es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de grabacin.
Si no se especifica ninguna posicin de ID, el movimiento de retroceso se realiza en un
sistema sencillo hasta la posicin de ID ms cercana que se haya grabado. Sin embargo, en
un sistema MultiMove en modo sincronizado, los movimientos de retroceso se realizan hasta
la ms cercana de las posiciones siguientes:
Regreso a la posicin en la que se inici el movimiento sincronizado
Regreso hasta la posicin de ID ms cercana grabada
[\ToolOffs]
Tool Offset
Tipo de dato: pos
Proporciona un offset de separacin del TCP durante el movimiento. Se aplica una
coordenada de offset cartesiana a las coordenadas del TCP. El valor de offset Z positivo indica
la separacin. Resulta til si el robot ejecuta un proceso en el que se aade material. Si se est
utilizando el movimiento sincronizado, o bien todas o ninguna de las unidades mecnicas
deben utilizar este argumento. Si no se desea utilizar ningn offset en algunas unidades
mecnicas, es posible aplicar un offset cero. Incluso las unidades mecnicas sin TCP deben
utilizar el argumento si se usa un robot con TCP perteneciente a otra tarea.
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 304


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Speed]
Tipo de dato: speeddata
Esta velocidad reemplaza a la velocidad original utilizada durante el movimiento de avance.
Speeddata define la velocidad del punto central de la herramienta, la reorientacin de la
misma y los ejes externos. Si est presente, esta velocidad se utiliza durante todo el
movimiento de retroceso. Si se omite, el movimiento de retroceso se ejecuta a la velocidad de
las instrucciones de movimiento originales.
Ejecucin de programas
La grabadora de trayectorias se activa con la instruccin PathRecStart. Una vez que la
grabadora se ha iniciado, todas las instrucciones de movimiento quedan grabadas y el robot
puede retroceder en cualquier momento a lo largo de la trayectoria grabada, con ayuda de
PathRecMoveBwd.
Movimiento sincronizado
La ejecucin de la grabadora de trayectorias durante el movimiento sincronizado supone
algunas consideraciones adicionales.
Todas las tareas implicadas en el movimiento grabado sincronizado deben ejecutar
PathRecMoveBwd antes de que ninguno de los robots empiece a moverse.
Todo el manejo de la sincronizacin se graba y ejecuta de forma invertida. Por
ejemplo, si se ejecuta PathRecMoveBwd dentro de un bloque de sincronizacin hacia
una posicin independiente, la grabadora de trayectorias cambiar automticamente el
estado al modo independiente al ejecutarse la instruccin SyncMoveOn.
SyncMoveOn se considera como punto de ruptura sin identificador de trayectoria. Es
decir, si la grabadora de trayectorias ha sido puesta en marcha por medio de
PathRecStart y PathRecMoveBwd sin el argumento opcional \ID dentro de un
bloque con movimiento sincronizado, el robot retrocede hasta la posicin en la que se
encontraba cuando se ejecut SyncMoveOn. Dado que el movimiento hacia atrs se
detiene antes de SyncMoveOn, el estado cambia al modo independiente.
WaitSyncTask se considera como punto de ruptura sin identificador de trayectoria.
Es decir, si la grabadora de trayectorias ha sido puesta en marcha por medio de
PathRecStart y se ejecuta PathRecMoveBwd, el robot retroceder no ms all de la
posicin en la que se encontraba en el momento de ejecutarse WaitSyncTask.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
305 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PathRecMoveBwd.
Ejemplo 1 - Movimiento independiente
VAR pathrecid safe_id;
CONST robtarget p0 := [...];
...
CONST robtarget p4 := [...];
VAR num choice;
MoveJ p0, vmax, z50, tool1;
PathRecStart safe_id;
MoveJ p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
MoveL p3, vmax, z50, tool1;
MoveL p4, vmax, z50, tool1;
ERROR:
TPReadFK choice,"Go to
safe?",stEmpty,stEmpty,stEmpty,stEmpty,"Yes";
IF choice=5 THEN
IF PathRecValidBwd(\ID:=safe_id) THEN
StorePath;
PathRecMoveBwd \ID:=safe_id \ToolOffs:=[0, 0 , 10];
Stop;
!Fix problem
PathRecMoveFwd;
RestoPath;
StartMove;
RETRY;
ENDIF
ENDIF
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 306


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
xx0500002135
En este ejemplo se muestra cmo puede usarse la grabadora de trayectorias para extraer el
robot de espacios reducidos en caso de error, sin necesidad de programar una trayectoria
designada.
Se fabrica una pieza. En el punto de aproximacin, p0, la grabadora de trayectorias se inicia
y se le asigna el identificador de grabadora de trayectorias safe_id. Suponga que durante el
movimiento del robot de p3 a p4 se produce un error recuperable. En ese punto, la trayectoria
se almacena ejecutando StorePath. Al almacenar la trayectoria, el gestor de errores puede
iniciar un nuevo movimiento y reiniciar ms adelante el movimiento original. Una vez que la
trayectoria ha quedado almacenada, se usa la grabadora de trayectorias para hacer retroceder
el robot hasta una posicin segura, p0, mediante la ejecucin de PathRecMoveBwd.
Recuerde que se aplica un offset de herramienta para disponer de una separacin, por ejemplo
respecto de una nueva soldadura realizada. Una vez que el robot ha retrocedido, el operador
puede tomar las acciones oportunas para solucionar el error (por ejemplo limpiar la pistola de
soldadura). A continuacin, el robot es devuelto al punto en el que se produjo el error, con
ayuda de PathRecMoveFwd. En la ubicacin del error, el nivel de la trayectoria se devuelve
al nivel bsico con RestoPath y se realiza un intento de recuperacin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
307 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2 - Movimiento sincronizado
T_ROB1
VAR pathrecid HomeROB1;
CONST robtarget pR1_10:=[...];
...
CONST robtarget pR1_60:=[...];
PathRecStart HomeROB1;
MoveJ pR1_10, v1000, z50, tGun;
MoveJ pR1_20, v1000, z50, tGun;
MoveJ pR1_30, v1000, z50, tGun;
SyncMoveOn sync1, tasklist;
MoveL pR1_40 \ID:=1, v1000, z50, tGun\wobj:=pos1;
MoveL pR1_50 \ID:=2, v1000, z50, tGun\wobj:=pos1;
MoveL pR1_60 \ID:=3, v1000, z50, tGun\wobj:=pos1;
SyncMoveOff sync2;
ERROR
StorePath \KeepSync;
TEST ERRNO
CASE ERR_PATH_STOP:
PathRecMoveBwd \ID:= HomeROB1\ToolOffs:=[0,0,10];
ENDTEST
!Perform service action
PathRecMoveFwd \ToolOffs:=[0,0,10];
RestoPath;
StartMove;
T_ROB2
VAR pathrecid HomeROB2;
CONST robtarget pR2_10:=[...];
...
CONST robtarget pR2_50:=[...];
PathRecStart HomeROB2;
MoveJ pR2_10, v1000, z50, tGun;
MoveJ pR2_20, v1000, z50, tGun;
SyncMoveOn sync1, tasklist;
MoveL pR2_30 \ID:=1, v1000, z50, tGun\wobj:=pos1;
MoveL pR2_40 \ID:=2, v1000, z50, tGun\wobj:=pos1;
MoveL pR2_50 \ID:=3, v1000, z50, tGun\wobj:=pos1;
SyncMoveOff sync2;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 308


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERROR
StorePath \KeepSync;
TEST ERRNO
CASE ERR_PATH_STOP:
PathRecMoveBwd \ToolOffs:=[0,0,10];
ENDTEST
!Perform service action
PathRecMoveFwd \ToolOffs:=[0,0,10];
RestoPath;
StartMove;
T_ROB3
VAR pathrecid HomePOS1;
CONST jointtarget jP1_10:=[...];
...
CONST jointtarget jP1_40:=[...];
PathRecStart HomePOS1;
MoveExtJ jP1_10, v1000, z50;
SyncMoveOn sync1, tasklist;
MoveExtJ jP1_20 \ID:=1, v1000, z50;
MoveExtJ jP1_30 \ID:=2, v1000, z50;
MoveExtJ jP1_40 \ID:=3, v1000, z50;
SyncMoveOff sync2;
ERROR
StorePath \KeepSync;
TEST ERRNO
CASE ERR_PATH_STOP:
PathRecMoveBwd \ToolOffs:=[0,0,0];
DEFAULT:
PathRecMoveBwd \ID:=HomePOS1\ToolOffs:=[0,0,0];
ENDTEST
!Perform service action
PathRecMoveFwd \ToolOffs:=[0,0,0];
RestoPath;
StartMove;
El sistema se compone de tres manipuladores, todos ellos ejecutndose en tareas separadas.
Suponga que T_ROB1 sufre un error ERR_PATH_STOP dentro del bloque sincronizado,
sync1. En el error, se desea retroceder hasta la posicin de inicio marcada con el
identificador HomeROB1 de la grabadora de trayectorias, para realizar un servicio en el equipo
externo del robot. Esto se realiza mediante PathRecMoveBwd e indicando el identificador
pathrecid.
Dado que el error se produjo durante el movimiento sincronizado, es necesario que el segundo
robot con TCP T_ROB2 y el eje externo T_POS1 tambin ejecuten PathRecMoveBwd. Estos
manipuladores no tienen por qu retroceder ms all del punto en el que se inici el
movimiento sincronizado. Al no suministrar PathRecMoveBwd en ERR_PATH_STOP con un
identificador de grabadora de trayectorias, se aprovecha la capacidad de la grabadora de
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
309 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
trayectorias para detenerse a continuacin de SyncMoveOn. Recuerde que el eje externo que
no tiene TCP sigue aadiendo un offset cero de herramienta, para permitir la posibilidad de
que los robots con TCP lo hagan tambin.
El comportamiento DEFAULT del gestor de ERROR de este ejemplo es que todos los
manipuladores realicen en primer lugar los movimientos sincronizados hacia atrs y a
continuacin los movimientos independientes hacia atrs hasta el punto de inicio de la
trayectoria grabada. Esto se consigue especificando \ID en PathRecMoveBwd para todos los
manipuladores.
Limitaciones
Los movimientos realizados utilizando la grabadora de trayectorias no pueden realizarse en
el nivel de base. Es decir, debe ejecutarse StorePath antes de ejecutar PathRecMoveBwd.
En ningn caso es posible retroceder ms all de una sentencia SynchMoveOff.
En ningn caso es posible retroceder ms all de una sentencia WaitSyncTask.
La instruccin SyncMoveOn debe ir precedida de al menos un movimiento independiente, si
se desea retroceder hasta la posicin en la que se inici el movimiento sincronizado.
Si no se desea volver al punto en el que se ejecut PathRecMoveBwd (mediante la ejecucin
de PathRecMoveFwd) es necesario detener la grabadora de trayectorias con la instruccin
PathRecStop. PathRecStop\Clear tambin borra la trayectoria grabada.
PathRecMoveBwd no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop, Restart, o Reset.
Sintaxis
PathRecMoveBwd
[ \ ID := < variable (VAR) of pathrecid > ]
[ \ ToolOffs:= <expression (IN) of pos> ]
[ \ Speed:= <expression (IN) of speeddata> ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificador de grabadora de trayectorias pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Inicio y detencin de la grabadora de trayec-
torias
PathRecStart - Inicia la grabadora de trayecto-
rias en la pgina 314
PathRecStop - Detiene la grabadora de trayec-
torias en la pgina 317
Comprobacin de que la trayectoria
grabada es correcta
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en la
pgina 931
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayecto-
rias hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.108. PathRecMoveBwd - Hace retroceder la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 310


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Almacenamiento y restauracin de trayecto-
rias
StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria despus
de una interrupcin en la pgina 370
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Recuperacin en caso de error Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.109. PathRecMoveFwd - Hace avanzar la grabadora de trayectorias
PathRecovery
311 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.109. PathRecMoveFwd - Hace avanzar la grabadora de trayectorias
Utilizacin
PathRecMoveFwd se utiliza para mover el robot de nuevo a la posicin en la que se ejecut
PathRecMoveBwd. Tambin es posible hacer avanzar parcialmente al robot, mediante un
identificador que se entrega durante el movimiento de retroceso.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de cmo utilizar la instruccin
PathRecMoveFwd.
Consulte tambin Ms ejemplos en la pgina 312.
Ejemplo 1
PathRecMoveFwd;
Se devuelve al robot a la posicin en la cual la grabadora de trayectorias inici el movimiento
de retroceso.
Argumentos
PathRecMoveFwd [\ID] [\ToolOffs] [\Speed]
[\ID]
Identifier
Tipo de dato: pathrecid
Una variable que especifica la posicin de ID hasta la que se desea avanzar. El tipo de dato
pathrecid es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de grabacin.
Si no se especifica ninguna posicin de ID, el movimiento de avance se realiza siempre hasta
la posicin de interrupcin de la trayectoria original.
[\ToolOffs]
Tool Offset
Tipo de dato: pos
Proporciona un offset de separacin del TCP durante el movimiento. Se aplica una
coordenada cartesiana a las coordenadas del TCP. Resulta til si el robot ejecuta un proceso
en el que se aade material.
[\Speed]
Tipo de dato: speeddata
Esta velocidad tiene prioridad sobre la velocidad original utilizada durante el movimiento de
avance. Speeddata define la velocidad del punto central de la herramienta, la reorientacin de
la misma y los ejes externos. Si est presente, esta velocidad se utiliza durante todo el
movimiento de avance. Si se omite, el movimiento de avance se ejecuta a la velocidad de las
instrucciones de movimiento originales.
Contina en la pgina siguiente
1 Instrucciones
1.109. PathRecMoveFwd - Hace avanzar la grabadora de trayectorias
PathRecovery
3HAC16581-5 Revisin: H 312


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La grabadora de trayectorias se activa con la instruccin PathRecStart. Una vez que la
grabadora se ha iniciado, el robot puede retroceder a lo largo de la trayectoria ejecutada, con
ayuda de PathRecMoveBwd. Posteriormente, es posible solicitar al robot que vuelva a la
posicin en la que se inici la ejecucin hacia atrs. Para ello se llama a PathRecMoveFwd.
Tambin es posible hacer avanzar parcialmente al robot, mediante un identificador que se
entrega durante el movimiento de retroceso.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PathRecMoveFwd.
VAR pathrecid start_id;
VAR pathrecid mid_id;
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
PathRecStart start_id;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
PathRecStart mid_id;
MoveL p3, vmax, z50, tool1;
StorePath;
PathRecMoveBwd \ID:=start_id;
PathRecMoveFwd \ID:=mid_id;
PathRecMoveFwd;
RestoPath;
xx0500002133
En el ejemplo anterior, se inicia la grabadora de trayectorias y se marca el punto inicial con
el identificador de trayectoria start_id. A partir de ese momento, el robot avanzar con las
instrucciones de movimiento tradicionales y volver al identificador de grabadora de
trayectorias start_id mediante la trayectoria grabada. Por ltimo, volver a avanzar en dos
pasos mediante PathRecMoveFwd.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.109. PathRecMoveFwd - Hace avanzar la grabadora de trayectorias
PathRecovery
313 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los movimientos realizados utilizando la grabadora de trayectorias deben tener lugar en el
nivel de la rutina TRAP. Es decir, es necesario ejecutar StorePath antes que
PathRecMoveFwd.
Para poder ejecutar PathRecMoveFwd, es necesario haber ejecutado anteriormente una
instruccin PathRecMoveBwd.
Si no se desea volver al punto en el que se ejecut PathRecMoveBwd (mediante la ejecucin
de PathRecMoveFwd) es necesario detener la grabadora de trayectorias con la instruccin
PathRecStop. PathRecStop\Clear tambin borra la trayectoria grabada.
PathRecMoveFwd no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop, Restart o Reset.
Sintaxis
PathRecMoveFwd (
[ \ ID := < variable (VAR) of pathid > ]
[ \ ToolOffs := <expression (IN) of pos> ]
[ \ Speed := <expression (IN) of speeddata> ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificadores de grabadora de trayectorias pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Inicio y detencin de la grabadora de trayec-
torias
PathRecStart - Inicia la grabadora de trayec-
torias en la pgina 314
PathRecStop - Detiene la grabadora de
trayectorias en la pgina 317
Comprobacin de que la trayectoria grabada
es correcta
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en la
pgina 931
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayecto-
rias hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Almacenamiento y restauracin de trayecto-
rias
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Recuperacin en caso de error Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Recuperacin en caso de error
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Continuacin
1 Instrucciones
1.110. PathRecStart - Inicia la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 314


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.110. PathRecStart - Inicia la grabadora de trayectorias
Utilizacin
PathRecStart se utiliza para iniciar la grabacin de la trayectoria del robot. La grabadora
de trayectorias almacena la informacin de las trayectorias durante la ejecucin del programa
de RAPID.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PathRecStart.
Ejemplo 1
VAR pathrecid fixture_id;
PathRecStart fixture_id;
Se inicia la grabadora de trayectorias y el punto inicial (la posicin de la instruccin en el
programa de RAPID) se marca con el identificador fixture_id.
Argumentos
PathRecStart ID
ID
Identifier
Tipo de dato:pathrecid
Una variable que especifica el nombre de la posicin de inicio de la grabacin. El tipo de dato
pathrecid es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de grabacin.
Ejecucin de programas
Cuando se solicita su inicio, la grabadora de trayectorias inicia la grabacin interna de la
trayectoria del robot en el controlador del robot. La secuencia de posiciones de programa
grabada puede recorrerse en sentido inverso mediante PathRecMoveBwd, haciendo que el
robot retroceda a lo largo de la trayectoria ejecutada.
Contina en la pgina siguiente
1 Instrucciones
1.110. PathRecStart - Inicia la grabadora de trayectorias
Path Recovery
315 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PathRecStart.
Ejemplo 1
VAR pathrecid origin_id;
VAR pathrecid corner_id;
VAR num choice;
MoveJ p1, vmax, z50, tool1;
PathRecStart origin_id;
MoveJ p2, vmax, z50, tool1;
PathRecStart corner_id;
MoveL p3, vmax, z50, tool1;
MoveAbsJ jt4, vmax, fine, tool1;
ERROR
TPReadFK choice,"Extract
to:",stEmpty,stEmpty,stEmpty,"Origin","Corner";
IF choice=4 OR choice=5 THEN
StorePath;
IF choice=4 THEN
PathRecMoveBwd \ID:=origin_id;
ELSE
PathRecMoveBwd \ID:=corner_id;
ENDIF
Stop;
!Fix problem
PathRecMoveFwd;
RestoPath;
StartMove;
RETRY;
ENDIF
En el ejemplo anterior, la grabadora de trayectorias se utiliza para mover el robot hasta una
posicin de servicio en caso de que se produzca un error durante la ejecucin normal.
El robot ejecuta el movimiento a lo largo de una trayectoria. Despus de la posicin p1, se
inicia la grabadora de trayectorias. Despus del punto p2, se inserta otro identificador de
trayectoria. Suponga que se produce un error recuperable durante el movimiento desde la
posicin p3 hasta la posicin jt4. En este momento puede ejecutarse el gestor de errores, y
el usuario tiene la opcin de extraer el robot hasta las posiciones Origin (punto p1) o
Corner (punto p2). A continuacin, se cambia el nivel de la trayectoria con StorePath,
para poder reiniciar el movimiento ms adelante en el lugar del error. Una vez que el robot ha
retrocedido desde la posicin del error, el usuario tiene la opcin de resolver el error
(normalmente solucionando el problema en el equipo que rodea al robot).
A continuacin, se ordena el retroceso del robot hasta la posicin del error. El nivel de la
trayectoria se devuelve al nivel normal y se realiza un intento de recuperacin.
Limitaciones
La grabadora de trayectorias slo puede iniciarse y slo grabar la trayectoria en el nivel de
trayectoria de base. Es decir, los movimientos del nivel StorePath no se graban.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.110. PathRecStart - Inicia la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 316


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
PathRecStart
[ ID :=] < variable (VAR) of pathrecid> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificadores de grabadora de trayectorias pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Detencin de la grabadora de trayectorias PathRecStop - Detiene la grabadora de
trayectorias en la pgina 317
Comprobacin de que la trayectoria grabada
es correcta
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en la
pgina 931
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayecto-
rias hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Reproduccin de la grabacin de trayecto-
rias hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Continuacin
1 Instrucciones
1.111. PathRecStop - Detiene la grabadora de trayectorias
Path Recovery
317 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.111. PathRecStop - Detiene la grabadora de trayectorias
Utilizacin
PathRecStop se utiliza para detener la grabacin de la trayectoria del robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PathRecStop.
Consulte tambin Ms ejemplos, a continuacin.
Ejemplo 1
PathRecStop \Clear;
Se detiene la grabadora de trayectorias y se vaca el bfer de informacin de trayectorias
grabada.
Argumentos
PathRecStop [\Clear]
[\Clear]
Tipo de dato:switch
Borra la trayectoria grabada.
Ejecucin de programas
Cuando se solicita la detencin de la grabadora de trayectorias, la grabacin de la trayectoria
se detiene. El argumento opcional \Clear elimina del bfer la informacin de la trayectoria
grabada, impidiendo la ejecucin accidental de la trayectoria grabada.
Una vez que la grabadora ha sido detenida con PathRecStop, no es posible utilizar las
trayectorias grabadas anteriormente para los movimientos de retroceso (PathRecMoveBwd).
Sin embargo, s es posible utilizar trayectorias grabadas anteriormente si se ejecuta de nuevo
PathRecStart desde la misma posicin en la que fue detenida la grabadora de trayectorias.
Consulte el ejemplo siguiente.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PathRecStop.
LOCAL VAR pathrecid id1;
LOCAL VAR pathrecid id2;
LOCAL CONST robtarget p0:= [...];
......
LOCAL CONST robtarget p6 := [...];
Contina en la pgina siguiente
1 Instrucciones
1.111. PathRecStop - Detiene la grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 318


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC example1()
MoveL p0, vmax, z50, tool1;
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
PathRecStop;
MoveL p3, vmax, z50, tool1;
MoveL p4, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
PathRecStart id2;
MoveL p5, vmax, z50, tool1;
MoveL p6, vmax, z50, tool1;
StorePath;
PathRecMoveBwd \ID:=id1;
PathRecMoveFwd;
RestoPath;
StartMove;
MoveL p7, vmax, z50, tool1;
ENDPROC
PROC example2()
MoveL p0, vmax, z50, tool1;
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
PathRecStop;
MoveL p3, vmax, z50, tool1;
MoveL p4, vmax, z50, tool1;
PathRecStart id2;
MoveL p2, vmax, z50, tool1;
MoveL p5, vmax, z50, tool1;
MoveL p6, vmax, z50, tool1;
StorePath;
PathRecMoveBwd \ID:=id1;
PathRecMoveFwd;
RestoPath;
StartMove;
MoveL p7, vmax, z50, tool1;
ENDPROC
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.111. PathRecStop - Detiene la grabadora de trayectorias
Path Recovery
319 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
xx0500002101
En los ejemplos anteriores se describe la grabacin de la trayectoria del robot en el momento
de la detencin de la trayectoria en medio de una secuencia. En example1, la orden
PathRecMoveBwd \ID:=id1; es vlida y el robot ejecuta la trayectoria siguiente: p6 ->
p5 -> p2 -> p1 -> p0
El motivo de que la orden sea vlida es que la grabadora fue detenida e iniciada en la misma
posicin exacta del robot. Si no es un comportamiento deseado, la orden de detencin debe
incluir el argumento opcional \Clear. De esta forma, la trayectoria grabada se borrar y no
volver a ser posible retroceder hasta los identificadores anteriores de la grabadora de
trayectorias.
La nica diferencia en el caso de example2 es el punto en el que se inici la grabadora por
segunda vez. En este caso, PathRecMoveBwd \ID:=id1 genera un error. Esto se debe a que
no existe ninguna trayectoria grabada entre p4, p3 y p2. Sin embargo, es posible ejecutar
PathRecMoveBwd \ID:=id2.
Sintaxis
PathRecStop
[ \switch Clear ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificadores de grabadora de trayectorias pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Inicio de la grabadora de trayectorias PathRecStart - Inicia la grabadora de trayec-
torias en la pgina 314
Comprobacin de que la trayectoria grabada
es correcta
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en la
pgina 931
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayecto-
rias hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Reproduccin de la grabacin de trayecto-
rias hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Continuacin
1 Instrucciones
1.112. PathResol - Ajusta la resolucin de la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 320


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.112. PathResol - Ajusta la resolucin de la trayectoria
Utilizacin
PathResol (Path Resolution) se utiliza para ajustar el tiempo configurado de muestreo de
trayectoria geomtrica de los parmetros de sistema para las unidades mecnicas controladas
desde la tarea de programa actual.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
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. 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PathResol.
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.
Contina en la pgina siguiente
1 Instrucciones
1.112. PathResol - Ajusta la resolucin de la trayectoria
RobotWare - OS
321 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
En un sistema a MultiMove en el modo coordinado sincronizado son vlidos los siguientes
puntos:
Todas las unidades mecnicas incluidas en el modo coordinado sincronizado se
ejecutan con la resolucin de trayectoria actual para el planificador de movimientos
actual (utilizado).
Un nuevo orden de resolucin de trayectoria frente al planificador de movimientos
actual afecta al movimiento coordinado sincronizado y al movimiento independiente
posterior de ese planificador de movimientos.
Un nuevo orden de resolucin de trayectoria frente a otro planificador de movimientos
slo afecta al movimiento independiente posterior de ese planificador de
movimientos.
Para ms informacin acerca de la conexin entre la tarea de programa y el planificador de
movimientos, consulte el Manual de aplicaciones - MultiMove.
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) del componente pathresol.
Limitacin
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.
PathResol no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop, o Restart.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.112. PathResol - Ajusta la resolucin de la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 322


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
PathResol
[PathSampleTime := ] < expression (IN) of num> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Parmetros de movimiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Parmetros de movimiento
Configuracin de la resolucin de la
trayectoria
Manual de referencia tcnica - Parmetros del
sistema, seccin Motion Planner - CPU Load
Equalization
Continuacin
1 Instrucciones
1.113. PDispOff - Desactiva el desplazamiento de programa
RobotWare - OS
323 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.113. PDispOff - Desactiva el desplazamiento de programa
Utilizacin
PDispOff (Program Displacement Off) 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PDispOff.
Ejemplo 1
PDispOff;
Desactivacin del desplazamiento de programa.
Ejemplo 2
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 ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin del desplazamiento de programa
con dos posiciones
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Definicin del desplazamiento de programa
con una base de coordenadas conocida
PDispSet - Activa un desplazamiento de
programa a partir de una base de
coordenadas conocida en la pgina 328
1 Instrucciones
1.114. PDispOn - Activa el desplazamiento de programa
RobotWare - OS
3HAC16581-5 Revisin: H 324


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.114. PDispOn - Activa el desplazamiento de programa
Utilizacin
PDispOn (Program Displacement On) 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PDispOn.
Consulte tambin Ms ejemplos en la pgina 326.
Ejemplo 1
MoveL p10, v500, z10, tool1;
PDispOn \ExeP:=p10, p20, tool1;
Activacin de un desplazamiento de programa (desplazamiento en paralelo). El offset se
calcula a partir de la diferencia entre las posiciones p10 y p20.
Ejemplo 2
MoveL p10, v500, fine \Inpos := inpos50, tool1;
PDispOn *, tool1;
Activacin de un desplazamiento de programa (desplazamiento 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.
Ejemplo 3
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 ]
Rotation
Tipo de dato: switch
La diferencia de orientacin de la herramienta se tiene en cuenta, lo cual implica una rotacin
del programa.
[ \ExeP ]
Executed Point
Tipo de dato: robtarget
La nueva posicin del robot, utilizada para el clculo del desplazamiento. Si se omite el
argumento, se utiliza la posicin actual del robot en el momento de la ejecucin del programa.
Contina en la pgina siguiente
1 Instrucciones
1.114. PDispOn - Activa el desplazamiento de programa
RobotWare - OS
325 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ProgPoint
Programmed Point
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 ]
Work Object
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 siguiente, que muestra el desplazamiento lateral de una posicin
programada, con ayuda del desplazamiento de programa.
xx0500002186
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.114. PDispOn - Activa el desplazamiento de programa
RobotWare - OS
3HAC16581-5 Revisin: H 326


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente, que muestra la traslacin y
rotacin de una posicin programada.
xx0500002187
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
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin PDispOn.
Ejemplo 1
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;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.114. PDispOn - Activa el desplazamiento de programa
RobotWare - OS
327 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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
siguiente, que muestra que cuando se usa el desplazamiento de programa, es posible reutilizar
patrones de movimiento.
xx0500002185
Ejemplo 2
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 (desplazamiento 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 := < expression (IN) of robtarget>],]
[ ProgPoint := ] < expression (IN) of robtarget> ,
[ Tool := ] < persistent (PERS) of tooldata>
[ \WObj := < persistent (PERS) of wobjdata> ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin del desplazamiento de
programa
PDispOff - Desactiva el desplazamiento de
programa en la pgina 323
Definicin del desplazamiento de programa
con una base de coordenadas conocida
PDispSet - Activa un desplazamiento de
programa a partir de una base de
coordenadas conocida en la pgina 328
Sistemas de coordenadas Manual de referencia tcnica - Parmetros del
sistema, seccin Principios de movimiento y
E/S - Sistemas de coordenadas
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Continuacin
1 Instrucciones
1.115. PDispSet - Activa un desplazamiento de programa a partir de una base de coordenadas conocida
RobotWare - OS
3HAC16581-5 Revisin: H 328


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.115. PDispSet - Activa un desplazamiento de programa a partir de una base de
coordenadas conocida
Utilizacin
PDispSet (Program Displacement Set) se usa para definir y activar un desplazamiento de
programa usando la base de coordenadas conocida.
El desplazamiento de programa se utiliza, por ejemplo, cuando se repiten patrones de
movimiento similares en partes distintas del programa.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PDispSet.
Ejemplo 1
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 siguiente).
Siempre y cuando est activado este desplazamiento de programa, todas las posiciones
se desplazan 100 mm en la direccin del eje x.
La figura muestra un desplazamiento de programa de 100 mm a lo largo del eje x.
xx0500002199
Argumentos
PDispSet DispFrame
DispFrame
Displacement Frame
Tipo de dato: pose
El desplazamiento de programa se define mediante un dato del tipo pose.
Contina en la pgina siguiente
1 Instrucciones
1.115. PDispSet - Activa un desplazamiento de programa a partir de una base de coordenadas conocida
RobotWare - OS
329 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 siguiente, que muestra la traslacin y rotacin de
una posicin programada.
xx0500002204
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 := ] < expression (IN) of pose> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin del desplazamiento de
programa
PDispOff - Desactiva el desplazamiento de
programa en la pgina 323
Definicin del desplazamiento de programa
con dos posiciones
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Definicin de datos del tipo pose pose - Transformaciones de coordenadas en
la pgina 1158
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Ejemplos de cmo puede usarse el
desplazamiento de programa
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Continuacin
1 Instrucciones
1.116. ProcCall - Llama a un nuevo procedimiento
RobotWare - OS
3HAC16581-5 Revisin: H 330


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.116. ProcCall - Llama a un nuevo procedimiento
Utilizacin
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 bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ProcCall.
Ejemplo 1
weldpipe1;
Llama al procedimiento weldpipe1.
Ejemplo 2
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
Identifier
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).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ProcCall.
Ejemplo 1
weldpipe2 10, lowspeed;
Llama al procedimiento weldpipe2, con dos argumentos.
Ejemplo 2
weldpipe3 10 \speed:=20;
Llama al procedimiento weldpipe3, con un argumento obligatorio y un argumento opcional.
Contina en la pgina siguiente
1 Instrucciones
1.116. ProcCall - Llama a un nuevo procedimiento
RobotWare - OS
331 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. Normalmente se permiten
ms de 10 niveles.
Sintaxis
(EBNF)
<procedure> [ <argument list> ] ;
<procedure> ::= <identifier>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Argumentos, parmetros Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Continuacin
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
3HAC16581-5 Revisin: H 332


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la
recuperacin tras ellos
Utilizacin
ProcerrRecovery puede usarse para generar un error de proceso durante un movimiento
del robot y ofrece la posibilidad de gestionar el error y reiniciar el proceso y el movimiento
desde un gestor de errores.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ProcerrRecovery.
Consulte tambin Ms ejemplos en la pgina 334.
Los ejemplos siguientes no son realistas, pero se aaden por motivos pedaggicos.
Ejemplo 1
MoveL p1, v50, z30, tool2;
ProcerrRecovery \SyncOrgMoveInst;
MoveL p2, v50, z30, tool2;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
StartMove;
RETRY;
ENDIF
El movimiento del robot se detiene en su camino hacia p1 y la ejecucin del programa se
transfiere al gestor de ERROR de la rutina que cre la trayectoria actual en la que se ha
producido el error, en este caso la trayectoria hacia MoveL p1. El movimiento se reinicia con
StartMove, mientras que la ejecucin contina con RETRY.
Ejemplo 2
MoveL p1, v50, fine, tool2;
ProcerrRecovery \SyncLastMoveInst;
MoveL p2, v50, z30, tool2;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
StartMove;
RETRY;
ENDIF
El movimiento del robot se detiene inmediatamente en su camino hacia p2. La ejecucin del
programa se transfiere al gestor de ERROR de la rutina en la que se est ejecutando
actualmente el programa o en la que se iba a ejecutar una instruccin de movimiento cuando
se produjo el error, en este caso MoveL p2. El movimiento se reinicia con StartMove,
mientras que la ejecucin contina con RETRY.
Contina en la pgina siguiente
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
333 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
ProcerrRecovery[\SyncOrgMoveInst] | [\SyncLastMoveInst]
[\ProcSignal]
[\SyncOrgMoveInst]
Tipo de dato: switch
El error puede ser gestionado en la rutina que cre la trayectoria actual en la que se produjo
el error.
[\SyncLastMoveInst]
Tipo de dato: switch
El error puede ser gestionado en la rutina en la que el programa est ejecutando una
instruccin de movimiento en el momento en que se produjo el error.
Si el programa no est ejecutando ninguna instruccin de movimiento en el momento en el
que se produce el error, la transferencia de la ejecucin al gestor de ERROR se retrasa hasta
que el programa ejecuta la siguiente instruccin de movimiento. Esto significa que la
transferencia al gestor de ERROR se retrasar si el robot se encuentra en un punto de paro o
entre el punto de precaptura del centro de la trayectoria de esquina. El error puede ser
gestionado en esa rutina.
[\ProcSignal]
Tipo de dato: signaldo
Un parmetro opcional que permite al usuario activar o desactivar el uso de la instruccin. Si
se utiliza este parmetro y el valor de la seal es 0, se genera un error recuperable y no se
generar ningn error de proceso.
Ejecucin de programas
La ejecucin de ProcerrRecovery en el modo continuo da lugar a lo siguiente:
Instantneamente, el robot se detiene en su trayectoria.
Se cambia la variable ERRNO a ERR_PATH_STOP.
La ejecucin se transfiere a algn gestor de ERROR, de acuerdo con las reglas para
errores elevados asncronamente.
Esta instruccin no hace nada en el modo de ejecucin paso a paso.
Para obtener una descripcin de los errores elevados asncronamente que se generan con
ProcerrRecovery, consulte el documento RAPID kernel reference/Error recovery/
Asynchronously raised errors.
ProcerrRecovery tambin puede usarse en los sistemas MultiMove para transferir la
ejecucin al gestor de ERROR de varias tareas de programa si se utiliza el modo sincronizado.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
3HAC16581-5 Revisin: H 334


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin ProcerrRecovery.
Ejemplo con ProcerrRecovery\SyncOrgMoveInst
MODULE user_module
VAR intnum proc_sup_int;
PROC main()
...
MoveL p1, v1000, fine, tool1;
do_process;
...
ENDPROC
PROC do_process()
my_proc_on;
MoveL p2, v200, z10, tool1;
MoveL p3, v200, fine, tool1;
my_proc_off;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
my_proc_on;
StartMove;
RETRY;
ENDIF
ENDPROC
TRAP iprocfail
my_proc_off;
ProcerrRecovery \SyncOrgMoveInst;
ENDTRAP
PROC my_proc_on()
SetDO do_myproc, 1;
CONNECT proc_sup_int WITH iprocfail;
ISignalDI di_proc_sup, 1, proc_sup_int;
ENDPROC
PROC my_proc_off()
SetDO do_myproc, 0;
IDelete proc_sup_int;
ENDPROC
ENDMODULE
En este ejemplo, los errores elevados asncronamente generados por ProcerrRecovery con
el modificador \SyncOrgMoveInst pueden ser tratados en la rutina do_process, porque la
trayectoria en la que se produjo el error siempre se crea en la rutina o_process.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
335 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El flujo de proceso se inicia cambiando la seal do_myproc a 1. La seal di_proc_sup
supervisa el proceso y se genera un error asncrono si di_proc_sup pasa a tener el valor 1.
En este ejemplo sencillo, el error se resuelve cambiando de nuevo el valor de do_myproc a
1 antes de reanudar el movimiento.
Ejemplo con ProcerrRecovery\SyncLastMoveInst
MODULE user_module
PROC main()
...
MoveL p1, v1000, fine, tool1;
do_process;
...
ENDPROC
PROC do_process()
proc_on;
proc_move p2, v200, z10, tool1;
proc_move p3, v200, fine, tool1;
proc_off;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
StorePath;
p4 := CRobT(\Tool:=tool1);
! Move to service station and fix the problem
MoveL p4, v200, fine, tool1;
RestoPath;
proc_on;
StartMoveRetry;
ENDIF
ENDPROC
ENDMODULE
MODULE proc_module (SYSMODULE, NOSTEPIN)
VAR intnum proc_sup_int;
VAR num try_no := 0;
TRAP iprocfail
proc_off;
ProcerrRecovery \SyncLastMoveInst;
ENDTRAP
PROC proc_on()
SetDO do_proc, 1;
CONNECT proc_sup_int WITH iprocfail;
ISignalDI di_proc_sup, 1, proc_sup_int;
ENDPROC
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
3HAC16581-5 Revisin: H 336


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC proc_off()
SetDO do_proc, 0;
IDelete proc_sup_int;
ENDPROC
PROC proc_move (robtarget ToPoint, speeddata Speed, zonedata Zone,
PERS tooldata Tool)
MoveL ToPoint, Speed, Zone, Tool;
ERROR
IF ERRNO = ERR_PATH_STOP THEN
try_no := try_no + 1;
IF try_no < 4 THEN
proc_on;
StartMoveRetry;
ELSE
RaiseToUser \Continue;
ENDIF
ENDPROC
ENDMODULE
En este ejemplo, los errores elevados asncronamente generados por ProcerrRecovery con
el modificador \SyncLastMoveInst pueden ser tratados en la rutina proc_move debido a
que todas las instrucciones de movimiento se crean siempre en la rutina proc_move. Si el
puntero de programa se encuentra en la rutina do_process, la transferencia al gestor de
ERROR se retrasar hasta la ejecucin de la siguiente instruccin MoveL en la rutina
proc_move. Recuerde que los movimientos tambin se detienen inmediatamente.
El flujo de proceso se inicia cambiando la seal do_myproc a 1. La seal di_proc_sup
supervisa el proceso y se genera un error asncrono si di_proc_sup pasa a tener el valor 1.
En este ejemplo sencillo, el error se resuelve cambiando de nuevo el valor de do_myproc a
1 antes de reanudar el movimiento.
Si se utiliza la rutina NOSTEPIN predefinida, recomendamos utilizar el parmetro de
modificacin de opcin \SyncLastMoveInst, dado que la rutina predefinida tambin puede
tomar la decisin de gestionar una situacin de error dentro de la rutina, mientras que en otros
casos deber ser realizado por el usuario final.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de errores.
Si se utiliza el parmetro opcional \ProcSignal y la seal est desactivada al ejecutar la
instruccin, la variable de sistema ERRNO cambia a ERR_PROCSIGNAL_OFF y la ejecucin
contina en el gestor de errores.
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.117. ProcerrRecovery - Genera errores de movimiento de proceso y permite la recuperacin tras ellos
RobotWare - OS
337 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La recuperacin de errores desde los errores de proceso elevados asincrnicamente slo
puede hacerse si la tarea de movimiento que contiene la instruccin de movimiento se ejecuta
en el nivel de base en el momento en el que se produce el error de proceso. Por tanto, la
recuperacin de errores no puede hacerse si la tarea de programa que contiene la instruccin
de proceso se ejecuta dentro de:
Cualquier rutina de evento
Cualquier gestor de rutina (ERROR, BACKWARD o UNDO)
Nivel de ejecucin de usuario (rutina de servicio)
Consulte el Manual de referencia de RAPID - Kernel de RAPID, Recuperacin de errores,
Errores elevados asncronamente.
Sintaxis
ProcerrRecovery
[ \ SyncOrgMoveInst ] | [ \ SyncLastMoveInst ]
[ \ ProcSignal := ] < variable (VAR) of signaldo > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Errores elevados asncronamente Manual de referencia de RAPID - Kernel de
RAPID - Recuperacin en caso de errores
Propagacin de un error al nivel del usuario RaiseToUser - Propaga un error al nivel del
usuario en la pgina 344
Reanudacin del movimiento y la ejecucin
de programas
StartMoveRetry - Reanuda el movimiento y la
ejecucin del robot en la pgina 497
Continuacin
1 Instrucciones
1.118. PulseDO - Genera un pulso en una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 338


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.118. PulseDO - Genera un pulso en una seal digital de salida
Utilizacin
PulseDO se utiliza para generar un pulso en una seal digital de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin PulseDO.
Ejemplo 1
PulseDO do15;
Se genera un pulso con una duracin de 0,2 s en la seal de salida do15.
Ejemplo 2
PulseDO \PLength:=1.0, ignition;
Se genera un pulso con una duracin de 1,0 s en la seal ignition.
Ejemplo 3
! Program task MAIN
PulseDO \High, do3;
! At almost the same time in program task 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 s o dos pulsos positivos uno despus del otro, con una duracin de
pulso de 0,2 s.
Argumentos
PulseDO [ \High ] [ \PLength ] Signal
[ \High ]
High level
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 ]
Pulse Length
Tipo de dato: num
La duracin del pulso en segundos (de 0,1 a 32 s). 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.
Contina en la pgina siguiente
1 Instrucciones
1.118. PulseDO - Genera un pulso en una seal digital de salida
RobotWare - OS
339 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La instruccin siguiente tras PulseDO 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.
En la figura siguiente se muestran ejemplos de generacin de pulsos en una seal digital de
salida.
xx0500002217
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.
Limitaciones
La duracin del pulso tiene una resolucin de 0,01 segundos. Los valores programados que
difieran de esta resolucin se redondean.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.118. PulseDO - Genera un pulso en una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 340


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Sintaxis
PulseDO
[ \High]
[ \PLength := < expression (IN) of num >] ,
[ Signal := ] < variable (VAR) of signaldo > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.119. RAISE - Llama a un gestor de errores
RobotWare-OS
341 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.119. RAISE - Llama a un gestor de errores
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RAISE.
Consulte tambin Ms ejemplos en la pgina 342.
Ejemplo 1
MODULE MainModule .
VAR errnum ERR_MY_ERR := -1;
PROC main()
BookErrNo ERR_MY_ERR;
IF di1 = 0 THEN
RAISE ERR_MY_ERR;
ENDIF
ERROR
IF ERRNO = ERR_MY_ERR THEN
TPWrite "di1 equals 0";
ENDIF
ENDPROC
ENDMODULE
En esta implementacin, di1 igual a 0 es considerado como un error. RAISE fuerza la
ejecucin en el gestor de errores. En este ejemplo, el usuario ha creado su propio nmero de
error para gestionar este error en concreto. BookErrNo pertenece a la funcionalidad bsica
Advanced RAPID.
Contina en la pgina siguiente
1 Instrucciones
1.119. RAISE - Llama a un gestor de errores
RobotWare-OS
3HAC16581-5 Revisin: H 342


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
RAISE [ Error no. ]
Error no.
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, el error se propaga hasta el
gestor de errores de la rutina que realiza la llamada. En este caso, no es necesario especificar
el nmero del error.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin RAISE.
Ejemplo 1
MODULE MainModule
VAR num value1 := 10;
VAR num value2 := 0;
PROC main()
routine1;
ERROR
IF ERRNO = ERR_DIVZERO THEN
value2 := 1;
RETRY;
ENDIF
ENDPROC
P ROC routine1()
value1 := 5/value2;!This will lead to an error when value2 is
equal to 0.
ERROR
RAISE;
ENDPROC
ENDMODULE
En este ejemplo, la divisin entre cero dar lugar a un error. En el gestor de ERROR, RAISE
propagar el error hasta el gestor de ERROR de la rutina "main" que hace la llamada. El
mismo nmero de error permanece activo. RETRY ejecutar de nuevo la totalidad de la rutina
"routine1".
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.119. RAISE - Llama a un gestor de errores
RobotWare-OS
343 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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)
Una instruccin RAISE en el gestor de errores de una rutina tambin presenta otra
caracterstica. 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 [<error number>] ;
<error number> ::= <expression>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestin de errores Manual de referencia tcnica - Parmetros del
sistema, seccin Caractersticas bsicas -
Recuperacin en caso de error
Recuperacin en caso de error con un salto
largo
Manual de referencia tcnica - Parmetros del
sistema, seccin Caractersticas bsicas -
Recuperacin en caso de error
Registro de nmeros de error BookErrNo - Registra un nmero de error de
sistema de RAPID en la pgina 29
Continuacin
1 Instrucciones
1.120. RaiseToUser - Propaga un error al nivel del usuario
RobotWare - OS
3HAC16581-5 Revisin: H 344


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.120. RaiseToUser - Propaga un error al nivel del usuario
Utilizacin
RaiseToUser se utiliza en los gestores de errores de las rutinas NOSTEPIN para propagar
el error actual o cualquier otro error definido hacia el gestor de errores del nivel del usuario.
El nivel del usuario es en este caso la primera rutina de una cadena de llamadas, por encima
de la rutina NOSTEPIN.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RaiseToUser.
Ejemplo 1
MODULE MyModule
PROC main()
VAR errnum ERR_MYDIVZERO:= -1;
BookErrNo ERR_MYDIVZERO;
...
routine1;
...
ERROR
IF ERRNO = ERR_MYDIVZERO THEN
TRYNEXT;
ELSE
RETRY;
ENDIF
ENDPROC
ENDMODULE
MODULE MySysModule (SYSMODULE, NOSTEPIN, VIEWONLY)
PROC routine1()
...
routine2;
...
UNDO
! Free allocated resources
ENDPROC
PROC routine2()
VAR num n:=0;
...
reg1:=reg2/n;
...
Contina en la pgina siguiente
1 Instrucciones
1.120. RaiseToUser - Propaga un error al nivel del usuario
RobotWare - OS
345 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERROR
IF ERRNO = ERR_DIVZERO THEN
R aiseToUser \Continue \ErrorNumber:=ERR_MYDIVZERO;
ELSE
RaiseToUser \BreakOff;
ENDIF
ENDPROC
ENDMODULE
La divisin entre cero que tiene lugar en routine2 se propaga hacia arriba en el gestor de
errores de la rutina main, con el valor ERR_MYDIVZERO en errno. A continuacin, la
instruccin TRYNEXT del gestor de errores hace que la ejecucin del programa contine en la
instruccin que sigue a la divisin entre cero en routine2. El modificador \Continue
controla este comportamiento.
Si se produce cualquier otro error en routine2, el modificador \BreakOff fuerza la
continuacin de la ejecucin desde el gestor de errores de la rutina main. En este caso, el
gestor de deshacer de routine1 se ejecuta mientras se eleva hacia el nivel del usuario. La
instruccin RETRY del gestor de errores de la rutina main ejecuta routine1, de nuevo desde
el principio.
El gestor de deshacer de routine1 tambin se ejecuta en el caso de que se use \Continue, si la
siguiente instruccin RAISE o RETURN se realiza en el nivel del usuario.
Argumentos
RaiseToUser[ \Continue] | [ \BreakOff][ \ErrorNumber]
[\Continue]
Tipo de dato: switch
Contina la ejecucin en la rutina que provoc el error.
[\BreakOff]
Tipo de dato:switch
Interrumpe la cadena de llamadas y prosigue la ejecucin en el nivel del usuario. Cualquier
gestor de deshacer de la cadena de llamadas se ejecuta de forma separada del gestor de
deshacer de la rutina que elev el error.
Es necesario programar uno de los argumentos \Continue o \BreakOff, para evitar un
error de ejecucin.
[\ErrorNumber]
Tipo de dato: errnum
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.
Si no se especifica el argumento \ErrorNumber, el nmero de error original se propaga
hacia el gestor de errores en la rutina, a nivel de usuario.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.120. RaiseToUser - Propaga un error al nivel del usuario
RobotWare - OS
3HAC16581-5 Revisin: H 346


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
RaiseToUser can slo puede usarse en un gestor de errores de una rutina NOSTEPIN.
La ejecucin del programa contina en el gestor de errores de la rutina en el nivel del usuario.
El mismo nmero de error permanece activo si no est presente el parmetro opcional
\ErrorNumber. El gestor de errores del sistema se encarga del error si no hay ningn gestor
de errores en el nivel del usuario. La llamada al gestor de errores del sistema se realiza si no
se especifica ninguno de los argumentos, \Continue ni \BreakOff.
Existen dos comportamientos diferentes una vez que se ha ejecutado el gestor de errores. La
ejecucin del programa contina en la rutina que contiene RaiseToUser, si el modificador
\Continue est activado. La ejecucin del programa prosigue en el nivel del usuario si el
modificador \BreakOff est activado.
La ejecucin del programa puede continuar con:
La instruccin que provoc el error (RETRY).
La instruccin siguiente (TRYNEXT)
El gestor de errores de la rutina que llam a la rutina en el nivel del usuario (RAISE)
La rutina que llam a la rutina del nivel del usuario (RETURN)
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 gestor de errores del sistema se
encarga de este error.
Sintaxis
RaiseToUser
[ \Continue ]
| [ \BreakOff ]
[ \ErrorNumber := ] < expression (IN) of errnum>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestin de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Gestin de deshacer Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Deshacer
Registro de nmeros de error BookErrNo - Registra un nmero de error de
sistema de RAPID en la pgina 29
Continuacin
1 Instrucciones
1.121. ReadAnyBin - Lee datos de un canal serie o un archivo binario
RobotWare - OS
347 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.121. ReadAnyBin - Lee datos de un canal serie o un archivo binario
Utilizacin
ReadAnyBin (Read Any Binary) se utiliza para leer cualquier tipo de dato de un canal serie
o un archivo binario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ReadAnyBin.
Consulte tambin Ms ejemplos en la pgina 348.
Ejemplo 1
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. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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 notificar 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.
Contina en la pgina siguiente
1 Instrucciones
1.121. ReadAnyBin - Lee datos de un canal serie o un archivo binario
RobotWare - OS
3HAC16581-5 Revisin: H 348


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ReadAnyBin.
Ejemplo 1
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;
! Wait for the opcode character
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 opcode, se lee el dato robtarget o wobjdata del canal serie.
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.
Limitaciones
Esta instruccin slo puede usarse con canales serie o archivos que hayan sido abiertos para
lectura binaria.
Los datos a leer con esta instruccin ReadAnyBin deben ser de los tipos de datos num, bool
o string. Tambin puede usarse un registro, un componente de registro, una matriz o un
elemento de matriz de este tipo de dato de valor. No es posible usar datos enteros o datos
parciales con semivalor ni tipos de datos sin valor.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.121. ReadAnyBin - Lee datos de un canal serie o un archivo binario
RobotWare - OS
349 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
NOTA!
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.
Dado que WriteAnyBin-ReadAnyBin slo se han diseado para gestionar datos binarios
internos de controlador con canales serie o archivos entre o dentro de sistemas de control
IRC5, no se hace pblico ningn protocolo de datos y no es posible interpretar estos datos en
ningn PC.
El desarrollo de software de control puede afectar a la compatibilidad, de forma que no es
posible usar WriteAnyBin-ReadAnyBin entre versiones de software de RobotWare
diferentes. Si un WriteAnyBin a un archivo se realiza con RobotWare versin 5.07, no es
posible leer el archivo con la instruccin ReadAnyBin de RobotWare versin 5.08. Y, en el
caso opuesto, si un WriteAnyBin a un archivo se realiza con RobotWare versin 5.08, no es
posible leer el archivo con la instruccin ReadAnyBin de RobotWare versin 5.07.
Versin 0 del software de controlador IRC5 igual o anterior a la RW5.07
Versin 1 del software de controlador IRC5 igual o posterior a la RW5.08
Siempre existe la compatibilidad entre todas las revisiones de cualquier versin de software.
Sintaxis
ReadAnyBin
[IODevice:=] <variable (VAR) of iodev>,
[Data:=] <var or pers (INOUT) of ANYTYPE>
[\Time:= <expression (IN) of num>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie o archivos
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Escritura de datos en canales serie o
archivo
WriteAnyBin - Escribe datos en un canal serie
o archivo binario en la pgina 718
Continuacin
1 Instrucciones
1.122. ReadBlock - Lee un bloque de datos de un dispositivo
Sensor Interface
3HAC16581-5 Revisin: H 350


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.122. ReadBlock - Lee un bloque de datos de un dispositivo
Utilizacin
ReadBlock se utiliza para leer un bloque de datos de un dispositivo que est conectado a la
interfaz de sensores serie.. The data is stored in a file.
La interfaz de sensores se comunica con dos sensores a travs de canales serie, utilizando el
protocolo de transporte RTP1.
ste es un ejemplo de configuracin de un canal de sensor.
COM_PHY_CHANNEL:
Name COM1:
Connector COM1
Baudrate 19200
COM_TRP:
Name sen1:
Type RTP1
PhyChannel COM1
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ReadBlock.
Ejemplo 1
CONST string SensorPar := "flp1:senpar.cfg";
CONST num ParBlock:= 1;
! Connect to the sensor device "sen1:" (defined in sio.cfg).
SenDevice "sen1:";
! Read sensor parameters from sensor datablock 1
! and store on flp1:senpar.cfg
ReadBlock "sen1:", ParBlock, SensorPar;
Argumentos
ReadBlock device BlockNo FileName [ \TaskName ]
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
BlockNo
Tipo de dato: num
El argumento BlockNo se utiliza para seleccionar el bloque de datos de sensor que se desea
leer.
Contina en la pgina siguiente
1 Instrucciones
1.122. ReadBlock - Lee un bloque de datos de un dispositivo
Sensor Interface
351 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
FileName
Tipo de dato: string
El argumento FileName se utiliza para definir un archivo en el que se escriben los datos
desde el bloque de datos de sensor seleccionado en el argumento BlockNo.
[ \TaskName ]
Tipo de dato: string
El argumento TaskName hace posible el acceso a dispositivos de otras tareas de RAPID.
Gestin de fallos
Sintaxis
ReadBlock
[ device := ] < expression(IN) of string>,
[ BlockNo := ] < expression (IN) of num > ,
[ FileName := ] < expression (IN) of string > ,
[ \ TaskName := < expression (IN) of string > ] ;
Informacin relacionada
Constante de error (valor de ERRNO) Descripcin
SEN_NO_MEAS Fallo de medicin
SEN_NOREADY Sensor incapaz de gestionar el comando
SEN_GENERRO Error general del sensor
SEN_BUSY Sensor ocupado
SEN_UNKNOWN Sensor desconocido
SEN_EXALARM Error de sensor externo
SEN_CAALARM Error de sensor interno
SEN_TEMP Error de temperatura del sensor
SEN_VALUE Valor de comunicacin no vlido
SEN_CAMCHECK Fallo de comprobacin de sensor
SEN_TIMEOUT Error de comunicacin
Para obtener ms informacin sobre Consulte
Establecimiento de una conexin a un
dispositivo de sensor
SenDevice - Establece una conexin a un
dispositivo de sensor en la pgina 433
Escritura de una variable de sensor WriteVar - Escribe una variable en la pgina
734
Lectura de una variable de sensor ReadVar - Lee una variable de un dispositivo
en la pgina 967
Escritura de un bloque de datos de sensor WriteBlock - Escribe un bloque de datos en un
dispositivo en la pgina 724
Configuracin de la comunicacin del
sensor
Manual de referencia tcnica - Parmetros del
sistema, seccin Communication
Continuacin
1 Instrucciones
1.123. ReadCfgData - Lee un atributo de un parmetro del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 352


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.123. ReadCfgData - Lee un atributo de un parmetro del sistema
Utilizacin
ReadCfgData se utiliza para leer un atributo de un parmetro del sistema (de los datos de
configuracin).
Adems de leer parmetros con nombre, tambin es posible buscar parmetros sin nombre.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ReadCfgData. Estos
dos ejemplos muestran cmo leer parmetros con nombre.
Ejemplo 1
VAR num offset1;
...
ReadCfgData "/MOC/MOTOR_CALIB/rob1_1","cal_offset",offset1;
Lee el valor del desplazamiento de calibracin de axis 1 for rob_ 1 en la variable de tipo num
denominada offset1.
Ejemplo 2
VAR string io_unit;
...
ReadCfgData "/EIO/EIO_SIGNAL/process_error","Unit",io_unit;
Lee el nombre de la unidad de E/S en la que est definida la seal process_error y lo
almacena en la variable de tipo string llamada io_unit.
Argumentos
ReadCfgData InstancePath Attribute CfgData [\ListNo]
InstancePath
Tipo de dato:string
Especifica la ruta hasta el parmetro que debe leerse.
En el caso de los parmetros con nombre, el formato de esta cadena es /DOMAIN/TYPE/
ParameterName.
En el caso de los parmetros sin nombre, el formato de esta cadena es /DOMAIN/TYPE/
Attribute/AttributeValue.
Attribute
Tipo de dato: string
El nombre del atributo del parmetro que se desea leer.
CfgData
Tipo de dato: any type
La variable en la que se almacenar el valor del atributo. En funcin del tipo de atributo, los
tipos vlidos son bool, num o string.
Contina en la pgina siguiente
1 Instrucciones
1.123. ReadCfgData - Lee un atributo de un parmetro del sistema
RobotWare - OS
353 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\ListNo]
Tipo de dato: num
Una variable que contiene el nmero de instancia de atributo+AttributeValue a
encontrar.
La primera vez que aparece Attribute +AttributeValue tiene el nmero de instancia 0.
Si hay ms instancias a buscar, el valor devuelto en \ListNo se incrementar en 1. De lo
contrario, si no hay ms instancias el valor de retorno ser -1. La constante predefinida
END_OF_LIST puede usarse para comprobar si hay ms de una instancia a buscar.
Ejecucin de programas
El valor del atributo especificado por el argumento Attribute se almacena en la variable
especificada por el argumento CfgData.
Si se usa el formato /DOMAIN/TYPE/ParameterName en InstancePath, slo estn
disponibles los parmetros con nombre, es decir, los parmetros cuyo primer atributo sea
name, Name o NAME.
En el caso de los parmetros sin nombre, utilice el parmetro opcional \ListNo para
seleccionar de cul de las instancias debe leerse el valor del atributo. Se actualiza tras cada
lectura exitosa de la siguiente instancia disponible.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ReadCfgdata. Estos dos ejemplos
muestran cmo leer parmetros sin nombre.
Ejemplo 3
VAR num list_index;
VAR string read_str;
...
list_index:=0;
ReadCfgData "/EIO/EIO_CROSS/Act1/do_13", "Res", read_str,
\ListNo:=list_index;
TPWrite "Resultant signal for signal do_13 is: " + read_str;
Lee la seal resultante de la seal digital de actuacin sin nombre di_13 y guarda el nombre
en la variable de tipo string llamada read_str.
En este ejemplo, el dominio EIO tiene el cdigo cfg siguiente:
EIO_CROSS:
-Res "di_1" -Act1 "do_2"
-Res "di_2" -Act1 "do_2"
-Res "di_13" -Act1 "do_13"
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.123. ReadCfgData - Lee un atributo de un parmetro del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 354


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 4
VAR num list_index;
VAR string read_str;
...
list_index:=0;
WHILE list_index <> END_OF_LIST DO
ReadCfgData "/EIO/EIO_SIGNAL/Unit/USERIO", "Name", read_str,
\ListNo:=list_index;
TPWrite "Signal: " + read_str;
ENDWHILE;
Se leen los nombres de todas las seales definidas para la unidad de E/S USERIO.
En este ejemplo, el dominio EIO tiene el cdigo cfg siguiente:
EIO_SIGNAL:
-Name "USERDO1" -SignalType "DO" -Unit "USERIO" -UnitMap "0"
-Name "USERDO2" -SignalType "DO" -Unit "USERIO" -UnitMap "1"
-Name "USERDO3" -SignalType "DO" -Unit "USERIO" -UnitMap "2"
Gestin de errores
Si no es posible encontrar los datos especificados con InstancePath +Attribute en la
base de datos de configuracin, la variable de sistema ERRNO cambia a ERR_CFG_NOTFND.
Si el tipo de dato del parmetro CfgData es distinto del tipo de dato real de los datos
encontrados y especificados con InstancePath +Attribute en la base de datos de
configuracin, la variable de sistema ERRNO cambia a ERR_CFG_ILLTYPE.
Si se est intentando leer un dato interno, la variable de sistema ERRNO cambia a
ERR_CFG_INTERNAL.
Si la variable del argumento \ListNo tiene un valor que est fuera del rango de instancias
disponibles (0 ... n) al ejecutar la instruccin, ERRNO cambia a ERR_CFG_OUTOFBOUNDS.
Estos errores pueden ser gestionados en el gestor de errores.
Limitaciones
La conversin de las unidades del parmetro del sistema (metros, radianes, segundos, etc.) a
las unidades de los programas de RAPID (mm, grados, segundos, etc.), que afecta a CfgData
del tipo de datos num debe ser realizada por el usuario en el programa de RAPID.
Si se usa el formato /DOMAIN/TYPE/ParameterName en InstancePath, slo estn
disponibles los parmetros con nombre, es decir, los parmetros cuyo primer atributo sea
name, Name o NAME.
Las cadenas de RAPID estn limitadas a 80 caracteres. En algunos casos, puede ser en teora
una longitud demasiado reducida para la definicin de InstancePath, Attribute o
CfgData.
Datos predefinidos
La constante predefinida END_OF_LIST, con valor -1, puede usarse para detener la lectura si
no es posible encontrar ms instancias.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.123. ReadCfgData - Lee un atributo de un parmetro del sistema
RobotWare - OS
355 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ReadCfgData
[ InstancePath := ] < expression (IN) of string >,
[ Attribute := ] < expression (IN) of string >,
[ CfgData := ] < variable (VAR) of anytype >
[\ListNo:= < variable (VAR) of num >];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Escritura de un atributo de un parmetro del
sistema
WriteCfgData - Escribe un atributo de un
parmetro del sistema en la pgina 726
Obtencin del nombre del robot de la tarea
actual
RobName - Obtiene el nombre del robot del
TCP en la pgina 974
Configuracin Manual de referencia tcnica - Parmetros
del sistema
Continuacin
1 Instrucciones
1.124. ReadErrData - Obtiene informacin sobre un error
RobotWare - OS
3HAC16581-5 Revisin: H 356


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.124. ReadErrData - Obtiene informacin sobre un error
Utilizacin
ReadErrData debe utilizarse en rutinas TRAP para obtener informacin (dominio, tipo,
nmero y cadenas entremezcladas %s, etc.) sobre el error, el cambio de estado o la
advertencia que provoc la ejecucin de la rutina TRAP.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ReadErrData.
Consulte tambin Ms ejemplos en la pgina 357
Ejemplo 1
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
La variable que debe almacenar el dominio de error al que pertenece el error, el cambio de
estado o la advertencia. Consulte los datos predefinidos del tipo errdomain.
ErrorId
Tipo de dato: num
La variable que debe almacenar 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.
Contina en la pgina siguiente
1 Instrucciones
1.124. ReadErrData - Obtiene informacin sobre un error
RobotWare - OS
357 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ErrorType
Tipo de dato: errtype
La variable que debe almacenar 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
Actualiza la variable de cadena especificada, con el argumento intercalado en el mensaje de
error. Podran existir hasta cinco argumentos en un mismo mensaje, con los tipos %s, %f, %d
o %ld, que siempre se convertirn en una cadena al ejecutar esta instruccin. Str1 contendr
el primer argumento, Str2 el segundo argumento, etctera. La informacin acerca de cuntos
argumentos puede contener un mensaje aparece en el Manual del operador - Solucin de
problemas. Los argumentos intercalados se marcan como arg en ese documento.
Ejecucin de programas
Las variables ErrorDomain, ErrorId, ErrorType y Str1 ... Str5 se actualizan de
acuerdo 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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin ReadErrData.
Ejemplo 1
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;
! Set domain no 1 ... 11
SetGO go_err1, err_domain;
! Set error no 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 seales digitales de salida.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.124. ReadErrData - Obtiene informacin sobre un error
RobotWare - OS
3HAC16581-5 Revisin: H 358


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitacin
No es posible obtener informacin sobre los errores internos.
Sintaxis
ReadErrData
[TrapEvent :=] <variable (VAR) of trapdata>,
[ErrorDomain :=] <variable (VAR) of errdomain>,
[ErrorId:=] <variable (VAR) of num>,
[ErrorType :=] <variable (VAR) of errtype>
[\Str1 :=<variable (VAR) of string>]
[\Str2 :=<variable (VAR) of string>]
[\Str3 :=<variable (VAR) of string>]
[\Str4 :=<variable (VAR) of string>]
[\Str5 :=<variable (VAR) of string>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de inter-
rupciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Dominios de error, constantes predefinidas errdomain - Dominio de error en la pgina
1102
Tipos de errores, constantes predefinidas errtype - Tipo de error en la pgina 1111
Solicitud de una interrupcin para errores IError - Solicita una interrupcin para errores
en la pgina 124
Obtencin de datos de interrupcin para la
rutina TRAP actual
GetTrapData - Obtiene datos de interrupcin
para la rutina TRAP actual en la pgina 113
Continuacin
1 Instrucciones
1.125. ReadRawBytes - Lee datos de tipo rawbytes
RobotWare - OS
359 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.125. ReadRawBytes - Lee datos de tipo rawbytes
Utilizacin
ReadRawBytes se utiliza para leer datos de tipo rawbytes de un dispositivo abierto con
Open\Bin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ReadRawBytes.
Ejemplo 1
VAR iodev io_device;
VAR rawbytes raw_data_out;
VAR rawbytes raw_data_in;
VAR num float := 0.2;
VAR string answer;
ClearRawBytes raw_data_out;
PackDNHeader "10", "20 1D 24 01 30 64", raw_data_out;
PackRawBytes float, raw_data_out, (RawBytesLen(raw_data_out)+1)
\Float4;
Open "/FC1:/dsqc328_1", io_device \Bin;
WriteRawBytes io_device, raw_data_out;
ReadRawBytes io_device, raw_data_in \Time:=1;
Close io_device;
UnpackRawBytes raw_data_in, 1, answer \ASCII:=10;
En este ejemplo, raw_data_out se deja sin contenido y se empaqueta con el encabezado de
DeviceNet, junto con un valor de coma flotante con el valor 0.2.
Se abre un dispositivo, "/FC1:/dsqc328_1", y los datos vlidos actuales de
raw_data_out se escriben en el dispositivo. A continuacin, el programa espera al menos
1 segundo antes de leer del dispositivo, almacenando en raw_data_in la informacin leda.
Despus de cerrar el dispositivo "/FC1:/dsqc328_1", los datos ledos se desempaquetan
dando lugar a una cadena de caracteres que se almacena en answer.
Argumentos
ReadRawBytes IODevice RawData [\Time]
IODevice
Tipo de dato: iodev
IODevice es el identificador del dispositivo desde el cual se deben leer los datos.
RawData
Tipo de dato: rawbytes
RawData es el contenedor de datos que almacena los datos ledos de IODevice, empezando
por el nmero de ndice 1.
Contina en la pgina siguiente
1 Instrucciones
1.125. ReadRawBytes - Lee datos de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 360


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Time]
Tipo de dato: num
El tiempo mximo para la operacin de lectura (tiempo lmite) en segundos (resolucin 0,001
s). Si no se especifica este argumento, el tiempo mximo es de 60 segundos. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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 notificar en
el programa de RAPID al poner en marcha el programa.
Ejecucin de programas
Durante la ejecucin del programa, los datos se leen del dispositivo indicado por IODevice.
Si se utiliza WriteRawBytes junto con los comandos de bus de campo, por ejemplo
DeviceNet, el bus de campo siempre enva una respuesta. La respuesta debe ser manejada en
RAPID con la instruccin ReadRawBytes.
La longitud actual de los bytes vlidos de la variable RawData cambia al nmero de bytes
ledos. Los datos comienzan en el nmero de ndice 1 de RawData.
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
RawData no se ve afectada y la variable de sistema ERRNO cambia a ERR_DEV_MAXTIME.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Sintaxis
ReadRawBytes
[IODevice := ] < variable (VAR) of iodev> ,
[RawData := ] < variable (VAR) of rawbytes> ,
[ \ Time := < expression (IN) of num>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Borrado del contenido de un dato rawbytes ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato rawbytes CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.125. ReadRawBytes - Lee datos de tipo rawbytes
RobotWare - OS
361 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un
dato de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.126. RemoveDir - Elimina un directorio
RobotWare - OS
3HAC16581-5 Revisin: H 362


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.126. RemoveDir - Elimina un directorio
Utilizacin
RemoveDir se utiliza para eliminar un directorio.
El usuario debe tener permisos de escritura y ejecucin en el directorio y ste debe estar vaco.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RemoveDir.
Ejemplo 1
RemoveDir "HOME:/mydir";
En este ejemplo, se elimina el directorio mydir que est situado debajo de HOME:.
Argumentos
RemoveDir Path
Path
Tipo de dato: string
El nombre del directorio que se desea eliminar, especificado con una ruta completa o relativa.
Gestin de errores
Si el directorio no existe o no est vaco o si el usuario no tiene permisos de escritura y
ejecucin en el directorio, el valor de la variable ERRNO cambia a ERR_FILEACC. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
RemoveDir
[ Path:= ] < expression (IN) of string>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Directorio dir - Estructura de directorio de archivos en la
pgina 1099
Apertura de un directorio OpenDir - Abre un directorio en la pgina 291
Lectura de un directorio ReadDir - Lee la siguiente entrada de un
directorio en la pgina 953
Cierre de un directorio CloseDir - Cierra un directorio en la pgina 56
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un archivo
en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Contina en la pgina siguiente
1 Instrucciones
1.126. RemoveDir - Elimina un directorio
RobotWare - OS
363 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.127. RemoveFile - Elimina un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 364


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.127. RemoveFile - Elimina un archivo
Utilizacin
RemoveFile se utiliza para eliminar un archivo. El usuario debe tener permisos de escritura
y ejecucin en el directorio en el que se encuentra el archivo, adems de permiso de escritura
para el archivo en s.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RemoveFile.
Ejemplo 1
RemoveFile "HOME:/mydir/myfile.log";
En este ejemplo, se elimina el archivo myfile.log en el directorio mydir del disco HOME:.
Argumentos
RemoveFile Path
Path
Tipo de dato: string
El nombre del archivo que se desea eliminar, especificado con una ruta completa o relativa.
Gestin de errores
Si el archivo no existe, la variable de sistema ERRNO cambia a ERR_FILEACC. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
RemoveFile
[ Path:= ] < expression (IN) of string>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
1 Instrucciones
1.128. RenameFile - Cambia el nombre de un archivo
RobotWare - OS
365 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.128. RenameFile - Cambia el nombre de un archivo
Utilizacin
RenameFile se utiliza para dar un nuevo nombre a un archivo existente. Tambin puede
usarse para trasladar un archivo de un lugar a otro dentro de la estructura de directorios.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RenameFile.
Ejemplo 1
RenameFile "HOME:/myfile", "HOME:/yourfile;"
Se da al archivo myfile el nombre yourfile.
RenameFile "HOME:/myfile", "HOME:/mydir/yourfile";
Se da al archivo myfile el nombre yourfile, adems de trasladarlo al directorio mydir.
Argumentos
RenameFile OldPath NewPath
OldPath
Tipo de dato:string
La ruta completa del archivo cuyo nombre se desea cambiar.
NewPath
Tipo de dato:string
La ruta completa del archivo cuyo nombre se desea cambiar.
Ejecucin de programas
El archivo especificado en OldPath recibe el nombre especificado en NewPath. Si la ruta
indicada en NewPath es distinta de la ruta del archivo OldPath, el archivo tambin se
traslada a una nueva ubicacin.
Gestin de errores
Si el archivo especificado en NewPath ya existe, la variable de sistema ERRNO cambia a
ERR_FILEEXIST. A continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
RenameFile
[ OldPath := ] < expression (IN) of string > ,
[ NewPath := ] < expression (IN) of string >;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Contina en la pgina siguiente
1 Instrucciones
1.128. RenameFile - Cambia el nombre de un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 366


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.129. Reset - Pone a cero una seal digital de salida
RobotWare - OS
367 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.129. Reset - Pone a cero una seal digital de salida
Utilizacin
Reset se utiliza para poner a cero el valor de una seal digital de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Reset.
Ejemplo 1
Reset do15;
Se cambia la seal do15 a 0.
Ejemplo 2
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.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Sintaxis
Reset
[ Signal := ] < variable (VAR) of signaldo > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cambio de una seal digital de salida a cero Set - Activa una seal digital de salida en la
pgina 435
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
1 Instrucciones
1.130. ResetPPMoved - Restablecer el estado del puntero de programa movido en el modo manual.
RobotWare - OS
3HAC16581-5 Revisin: H 368


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.130. ResetPPMoved - Restablecer el estado del puntero de programa movido en
el modo manual.
Utilizacin
ResetPPMoved restablece el estado del puntero de programa movido en el modo manual.
PPMovedInManMode devuelve TRUE si el usuario ha movido el puntero de programa
mientras el controlador se encuentra en el modo manual, es decir, si la llave de operador est
en las posiciones de manual a velocidad reducida o manual a mxima velocidad. El estado del
puntero de programa movido se pone a cero cuando se sita la llave de Auto a Man o cuando
se usa la instruccin ResetPPMoved.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin ResetPPMoved.
Ejemplo 1
IF PPMovedInManMode() THEN
WarnUserOfPPMovement;
! DO THIS ONLY ONCE
ResetPPMoved;
DoJob;
ELSE
DoJob;
ENDIF
Ejecucin de programas
Restablece el estado del puntero de programa movido en el modo manual para la tarea de
programa actual.
Sintaxis
ResetPPMoved;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobar si el puntero de programa se ha
movido en el modo manual.
PPMovedInManMode - Comprobar si el
puntero de programa se ha movido en el
modo manual. en la pgina 945
1 Instrucciones
1.131. ResetRetryCount - Restablece el nmero de reintentos
RobotWare - OS
369 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.131. ResetRetryCount - Restablece el nmero de reintentos
Utilizacin
ResetRetryCount se usa para restablecer el nmero de reintentos que se han realizado
desde un gestor de errores. El nmero mximo de reintentos que pueden hacerse se define en
la configuracin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ResetRetryCount.
Ejemplo 1
VAR num myretries := 0;
...
ERROR
IF myretries > 2 THEN
ResetRetryCount;
myretries := 0;
TRYNEXT;
ENDIF
myretries:= myretries + 1;
RETRY;
...
El programa reintentar 3 veces la instruccin fallida y a continuacin intentar la instruccin
siguiente. El contador de reintentos interno del sistema se restablece antes de reintentar la
instruccin siguiente (incluso si tal reintento es realizado por el sistema en TRYNEXT).
Ejecucin de programas
Para cada RETRY realizado desde un gestor de errores, un contador interno del sistema
comprobar que no se sobrepase el nmero mximo de reintentos, especificado en la
configuracin. La ejecucin de la instruccin ResetRetryCount pone a cero el contador y
hace posible volver a hacer un nmero mximo de reintentos.
Sintaxis
ResetRetryCount ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Reanudacin de la ejecucin despus de un
error
RETRY - Reanuda la ejecucin despus de un
error en la pgina 372
Configuracin del nmero mximo de
reintentos
Manual de referencia tcnica - Parmetros del
sistema, seccin System Misc
Nmero de reintentos restantes RemainingRetries - Reintentos restantes an
pendientes en la pgina 971
1 Instrucciones
1.132. RestoPath - Restablece la trayectoria despus de una interrupcin
RobotWare - OS
3HAC16581-5 Revisin: H 370


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.132. RestoPath - Restablece la trayectoria despus de una interrupcin
Utilizacin
RestoPath se utiliza para restablecer una trayectoria almacenada en un momento anterior
con la instruccin StorePath.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RestoPath.
Consulte tambin Ms ejemplos, a continuacin.
Ejemplo 1
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, recuerde que no se produce ningn movimiento hasta que se ejecuta la instruccin
StartMove o se reanuda la ejecucin mediante RETRY en un gestor de errores.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RestoPath.
Ejemplo 1
ArcL p100, v100, seam1, weld5 \Weave:=weave1, z10, gun1;
...
ERROR
IF ERRNO=AW_WELD_ERR THEN
gun_cleaning;
StartMoveRetry;
ENDIF
...
PROC gun_cleaning()
VAR robtarget p1;
StorePath;
p1 := CRobT();
MoveL pclean, v100, fine, gun1;
...
MoveL p1, v100, fine, gun1;
RestoPath;
ENDPROC
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
Contina en la pgina siguiente
1 Instrucciones
1.132. RestoPath - Restablece la trayectoria despus de una interrupcin
RobotWare - OS
371 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 a continuacin de que StorePath y de
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 fine), no un punto de paso. De lo contrario, no
ser posible reanudar la ejecucin tras una cada de suministro elctrico.
RestoPath no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop o Restart.
Sintaxis
RestoPath;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Almacenamiento de trayectorias StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
Ms ejemplos StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
PathRecStart - Inicia la grabadora de trayecto-
rias en la pgina 314
SyncMoveSuspend - Activa el movimiento
independiente-semicoordinado en la pgina
551
Continuacin
1 Instrucciones
1.133. RETRY - Reanuda la ejecucin despus de un error
RobotWare - OS
3HAC16581-5 Revisin: H 372


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.133. RETRY - Reanuda la ejecucin despus de un error
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RETRY.
Ejemplo 1
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 (tipo System Misc).
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. A continuacin debe utilizarse la instruccin TRYNEXT.
Sintaxis
RETRY ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Configuracin del nmero mximo de
reintentos
Manual de referencia tcnica - Parmetros del
sistema, seccin System Misc
Continuacin en la instruccin siguiente TRYNEXT - Salta sobre una instruccin que
ha provocado un error en la pgina 645
1 Instrucciones
1.134. RETURN - Finaliza la ejecucin de una rutina
RobotWare - OS
373 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.134. RETURN - Finaliza la ejecucin de una rutina
Utilizacin
RETURN se utiliza para finalizar la ejecucin de una rutina. Si la rutina es una funcin, el
valor tambin se devuelve.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RETURN.
Ejemplo 1
errormessage;
Set do1;
...
PROC errormessage()
IF di1=1 THEN
RETURN;
ENDIF
TPWrite "Error";
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 do 1.
Ejemplo 2
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 [ Return value ]
Return value
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.
Contina en la pgina siguiente
1 Instrucciones
1.134. RETURN - Finaliza la ejecucin de una rutina
RobotWare - OS
3HAC16581-5 Revisin: H 374


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 el programa tiene el modo de ejecucin de un solo 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).
Gestor de errores en una funcin: Se devuelve el valor de la funcin.
Sintaxis
(EBNF)
RETURN [ <expression> ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones y procedimientos Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Rutinas TRAP Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Continuacin
1 Instrucciones
1.135. Rewind - Rebobina la posicin del archivo
RobotWare - OS
375 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.135. Rewind - Rebobina la posicin del archivo
Utilizacin
Rewind sita la posicin del archivo al principio del archivo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Rewind.
Consulte tambin Ms ejemplos en la pgina 376.
Ejemplo 1
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.
Contina en la pgina siguiente
1 Instrucciones
1.135. Rewind - Rebobina la posicin del archivo
RobotWare - OS
3HAC16581-5 Revisin: H 376


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin Rewind.
Ejemplo 1
! IO device and numeric variable for use together with a binary
! file
VAR iodev dev;
VAR num bindata;
! Open the binary file with \Write switch to erase old contents
Open "HOME:"\File := "bin_file",dev \Write;
Close dev;
! Open the binary file with \Bin switch for binary read and write
! acess
Open "HOME:"\File := "bin_file",dev \Bin;
WriteStrBin dev,"Hello world";
! Rewind the file pointer to the beginning of the binary file
! Read contents of the file and write the binary result on TP
! (gives 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
! Close the binary file
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) of iodev>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con archivos Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
1 Instrucciones
1.136. RMQEmptyQueue - Vaca la cola de mensajes de RAPID
RobotWare - OS
377 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.136. RMQEmptyQueue - Vaca la cola de mensajes de RAPID
Utilizacin
RMQEmptyQueue vaca la cola de mensajes de RAPID (RMQ) de la tarea en la que se ejecuta
la instruccin.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin RMQEmptyQueue.
Ejemplo
RMQEmptyQueue;
La instruccin RMQEmptyQueue elimina todos los mensajes de la cola RMQ de la tarea en
ejecucin.
Ejecucin de programas
Se vaca la cola de mensajes de RAPID de la tarea en la que se ejecuta. Esta instruccin puede
usarse en todos los niveles de ejecucin.
Limitaciones
RMQEmptyQueue slo vaca la cola de mensajes de RAPID de la tarea en la que se ejecuta la
instruccin. Todas las dems colas de mensajes de RAPID permanecen sin cambios.
Sintaxis
RMQEmptyQueue ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Tipo de dato rmqmessage rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169.
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393.
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379.
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387.
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384.
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167.
Contina en la pgina siguiente
1 Instrucciones
1.136. RMQEmptyQueue - Vaca la cola de mensajes de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 378


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972.
Recibir un mensaje de una cola RMQ RMQReadWait - Devuelve un mensaje de
una cola RMQ en la pgina 390.
Obtener el primer mensaje de una cola de
RAPID Message Queue
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381.
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.137. RMQFindSlot - Buscar una identidad de ranura para el nombre de ranura
FlexPendant Interface, PC Interface, or Multitasking
379 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.137. RMQFindSlot - Buscar una identidad de ranura para el nombre de ranura
Utilizacin
RMQFindSlot (RAPID Message Queue Find Slot) se utiliza para encontrar la identidad de
ranura de un RMQ configurado para una tarea de RAPID, o la identidad de ranura de un
cliente de Robot Application Builder.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQFindSlot nombre.
Ejemplo 1
VAR rmqslot myrmqslot;
RMQFindSlot myrmqslot, "RMQ_T_ROB2";
Obtener el nmero de identidad del RMQ "RMQ_T_ROB2" configurado para la tarea de
RAPID "T_ROB2".
Argumentos
RMQFindSlot Slot Name
Slot
Tipo de dato: rmqslot
La variable en la que se devuelve el identificador numrico.
Name
Tipo de dato: string
El nombre del cliente cuyo nmero de identidad se desea encontrar. El nombre debe ser
correcto en cuanto al uso de minsculas y maysculas. Si la tarea de RAPID tiene el nombre
T_ROB1 y se utiliza el nombre RMQ_t_rob1 para la cola RMQ, dar lugar a un error
(consulte el captulo sobre gestin de errores que aparece a continuacin).
Ejecucin de programas
La instruccin RMQFindSlot se utiliza para encontrar la identidad de ranura de un RMQ con
nombre o un cliente de Robot Application Builder.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Sintaxis
RMQFindSlot
[ Slot := ] < variable (VAR) of rmqslot > ,
[ Name := ] < expression (IN) of string >;
ERR_RMQ_NAME El nombre de ranura indicado no es vlido o no se encuentra.
Contina en la pgina siguiente
1 Instrucciones
1.137. RMQFindSlot - Buscar una identidad de ranura para el nombre de ranura
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 380


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Slot rmqslot - Nmero de identidad de un cliente
de RMQ en la pgina 1170
Continuacin
1 Instrucciones
1.138. RMQGetMessage - Obtener un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
381 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.138. RMQGetMessage - Obtener un mensaje de RMQ
Utilizacin
RMQGetMessage (RAPID Message Queue Get Message) se usa para capturar el primer
mensaje de RMQ de la cola que corresponde a la tarea del programa actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQGetMessage.
Consulte tambin Ms ejemplos en la pgina 381.
Ejemplo 1
TRAP msghandler
VAR rmqmessage myrmqmsg;
RMQGetMessage myrmqmsg;
...
ENDTRAP
En la rutina TRAP , msghandler el rmqmessage es capturado del RMQ y copiado a la
variable myrmqmsg.
Argumentos
RMQGetMessage Message
Message
Tipo de dato: rmqmessage
Variable para el almacenamiento del mensaje de RMQ.
El tamao mximo de los datos que pueden recibirse en un rmqmessage es de
aproximadamente 3.000 bytes.
Ejecucin de programas
La instruccin RMQGetMessage se usa para obtener el primer mensaje de la cola de la tarea
que ejecuta la instruccin. Si hay un mensaje, ste se copia a la variable Message y a
continuacin se elimina de la cola para dejar espacio para nuevos mensajes. Esta instruccin
slo se admite en el nivel TRAP.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQGetMessage.
Ejemplo 1
RECORD mydatatype
int x;
int y;
ENDRECORD
VAR intnum msgreceive;
VAR mydatatype mydata;
Contina en la pgina siguiente
1 Instrucciones
1.138. RMQGetMessage - Obtener un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 382


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC main()
! Setup interrupt
CONNECT msgreceive WITH msghandler;
! Order cyclic interrupt to occur for data type mydatatype
IRMQMessage mydata, msgreceive;
WHILE TRUE DO
! Performing cycle
...
ENDWHILE
ENDPROC
TRAP msghandler
VAR rmgmessage message;
VAR rmqheader header;
! Get the RMQ message
RMQGetMessage message;
! Copy RMQ header information
RMQGetMsgHeader message \Header:=header;
IF header.datatype = "mydatatype" AND header.ndim = 0 THEN
! Copy the data from the message
RMQGetMsgData message, mydata;
ELSE
TPWrite "Received a type not handled or with wrong dimension";
ENDIF
ENDTRAP
Cuando se recibe un nuevo mensaje, la rutina TRAP msghandler se ejecuta y el nuevo
mensaje se copia a la variable message (instruccin RMQGetMessage). A continuacin se
copian los datos de encabezado de RMQ (instruccin RMQGetMsgHeader). Si el mensaje es
del tipo de dato esperado y tiene las dimensiones correctas, los datos se copian a la variable
mydata (instruccin RMQGetMsgData).
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
ERR_RMQ_NOMSG Ningn mensaje de momento en la cola. Si se ejecuta
RMQGetMessage dos veces en una rutina TRAP, puede ocurrir
esto. El error tambin puede generarse si se produce una cada
de alimentacin entre la orden de ejecutar la rutina TRAP y la
ejecucin de la instruccin RMQGetMessage. Los mensajes del
RMQ se pierden en caso de cada de alimentacin.
ERR_RMQ_INVMSG Este error se genera si el mensaje no es vlido. Esto puede
ocurrir por ejemplo si una aplicacin de PC enva un mensaje
daado.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.138. RMQGetMessage - Obtener un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
383 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
RMQGetMessage no se admite en el nivel de ejecucin de usuarios (es decir, en las rutinas de
servicio) ni en el nivel de ejecucin normal.
El tamao mximo de los datos que pueden recibirse en un rmqmessage es de
aproximadamente 3.000 bytes.
Se recomienda reutilizar una variable del tipo de dato rmqmessage todo lo posible, con el fin
de ahorrar memoria de RAPID.
Sintaxis
RMQGetMessage
[ Message := ] < variable (VAR) of rmqmessage >;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Message rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169
Continuacin
1 Instrucciones
1.139. RMQGetMsgData - Obtener la parte de datos de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 384


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.139. RMQGetMsgData - Obtener la parte de datos de un mensaje de RMQ
Utilizacin
RMQGetMsgData (RAPID Message Queue Get Message Data) se utiliza para obtener los
datos efectivos contenidos en el mensaje de RMQ.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQGetMsgData.
Consulte tambin Ms ejemplos.
Ejemplo 1
VAR rmqmessage myrmqmsg;
VAR num data;
...
RMQGetMsgData myrmqmsg, data;
! Handle data
Los datos, del tipo de dato num, se capturan de la variable myrmqmsg y se almacenen en la
variable data.
Argumentos
RMQGetMsgData Message Data
Message
Tipo de dato: rmqmessage
Variable que contiene el mensaje de RMQ recibido.
Data
Tipo de dato: anytype
Variable del tipo de dato esperado, utilizado para el almacenamiento de los datos recibidos.
Ejecucin de programas
La instruccin RMQGetMsgData se usa para obtener los datos efectivos contenidos en el
mensaje RMQ, convertirlos del formato de carcter ASCII a datos binarios, compilar los
datos para ver si es posible almacenarlos en la variable especificada en la instruccin y a
continuacin copiarlos a la variable.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQGetMsgData.
Ejemplo 1
RECORD mydatatype
int x;
int y;
ENDRECORD
VAR intnum msgreceive;
VAR mydatatype mydata;
Contina en la pgina siguiente
1 Instrucciones
1.139. RMQGetMsgData - Obtener la parte de datos de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
385 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC main()
! Setup interrupt
CONNECT msgreceive WITH msghandler;
! Order cyclic interrupt to occur for data type mydatatype
IRMQMessage mydata, msgreceive;
WHILE TRUE DO
! Performing cycle
...
ENDWHILE
ENDPROC
TRAP msghandler
VAR rmgmessage message;
VAR rmqheader header;
! Get the RMQ message
RMQGetMessage message;
! Copy RMQ header information
RMQGetMsgHeader message \Header:=header;
IF header.datatype = "mydatatype" AND header.ndim = 0 THEN
! Copy the data from the message
RMQGetMsgData message, mydata;
ELSE
TPWrite "Received a type not handled or with wrong dimension";
ENDIF
ENDTRAP
Cuando se recibe un nuevo mensaje, la rutina TRAP msghandler se ejecuta y el nuevo
mensaje se copia a la variable message (instruccin RMQGetMessage). A continuacin se
copian los datos de encabezado de RMQ (instruccin RMQGetMsgHeader). Si el mensaje es
del tipo de dato esperado y tiene las dimensiones correctas, los datos se copian a la variable
mydata (instruccin RMQGetMsgData).
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
ERR_RMQ_VALUE El mensaje recibido y el tipo de dato utilizado en el argumento
Data no son del mismo tipo de dato.
ERR_RMQ_DIM Los tipos de datos son iguales, pero las dimensiones son
diferentes en el dato del mensaje y en la variable utilizada en el
argumento Data.
ERR_RMQ_MSGSIZE El tamao de los datos recibidos es mayor que el tamao
mximo configurado para el RMQ en la tarea receptora.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.139. RMQGetMsgData - Obtener la parte de datos de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 386


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
RMQGetMsgData
[ Message := ] < variable (VAR) of rmqmessage > ,
[ Data := ] < reference (VAR) of anytype >;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Message rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169
Continuacin
1 Instrucciones
1.140. RMQGetMsgHeader - Obtener informacin de encabezado de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
387 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.140. RMQGetMsgHeader - Obtener informacin de encabezado de un mensaje de
RMQ
Utilizacin
RMQGetMsgHeader (RAPID Message Queue Get Message Header) obtiene la informacin
de encabezado contenida en el mensaje de RMQ recibida y lo almacena en variables de los
tipos rmqheader, rmqslot o num.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQGetMsgHeader.
Consulte tambin Ms ejemplos en la pgina 388.
Ejemplo 1
VAR rmqmessage myrmqmsg;
VAR rmqheader myrmqheader;
...
RMQGetMsgHeader myrmqmsg, \Header:=myrmqheader;
En este ejemplo, la variable myrmqheader recibe los datos copiados de la parte rmqheader
de la variable myrmqmsg.
Ejemplo 2
VAR rmqmessage rmqmessage1;
VAR rmqheader rmqheader1;
VAR rmqslot rmqslot1;
VAR num userdef := 0;
...
RRMQGetMsgHeader rmqmessage1 \Header:=rmqheader1
\SenderId:=rmqslot1 \UserDef:=userdef;
En este ejemplo, las variables rmqheader1, rmqslot1 y userdef reciben los datos
copiados de la variable rmqmessage1.
Argumentos
RMQGetMsgHeader Message [\Header] [\SenderId] [\UserDef]
Message
Tipo de dato: rmqmessage
Variable que contiene el mensaje de RMQ recibido y desde la que se copia la informacin
acerca del mensaje.
[\Header]
Tipo de dato: rmqheader
Variable para el almacenamiento de la informacin de encabezado de RMQ copiada desde la
variable especificada con el parmetro Message.
[\SenderId]
Tipo de dato: rmqslot
Variable para el almacenamiento de la informacin de identidad de remitente copiada desde
la variable especificada con el parmetro Message.
Contina en la pgina siguiente
1 Instrucciones
1.140. RMQGetMsgHeader - Obtener informacin de encabezado de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 388


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\UserDef]
User Defined data
Tipo de dato: num
Variable para el almacenamiento de datos definidos por el usuario copiada desde la variable
especificada con el parmetro Message. Para obtener cualquier dato vlido en esta variable,
el remitente necesita especificar que sta debe incluirse al enviar un mensaje de RMQ . Si no
se utiliza, el valor ser cambiado a -1.
Ejecucin de programas
La instruccin RMQGetMsgHeader obtiene la informacin de encabezado contenida en el
mensaje de RMQ y la copia a variables de tipo rmqheader, rmqslot o num, en funcin de
qu argumentos se utilicen.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQGetMsgHeader.
Ejemplo 1
RECORD mydatatype
int x;
int y;
ENDRECORD
VAR intnum msgreceive;
VAR mydatatype mydata;
PROC main()
! Setup interrupt
CONNECT msgreceive WITH msghandler;
! Order cyclic interrupt to occur for data type mydatatype
IRMQMessage mydata, msgreceive;
WHILE TRUE DO
! Performing cycle
...
ENDWHILE
ENDPROC
TRAP msghandler
VAR rmgmessage message;
VAR rmqheader header;
! Get the RMQ message
RMQGetMessage message;
! Copy RMQ header information
RMQGetMsgHeader message \Header:=header;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.140. RMQGetMsgHeader - Obtener informacin de encabezado de un mensaje de RMQ
FlexPendant Interface, PC Interface, or Multitasking
389 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
IF header.datatype = "mydatatype" AND header.ndim = 0 THEN
! Copy the data from the message
RMQGetMsgData message, mydata;
ELSE
TPWrite "Received a type not handled or with wrong dimension";
ENDIF
ENDTRAP
Cuando se recibe un nuevo mensaje, la rutina TRAP msghandler se ejecuta y el nuevo
mensaje se copia a la variable message (instruccin RMQGetMessage). A continuacin se
copian los datos de encabezado de RMQ (instruccin RMQGetMsgHeader). Si el mensaje es
del tipo de dato esperado y tiene las dimensiones correctas, los datos se copian a la variable
mydata (instruccin RMQGetMsgData).
Sintaxis
RMQGetMsgHeader
[ Message := ] < variable (VAR) of rmqmessage > ,
[ \ Header := < variable (VAR) of rmqheader >
[ \ SenderId := < variable (VAR) of rmqslot >
[ \ UserDef := < variable (VAR) of num >;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Slot rmqslot - Nmero de identidad de un cliente
de RMQ en la pgina 1170
RMQ Header rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169
RMQ Message rmqheader - Encabezado de mensaje de
RAPID Message Queue en la pgina 1167
Continuacin
1 Instrucciones
1.141. RMQReadWait - Devuelve un mensaje de una cola RMQ
RobotWare - OS
3HAC16581-5 Revisin: H 390


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.141. RMQReadWait - Devuelve un mensaje de una cola RMQ
Utilizacin
RMQReadWait se utiliza en el modo sincronizado para recibir cualquier tipo de mensaje.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la instruccin RMQReadWait.
Consulte tambin Ms ejemplos en la pgina 390.
Ejemplo
VAR rmqmessage myrmqmsg;
RMQReadWait myrmqmsg;
El primer mensaje de la cola se recibe en la variable myrmqmsg.
Argumentos
RMQReadWait Message [\TimeOut]
Message
Tipo de dato: rmqmessage
La variable en la que se coloca el mensaje recibido.
[\Timeout]
Tipo de dato: num
El tiempo mximo [s] que la ejecucin del programa debe esperar un mensaje. 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_RMQ_TIMEOUT. Si no hay ningn gestor de errores, se detiene la
ejecucin. Es posible cambiar el tiempo lmite a 0 (cero) segundos, de forma que no se
produzca ninguna espera.
Si no se usa el parmetro \Timeout el tiempo de espera es de 60 s. Para esperar
indefinidamente, utilice la constante predefinida WAIT_MAX.
Ejecucin de programas
Todos los mensajes entrantes se ponen en la cola y RMQReadWait los gestiona en orden FIFO,
y de uno en uno. El usuario es responsable de evitar que la cola se llene y de estar preparado
para gestionar cualquier tipo de mensaje admitido por la cola de mensajes de RAPID.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQReadWait.
Ejemplo 1
VAR rmqmessage myrmqmsg;
RMQReadWait myrmqmsg \TimeOut:=30;
El primer mensaje de la cola se recibe en la variable myrmqmsg. Si no se recibe ningn
mensaje en un intervalo de 30 segundos, se detiene la ejecucin del programa.
Contina en la pgina siguiente
1 Instrucciones
1.141. RMQReadWait - Devuelve un mensaje de una cola RMQ
RobotWare - OS
391 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
PROC main()
VAR rmqmessage myrmqmsg;
FOR i FROM 1 TO 25 DO
RMQReadWait myrmqmsg \TimeOut:=30;
...
ENDFOR
ERROR
IF ERRNO = ERR_RMQ_TIMEOUT THEN
TPWrite "ERR_RMQ_TIMEOUT error reported";
...
ENDIF
ENDPROC
Se reciben los mensajes de la cola, que se almacenan en la variable myrmqmsg. Si la recepcin
de un mensaje requiere ms de 30 segundos, se llama al gestor de errores.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Limitaciones
RMQReadWait slo se admite en el modo sincronizado. La ejecucin de esta instruccin en
el modo basado en interrupciones generar un error de tiempo de ejecucin no recuperable.
RMQReadWait no se admite en el nivel de ejecucin de rutina TRAP ni en el nivel de
ejecucin del usuario. La ejecucin de esta instruccin en cualquiera de estos niveles generar
un error de tiempo de ejecucin no recuperable.
Sintaxis
RMQReadWait
[ Message ':=' ] < expression (IN) of rmqmessage>
[ '\' TimeOut':=' < expression (IN) of num > ] ';'
Informacin relacionada
Cdigo de error Descripcin
ERR_RMQ_TIMEOUT No se ha recibido ninguna respuesta dentro del tiempo lmite.
ERR_RMQ_INVMSG Este error se genera si el mensaje no es vlido. Esto puede
ocurrir por ejemplo si una aplicacin de PC enva un mensaje
daado.
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.141. RMQReadWait - Devuelve un mensaje de una cola RMQ
RobotWare - OS
3HAC16581-5 Revisin: H 392


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Descripcin de los modos de ejecucin de
tareas
Manual de referencia tcnica - Parmetros
del sistema, seccin Tema Controller - Tipo
Task
Tipo de dato rmqmessage rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169.
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393.
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder.
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379.
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387.
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384.
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167.
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972.
Vaciar la cola de mensajes de RAPID RMQEmptyQueue - Vaca la cola de
mensajes de RAPID en la pgina
377rmqmessage - Mensaje de RAPID
Message Queue en la pgina 1169.
Obtener el primer mensaje de una cola de
RAPID Message Queue
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381.
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.142. RMQSendMessage - Enviar un mensaje de datos de RMQ
FlexPendant Interface, PC Interface, or Multitasking
393 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.142. RMQSendMessage - Enviar un mensaje de datos de RMQ
Utilizacin
RMQSendMessage (RAPID Message Queue Send Message) se utiliza para enviar datos a un
RMQ configurado para una tarea de RAPID o un cliente de Robot Application Builder.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQSendMessage.
Consulte tambin Ms ejemplos en la pgina 394.
Ejemplo 1
VAR rmqslot destination_slot;
VAR string data:="Hello world";
..
RMQFindSlot destination_slot,"RMQ_Task2";
RMQSendMessage destination_slot,data;
Este ejemplo muestra cmo enviar el valor de la variable data a la tarea de RAPID "Task2"
con el RMQ configurado "RMQ_Task2".
Ejemplo 2
VAR rmqslot destination_slot;
CONST robtarget p5:=[ [600, 500, 225.3], [1, 0, 0, 0], [1, 1, 0,
0], [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ];
VAR num my_id:=1;
..
RMQFindSlot destination_slot,"RMQ_Task2";
RMQSendMessage destination_slot, p5 \UserDef:=my_id;
my_id:=my_id + 1;
Este ejemplo muestra cmo enviar el valor de la constante p5 a la tarea de RAPID "Task2"
con el RMQ configurado "RMQ_Task2". Tambin se enva un nmero definido por el
usuario. Este nmero puede ser utilizado por el destinatario como identificador.
Argumentos
RMQSendMessage Slot SendData [\UserDef]
Slot
Tipo de dato: rmqslot
El nmero de ranura de identidad del cliente que debe recibir el mensaje.
SendData
Tipo de dato: anytype
Referencia a una variable, variable persistente o constante que contiene los datos a enviar al
cliente que tiene la identidad indicada en el argumento Slot.
Contina en la pgina siguiente
1 Instrucciones
1.142. RMQSendMessage - Enviar un mensaje de datos de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 394


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\UserDef]
User Defined data
Tipo de dato: num
Datos que especifican la informacin definida por el usuario al receptor de SendData, es
decir, el cliente cuyo nmero de identidad es el indicado en la variable Slot. El valor debe
ser nmero entero positivo, o bien 0.
Ejecucin de programas
La instruccin RMQSendMessage se usa para enviar datos a un cliente especificado. La
instruccin empaqueta los datos entrantes de un contenedor de almacenamiento y los enva.
Si el cliente destinatario no est interesado en recibir mensajes, es decir, no ha configurado
ninguna interrupcin que deba ejecutarse para el tipo de dato especificado en la instruccin
RMQSendMessage, o bien no est esperando en una instruccin RMQSendWait, el mensaje
se desecha y se genera un aviso.
No todos los tipos de datos pueden enviarse con esta instruccin (consulte las limitaciones).
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQSendMessage.
Ejemplo 1
MODULE SenderMod
RECORD msgrec
num x;
num y;
ENDRECORD
PROC main()
VAR rmqslot destinationSlot;
VAR msgrec msg :=[0, 0, 0];
! Connect to a Robot Application Builder client
RMQFindSlot destinationSlot My_RAB_client;
! Perform cycle
WHILE TRUE DO
! Update msg with valid data
...
! Send message
RMQSendMessage destinationSlot, msg;
...
ENDWHILE
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.142. RMQSendMessage - Enviar un mensaje de datos de RMQ
FlexPendant Interface, PC Interface, or Multitasking
395 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERROR
IF ERRNO = ERR_RMQ_INVALID THEN
! Handle destination client lost
WaitTime 1;
! Reconnect to Robot Application Builder client
RMQFindSlot destinationSlot My_RAB_client;
! Avoid execution stop due to retry count exceed
ResetRetryCount;
RETRY;
ELSIF ERRNO = ERR_RMQ_FULL THEN
! Handle destination queue full
WaitTime 1;
! Avoid execution stop due to retry count exceed
ResetRetryCount;
RETRY;
ENDIF
ENDPROC
ENDMODULE
Este ejemplo muestra cmo usar la instruccin RMQSendMessage con la gestin de errores
aplicada a los errores de tiempo de ejecucin que se produzcan. El programa enva los datos
definidos por el usuario del tipo msgrec a un cliente de Robot Application Builder llamado
"My_RAB_client".
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Limitaciones
No es posible usar en interrupciones, enviar ni recibir instancias de tipos de datos que no
tienen valor, son de semivalor o corresponden al tipo de dato motsetdata.
El tamao mximo de los datos que pueden enviarse al cliente de Robot Application Builder
es de aproximadamente 5.000 bytes. El tamao mximo de los datos que pueden ser recibidos
por un RMQ y almacenados en un tipo de dato rmqmessage es de aproximadamente 3.000
bytes. El tamao de los datos que pueden ser recibidos por un RMQ es configurable (tamao
predeterminado 400, tamao mximo 3.000).
ERR_RMQ_MSGSIZE El tamao del mensaje es excesivo. O bien los datos
sobrepasan el tamao de mensaje mximo permitido o el
cliente destinatario no est configurado para recibir el tamao
de datos enviado.
ERR_RMQ_FULL La cola de mensajes de destino est llena.
ERR_RMQ_INVALID La ranura de destino no ha sido conectada o la ranura de
destino ya no est disponible. Si no hay conexin, debe
realizarse una llamada a RMQFindSlot. Si no est disponible,
el motivo es que un cliente remoto se ha desconectado del con-
trolador.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.142. RMQSendMessage - Enviar un mensaje de datos de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 396


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
RMQSendMessage
[ Slot := ] < variable (VAR) of rmqslot > ,
[ SendData := ] < reference (REF) of anytype >
[ \ UserDef := < expression (IN) of num > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Slot rmqslot - Nmero de identidad de un cliente
de RMQ en la pgina 1170
Continuacin
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
397 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
Utilizacin
La instruccin RMQSendWait (RAPID Message Queue Send Wait) permite enviar datos a un
RMQ o a un cliente de Robot Application Builder y esperar una respuesta del cliente
especificado. Si se utiliza esta instruccin, el usuario necesita saber qu tipo de dato se
enviar en la respuesta proveniente del cliente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RMQSendWait.
Consulte tambin Ms ejemplos en la pgina 400.
Ejemplo 1
VAR rmqslot destination_slot;
VAR string sendstr:="This string is from T_ROB1";
VAR rmqmessage receivemsg;
VAR num mynum;
..
RMQFindSlot destination_slot, "RMQ_T_ROB2";
RMQSendWait destination_slot, sendstr, receivemsg, mynum;
RMQGetMsgData receivemsg, mynum;
Este ejemplo muestra cmo enviar los datos de la variable sendstr a la tarea de RAPID
"T_ROB2" con el RMQ configurado "RMQ_T_ROB2". Ahora la instruccin RMQSendWait
espera una respuesta de la tarea "T_ROB2". La instruccin "T_ROB2" necesita enviar datos
almacenados en un tipo de dato num para dar fin a la instruccin de espera RMQSendWait.
Una vez recibido el mensaje, los datos se copian a la variable mynum desde la variable
receivemsg con la instruccin RMQGetMsgData.
Ejemplo 2
VAR rmqslot rmqslot1;
VAR string mysendstr;
VAR rmqmessage rmqmessage1;
VAR string receivestr;
VAR num mysendid:=1;
..
mysendstr:="Message from Task1";
RMQFindSlot rmqslot1, "RMQ_Task2";
RMQSendWait rmqslot1, mysendstr \UserDef:=mysendid, rmqmessage1,
receivestr \TimeOut:=20;
RMQGetMsgData rmqmessage1, receivestr;
mysendid:=mysendid + 1;
Este ejemplo muestra cmo enviar los datos de la variable mysendstr a la tarea de RAPID
"Task2" con el RMQ configurado "RMQ_Task2". Tambin se enva un nmero definido por
el usuario. Este nmero puede ser utilizado por el destinatario como un identificador y debe
Contina en la pgina siguiente
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 398


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ser devuelto al remitente para dar fin a la instruccin de espera RMQSendWait. Otra exigencia
para dar fin a la instruccin de espera es que el cliente enve el tipo de dato correcto. El tipo
de dato se especifica en la variable receivestr de la instruccin RMQSendWait. Una vez
recibido el mensaje, los datos efectivos se copian a la variable receivestr con la
instruccin RMQGetMsgData.
Argumentos
RMQSendWait Slot SendData [\UserDef] Message ReceiveDataType
[\TimeOut]
Slot
Tipo de dato: rmqslot
El nmero de identidad del cliente que debe recibir el mensaje.
SendData
Tipo de dato: anytype
Referencia a una variable, variable persistente o constante que contiene los datos a enviar al
cliente cuyo nmero de identidad es el indicado en la variable Slot.
[\UserDef]
User Defined data
Tipo de dato: num
Datos que especifican la informacin definida por el usuario al receptor de SendData, es
decir, el cliente cuyo nmero de identidad es el indicado en la variable Slot. Si se utiliza este
argumento opcional, la instruccin RMQSendWait slo finaliza si los tipos de
ReceiveDataType y de UserDef especificados son iguales a los especificados en la
respuesta al mensaje. El valor debe ser nmero entero positivo, o bien 0.
Message
Tipo de dato: rmqmessage
La variable en la que se coloca el mensaje recibido.
ReceiveDataType
Tipo de dato: anytype
Una referencia a una variable persistente, una variable o una constante del tipo de dato
esperado por la instruccin. Los datos efectivos no se copian a esta variable cuando se ejecuta
RMQSendWait. Este argumento slo se usa para especificar el tipo de dato efectivo esperado
por la instruccin RMQSendWait.
[\Timeout]
Tipo de dato: num
El tiempo mximo [s] que debe esperar la ejecucin del programa a una respuesta. 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_RMQ_TIMEOUT. Si no hay ningn gestor de errores, se detiene la
ejecucin.
Si no se usa el parmetro \Timeout el tiempo de espera es de 60 s. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
399 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La instruccin RMQSendWait enva datos y espera una respuesta del cliente que tiene la
identidad de ranura especificada. La respuesta debe ser un rmqmessage del cliente que
recibi el mensaje, y la respuesta debe ser del mismo tipo de dato especificado en el
argumento ReceiveDataType. El mensaje se enva de la misma forma que cuando se usa
RMQSendMessage, es decir, el destinatario recibir un mensaje normal de RAPID Message
Queue. El remitente es responsable de que el destinatario sepa que se necesita una respuesta.
Si se usa el argumento opcional UserDef en la instruccin RMQSendWait, se exige que el
cliente destinatario utilice el mismo UserDef en la respuesta.
Si el cliente destinatario no est interesado en recibir mensajes, es decir, no ha configurado
ninguna interrupcin que deba ejecutarse para el tipo de dato especificado en la instruccin
RMQSendWait, el mensaje se desecha y se genera un aviso. La instruccin devuelve un error
tras el tiempo utilizado en el argumento TimeOut, o tras el tiempo lmite predeterminado de
60 s. Este error puede ser gestionado en un gestor de errores.
La instruccin RMQSendWait tiene la mxima prioridad si se recibe un mensaje y ste se
corresponde con la descripcin tanto de la respuesta esperada como de un mensaje conectado
a una rutina TRAP (consulte la instruccin IRMQMessage).
Si se produce una cada de alimentacin mientras se espera una respuesta del cliente, la
variable utilizada en el argumento Slot cambia a 0 y la instruccin se ejecuta de nuevo. En
este caso, la instruccin falla debido a una identidad de ranura no vlida y se llama al gestor
de errores si lo hay, con el cdigo de error ERR_RMQ_INVALID. La identidad de ranura puede
ser reinicializada desde ah.
No todos los tipos de datos pueden enviarse con esta instruccin (consulte las limitaciones).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 400


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RMQSendWait.
Ejemplo 1
MODULE RMQ_Task1_mod
PROC main()
VAR rmqslot destination_slot;
VAR string mysendstr:="String sent from RMQ_Task1_mod";
VAR string myrecstr;
VAR rmqmessage recmsg;
VAR rmqheader header;
!Get slot identity to client called RMQ_Task2
RMQFindSlot destination_slot, "RMQ_Task2";
WHILE TRUE DO
! Do something
...
!Send data in mysendstr, wait for an answer of type string
RMQSendWait destination_slot, mysendstr, recmsg, myrecstr;
!Get information about the received message
RMQGetMsgHeader recmsg \Header:=header;
IF header.datatype = "string" AND header.ndim = 0 THEN
! Copy the data in recmsg
RMQGetMsgData recmsg, myrecstr;
TPWrite "Received string: " + myrecstr;
ELSE
TPWrite "Not a string that was received";
ENDIF
ENDWHILE
ENDPROC
ENDMODULE
Los datos de la variable mysendstr se envan a la tarea de RAPID "Task2" con la cola de
RAPID Message Queue configurada "RMQ_Task2" y la instruccin RMQSendWait. La
respuesta de la tarea de RAPID "Task2" debe ser una cadena (especificada con el tipo de dato
de la variable myrecstr). El mensaje de RMQ recibido como respuesta se recibe en la
variable recmsg. El uso de la variable myrecstr en la llamada a RMQSendWait es slo una
especificacin del tipo de dato esperado por el remitente como respuesta. No se coloca ningn
dato vlido en la variable de la llamada a RMQSendWait.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
401 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Limitaciones
No se permite ejecutar RMQSendWait en el modo sincronizado. Provocara un error de
tiempo de ejecucin no recuperable.
No es posible usar en interrupciones, enviar ni recibir instancias de tipos de datos que no
tienen valor, son de semivalor o corresponden al tipo de dato motsetdata.
El tamao mximo de los datos que pueden enviarse al cliente de Robot Application Builder
es de aproximadamente 5.000 bytes. El tamao mximo de los datos que pueden ser recibidos
por un RMQ y almacenados en un tipo de dato rmqmessage es de aproximadamente 3.000
bytes. El tamao de los datos que pueden ser recibidos por un RMQ es configurable (tamao
predeterminado 400, tamao mximo 3.000).
Sintaxis
RMQSendWait
[ Slot := ] < variable (VAR) of rmqslot > ,
[ SendData := ] < reference (REF) of anytype >
[ \ UserDef := < expression (IN) of num > ] ,
[ Message := ] < variable (VAR) of rmqmessage > ,
[ ReceiveDataType := ] < reference (REF) of anytype > ,
[ \ Timeout := < expression (IN) of num > ] ;
Informacin relacionada
ERR_RMQ_MSGSIZE El tamao del mensaje es excesivo. O bien los datos
sobrepasan el tamao de mensaje mximo permitido o el
cliente destinatario no est configurado para recibir el tamao
de datos enviado.
ERR_RMQ_FULL La cola de mensajes de destino est llena.
ERR_RMQ_INVALID La ranura rmqslot no ha sido inicializada o la ranura de
destino ya no est disponible. Esto puede ocurrir si la ranura de
destino es un cliente remoto y ste ha sido desconectado del
controlador. RMQSendWait fue interrumpida por una cada de
alimentacin y en el momento del reinicio la ranura rmqslot es
puesta a 0.
ERR_RMQ_TIMEOUT No se ha recibido ninguna respuesta dentro del tiempo lmite.
ERR_RMQ_INVMSG Este error se genera si el mensaje no es vlido. Esto puede
ocurrir por ejemplo si una aplicacin de PC enva un mensaje
daado.
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.143. RMQSendWait - Enviar un mensaje de datos de RMQ y esperar una respuesta
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 402


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el nombre de ranura de una
identidad de ranura especificada
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
RMQ Slot rmqslot - Nmero de identidad de un cliente
de RMQ en la pgina 1170
RMQ Message rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.144. Save - Guarda un mdulo de programa
RobotWare - OS
403 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.144. Save - Guarda un mdulo de programa
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Save.
Consulte tambin Ms ejemplos en la pgina 404.
Ejemplo 1
Load "HOME:/PART_B.MOD";
...
Save "PART_B";
Carga en la memoria de programa el mdulo de programa denominado PART_B.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 [\TaskRef]|[\TaskName] ModuleName [\FilePath] [\File]
[\TaskRef]
Task Reference
Tipo de dato: taskid
La identidad de la tarea de programa en la que debe guardarse el mdulo de programa.
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 T_ROB1 la identificacin de la tarea es T_ROB1Id.
[\TaskName]
Tipo de dato: string
El nombre de la tarea de programa en la que debe guardarse el mdulo de programa.
Si no se especifica ninguno de los argumentos \TaskRef o \TaskName, se guarda el mdulo
de programa de la tarea de programa actual (la que se est ejecutando).
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.
Contina en la pgina siguiente
1 Instrucciones
1.144. Save - Guarda un mdulo de programa
RobotWare - OS
3HAC16581-5 Revisin: H 404


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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 \File slo puede omitirse en el caso de los mdulos de programa
cargados con Load o 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 \File.
Para poder guardar un mdulo de programa cargado anteriormente en el FlexPendant, un
ordenador externo o en la configuracin del sistema, es necesario utilizar el argumento
\FilePath \File.
Ejecucin de programas
La ejecucin del programa espera a que el mdulo de programa termine de guardarse antes
de continuar en la instruccin siguiente.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin Save.
Ejemplo 1
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.
Ejemplo 2
Save "PART_A" \FilePath:="HOME:" \File:="DOORDIR/PART_A.MOD";
Lo mismo que en el ejemplo 1 anterior pero con otra sintaxis.
Ejemplo 3
Save \TaskRef:=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.
Ejemplo 4
Save \TaskName:="TSK1", "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 otro ejemplo en el que la instruccin Save se ejecuta en una tarea de
programa y el guardado se hace en otra tarea de programa.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.144. Save - Guarda un mdulo de programa
RobotWare - OS
405 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Un paro de programa durante la ejecucin de la instruccin Save puede dar lugar a un paro
protegido con Motors OFF. El mensaje de error "20025 Tiempo excesivo Orden paro" se
muestra en el FlexPendant.
Evite tener movimientos en curso durante el guardado.
Gestin de errores
Si el nombre de tarea de programa contenido en \TaskName no se encuentra en el sistema,
la variable de sistema ERRNO cambia a ERR_TASKNAME.
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 el
FlexPendant, 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
[[ \ TaskRef := <variable (VAR) of taskid>]
|[ \ TaskName := <expression (IN) of string>] ,]
[ ModuleName := ] <expression (IN) of string>
[ \ FilePath :=<expression (IN) of string> ]
[ \ File := <expression (IN) of string>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tareas de programa taskid - Identificacin de tareas en la pgina
1202
Continuacin
1 Instrucciones
1.145. SCWrite - Enva los datos de la variable a una aplicacin cliente
PC interface/backup
3HAC16581-5 Revisin: H 406


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.145. SCWrite - Enva los datos de la variable a una aplicacin cliente
Utilizacin
SCWrite (Superior Computer Write) se utiliza para enviar el nombre, el tipo, el tamao y el
valor de una variable persistente a una aplicacin cliente. Es posible enviar tanto variables
individuales como matrices de variables.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SCWrite.
Ejemplo 1
PERS num cycle_done;
PERS num numarr{2}:=[1,2];
SCWrite cycle_done;
El nombre, el tipo y el valor de la variable persistente cycle_done se enva a todas las
aplicaciones cliente.
Ejemplo 2
SCWrite \ToNode := "138.221.228.4", cycle_done;
El nombre, el tipo y el valor de la variable persistente cycle_done se enva a todas las
aplicaciones cliente. El argumento \ToNode no se tiene en cuenta.
Ejemplo 3
SCWrite numarr;
El nombre, el tipo, la dimensin y el valor de la variable persistente numarr se enva a todas
las aplicaciones cliente.
Ejemplo 4
SCWrite \ToNode := "138.221.228.4", numarr;
El nombre, el tipo, la dimensin y el valor de la variable persistente numarr se enva a todas
las aplicaciones cliente. El argumento \ToNode no se tiene en cuenta.
Argumentos
SCWrite [ \ToNode ] Variable
[\ToNode]
Tipo de dato: datatype
El argumento no se tiene en cuenta.
Variable
Tipo de dato: anytype
El nombre de una variable persistente.
Ejecucin de programas
El nombre, el tipo, la dimensin y el valor de la variable persistente se enva a todas las
aplicaciones cliente. dim es la dimensin de la variable y slo se enva si la variable es una
matriz.
Contina en la pgina siguiente
1 Instrucciones
1.145. SCWrite - Enva los datos de la variable a una aplicacin cliente
PC interface/backup
407 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
La instruccin SCWrite devuelve un error en los casos siguientes:
La variable no pudo ser enviada al cliente. Puede deberse a las causas siguientes:
Los mensajes de SCWrite llegan tan cercanos entre s que no es posible enviarlos al
cliente. Solucin: Aada una instruccin WaitTime entre las instrucciones SCWrite
sucesivas.
El valor de la variable es demasiado grande. Reduzca el tamao de la MATRIZ o del
REGISTRO.
El mensaje de error ser el siguiente:
41473 System access error
Failed to send YYYYYY
DondeYYYY esel nombredelavariable.
Cuando se produce un error, el programa se detiene y es necesario reiniciarlo. La variable del
sistema ERRNO contendr al valor ERR_SC_WRITE.
La instruccin SCWrite no devolver ningn error en algunos casos, por ejemplo si la
aplicacin cliente est cerrada o la comunicacin est desactivada. El programa se sigue
ejecutando.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.145. SCWrite - Enva los datos de la variable a una aplicacin cliente
PC interface/backup
3HAC16581-5 Revisin: H 408


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Recuperacin en caso de SCWrite
Para detener el programa cuando se produce un error en una instruccin SCWrite, ste debe
ser gestionado por un gestor de errores. En este caso, el error slo queda registrado en el
registro y el programa se sigue ejecutando.
Recuerde que la gestin de errores dificultar la localizacin de los errores en la
comunicacin con la aplicacin cliente, dado que el error no se comunica nunca a travs de
la pantalla del FlexPendant (a pesar de que s aparece en el registro).
Con RobotWare 5.0 o posteriores
El programa de RAPID tiene el aspecto siguiente:
xx0500002139
Continuacin
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
409 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
Utilizacin
SearchC (Search 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. Las coordenadas de contorno de un objeto de trabajo
pueden obtenerse con la instruccin SearchC.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Al utilizar instrucciones de bsqueda, resulta importante configurar el sistema de E/S para
reducir al mnimo el tiempo que transcurre desde el establecimiento de la seal fsica hasta
que el sistema obtiene informacin acerca del valor (utilice la unidad de E/S con control de
interrupciones, no con control de sondeo). La forma de hacerlo puede ser distinta de un bus
de campo a otro. Si se utiliza DeviceNet, las unidades de ABB DSQC 651 (AD Combi I/O)
y DSQC 652 (Digital I/O) proporcionan tiempos breves, dado que utilizan el cambio de
estado como tipo de conexin. Si se utilizan otros buses de campo, asegrese de configurar
la red correctamente para conseguir las condiciones correctas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SearchC.
Consulte tambin Ms ejemplos en la pgina 413.
Ejemplo 1
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.
Ejemplo 1
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.
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 410


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
SearchC [\Stop] | [\PStop] | [\SStop] | [\Sup] Signal [\Flanks]
SearchPoint CirPoint ToPoint [\ID] Speed [\V] | [\T] Tool
[\WObj] [\Corr]
[ \Stop ]
Stiff Stop
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.
-
AVISO!
La detencin de la bsqueda con un paro rgido (modificador \Stop) slo est permitida si
la velocidad del TCP es inferior a los 100 mm/s. En los paros rgidos a una mayor velocidad,
algunos ejes pueden moverse en una direccin impredecible.
[ \PStop ]
Path Stop
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.
[ \SStop ]
Soft Stop
Tipo de dato:switch
El movimiento del robot se detiene lo antes posible, manteniendo el TCP cerca de la
trayectoria o en sta (paro blando) 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/s,
se detiene en la direccin de la tangente del movimiento, lo que hace que se deslice
marginalmente de la trayectoria.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
411 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Sup ]
Supervision
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, se genera un error
recuperable con el robot en ToPoint.
Si se omite el argumento \Stop, \PStop, \SStop o \Sup (no se utiliza ningn modificador):
el movimiento contina (bsqueda en vuelo) hasta la posicin especificada en el
argumento ToPoint (igual que en el argumento \Sup)
Se indica un error cuando no existe ninguna coincidencia de bsqueda, pero no se
indica tal error si hay ms de una coincidencia de bsqueda (la primera coincidencia
de bsqueda se devuelve como SearchPoint)
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 el
proceso de bsqueda o se pierde la comunicacin con la seal, 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, ProgDisp/ExtOffs la
herramienta especificada, el objeto de trabajo y el sistema de coordenadas into consideration.
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 412


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si se trata de un movimiento
sincronizado y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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 ]
Work Object
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
413 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Corr ]
Correction
Tipo de dato: switch
Si este argumento est presente, 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.
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 o no
se especifica ningn modificador, 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 siguiente.
La figura muestra cmo se usa la deteccin de seal disparada por flancos (la posicin se
almacena slo cuando la seal cambia por primera vez).
xx0500002237
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin SearchC.
Ejemplo 1
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, el programa genera un error.
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. En la figura siguiente
se muestra un ejemplo de algo que puede salir mal cuando se usan datos de zona distintos de
fine.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 414


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La instruccin SearchC no debe reanudarse en ningn caso una vez traspasado el 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).
En la figura siguiente se muestra cmo se encuentra una posicin en el lado incorrecto del
objeto a causa del uso de datos de zona incorrectos.
xx0500002238
AVISO!
Limitaciones de bsqueda con movimiento sincronizado y coordinado:
Si se utiliza SearchL, SearchC o SearchExtJ en una tarea de programa y en otra
instruccin de movimiento de otra tarea de programa, slo es posible usar la bsqueda
en vuelo con el modificador \Sup. Adems de ello, slo es posible realizar la
recuperacin en caso de error con TRYNEXT.
Es posible utilizar toda la funcionalidad de bsqueda si se utilizan instrucciones
SearchL, SearchC o SearchExtJ en todas las tareas de programa implicadas con
movimiento sincronizado y coordinado y se genera una coincidencia de bsqueda
desde la misma seal digital de entrada. Con ello se genera una coincidencia de
bsqueda de forma sincronizada en todas las instrucciones de bsqueda. Cualquier
recuperacin de error debe ser tambin la misma en todas las tareas de programa
implicadas.
Mientras la bsqueda est activa, no es posible almacenar la trayectoria actual con la
instruccin StorePath.
Exactitud de repeticin para la posicin de coincidencia de bsqueda con una velocidad de
20 a 1.000 mm/s 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.
La seal ya tiene un valor positivo al comienzo del proceso de bsqueda o la
comunicacin con la seal se pierde. Esto genera el error ERR_SIGSUPSEARCH
slo si se omite el argumento \Flanks.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
415 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Los errores pueden gestionarse de formas distintas en funcin del modo de ejecucin
seleccionado:
Ejecucin continua hacia adelante/Instrucciones hacia adelante/
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 atrs: Durante la ejecucin hacia atrs, la instruccin realiza el
movimiento pero no realiza la supervisin de seales.
Sintaxis
SearchC
[ \ Stop, ] | [ \ PStop ,] | [ \ SStop , ] | [ \
Sup , ]
[ Signal:= ] < variable (VAR) of signaldi >
[\ Flanks],
[ SearchPoint:= ] < var or pers (INOUT) of robtarget > ,
[ CirPoint:= ] < expression (IN) of robtarget > ,
[ ToPoint:= ] < expression (IN) of robtarget > ,
[ \ ID := < expression (IN) of identno >],
[ Speed:= ] < expression (IN) of speeddata >
[ \ V := < expression (IN) of num > ]|
[ \ T := < expression (IN) of num > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj:= < persistent (PERS) of wobjdata > ]
[ \ Corr ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Bsquedas lineales SearchL - Realiza una bsqueda lineal usando
el robot en la pgina 424
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de correc-
ciones en la pgina 76
Mueve el robot en crculo MoveC - Mueve el robot en crculo en la pgina
237
Movimiento circular Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante la
ejecucin del programa
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.146. SearchC - Realiza una bsqueda en crculo usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 416


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Utilizacin de gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Recuperacin en caso de error
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
417 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
Utilizacin
SearchExtJ (Search External Joints) se usa para buscar la posicin de ejes externos cuando
slo hay movimiento en ejes externos lineales o de rotacin. Estos ejes externos pueden
pertenecer a una o varias unidades mecnicas sin TCP.
Durante el movimiento, el sistema supervisa una seal digital de entrada. Cuando el valor de
la seal cambia al valor solicitado, el sistema lee inmediatamente la posicin actual.
Esta instruccin slo puede usarse si:
La tarea de programa actual est definida como tarea de movimiento
La tarea controla una o varias unidades mecnicas sin TCP
Al utilizar instrucciones de bsqueda, resulta importante configurar el sistema de E/S para
reducir al mnimo el tiempo de retardo que transcurre desde el establecimiento de la seal
fsica hasta que el sistema obtiene informacin acerca del valor (utilice la unidad de E/S con
control de interrupciones, no con control de sondeo). La forma de hacerlo puede ser distinta
de un bus de campo a otro. Si se utiliza DeviceNet, las unidades de ABB DSQC 651 (AD
Combi I/O) y DSQC 652 (Digital I/O) proporcionan retardos breves, dado que utilizan el
cambio de estado como tipo de conexin. Si se utilizan otros buses de campo, asegrese de
que la red est configurada correctamente para obtener las condiciones correctas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SearchExtJ.
Consulte tambin Ms ejemplos en la pgina 420.
Ejemplo 1
SearchExtJ di1, searchp, jpos10, vrot20;
La unidad mecnica con ejes de rotacin se mueve hacia la posicin jpos10 a la velocidad
de vrot20. Cuando el valor de la seal di1 cambia a activo, la posicin se almacena en
searchp.
Ejemplo 2
SearchExJ \Stop, di2, posx, jpos20, vlin50;
La unidad mecnica con eje lineal se mueve hacia la posicin jpos20. Cuando el valor de la
seal di2 cambia a activo, la posicin se almacena en posx y el movimiento en curso se
detiene inmediatamente.
Argumentos
SearchExtJ [\Stop] | [\PStop] | [\SStop] | [\Sup] Signal [\Flanks]
SearchJointPos ToJointPos [\ID] [\UseEOffs] Speed [\T]
[ \Stop ]
Stiff Stop
Tipo de dato:switch
El movimiento del robot se detiene lo antes posible con un paro rgido cuando el valor de la
seal de bsqueda cambia a activo. Sin embargo, los ejes externos se mueven una distancia
pequea antes de detenerse y no retroceden hasta la posicin buscada, es decir, hasta la
posicin en la que cambi la seal.
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
3HAC16581-5 Revisin: H 418


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \PStop ]
Path Stop
Tipo de dato: switch
El movimiento se detiene con un paro en la trayectoria (paro de programa) cuando el valor de
la seal de bsqueda cambia a activo. Sin embargo, los ejes externos se mueven una distancia
bastante grande antes de deternese y no retroceden hasta la posicin buscada, es decir, hasta
la posicin en la que cambi la seal.
[ \SStop ]
Soft Stop
Tipo de dato: switch
El movimiento del robot se detiene lo antes posible con un paro suave rpido cuando el valor
de la seal de bsqueda cambia a activo. Sin embargo, los ejes externos slo se mueven una
distancia pequea antes de detenerse y no retroceden hasta la posicin buscada, es decir, hasta
la posicin en la que cambi la seal.
Stop es ms rpido en comparacin con SStop.SStop, y ms rpido en comparacin con
PStop.
[ \Sup ]
Supervision
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, se genera un error
recuperable con las unidades mecnicas en la ToJointPos.
Si se omite el argumento \Stop, \PStop, \SStop o \Sup (no se utiliza ningn modificador):
El movimiento contina (bsqueda en vuelo) hasta la posicin especificada en el
argumento ToJointPos (igual que en el argumento \Sup)
Se indica un error cuando hay una coincidencia de bsqueda, pero no se indica tal error
si hay ms de una coincidencia de bsqueda (la primera coincidencia de bsqueda se
devuelve como SearchJointPos)
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 el valor positivo al comenzar un
proceso de bsqueda o se pierde la comunicacin con la seal, el movimiento se detiene lo
antes posible con un paro suave. Se genera un error recuperable por el usuario
(ERR_SIGSUPSEARCH), que puede gestionarse en el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
419 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
SearchJointPos
Tipo de dato: jointtarget
La posicin de los ejes externos en el momento del disparo de la seal de bsqueda. La
posicin tiene en cuenta cualquier ExtOffs activo.
ToJointPos
Tipo de dato: jointtarget
El punto de destino 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).
SearchExtJ utiliza siempre un punto de paro como dato de zona del destino.
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
[ \UseEOffs ]
Use External Offset
Tipo de dato: switch
El offset de los ejes externos, configurado por la instruccin EOffsSet, se activa para la
instruccin SearchExtJ cuando se utiliza el argumento UseEOffs. Consulte la instruccin
EOffsSet para obtener ms informacin acerca del offset externo.
Speed
Tipo de dato: speeddata
Los datos de velocidad que se aplican a los movimientos. Los datos de velocidad definen la
velocidad del eje externo lineal o de rotacin.
[ \T ]
Time
Tipo de dato: num
Este argumento se utiliza para especificar el tiempo total en segundos que dura el movimiento
de las unidades mecnicas. A continuacin, se sustituye por los datos de velocidad
correspondientes.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
3HAC16581-5 Revisin: H 420


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Consulte la instruccin MoveExtJ para obtener ms informacin acerca del movimiento de
las unidades mecnicas sin TCP.
El movimiento termina siempre con un punto de paro, lo que implica que los ejes externos se
detienen en el punto de destino. Si se realiza una bsqueda en vuelo, es decir, cuando se utiliza
el argumento \Sup o no se especifica ningn modificador, el movimiento siempre contina
hacia el punto de destino programado. Si se realiza una bsqueda con el modificador \Stop,
\PStop o \SStop, el movimiento se detiene cuando se detecta la primera seal.
La instruccin SearchExtJ almacena la posicin de los ejes externos cuando el valor de la
seal digital cambia al valor solicitado, como se representa en la figura siguiente.
La figura muestra cmo se usa la deteccin de seal disparada por flancos (la posicin se
almacena slo cuando la seal cambia por primera vez).
xx0500002243
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin SearchExtJ.
Ejemplo 1
SearchExtJ \Sup, di1\Flanks, searchp,jpos10, vrot20;
La unidad mecnica se mueve hacia la posicin jpos10. Cuando el valor de la seal di1
cambia a activo o pasivo, la posicin se almacena en searchp. Si el valor de la seal cambia
dos veces, el programa genera un error una vez que se completa el proceso de bsqueda.
Ejemplo 2
SearchExtJ \Stop, di1, sp, jpos20, vlin50;
MoveExtJ sp, vlin50, fine \Inpos := inpos50;
Al comienzo del proceso de bsqueda, se realiza una comprobacin de la seal dil y si la
seal ya tiene un valor positivo o se pierde la comunicacin con el robot, el movimiento se
detiene. De lo contrario, la unidad mecnica se mueve hacia la posicin jpos20. Cuando el
valor de la seal di1 cambia a activo, la posicin se almacena en sp. La unidad mecnica
vuelve a este punto usando un punto de paro definido exactamente.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
421 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
La seal ya tiene un valor positivo al principio del proceso de bsqueda o se pierde la
comunicacin con la seal. Esto 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 adelante/Instrucciones hacia adelante/
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 del movimiento 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 atrs: Durante la ejecucin hacia atrs, la instruccin slo realiza
el movimiento pero no realiza la supervisin de seales.
Ejemplo
VAR num fk;
...
MoveExtJ jpos10, vrot100, fine;
SearchExtJ \Stop, di1, sp, jpos20, vrot5;
...
ERROR
IF ERRNO=ERR_WHLSEARCH THEN
StorePath;
MoveExtJ jpos10, vrot50, fine;
RestoPath;
RETRY;
ELSEIF ERRNO=ERR_SIGSUPSEARCH THEN
TPWrite "The signal of the SearchExtJ instruction is already
high!";
TPReadFK fk,"Try again after manual reset of signal
?","YES","stEmpty","stEmpty","stEmpty","NO";
IF fk = 1 THEN
MoveExtJ jpos10, vrot50, fine;
RETRY;
ELSE
Stop;
ENDIF
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
3HAC16581-5 Revisin: H 422


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ENDIF
Si la seal ya est activa al principio del proceso de bsqueda o se pierde la comunicacin
con la seal, se activa un cuadro de dilogo (TPReadFK ...;). Si se pone a cero
manualmente la seal y se presiona S en la ventana de dilogo del usuario, la unidad
mecnica vuelve a la posicin jpos10 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, la unidad mecnica busca
desde la posicin jpos10 hasta la posicin jpos20. Si no se detecta ninguna seal, el robot
vuelve a la posicin jpos10 y lo intenta de nuevo.
Limitaciones
Limitaciones de bsqueda con movimiento sincronizado y coordinado:
Si se utiliza SearchL, SearchC o SearchExtJ en una tarea de programa y en otra
instruccin de movimiento de otra tarea de programa, slo es posible usar la bsqueda
en vuelo con el modificador \Sup. Adems de ello, slo es posible realizar la
recuperacin en caso de error con TRYNEXT.
Es posible utilizar todas las funciones de bsqueda si se utilizan instrucciones
SearchL, SearchC o SearchExtJ en todas las tareas de programa implicadas con
movimiento sincronizado y coordinado y se generan coincidencias de bsqueda desde
la misma seal digital de entrada. Con ello se generan coincidencias de bsqueda de
forma sincronizada en todas las instrucciones de bsqueda. Cualquier recuperacin de
error debe ser tambin la misma en todas las tareas de programa implicadas.
Mientras la bsqueda est activa, no es posible almacenar la trayectoria actual con la
instruccin StorePath.
Sintaxis
SearchExtJ
[ \ Stop , ] | [ \ PStop ,] | [ \ SStop ,] | [ \
Sup , ]
[ Signal := ] < variable (VAR) of signaldi >
[\ Flanks],
[ SearchJointPos := ] < var or pers (INOUT) of jointtarget > ,
[ ToJointPos := ] < expression (IN) of jointtarget >
[ \ ID := < expression (IN) of identno >],
[ \ UseEOffs , ]
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento de unidades mecnicas sin TCP MoveExtJ - Mueve una o varias unidades
mecnicas sin TCP en la pgina 252
Definicin de jointtarget jointtarget - Datos de posicin de eje en la
pgina 1125jointtarget - Datos de posicin de
eje en la pgina 1125
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.147. SearchExtJ - Busca con una o varias unidades mecnicas sin TCP
RobotWare - OS
423 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182speeddata - Datos de velocidad en la
pgina 1182speeddata - Datos de velocidad
en la pgina 1182
Utilizacin de gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Recuperacin en caso de error
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 424


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.148. SearchL - Realiza una bsqueda lineal usando el robot
Utilizacin
SearchL (Search Linear se utiliza para buscar una posicin al mover el punto central de la
herramienta (TCP) en sentido lineal.
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Al utilizar instrucciones de bsqueda, resulta importante configurar el sistema de E/S para
reducir al mnimo el tiempo que transcurre desde el establecimiento de la seal fsica hasta
que el sistema obtiene informacin acerca del valor (utilice la unidad de E/S con control de
interrupciones, no con control de sondeo). La forma de hacerlo puede ser distinta de un bus
de campo a otro. Si se utiliza DeviceNet, las unidades de ABB DSQC 651 (AD Combi I/O)
y DSQC 652 (Digital I/O) proporcionan tiempos breves, dado que utilizan el cambio de
estado como tipo de conexin. Si se utilizan otros buses de campo, asegrese de configurar
la red correctamente para conseguir las condiciones correctas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SearchL.
Consulte tambin Ms ejemplos en la pgina 428.
Ejemplo 1
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.
Ejemplo 2
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.
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
425 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
SearchL [\Stop] | [\PStop] | [\SStop] | [\Sup] Signal [\Flanks]
SearchPoint ToPoint [\ID] Speed [\V] | [\T] Tool [\WObj]
[\Corr]
[ \Stop ]
Stiff Stop
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.
-
AVISO!
La detencin de la bsqueda con un paro rgido (modificador \Stop) slo est permitida si
la velocidad del TCP es inferior a los 100 mm/s. En los paros rgidos a una mayor velocidad,
algunos ejes pueden moverse en una direccin impredecible.
[ \PStop ]
Path Stop
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.
[ \SStop ]
Soft Stop
Tipo de dato: switch
El movimiento del robot se detiene lo antes posible, manteniendo el TCP cerca de la
trayectoria o en sta (paro blando) 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/s,
se detiene en la direccin de la tangente del movimiento, lo que hace que se deslice
marginalmente de la trayectoria.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 426


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Sup ]
Supervision
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, se genera un error
recuperable con el robot en ToPoint.
Si se omite el argumento \Stop, \PStop, \SStop o \Sup (no se utiliza ningn modificador):
el movimiento contina (bsqueda en vuelo) hasta la posicin especificada en el
argumento ToPoint (igual que en el argumento \Sup)
Se indica un error cuando no existe ninguna coincidencia de bsqueda, pero no se
indica tal error si hay ms de una coincidencia de bsqueda (la primera coincidencia
de bsqueda se devuelve como SearchPoint)
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 el valor positivo al comenzar un
proceso de bsqueda o se pierde la comunicacin con la seal, 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, 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
427 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si se trata de un movimiento
sincronizado y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Velocity
Tipo de dato: num
Este argumento se utiliza para especificar la velocidad del TCP en mm/s directamente en la
instruccin. A continuacin, se sustituye por la velocidad correspondiente, especificada en
los datos de velocidad.
[ \T ]
Time
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 ]
Work Object
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 ]
Correction
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 428


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. Si se realiza una bsqueda en vuelo, es decir, cuando se utiliza el
argumento \Sup o no se especifica ningn modificador, el movimiento del robot contina
siempre hacia el punto de destino programado. Si 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 SearchL almacena la posicin del TCP cuando el valor de la seal digital
cambia al valor solicitado, como se representa en la figura siguiente.
La figura muestra cmo se usa la deteccin de seal disparada por flancos (la posicin se
almacena slo cuando la seal cambia por primera vez).
xx0500002243
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin SearchL.
Ejemplo 1
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, el programa genera un error una vez que se completa el proceso de
bsqueda.
Ejemplo 2
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 o se pierde la comunicacin con el robot, el robot se detiene.
De lo contrario, el TCP de 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 a este
punto usando un punto de paro definido exactamente. Usando un desplazamiento de
programa, el robot se mueve a continuacin respecto de la posicin buscada, sp.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
429 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. En las figuras
siguientes se muestran ejemplos de cosas que pueden salir mal cuando se usan datos de zona
distintos de fine.
En la figura siguiente se muestra cmo se encuentra una posicin en el lado incorrecto del
objeto a causa del uso de datos de zona incorrectos.
xx0500002244
La figura siguiente muestra que no se ha detectado ningn xito de bsqueda porque se usaron
datos de zona errneos.
xx0500002245
La figura siguiente muestra que no se ha detectado ningn xito de bsqueda porque se usaron
datos de zona errneos.
xx0500002246
Limitaciones de bsqueda con movimiento sincronizado y coordinado:
Si se utiliza SearchL, SearchC o SearchExtJ en una tarea de programa y en otra
instruccin de movimiento de otra tarea de programa, slo es posible usar la bsqueda
en vuelo con el modificador \Sup. Adems de ello, slo es posible realizar la
recuperacin en caso de error con TRYNEXT.
Es posible utilizar toda la funcionalidad de bsqueda si se utilizan instrucciones
SearchL, SearchC o SearchExtJ en todas las tareas de programa implicadas con
movimiento sincronizado y coordinado y se genera una coincidencia de bsqueda
desde la misma seal digital de entrada. Con ello se genera una coincidencia de
bsqueda de forma sincronizada en todas las instrucciones de bsqueda. Cualquier
recuperacin de error debe ser tambin la misma en todas las tareas de programa
implicadas.
Mientras la bsqueda est activa, no se permite almacenar la trayectoria actual con la
instruccin StorePath.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 430


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Exactitud de repeticin para la posicin de coincidencia de bsqueda con una velocidad de
20 a 1.000 mm/s 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.
La seal ya tiene un valor positivo al principio del proceso de bsqueda o se pierde la
comunicacin con la seal. Esto 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 adelante/Instrucciones hacia adelante/
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 / Instruccin 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 atrs: Durante la ejecucin hacia atrs, la instruccin realiza el
movimiento pero no realiza la supervisin de seales.
Ejemplo
VAR num fk;
...
MoveL p10, v100, fine, tool1;
SearchL \Stop, di1, sp, p20, v100, tool1;
...
ERROR
IF ERRNO=ERR_WHLSEARCH THEN
StorePath;
MoveL p10, v100, fine, tool1;
RestoPath;
RETRY;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
431 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ELSEIF ERRNO=ERR_SIGSUPSEARCH THEN
TPWrite "The signal of the SearchL instruction is already
high!";
TPReadFK fk,"Try again after manual reset of signal
?","YES","stEmpty","stEmpty","stEmpty","NO";
IF fk = 1 THEN
MoveL p10, v100, fine, tool1;
RETRY;
ELSE
Stop;
ENDIF
ENDIF
Si la seal ya est activa al principio del proceso de bsqueda o se pierde la comunicacin
con la seal, se activa un cuadro de dilogo (TPReadFK ...;). Si se pone a cero
manualmente la seal y se presiona S en la ventana de dilogo del usuario, el robot vuelve 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) of signaldi >
[\ Flanks],
[ SearchPoint := ] < var or pers (INOUT) of robtarget > ,
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ V := < expression (IN) of num > ] |
[ \ T := < expression (IN) of num > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ]
[ \ Corr ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Bsquedas circulares SearchC - Realiza una bsqueda en crculo
usando el robot en la pgina 409
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de correc-
ciones en la pgina 76
Movimiento lineal del robot MoveL - Mueve el robot siguiendo una
trayectoria lineal en la pgina 268
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.148. SearchL - Realiza una bsqueda lineal usando el robot
RobotWare - OS
3HAC16581-5 Revisin: H 432


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Movimiento lineal Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante la
ejecucin del programa
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Utilizacin de gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Recuperacin en caso de error
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.149. SenDevice - Establece una conexin a un dispositivo de sensor
Sensor Interface
433 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.149. SenDevice - Establece una conexin a un dispositivo de sensor
Utilizacin
SenDevice se utiliza para conectarse a un dispositivo de sensor conectado a la interfaz de
sensores serie.
La interfaz de sensores se comunica con los sensores a travs de canales serie, utilizando el
protocolo de transporte RTP1.
ste es un ejemplo de configuracin de un canal de sensor.
COM_PHY_CHANNEL:
Name COM1:
Connector COM1
Baudrate 19200
COM_TRP:
Name sen1:
Type RTP1
PhyChannel COM1
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SenDevice.
Ejemplo 1
CONST string SensorPar := "flp1:senpar.cfg";
CONST num ParBlock:= 1;
! Connect to the sensor device "sen1:" (defined in sio.cfg).
SenDevice "sen1:";
! Read sensor parameters from sensor datablock 1
! and store on flp1:senpar.cfg
ReadBlock "sen1:", ParBlock, SensorPar;
Argumentos
SenDevice device
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
Sintaxis
ReadBlock
[ device ':='] < expression (IN) of string>','
[ BlockNo := ] < expression (IN) of num > ,
[ FileName := ] < expression (IN) of string > ;
Contina en la pgina siguiente
1 Instrucciones
1.149. SenDevice - Establece una conexin a un dispositivo de sensor
Sensor Interface
3HAC16581-5 Revisin: H 434


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura de una variable de sensor WriteVar - Escribe una variable en la pgina
734
Lectura de una variable de sensor ReadVar - Lee una variable de un dispositivo
en la pgina 967
Escritura de un bloque de datos de sensor WriteBlock - Escribe un bloque de datos en un
dispositivo en la pgina 724
Configuracin de la comunicacin del
sensor
Manual de referencia tcnica - Parmetros del
sistema, seccin Communication
Continuacin
1 Instrucciones
1.150. Set - Activa una seal digital de salida
RobotWare - OS
435 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.150. Set - Activa una seal digital de salida
Utilizacin
Set se utiliza para cambiar a 1 una seal digital de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Set.
Ejemplo 1
Set do15;
Se cambia la seal do15 a 1.
Ejemplo 2
Set weldon;
Se cambia a 1 la seal weldon.
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.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Sintaxis
Set
[ Signal := ] < variable (VAR) of signaldo > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cambio de una seal digital de salida a cero Reset - Pone a cero una seal digital de salida
en la pgina 367
Cambio del valor de una seal digital de
salida
SetDO - Cambia el valor de una seal digital
de salida en la pgina 448
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, section Resumen sobre
RAPID - Seales de entrada y salida
Contina en la pgina siguiente
1 Instrucciones
1.150. Set - Activa una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 436


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.151. SetAllDataVal - Establece un valor en todos los objetos de datos de un conjunto definido
RobotWare - OS
437 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.151. SetAllDataVal - Establece un valor en todos los objetos de datos de un
conjunto definido
Utilizacin
SetAllDataVal(Set All Data Value permite establecer un nuevo valor en todos los objetos
de datos de un tipo determinado y que coincidan con la gramtica determinada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetAllDataVal.
VAR mydata mydata0:=0;
...
SetAllDataVal "mydata"\ TypeMod:="mytypes"\ Hidden,mydata0;
Esta instruccin cambia el valor de todos los objetos de datos del tipo de dato mydata que
haya en el sistema al mismo valor que tenga la variable mydata0 (en el ejemplo, se trata del
valor 0). El tipo de dato definido por el usuario mydata se define en el mdulo mytypes.
Argumentos
SetAllDataVal Type [\TypeMod] [\Object] [\Hidden] Value
Type
Tipo de dato: string
El nombre del tipo de objetos de datos cuyo valor se desea establecer.
[ \TypeMod ]
Mdulo de tipo
Tipo de dato: string
El nombre del mdulo en el que est definido el tipo de dato, si se utilizan tipos de datos
definidos por el usuario.
[ \Object ]
Tipo de dato: string
El comportamiento predeterminado es cambiar el valor de todos los objetos de datos del tipo
de datos indicado anteriormente, pero esta opcin permite indicar el nombre de uno o varios
objetos con una expresin regular. (Consulte tambin la instruccin SetDataSearch)
[ \Hidden ]
Tipo de dato: switch
Tambin afecta a los objetos de datos que se encuentren en las rutinas (datos o parmetros de
rutina) que queden ocultas por otras rutinas en la cadena de llamadas.
Value
Tipo de dato: anytype
Una variable que contiene el nuevo valor que se desea establecer. El tipo de dato debe ser el
mismo que el tipo de dato del objeto cuyo valor se desea establecer.
Contina en la pgina siguiente
1 Instrucciones
1.151. SetAllDataVal - Establece un valor en todos los objetos de datos de un conjunto definido
RobotWare - OS
3HAC16581-5 Revisin: H 438


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La instruccin fallar si la especificacin de Type o TypeMod es incorrecta.
Si el objeto de datos coincidente es una matriz, todos los elementos de la matriz se cambian
al valor especificado.
Si el objeto de datos coincidente es un dato de slo lectura, el valor no se cambia.
Si el sistema no tiene ningn objeto de dato coincidente, la instruccin lo aceptar y retornar
sin generar errores.
Limitaciones
En el caso de los tipos de datos de semivalor, no es posible buscar el tipo de dato asociado.
Por ejemplo, si se busca dionum, no existen coincidencias de bsqueda para la seal
signaldi y si se busca num, no existen coincidencias de bsqueda para las seales
signalgi ni signalai.
No es posible asignar un valor a una variable declarada como LOCAL en un mdulo de RAPID
incorporado.
Sintaxis
SetAllDataVal
[ Type := ] < expression (IN) of string >
[\TypeMod :=<expression (IN) of string>]
[\Object :=<expression (IN) of string>]
['\'Hidden ] ','
[ Value :=] <variable (VAR) of anytype>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de un conjunto de smbolos en
una sesin de bsqueda
SetDataSearch - Definir el conjunto de
smbolos de una secuencia de bsqueda en
la pgina 441
Obtencin del siguiente smbolo coincidente GetNextSym - Obtiene el siguiente smbolo
coincidente en la pgina 862
Obtencin del valor de un objeto de datos GetDataVal - Obtiene el valor de un objeto de
datos en la pgina 108
Asignacin del valor de un objeto de datos SetDataVal - Establece el valor de un objeto
de datos en la pgina 445
El tipo de datos relacionado datapos datapos - Inclusin de un bloque para un
objeto de datos en la pgina 1097
Continuacin
1 Instrucciones
1.152. SetAO - Cambia el valor de una seal analgica de salida
RobotWare - OS
439 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.152. SetAO - Cambia el valor de una seal analgica de salida
Utilizacin
SetAO se utiliza para cambiar el valor de una seal analgica de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetAO.
Consulte tambin Ms ejemplos en la pgina 440.
Ejemplo 1
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. En la figura siguiente se muestra un diagrama de cmo se ajustan los
valores de las seales analgicas a una escala.
xx0500002408
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Contina en la pgina siguiente
1 Instrucciones
1.152. SetAO - Cambia el valor de una seal analgica de salida
RobotWare - OS
3HAC16581-5 Revisin: H 440


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SetAO.
Ejemplo 1
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) of signalao > ,
[ Value := ] < expression (IN) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, section Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.153. SetDataSearch - Definir el conjunto de smbolos de una secuencia de bsqueda
RobotWare - OS
441 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.153. SetDataSearch - Definir el conjunto de smbolos de una secuencia de
bsqueda
Utilizacin
SetDataSearch se utiliza junto con la funcin GetNextSym para obtener objetos de datos
del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetDataSearch.
Ejemplo 1
VAR datapos block;
VAR string name;
...
SetDataSearch "robtarget"\ InTask;
WHILE GetNextSym(name,block \Recursive) DO
...
Esta sesin encontrar todos los objetos de tipo robtarget de la tarea.
Argumentos
SetDataSearch Type [\TypeMod] [\Object] [\PersSym]
[\VarSym][\ConstSym] [\InTask] | [\InMod]
[\InRout][\GlobalSym] | [\LocalSym]
Type
Tipo de dato: string
El nombre del tipo de dato de los objetos de datos que se desea obtener.
[ \TypeMod]
Type Module
Tipo de dato: string
El nombre del mdulo en el que est definido el tipo de dato, si se utilizan tipos de datos
definidos por el usuario.
[ \Object ]
Tipo de dato: string
El comportamiento predeterminado es cambiar el valor de todos los objetos de datos del tipo
de datos indicado anteriormente, pero esta opcin permite indicar el nombre de uno o varios
objetos con una expresin regular.
Las expresiones regulares constituyen un potente mecanismo que permite especificar una
expresin gramtica de coincidencia con los nombres de los objetos de datos. Esta cadena
puede componerse de caracteres normales y metacaracteres. Los metacaracteres son
operadores especiales utilizados para representar a uno o varios caracteres normales en la
Contina en la pgina siguiente
1 Instrucciones
1.153. SetDataSearch - Definir el conjunto de smbolos de una secuencia de bsqueda
RobotWare - OS
3HAC16581-5 Revisin: H 442


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
cadena, con el fin de ampliar la bsqueda. Es posible comprobar si una cadena coincide
totalmente con un patrn especificado o buscar dentro de una cadena para encontrar una
subcadena que coincide con un patrn especificado.
Dentro de una expresin regular, todos los caracteres alfanumricos coinciden consigo
mismos. Esto significa que el patrn "abc" slo coincidir con un objeto de datos llamado
"abc". Para encontrar todos los nombres de objetos de dato que contienen la secuencia de
caracteres "abc", es necesario aadir algunos metacaracteres. La expresin regular para
hacerlo es ".*abc.*".
El conjunto de metacaracteres disponibles se muestra a continuacin.
El comportamiento predeterminado es aceptar todos los smbolos, pero si se especifica uno o
varios de los modificadores PersSym, VarSym o ConstSym slo se aceptan los smbolos que
coincidan con la especificacin:
[ \PersSym ]
Persistent Symbols
Tipo de dato: switch
Acepta smbolos de variables persistentes (PERS).
[ \VarSym ]
Variable Symbols
Tipo de dato: switch
Acepta smbolos de variables (VAR).
[ \ConstSym ]
Constant Symbols
Tipo de dato: switch
Acepta smbolos de constantes (CONST).
Si no se especifica ninguno de los modificadores \InTask o \InMod, la bsqueda comienza
en el nivel de sistema. El nivel de sistema es la raz de todas las dems definiciones de
smbolos del rbol de smbolos. En el nivel de sistema se encuentran todos los smbolos
incorporados, junto con el manejador del nivel de tareas. En el nivel de tarea se encuentran
todos los smbolos globales cargados, junto con el manejador del nivel de mdulos.
Si se indica el modificador \Recursive en GetNextSym, la sesin de bsqueda incluir
todos los mdulos y rutinas situadas debajo del nivel del sistema.
Expresin Significado
. Cualquier carcter individual.
[s] Cualquier carcter individual del conjunto no vaco s, donde s es una
secuencia de caracteres. Los rangos pueden especificarse como c-c.
[^s] Cualquier carcter individual no perteneciente al conjunto s.
r* Cero o ms casos de la expresin regular r.
r+ Uno varios casos de la expresin regular r.
r? Cero o un caso de la expresin regular r.
(r) La expresin regular r. Se utiliza para separar una expresin regular de otra.
r | r Las expresiones regulares r o r'.
.* Cualquier secuencia de caracteres (cero, uno o varios caracteres).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.153. SetDataSearch - Definir el conjunto de smbolos de una secuencia de bsqueda
RobotWare - OS
443 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \InTask ]
In Task
Tipo de dato: switch
Inicia la bsqueda en el nivel de tarea. En el nivel de tarea se encuentran todos los smbolos
globales cargados, junto con el manejador del nivel de mdulos.
Si se indica el modificador \Recursive en GetNextSym, la sesin de bsqueda incluir
todos los mdulos y rutinas situadas debajo del nivel de tarea.
[ \InMod ]
In Module
Tipo de dato: string
Inicia la bsqueda en el nivel de mdulo especificado. En el nivel de mdulo se encuentran
todos los smbolos globales y locales cargados y declarados en el mdulo especificado, junto
con el manejador del nivel de rutinas.
Si se indica el modificador \Recursive en GetNextSym, la sesin de bsqueda incluir
todas las rutinas cargadas situadas debajo del nivel de mdulo especificado (es decir,
declaradas en el mdulo especificado).
[ \InRout ]
In Routine
Tipo de dato: string
Slo busca en el nivel de rutina especificado.
El nombre del mdulo en el que se encuentra la rutina debe especificarse en el argumento
\InMod.
El comportamiento predeterminado es encontrar tanto los smbolos de mdulo locales como
los globales, pero si se especifica uno de los modificadores \GlobalSym o \LocalSym slo
se aceptan los smbolos que coincidan con la especificacin:
[ \GlobalSym ]
Global Symbols
Tipo de dato: switch
Omite los smbolos locales del mdulo.
[ \LocalSym ]
Local Symbols
Tipo de dato: switch
Omite los smbolos globales del mdulo.
Ejecucin de programas
La instruccin fallar si la especificacin de uno de Type, TypeMod, InMod o InRout es
incorrecta.
Si el sistema no tiene ningn objeto de dato coincidente, la instruccin lo aceptar y retornar
sin generar errores, pero la primera instruccin GetNextSym retornar FALSE.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.153. SetDataSearch - Definir el conjunto de smbolos de una secuencia de bsqueda
RobotWare - OS
3HAC16581-5 Revisin: H 444


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los objetos de datos de matriz no pueden definirse en el conjunto de bsqueda de smbolos
y no pueden encontrarse en una secuencia de bsqueda.
En el caso de los tipos de datos de semivalor, no es posible buscar el tipo de dato asociado.
Por ejemplo, si se busca dionum, no existen coincidencias de bsqueda para la seal
signaldi y si se busca num, no existen coincidencias de bsqueda para las seales
signalgi ni signalai.
Los smbolos incorporados instalados que hayan sido declarados como LOCAL no se
encontrarn en ningn caso, independientemente del uso del argumento \GlobalSym,
\LocalSym o de ninguno de ellos.
Los smbolos incorporados instalados que hayan sido declarados como globales o como TASK
siempre se encontrarn, independientemente del uso del argumento \GlobalSym,
\LocalSym o de ninguno de ellos.
No es posible usar SetDataSearch para buscar datos de algn tipo de dato de ALIAS
definido con cdigo de RAPID. No hay ninguna limitacin para el tipo de dato de ALIAS
predefinido.
Sintaxis
SetDataSearch
[ Type := ] < expression (IN) of string >
['\'TypeMod ':='<expression (IN) of string>]
['\'Object ':='<expression (IN) of string>]
[\PersSym ]
[\VarSym ]
[\ConstSym ]
[\InTask ]
| [\InMod :=<expression (IN) of string>]
['\'InRout ':='<expression (IN) of string>]
[\GlobalSym ]
| [\LocalSym] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin del siguiente smbolo coincidente GetNextSym - Obtiene el siguiente smbolo
coincidente en la pgina 862
Obtencin del valor de un objeto de datos GetDataVal - Obtiene el valor de un objeto de
datos en la pgina 108
Asignacin del valor de varios objetos de
datos
SetAllDataVal - Establece un valor en todos
los objetos de datos de un conjunto definido
en la pgina 437
El tipo de datos relacionado datapos datapos - Inclusin de un bloque para un
objeto de datos en la pgina 1097
Continuacin
1 Instrucciones
1.154. SetDataVal - Establece el valor de un objeto de datos
RobotWare - OS
445 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.154. SetDataVal - Establece el valor de un objeto de datos
Utilizacin
SetDataVal (Set Data Value) permite establecer el valor de un objeto de datos que se
especifica mediante una variable de cadena de caracteres.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetDataVal.
Ejemplo 1
VAR num value:=3;
...
SetDataVal "reg"+ValToStr(ReadNum(mycom)),value;
Con esta instruccin se establece el valor 3 en un registro cuyo nmero se recibe a travs del
canal serie mycom.
Ejemplo 2
VAR datapos block;
VAR bool truevar:=TRUE;
...
SetDataSearch "bool" \ Object:="my.*" \ InMod:="mymod"\ LocalSym;
WHILE GetNextSym(name,block) DO
SetDataVal name \ Block:=block,truevar;
ENDWHILE
Esta sesin cambia a TRUE todos los objetos locales de tipo bool cuyo nombre comience con
my en el mdulo mymod.
Ejemplo 3
VAR string StringArrVar_copy{2};
...
StringArrVar_copy{1} := "test1";
StringArrVar_copy{2} := "test2";
SetDataVal "StringArrVar", StringArrVar_copy;
Esta sesin definir la matriz StringArrVar para que contenga dos cadenas, test1 y
test2.
Argumentos
SetDataVal Object [\Block]|[\TaskRef]|[\TaskName] Value
Object
Tipo de dato: string
El nombre del objeto de datos.
[ \Block]
Tipo de dato: datapos
El bloque que contiene el objeto de datos. Slo es posible realizar la obtencin con la funcin
GetNextSym.
Si se omite el argumento, se establece el valor del objeto de datos visible en el mbito de
ejecucin actual del programa.
Contina en la pgina siguiente
1 Instrucciones
1.154. SetDataVal - Establece el valor de un objeto de datos
RobotWare - OS
3HAC16581-5 Revisin: H 446


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\TaskRef]
Task Reference
Tipo de dato: taskid
La identidad de tarea de programa en la que se buscar el objeto de datos especificado. Con
ayuda de este argumento, puede buscar declaraciones PERS o TASK PERS en otras tareas.
Cualquier otra declaracin dar lugar a un error.
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 T_ROB1 la identificacin de la tarea es T_ROB1Id.
[\TaskName]
Tipo de dato: string
El nombre de la tarea de programa en la que se buscar el objeto de datos especificado. Con
ayuda de este argumento, puede buscar declaraciones PERS o TASK PERS en otras tareas.
Cualquier otra declaracin dar lugar a un error.
Value
Tipo de dato: anytype
Una variable que contiene el nuevo valor que se desea establecer. Su tipo de dato debe ser el
mismo que el del objeto de datos a establecer. El valor establecido debe ser capturado de una
variable, pero puede almacenarse en una variable o una variable persistente.
Gestin de errores
La variable de sistema ERRNO cambia a ERR_SYM_ACCESS si:
El objeto de datos no existe.
El objeto de datos es de slo lectura.
Si el objeto de datos es un dato o un parmetro de rutina y no est situado en la rutina
activa actualmente.
Buscar en otras tareas declaraciones distintas de PERS o TASKPERS
Con ayuda de los argumentos TaskRef o TaskName, puede buscar declaraciones PERS o
TASK PERS en otras tareas. Cualquier otra declaracin da lugar a un error y la variable de
sistema ERRNO cambia a ERR_SYM_ACCESS. La bsqueda de una PERS declarada como
LOCAL en otras tareas tambin da lugar a un error y al cambio de la variable ERRNO al valor
ERR_SYM_ACCESS.
La variable de sistema ERRNO cambia a ERR_INVDIM si el objeto de datos y la variable
utilizados en el argumento Value tienen dimensiones diferentes.
El error puede ser gestionado en el gestor de errores de la rutina.
Limitaciones
En el caso de los tipos de datos de semivalor, no es posible buscar por el tipo de dato asociado
al valor. Por ejemplo, si se busca dionum, no se obtendr ninguna coincidencia de bsqueda
con las seales signaldi. Si se busca num, no se obtendr ninguna coincidencia de bsqueda
con las seales signalgi o signalai.
No es posible asignar un valor a una variable declarada como LOCAL en un mdulo de RAPID
incorporado.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.154. SetDataVal - Establece el valor de un objeto de datos
RobotWare - OS
447 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
SetDataVal
[ Object := ] < expression (IN) of string >
[\Block :=<variable (VAR) of datapos>]
|[ \TaskRef := <variable (VAR) of taskid>]
|[ \TaskName := <expression (IN) of string>] ,]
[ Value := ] <variable (VAR) of anytype>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de un conjunto de smbolos en
una sesin de bsqueda
SetDataSearch - Definir el conjunto de
smbolos de una secuencia de bsqueda en la
pgina 441
Obtencin del siguiente smbolo coincidente GetNextSym - Obtiene el siguiente smbolo
coincidente en la pgina 862
Obtencin del valor de un objeto de datos GetDataVal - Obtiene el valor de un objeto de
datos en la pgina 108
Asignacin del valor de varios objetos de
datos
SetAllDataVal - Establece un valor en todos
los objetos de datos de un conjunto definido
en la pgina 437
El tipo de datos relacionado datapos datapos - Inclusin de un bloque para un
objeto de datos en la pgina 1097
Continuacin
1 Instrucciones
1.155. SetDO - Cambia el valor de una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 448


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.155. SetDO - Cambia el valor de una seal digital de salida
Utilizacin
SetDO se usa para cambiar el valor de una seal digital de salida, con o sin retardo ni
sincronizacin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetDO.
Ejemplo 1
SetDO do15, 1;
Se cambia la seal do15 a 1.
Ejemplo 2
SetDO weld, off;
Se cambia la seal weld a off.
Ejemplo 3
SetDO \SDelay := 0.2, weld, high;
Se cambia la seal weld a high con un retardo de 0,2 s. Sin embargo, la ejecucin del
programa contina con la instruccin siguiente.
Ejemplo 4
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 ]
Signal Delay
Tipo de dato: num
Retarda el cambio durante la duracin especificada, en segundos (mximo 32s). 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 ]
Synchronization
Tipo de dato: switch
Si se utiliza este argumento, la ejecucin del programa espera hasta que la seal cambie
fsicamente al valor especificado.
Signal
Tipo de dato: signaldo
El nombre de la seal que debe cambiar.
Contina en la pgina siguiente
1 Instrucciones
1.155. SetDO - Cambia el valor de una seal digital de salida
RobotWare - OS
449 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Value
Tipo de dato: dionum
El valor deseado para la seal, 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.
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.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Sintaxis
SetDO
[ \ SDelay := < expression (IN) of num > , ]
|[ \ Sync , ]
[ Signal := ] < variable (VAR) of signaldo > ,
[ Value := ] < expression (IN) of dionum > ;
Informacin relacionada
Valor especificado Cambiar la salida digital a
0 0
Cualquier valor excepto 0 1
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
1 Instrucciones
1.156. SetGO - Cambia el valor de un grupo de seales digitales de salida
RobotWare - OS
3HAC16581-5 Revisin: H 450


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.156. SetGO - Cambia el valor de un grupo de seales digitales de salida
Utilizacin
SetGO se usa para cambiar el valor de un grupo de seales digitales de salida, con o sin
retardo de tiempo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetGO.
Ejemplo 1
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.
Ejemplo 2
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 7 cambian a cero, mientras que las salidas 7 y 9 cambian a uno con un
retardo de 0,4 s. Sin embargo, la ejecucin del programa contina con la instruccin
siguiente.
Ejemplo 3
SetGO go32, 0d4294967295;
Se cambia la seal go32 a 4294967295. go32 contiene 32 seales, todas ellas con el valor 1.
Argumentos
SetGO [ \SDelay ] Signal Value | Dvalue
[ \SDelay ]
Signal Delay
Tipo de dato: num
Retarda el cambio durante el periodo especificado, en segundos (mximo 32s). 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, los valores de las seales cambian 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) se muestra en la tabla siguiente.
El valor permitido depende del nmero de seales del grupo. Un tipo de dato num puede
contener el valor de un grupo de 23 seales o menos.
Contina en la pgina siguiente
1 Instrucciones
1.156. SetGO - Cambia el valor de un grupo de seales digitales de salida
RobotWare - OS
451 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Dvalue
Tipo de dato: dnum
El valor deseado para el grupo de seales (un entero positivo) se muestra en la tabla siguiente.
El valor permitido depende del nmero de seales del grupo. Un tipo de dato dnum puede
contener el valor de un grupo de 32 seales o menos.
*) El argumento Value del tipo num slo puede contener un mximo de 23 seales en
comparacin con el argumento Dvalue del tipo dnum, que puede contener hasta 32 seales.
Nmero de seales Valor permitido Valor doble permitido
1 0-1 0-1
2 0-3 0-3
3 0-7 0-7
4 0-15 0-15
5 0-31 0-31
6 0-63 0-63
7 0-127 0-127
8 0-255 0-255
9 0-511 0-511
10 0-1023 0-1023
11 0-2047 0-2047
12 0-4095 0-4095
13 0-8191 0-8191
14 0-16383 0-16383
15 0-32767 0-32767
16 0-65535 0-65535
17 0-131071 0-131071
18 0-262143 0-262143
19 0-524287 0-524287
20 0-1048575 0-1048575
21 0-2097151 0-2097151
22 0-4194303 0-4194303
23 0-8388607 0-8388607
24 * 0-16777215
25 * 0-33554431
26 * 0-67108863
27 * 0-134217727
28 * 0-268435455
29 * 0-536870911
30 * 0-1073741823
31 * 0-2147483647
32 * 0-4294967295
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.156. SetGO - Cambia el valor de un grupo de seales digitales de salida
RobotWare - OS
3HAC16581-5 Revisin: H 452


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Limitaciones
El nmero mximo de seales que pueden usarse para un grupo es de 23 si se usa el
argumento Value y de 32 si se usa el argumento Dvalue. Esta limitacin se aplica a todas
las instrucciones y funciones que utilicen seales de grupo.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Sintaxis
SetGO
[ \ SDelay := < expression (IN) of num > , ]
[ Signal := ] < variable (VAR) of signalgo > ,
[ Value := ] < expression (IN) of num >
| [ Dvalue := ] < expression (IN) of dnum > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otras instrucciones de entrada y salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S (parmetros del
sistema)
Manual de referencia tcnica - Parmetros del
sistema
Continuacin
1 Instrucciones
1.157. SetSysData - Establece datos del sistema
RobotWare - OS
453 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.157. SetSysData - Establece datos del sistema
Utilizacin
SetSysData activa el nombre del sistema especificado para el tipo de dato especificado.
Esta instruccin permite cambiar la herramienta, el objeto de trabajo o la carga til activos
actualmente en el robot de la tarea de movimiento actual o conectada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SetSysData.
Ejemplo 1
SetSysData tool5;
Se activa la herramienta tool5.
SetSysData tool0 \ObjectName := "tool6";
Se activa la herramienta tool6.
SetSysData anytool \ObjectName := "tool2";
Se activa la herramienta tool2.
Argumentos
SetSysData SourceObject [\ObjectName]
SourceObject
Tipo de dato:anytype
La variable persistente, que debe activarse como un dato actual del sistema.
El tipo de dato de este argumento tambin especifica el tipo de dato de sistema que se desea
activar para el robot de la tarea actual o de la tarea de movimiento conectada:
No es posible usar una matriz completa ni un componente de registro.
[ \ObjectName ]
Tipo de dato:string
Si se especifica este argumento opcional, especifica el nombre del objeto de dato que se desea
activar (tiene prioridad sobre el nombre especificado en el argumento SourceObject). El
tipo de dato del objeto de datos que se desea activar se captura siempre desde el argumento
SourceObject.
Ejecucin de programas
Se establece el objeto de datos del sistema actual de la herramienta, el objeto de trabajo o la
carga til, de acuerdo con los argumentos.
Recuerde que esta instruccin slo activa un nuevo objeto de datos (o el mismo que el
anterior) y no cambia nunca el valor de ningn objeto de datos.
Tipo de dato Tipo de dato de sistema
tooldata Herramienta
wobjdata Objeto de trabajo
loaddata Carga til
Contina en la pgina siguiente
1 Instrucciones
1.157. SetSysData - Establece datos del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 454


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
SetSysData
[ SourceObject':='] < persistent(PERS) of a nytype>
['\'ObjectName':='< expression (IN) of string> ] ';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Definicin de una carga til loaddata - Datos de carga en la pgina 1128
Obtencin de datos del sistema GetSysData - Obtiene datos del sistema en la
pgina 111
Continuacin
1 Instrucciones
1.158. SingArea - Define el mtodo de interpolacin alrededor de puntos singulares
RobotWare - OS
455 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.158. SingArea - Define el mtodo de interpolacin alrededor de puntos singulares
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SingArea.
Ejemplo 1
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.
Ejemplo 2
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.
Si no se especifica ninguno de los argumentos, el sistema pasar a \Off.
Contina en la pgina siguiente
1 Instrucciones
1.158. SingArea - Define el mtodo de interpolacin alrededor de puntos singulares
RobotWare - OS
3HAC16581-5 Revisin: H 456


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 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
Para obtener ms informacin sobre Consulte
Singularidad Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Singularidades
Interpolacin Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Continuacin
1 Instrucciones
1.159. SkipWarn - Omitir el ltimo aviso
RobotWare-OS
457 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.159. SkipWarn - Omitir el ltimo aviso
Utilizacin
SkipWarn(Skip Warning) se utiliza para omitir el ltimo mensaje de advertencia generado,
con lo que no se almacena en el registro de eventos 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 eventos con mensajes que slo son de aviso.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SkipWarn.
Ejemplo 1
%"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 aviso en el registro de eventos.
Sintaxis
SkipWarn ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Recuperacin en caso de error Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Recuperacin en caso de error
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Nmero de error errnum - Nmero de error en la pgina 1104
1 Instrucciones
1.160. SocketAccept - Acepta una conexin entrante
Socket Messaging
3HAC16581-5 Revisin: H 458


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.160. SocketAccept - Acepta una conexin entrante
Utilizacin
SocketAccept se utiliza para aceptar peticiones de conexin entrantes. SocketAccept
slo puede usarse con aplicaciones de servidor.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketAccept.
Consulte tambin Ms ejemplos en la pgina 459.
Ejemplo 1
VAR socketdev server_socket;
VAR socketdev client_socket;
...
SocketCreate server_socket;
SocketBind server_socket,"192.168.0.1", 1025;
SocketListen server_socket;
SocketAccept server_socket, client_socket;
Se crea un zcalo de servidor, que se enlaza al puerto 1025 en la direccin de la red del
controlador 192.168.0.1. Tras la ejecucin de SocketListen, el zcalo del servidor
inicia la escucha de conexiones entrantes en este puerto y esta direccin. SocketAccept
permanece a la espera de conexiones entrantes, acepta la peticin de conexin y devuelve un
zcalo de cliente para la conexin establecida.
Argumentos
SocketAccept Socket ClientSocket [\ClientAddress] [ \Time ]
Socket
Tipo de dato: socketdev
Los zcalos de servidor que permanecen a la espera de conexiones entrantes. El zcalo debe
estar ya creado, enlazado y preparado para la escucha.
ClientSocket
Tipo de dato: socketdev
El nuevo zcalo de cliente devuelto, que se actualizar con la peticin de conexin entrante
aceptada.
[\ClientAddress]
Tipo de dato: string
La variable que se actualizar con la direccin IP de la peticin de conexin entrante
aceptada.
Contina en la pgina siguiente
1 Instrucciones
1.160. SocketAccept - Acepta una conexin entrante
Socket Messaging
459 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Time]
Tipo de dato: num
El tiempo mximo [s] que debe esperar la ejecucin del programa a que se produzca una
conexin entrante. Si el tiempo se agota antes de que se produzca una conexin entrante, se
llama al gestor de errores, si lo hay, con el cdigo de error ERR_SOCK_TIMEOUT. Si no hay
ningn gestor de errores, se detiene la ejecucin.
Si no se usa el parmetro \Time el tiempo de espera es de 60 s. Para esperar indefinidamente,
utilice la constante predefinida WAIT_MAX.
Ejecucin de programas
El zcalo de servidor permanece a la espera de peticiones de conexin entrantes. Una vez
aceptada la peticin de conexin entrante, la instruccin ha finalizado y el zcalo de cliente
devuelto est conectado de forma predeterminada y puede usarse en instrucciones
SocketSend y SocketReceive.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SocketAccept.
Ejemplo 1
VAR socketdev server_socket;
VAR socketdev client_socket;
VAR string receive_string;
VAR string client_ip;
...
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;
SocketListen server_socket;
WHILE TRUE DO
SocketAccept server_socket, client_socket
\ClientAddress:=client_ip;
SocketReceive client_socket \Str := receive_string;
SocketSend client_socket \Str := "Hello client with ip-address "
+client_ip;
! Esperar a la confirmacin del cliente
...
SocketClose client_socket;
ENDWHILE
ERROR
RETRY;
UNDO
SocketClose server_socket;
SocketClose client_socket;
Se crea un zcalo de servidor, que se enlaza al puerto 1025 en la direccin de la red del
controlador 192.168.0.1. Tras la ejecucin de SocketListen, el zcalo de servidor inicia
la escucha de conexiones entrantes en este puerto y direccin. SocketAccept aceptar la
conexin entrante de algn cliente y guardar la direccin del cliente en la cadena
client_ip. A continuacin, el servidor recibe un mensaje de cadena del cliente y guarda el
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.160. SocketAccept - Acepta una conexin entrante
Socket Messaging
3HAC16581-5 Revisin: H 460


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
mensaje en receive_string. A continuacin, el cliente responde con el mensaje " Hello
client with ip-address xxx.xxx.x.x" y cierra la conexin de cliente.
A partir de ese momento, el servidor est preparado para una conexin desde el mismo cliente
o desde otro cliente, dentro del bucle WHILE. Si se mueve el puntero de programa a Main en
el programa, se cierran todos los zcalos (SocketClose puede ejecutarse siempre, incluso
si el zcalo no est creado).
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Sintaxis
SocketAccept
[ Socket := ] < variable (VAR) of socketdev > ,
[ ClientSocket := ] < variable (VAR) of socketdev >
[ \ ClientAddress := < variable (VAR) of string> ]
[ \ Time := < expression (IN) of num > ] ;
Informacin relacionada
ERR_SOCK_CLOSED El zcalo est cerrado (ha sido cerrado o no ha sido creado).
Utilice SocketCreate para crear un nuevo zcalo.
ERR_SOCK_TIMEOUT La conexin no fue establecida antes de alcanzar el tiempo
lmite
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a un
ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual de
un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Ejemplo de aplicacin de zcalos de
servidor
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Continuacin
1 Instrucciones
1.161. SocketBind - Enlaza un zcalo a mi direccin IP y puerto
Socket Messaging
461 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.161. SocketBind - Enlaza un zcalo a mi direccin IP y puerto
Utilizacin
SocketBind se usa para enlazar un zcalo al nmero de puerto de servidor y la direccin IP
y el nmero de puerto especificados. SocketBind slo puede usarse con aplicaciones de
servidor.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketBind.
Ejemplo 1
VAR socketdev server_socket;
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;
Se crea un zcalo de servidor, que se enlaza al puerto 1025 en la direccin de la red del
controlador 192.168.0.1. A partir de este momento, es posible usar el zcalo de servidor
en una instruccin SocketListen para permanecer a la escucha de conexiones entrantes en
este puerto y direccin.
Argumentos
SocketBind Socket LocalAddress LocalPort
Socket
Tipo de dato: socketdev
El zcalo de servidor a enlazar. El zcalo ya debe estar creado pero no enlazado an.
LocalAddress
Tipo de dato: string
La direccin de red de servidor a la que se desea enlazar el zcalo. Las nicas direcciones
vlidas son las direcciones de red local pblicas o la direccin del puerto de servicio del
controlador, 192.168.125.1.
LocalPort
Tipo de dato: num
El nmero de puerto de servidor al que se desea enlazar el zcalo. Por lo general, los puertos
del 1025 al 4999 estn libres para su uso. Es posible que los puertos con un nmero inferior
al 1025 ya estn ocupados.
Ejecucin de programas
Se enlaza el zcalo de servidor al puerto de servidor y la direccin IP especificados.
Si el puerto especificado ya se est utilizando, se genera un error.
Utilice las instrucciones SocketBind y SocketListen en la puesta en marcha del
programa para asociar una direccin local a un zcalo y a continuacin permanecer a la espera
de conexiones entrantes en el puerto especificado. Se recomienda hacerlo slo una vez con
cada zcalo y puerto utilizado.
Contina en la pgina siguiente
1 Instrucciones
1.161. SocketBind - Enlaza un zcalo a mi direccin IP y puerto
Socket Messaging
3HAC16581-5 Revisin: H 462


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Sintaxis
SocketBind
[ Socket := ] < variable (VAR) of socketdev > ,
[ LocalAddress := ] < expression (IN) of string > ,
[ LocalPort := ] < expression (IN) of num > ;
Informacin relacionada
ERR_SOCK_CLOSED El zcalo est cerrado (ha sido cerrado o no ha sido creado).
Utilice SocketCreate para crear un nuevo zcalo.
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a un
ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual de
un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Aplicacin de ejemplo de zcalos de
servidor
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Continuacin
1 Instrucciones
1.162. SocketClose - Cierra un zcalo
Socket Messaging
463 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.162. SocketClose - Cierra un zcalo
Utilizacin
SocketClose se utiliza cuando ya no se va a utilizar una conexin de zcalo.
Una vez cerrado un zcalo, no es posible utilizarlo en ninguna llamada a zcalo, excepto
SocketCreate.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketClose.
Ejemplo 1
SocketClose socket1;
El zcalo se cierra y no es posible seguir utilizndolo.
Argumentos
SocketClose Socket
Socket
Tipo de dato: socketdev
El zcalo que se desea cerrar.
Ejecucin de programas
El zcalo se cerrar y se liberarn los recursos que tenga asignados.
Es posible cerrar cualquier zcalo en cualquier momento. Tras su cierre, no es posible usar el
zcalo. Sin embargo, puede ser utilizado para una nueva conexin tras una llamada a
SocketCreate.
Limitaciones
El cierre de la conexin del zcalo inmediatamente despus de enviar los datos con
SocketSend puede dar lugar a la prdida de datos de envo. Esto se debe a que el zcalo
TCP/IP tiene una funcionalidad incorporada para reenviar los datos si hay cualquier
problema de comunicacin.
Para evitar estos problemas con prdida de datos, haga lo siguiente antes de SocketClose:
Intercambie de indicativos de control para el cierre o
WaitTime 2
Evite utilizar bucles rpidos con SocketCreate ... SocketClose, dado que el zcalo no
queda realmente cerrado hasta un cierto tiempo despus (funcionalidad de TCP/IP).
Sintaxis
SocketClose
[ Socket := ] < variable (VAR) of socketdev > ;
Contina en la pgina siguiente
1 Instrucciones
1.162. SocketClose - Cierra un zcalo
Socket Messaging
3HAC16581-5 Revisin: H 464


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a
un ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458 t
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual
de un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Aplicacin de ejemplo de zcalos de servidor SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Continuacin
1 Instrucciones
1.163. SocketConnect - Establece una conexin a un ordenador remoto
Socket Messaging
465 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.163. SocketConnect - Establece una conexin a un ordenador remoto
Utilizacin
SocketConnect se utiliza para conectar el zcalo a un ordenador remoto en una aplicacin
cliente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketConnect.
Consulte tambin Ms ejemplos en la pgina 466.
Ejemplo 1
SocketConnect socket1, "192.168.0.1", 1025;
Se intenta la conexin a un ordenador remoto en la direccin IP 192.168.0.1 y con el
puerto 1025.
Argumentos
SocketConnect Socket Address Port [\Time]
Socket
Tipo de dato: socketdev
El zcalo de cliente al que se desea conectar. El zcalo ya debe estar creado pero no conectado
an.
Address
Tipo de dato: string
La direccin del ordenador remoto. El ordenador remoto debe estar especificado como una
direccin IP. No es posible usar el nombre del ordenador remoto.
Port
Tipo de dato: num
El puerto del ordenador remoto. Por lo general, los puertos del 1025 al 4999 estn libres para
su uso. Es posible que los puertos con un nmero inferior al 1025 ya estn ocupados.
[ \Time ]
Tipo de dato: num
El intervalo mximo [s] que debe esperar la ejecucin del programa a que se acepte o
deniegue la conexin. 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_SOCK_TIMEOUT. Si no hay ningn
gestor de errores, se detiene la ejecucin.
Si no se usa el parmetro \Time el tiempo de espera es de 60 s. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
Ejecucin de programas
El zcalo intenta establecer una conexin con el ordenador remoto a travs de la direccin y
el puerto especificados. La ejecucin del programa esperar hasta que la conexin sea
establecida o falle o hasta que se produzca un error de tiempo lmite.
Contina en la pgina siguiente
1 Instrucciones
1.163. SocketConnect - Establece una conexin a un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 466


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SocketConnect.
Ejemplo 1
VAR num retry_no := 0;
VAR socketdev my_socket;
...
SocketCreate my_socket;
SocketConnect my_socket, "192.168.0.1", 1025;
...
ERROR
IF ERRNO = ERR_SOCK_TIMEOUT THEN
IF retry_no < 5 THEN
WaitTime 1;
retry_no := retry_no + 1;
RETRY;
ELSE
RAISE;
ENDIF
ENDIF
Se crea un zcalo y se intenta establecer una conexin a un ordenador remoto. Si la conexin
no se establece dentro del tiempo lmite predeterminado, es decir 60 segundos, el gestor de
errores reintenta la conexin. Se realizan cuatro reintentos, tras lo cual se informa del error al
usuario.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Sintaxis
SocketConnect
[ Socket := ] < variable (VAR) of socketdev > ,
[ Address := ] < expression (IN) of string > ,
[ Port := ] < expression (IN) of num >
[ \ Time := < expression (IN) of num > ] ;
Informacin relacionada
ERR_SOCK_CLOSED El zcalo est cerrado (ha sido cerrado o no ha sido creado).
Utilice SocketCreate para crear un nuevo zcalo.
ERR_SOCK_TIMEOUT La conexin no fue establecida antes de alcanzar el tiempo
lmite.
Para obtener ms informacin sobre Descrito en:
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.163. SocketConnect - Establece una conexin a un ordenador remoto
Socket Messaging
467 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual de
un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Aplicacin de ejemplo de zcalos de
servidor
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Para obtener ms informacin sobre Descrito en:
Continuacin
1 Instrucciones
1.164. SocketCreate - Crea un nuevo zcalo
Socket Messaging
3HAC16581-5 Revisin: H 468


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.164. SocketCreate - Crea un nuevo zcalo
Utilizacin
SocketCreate se usa para crear un nuevo zcalo para una comunicacin basada en
conexiones.
El intercambio de mensajes de zcalo es de tipo canal y tiene el protocolo TCP/IP con
garanta de entrega. Es posible desarrollar aplicaciones tanto de servidor como de cliente. El
protocolo de datagrama UDP/IP con difusin no se admite.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketCreate.
Ejemplo 1
VAR socketdev socket1;
...
SocketCreate socket1;
Se crea un nuevo dispositivo de zcalo, que se asigna a la variable socket1.
Argumentos
SocketCreate Socket
Socket
Tipo de dato: socketdev
La variable de almacenamiento de los datos de zcalo internos del sistema.
Ejecucin de programas
La instruccin crea un nuevo dispositivo de zcalo.
El zcalo no debe estar usndose. El zcalo est en uso entre las instrucciones
SocketCreate y SocketClose.
Limitaciones
Es posible declarar tantos zcalos como se desee, pero slo es posible utilizar 8 de ellos al
mismo tiempo.
Evite utilizar bucles rpidos con SocketCreate ... SocketClose, dado que el zcalo no
queda realmente cerrado hasta un cierto tiempo despus (funcionalidad de TCP/IP).
Sintaxis
SocketCreate
[ Socket := ] < variable (VAR) of socketdev > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a
un ordenador remoto en la pgina 465
Contina en la pgina siguiente
1 Instrucciones
1.164. SocketCreate - Crea un nuevo zcalo
Socket Messaging
469 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin
entrante en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual
de un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Aplicacin de ejemplo de zcalos de servidor SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.165. SocketListen - Permanece a la escucha de conexiones entrantes
Socket Messaging
3HAC16581-5 Revisin: H 470


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.165. SocketListen - Permanece a la escucha de conexiones entrantes
Utilizacin
SocketListen se usa para iniciar la escucha de conexiones entrantes, por ejemplo para
empezar a actuar como servidor. SocketListen slo puede usarse para las aplicaciones de
servidor.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketListen.
Ejemplo 1
VAR socketdev server_socket;
VAR socketdev client_socket;
...
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;
SocketListen server_socket;
WHILE listening DO;
! Waiting for a connection request
SocketAccept server_socket, client_socket;
Se crea un zcalo de servidor, que se enlaza al puerto 1025 en la direccin de la red del
controlador 192.168.0.1. Tras la ejecucin de SocketListen, el zcalo del servidor
inicia la escucha de conexiones entrantes en este puerto y esta direccin.
Argumentos
SocketListen Socket
Socket
Tipo de dato: socketdev
El zcalo de servidor que debe iniciar la escucha de conexiones entrantes. El zcalo ya debe
estar creado y enlazado.
Ejecucin de programas
El zcalo de servidor inicia la escucha de conexiones entrantes. Cuando la instruccin ha
finalizado, el zcalo est preparado para aceptar una conexin entrante.
Utilice las instrucciones SocketBind y SocketListen en la puesta en marcha del
programa para asociar una direccin local a un zcalo y a continuacin permanecer a la espera
de conexiones entrantes en el puerto especificado. Se recomienda hacerlo slo una vez con
cada zcalo y puerto utilizado.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
ERR_SOCK_CLOSED El zcalo est cerrado (ha sido cerrado o no ha sido creado).
Utilice SocketCreate para crear un nuevo zcalo.
Contina en la pgina siguiente
1 Instrucciones
1.165. SocketListen - Permanece a la escucha de conexiones entrantes
Socket Messaging
471 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
SocketListen
[ Socket := ] < variable (VAR) of socketdev > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a
un ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi
direccin IP y puerto en la pgina 461
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin
entrante en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual
de un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Aplicacin de ejemplo de zcalos de servidor SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Continuacin
1 Instrucciones
1.166. SocketReceive - Recibe datos de un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 472


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.166. SocketReceive - Recibe datos de un ordenador remoto
Utilizacin
SocketReceive se usa para recibir datos de un ordenador remoto. SocketReceive puede
usarse tanto en aplicaciones de cliente como en aplicaciones de servidor.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketReceive.
Consulte tambin Ms ejemplos en la pgina 474.
Ejemplo 1
VAR string str_data;
...
SocketReceive socket1 \Str := str_data;
Se reciben datos de un ordenador remoto y se guardan en la variable de cadena str_data.
Argumentos
SocketReceive Socket [ \Str ] | [ \RawData ] | [ \Data ]
[\ReadNoOfBytes] [\NoRecBytes] [\Time]
Socket
Tipo de dato: socketdev
En la aplicacin cliente en la que el zcalo recibe los datos, el zcalo debe estar ya creado y
conectado.
En la aplicacin de servidor en la que el zcalo recibe los datos, el zcalo debe estar ya
aceptado.
[ \Str ]
Tipo de dato: string
La variable en la que se debe almacenar el dato de tipo string. Es posible gestionar un
nmero mximo de 80 caracteres.
[ \RawData ]
Tipo de dato: rawbytes
La variable en la que se debe almacenar el dato de tipo rawbytes. Es posible gestionar un
nmero mximo de 1.024 rawbytes.
[ \Data ]
Tipo de dato: array of byte
La variable en la que se debe almacenar el dato de tipo byte. Es posible gestionar un nmero
mximo de 1.024 byte.
Slo es posible usar uno de los parmetros opcionales \Str,\RawData y \Data al mismo
tiempo.
Contina en la pgina siguiente
1 Instrucciones
1.166. SocketReceive - Recibe datos de un ordenador remoto
Socket Messaging
473 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ReadNoOfBytes ]
Read number of Bytes
Tipo de dato: num
El nmero de bytes a leer. El nmero mnimo de bytes a leer es 1 y el nmero mximo es el
valor del tamao del tipo de dato utilizado, es decir, 80 bytes si se utiliza una variable del tipo
de dato string.
Si se est manteniendo una comunicacin con un cliente que siempre enva un nmero fijo de
bytes, este parmetro opcional puede usarse para especificar que se lea siempre el mismo
nmero de bytes para cada instruccin SocketReceive.
Si el remitente enva datos RawData, el destinatario necesita especificar la recepcin de 4
bytes por cada rawbytes enviado.
[ \NoRecBytes ]
Number Received Bytes
Tipo de dato: num
Una variable para el almacenamiento del nmero de bytes necesarios del socketdev
especificado.
El mismo resultado tambin puede conseguirse con:
Funcin StrLen con la variable del argumento \Str
Funcin RawBytesLen con la variable del argumento \RawData
[ \Time ]
Tipo de dato: num
El intervalo mximo [s] que debe esperar la ejecucin del programa a que se reciban los datos.
Si el tiempo se agota antes de que se transfieran los datos, se llama al gestor de errores si lo
hay, con el cdigo de error ERR_SOCK_TIMEOUT. Si no hay ningn gestor de errores, se
detiene la ejecucin.
Si no se usa el parmetro \Time el tiempo de espera es de 60 s. Para esperar indefinidamente,
utilice la constante predefinida WAIT_MAX.
Ejecucin de programas
La ejecucin de SocketReceive esperar hasta que los datos estn disponibles o fallen a
causa de un error de tiempo lmite.
El nmero de bytes ledos es especificado por el tipo de dato utilizado en la instruccin. Si se
utiliza un tipo de dato string para recibir datos, se reciben los 80 bytes si en efecto hay 80
bytes a leer. Si se utiliza el argumento opcional ReadNoOfBytes el usuario puede especificar
cuntos bytes deben recibirse para cada SocketReceive.
Los datos transferidos por el cable son siempre bytes, con un mximo de 1.024 bytes por cada
mensaje. No se aade ningn encabezado al mensaje de forma predeterminada. El uso de
cualquier encabezado est reservado para la aplicacin en s.
Parmetro Datos de entrada Datos de cable Datos de salida
\Str 1 carcter 1 byte (8 bits) 1 carcter
\RawData 1 rawbytes 1 byte (8 bits) 1 rawbytes
\Data 1 byte 1 byte (8 bits) 1 byte
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.166. SocketReceive - Recibe datos de un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 474


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Es posible combinar los tipos de datos (string, rawbytes, or array of byte) entre
SocketSend y SocketReceive.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SocketReceive.
Ejemplo 1
VAR socketdev server_socket;
VAR socketdev client_socket;
VAR string client_ip;
PROC server_messaging()
VAR string receive_string;
...
! Create, bind, listen and accept of sockets in error handlers
SocketReceive client_socket \Str := receive_string;
SocketSend client_socket \Str := "Hello client with
ip-address "+client_ip;
! Wait for acknowlegde from client
...
SocketClose server_socket;
SocketClose client_socket;
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=SOCK_CLOSED THEN
server_recover;
RETRY;
ELSE
! No error recovery handling
ENDIF
ENDPROC
PROC server_recover()
SocketClose server_socket;
SocketClose client_socket;
SocketCreate server_socket;
SocketBind server_socket, "192.168.0.1", 1025;
SocketListen server_socket;
SocketAccept server_socket,
client_socket\ClientAddress:=client_ip;
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=ERR_SOCK_CLOSED THEN
RETURN;
ELSE
! No error recovery handling
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.166. SocketReceive - Recibe datos de un ordenador remoto
Socket Messaging
475 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ENDIF
ENDPROC
ste es un ejemplo de un programa de servidor con creacin, enlazamiento, escucha y
aceptacin de zcalos en los gestores de errores. De esta forma, el programa puede manejar
el reinicio tras la cada de alimentacin.
En el procedimiento server_recover, se crea un zcalo de servidor, que se enlaza al puerto
1025 en la direccin de la red del controlador 192.168.0.1. Tras la ejecucin de
SocketListen, el zcalo de servidor inicia la escucha de conexiones entrantes en este
puerto y direccin. SocketAccept aceptar la conexin entrante de algn cliente y guardar
la direccin del cliente en la cadena client_ip.
En el procedimiento de comunicacin server_messaging, el servidor recibe un mensaje de
cadena del cliente y guarda el mensaje en receive_string. A continuacin, el cliente
responde con el mensaje "Hello client with ip-address xxx.xxx.x.x".
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
Limitaciones
La mensajera de zcalos no cuenta con ningn mecanismo de sincronizacin incorporado
para evitar la recepcin de mensajes compuestos por varios mensajes de envo. El
programador es quien decide si desea gestionar la sincronizacin con mensajes Ack (debe
completarse una secuencia de SocketSend - SocketReceive en el programa cliente o
servidor antes de la siguiente secuencia de SocketSend - SocketReceive).
Todos los zcalos estn cerrados tras el reinicio de la cada de alimentacin. Este problema
puede ser gestionado por la recuperacin en caso de error. Consulte el ejemplo anterior.
Evite utilizar bucles rpidos con SocketCreate ... SocketClose, dado que el zcalo no
queda realmente cerrado hasta un cierto tiempo despus (funcionalidad de TCP/IP).
El tamao mximo de los datos que pueden recibirse en una llamada est limitada a 1.024
bytes.
Sintaxis
SocketReceive
[ Socket := ] < variable (VAR) of socketdev >
[ \ Str := < variable (VAR) of string > ]
| [ \ RawData := < variable (VAR) of rawbytes > ]
| [ \ Data := < array {*} (VAR) of byte > ]
[ \ ReadNoOfBytes := < expression (IN) of num > ]
[ \ NoRecBytes := < variable (VAR) of num > ]
[ \ Time := < expression (IN) of num > ] ;
ERR_SOCK_CLOSED El zcalo se cierra. Conexin interrumpida.
ERR_SOCK_TIMEOUT No se recibieron datos dentro del tiempo lmite.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.166. SocketReceive - Recibe datos de un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 476


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, seccin Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a un
ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual de
un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de cliente SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Continuacin
1 Instrucciones
1.167. SocketSend - Enva datos a un ordenador remoto
Socket Messaging
477 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.167. SocketSend - Enva datos a un ordenador remoto
Utilizacin
SocketSend se usa para enviar datos a un ordenador remoto. SocketSend puede usarse
tanto en aplicaciones de cliente como en aplicaciones de servidor.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SocketSend.
Consulte tambin Ms ejemplos en la pgina 478.
Ejemplo 1
SocketSend socket1 \Str := "Hola mundo";
Enva el mensaje "Hello world" al ordenador remoto.
Argumentos
SocketSend Socket [ \Str ] | [ \RawData ] | [ \Data] [ \NoOfBytes ]
Socket
Tipo de dato: socketdev
En la aplicacin cliente, el zcalo desde el que se enva debe estar ya creado y conectado.
En la aplicacin de servidor, el zcalo al que se enva debe estar ya aceptado.
[ \Str ]
Tipo de dato: string
La cadena de tipo string que se desea enviar al ordenador remoto.
[ \RawData ]
Tipo de dato: rawbytes
El dato de tipo rawbytes que se desea enviar al ordenador remoto.
[ \Data ]
Tipo de dato: array of byte
Los datos de la matriz de tipo byte que se desea enviar al ordenador remoto.
Slo es posible usar uno de los parmetros de opcin \Str, \RawData o \Data al mismo
tiempo.
[ \NoOfBytes ]
Tipo de dato: num
Si se especifica este argumento, slo se enva al ordenador remoto este nmero de bytes. La
llamada a SocketSend fallar si el valor de \NoOfBytes es mayor que la cantidad real de
bytes de la estructura de datos a enviar.
Si no se especifica este argumento, se enva al ordenador remoto la totalidad de la estructura
de datos (la parte vlida de rawbytes).
Contina en la pgina siguiente
1 Instrucciones
1.167. SocketSend - Enva datos a un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 478


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Los datos especificados se envan al ordenador remoto. Si la conexin se interrumpe, se
genera un error.
Los datos transferidos por el cable son siempre bytes, con un mximo de 1.024 bytes por cada
mensaje. No se aade ningn encabezado al mensaje de forma predeterminada. El uso de
cualquier encabezado est reservado para la aplicacin en s.
Es posible combinar los tipos de datos (string, rawbytes o array of byte) entre
SocketSend y SocketReceive.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SocketSend.
Ejemplo 1
VAR socketdev client_socket;
VAR string receive_string;
PROC client_messaging()
...
! Create and connect the socket in error handlers
SocketSend client_socket \Str := "Hello server";
SocketReceive client_socket \Str := receive_string;
...
SocketClose client_socket;
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=ERR_SOCK_CLOSED THEN
client_recover;
RETRY;
ELSE
! No error recovery handling
ENDIF
ENDPROC
PROC client_recover()
SocketClose client_socket;
SocketCreate client_socket;
SocketConnect client_socket, "192.168.0.2", 1025;
Parmetro Datos de entrada Datos de cable Datos de salida
\Str 1 carcter 1 byte (8 bits) 1 carcter
\RawData 1 rawbytes 1 byte (8 bits) 1 rawbytes
\Data 1 byte 1 byte (8 bits) 1 byte
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.167. SocketSend - Enva datos a un ordenador remoto
Socket Messaging
479 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERROR
IF ERRNO=ERR_SOCK_TIMEOUT THEN
RETRY;
ELSEIF ERRNO=ERR_SOCK_CLOSED THEN
RETURN;
ELSE
! No error recovery handling
ENDIF
ENDPROC
ste es un ejemplo de un programa cliente con creacin y conexin de zcalos en los gestores
de errores. De esta forma, el programa puede manejar el reinicio tras la cada de alimentacin.
En el procedimiento client_recover, se crea y conecta el zcalo de cliente a un servidor
de ordenador remoto con la direccin 192.168.0.2 en el puerto 1025.
En el procedimiento de comunicacin client_messaging, el cliente enva "Hello
server" al servidor y el servidor responde con "Hello client" al cliente. Este mensaje
se almacena en la variable receive_string.
Ejemplo 2
VAR socketdev client_socket;
VAR string receive_string;
PROC client_messaging()
...
! Send cr and lf to the server
SocketSend client_socket \Str := "\0D\0A";
...
ENDPROC
ste es un ejemplo de un programa cliente que enva caracteres no imprimibles (datos
binarios) en una cadena. Esto puede resultar til a la hora de comunicarse con sensores u otros
clientes que requieran este tipo de caracteres.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
ERR_SOCK_CLOSED The socket is closed. Broken connection.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.167. SocketSend - Enva datos a un ordenador remoto
Socket Messaging
3HAC16581-5 Revisin: H 480


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La mensajera de zcalos no cuenta con ningn mecanismo de sincronizacin incorporado
para evitar la recepcin de mensajes compuestos por varios mensajes de envo. El
programador es quien decide si desea gestionar la sincronizacin con mensajes Ack (debe
completarse una secuencia de SocketSend - SocketReceive en el programa cliente o
servidor antes de la siguiente secuencia de SocketSend - SocketReceive).
Todos los zcalos estn cerrados tras el reinicio de la cada de alimentacin. Este problema
puede ser gestionado por la recuperacin en caso de error. Consulte el ejemplo anterior.
Evite utilizar bucles rpidos con SocketCreate ... SocketClose, dado que el zcalo no
queda realmente cerrado hasta un cierto tiempo despus (funcionalidad de TCP/IP).
El tamao de los datos a enviar est limitado a 1.024 bytes.
Sintaxis
SocketSend
[ Socket := ] < variable (VAR) of socketdev >
[ \Str := < expression (IN) of string > ]
| [ \RawData := < variable (VAR) of rawdata > ]
| [ \Data := < array {*} (IN) of byte > ]
[ \ NoOfBytes := < expression (IN) of num > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control, Socket Messaging
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a un
ordenador remoto en la pgina 465
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458
Obtencin del estado actual del zcalo SocketGetStatus - Obtiene el estado actual de
un zcalo en la pgina 982
Aplicacin de ejemplo de zcalos de servidor SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Uso de caracteres no imprimibles (datos
binarios) en literales de cadenas de
caracteres.
Technical reference manual - RAPID kernel,
seccin String literals
Continuacin
1 Instrucciones
1.168. SoftAct - Activa el servo suave
RobotWare - OS
481 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.168. SoftAct - Activa el servo suave
Utilizacin
SoftAct (Soft Servo Activate) se utiliza para activar el as llamado servo suave en
cualquier eje del robot o en una unidad mecnica externa.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SoftAct.
Ejemplo 1
SoftAct 3, 20;
Activacin del servo suave en el eje 3 del robot, con un valor de suavidad del 20%.
Ejemplo 2
SoftAct 1, 90 \Ramp:=150;
Activacin del servo suave en el eje 1 del robot, con un valor de suavidad del 90% y con un
factor de rampa del 150%.
Ejemplo 3
SoftAct \MechUnit:=orbit1, 1, 40 \Ramp:=120;
Activacin del servo suave en el eje 1 de la unidad mecnica orbit1 con un valor de
suavidad del 40% y un factor de rampa del 120%.
Argumentos
SoftAct [\MechUnit] Axis Softness [\Ramp]
[ \MechUnit ]
Mechanical Unit
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 en la tarea de programa actual.
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%.
Contina en la pgina siguiente
1 Instrucciones
1.168. SoftAct - Activa el servo suave
RobotWare - OS
3HAC16581-5 Revisin: H 482


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 la instruccin SoftDeact.
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, la secuencia de programa siguiente debe evitarse. De lo
contrario, se producirn sacudidas en los movimientos del robot:
SoftAct n , x ;
SoftAct n , y ;
(n =eje n del robot, x e y =valores de suavidad)
Sintaxis
SoftAct
[\MechUnit := < variable (VAR) of mecunit>,]
[Axis := ] < expression (IN) of num> ,
[Softness:= ] < expression (IN) of num> ,
[ \Ramp:= < expression (IN) of num> ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desactivacin del servo suave SoftDeact - Desactiva el servo suave en la
pgina 483
Comportamiento con el servo suave activado Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Configuracin de ejes externos Application manual - Additional Axes and
stand alone controller, seccin Axes Configu-
ration - Soft servo
Continuacin
1 Instrucciones
1.169. SoftDeact - Desactiva el servo suave
RobotWare - OS
483 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.169. SoftDeact - Desactiva el servo suave
Utilizacin
SoftDeact (Soft Servo Deactivate) se utiliza para desactivar el as llamado servo suave.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SoftDeact.
Ejemplo 1
SoftDeact;
Desactiva el servo suave en todos los ejes.
Ejemplo 2
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% es el 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
Se desactiva el servo suave para las unidades mecnicas controladas desde la tarea de
programa actual. Si SoftDeact se realiza desde una tarea sin movimiento, el servo suave se
desactiva para la unidad mecnica controlada por la tarea de movimiento conectada. La
ejecucin de un SoftDeact durante el modo de movimiento sincronizado, el servo suave se
desactiva para todas las unidades mecnicas que estn sincronizadas.
Al desactivar el servo suave con SoftDeact el robot se mueve hasta la posicin programada,
incluso si el robot ha abandonado su posicin durante la activacin del servo suave.
Sintaxis
SoftDeact
[ \Ramp := < expression (IN) of num> ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin del servo suave SoftAct - Activa el servo suave en la pgina
481
1 Instrucciones
1.170. SpeedRefresh - El ajuste de velocidad para el movimiento en curso
RobotWare - OS
3HAC16581-5 Revisin: H 484


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.170. SpeedRefresh - El ajuste de velocidad para el movimiento en curso
Utilizacin
SpeedRefresh se utiliza para cambiar la velocidad del movimiento del robot en curso en la
actual tarea de movimiento de programa. Esta instruccin permite crear algn tipo de
adaptacin de velocidad aproximada a partir de una entrada de sensor.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SpeedRefresh.
Ejemplo 1
VAR num change_speed:=70;
SpeedRefresh change_speed;
Esta operacin cambia el ajuste de velocidad actual al 70%.
Argumentos
SpeedRefresh Override
Override
Tipo de dato: num
El valor del ajuste de velocidad, dentro del rango del 0% al 100%.
Ejecucin de programas
Se actualiza el valor de redefinicin actual de la velocidad para los movimientos en curso del
robot y las unidades externas de la tarea de movimiento del programa actual.
Se ven afectados todos los componentes de datos de velocidad de todas las unidades
mecnicas de la tarea de movimiento actual.
Este valor de ajuste de velocidad generado con esta instruccin sustituye a cualquier valor de
ajuste de velocidad generado desde el FlexPendant para esta tarea de movimiento (sin afectar
a ninguna otra tarea de movimiento).
Si el ajuste de velocidad utilizado para la instruccin SpeedRefresh sobrepasa el valor
establecido desde el FlexPendant, se utilizar el valor ms bajo. Esto significa que la
velocidad no puede aumentarse por encima de la velocidad establecida desde el FlexPendant.
Si se realiza una operacin de PP a Main o se carga un nuevo programa, la velocidad
establecida con SpeedRefresh se restablece y se aplica la velocidad establecida desde el
FlexPendant.
Contina en la pgina siguiente
1 Instrucciones
1.170. SpeedRefresh - El ajuste de velocidad para el movimiento en curso
RobotWare - OS
485 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SpeedRefresh.
Ejemplo 1
VAR intnum time_int;
VAR num override;
...
CONNECT time_int WITH speed_refresh;
ITimer 0.1, time_int;
ISleep time_int;
...
MoveL p1, v100, fine, tool2;
! Read current speed override set from FlexPendant
override := CSpeedOverride (\CTask);
IWatch time_int;
MoveL p2, v100, fine, tool2;
IDelete time_int;
! Reset to FlexPendant old speed override
WaitTime 0.5;
SpeedRefresh override;
...
TRAP speed_refresh
VAR speed_corr;
! Analog input signal value from sensor, value 0 ... 10
speed_corr := (ai_sensor * 10);
SpeedRefresh speed_corr;
ERROR
IF ERRNO = ERR_SPEED_REFRESH_LIM THEN
IF speed_corr > 100 speed_corr := 100;
IF speed_corr < 0 speed_corr := 0;
RETRY;
ENDIF
ENDTRAP
Durante el movimiento del robot desde la posicin p1 hasta p2, el valor de ajuste de velocidad
se actualiza cada 0.1 s en la rutina TRAP speed_refresh. La seal analgica de entrada
ai_sensor se usa para el clculo del valor de Overide para la instruccin SpeedRefresh.
No se realiza ninguna ejecucin de TRAP ni antes ni despus del movimiento de robot entre
p1 y p2. Se restablece el ajuste de velocidad manual del FlexPendant. A continuacin, el
robot debe alcanzar p2.
Gestin de errores
Si Override tiene un valor que est fuera del rango del 0% al 100%, el valor de la variable
ERRNO cambia a ERR_SPEED_REFRESH_LIM. Este error es recuperable y puede ser
gestionado en el gestor ERROR.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.170. SpeedRefresh - El ajuste de velocidad para el movimiento en curso
RobotWare - OS
3HAC16581-5 Revisin: H 486


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Recuerde que con SpeedRefresh el ajuste de velocidad no se har momentneamente. En
su lugar se producir un retardo de 0,3 a 0,5 segundos entre la orden y su influencia en el robot
fsico.
El usuario es responsable de restablecer el valor de ajuste de velocidad desde el programa de
RAPID a continuacin de la secuencia SpeedRefresh.
El ajuste de velocidad no puede aumentarse por encima del ajuste de velocidad establecido
desde el FlexPendant.
Si se utiliza SpeedRefresh en la rutina de evento START o RESET, la velocidad establecida
siempre es el ajuste de velocidad vigente en el FlexPendant.
Sintaxis
SpeedRefresh
[ Override := ] < expression (IN) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Lectura del ajuste de velocidad actual CSpeedOverride - Lee el ajuste de velocidad
actual en la pgina 817
Continuacin
1 Instrucciones
1.171. SpyStart - Comienza la grabacin de los datos de tiempo de ejecucin
RobotWare - OS
487 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.171. SpyStart - Comienza la grabacin de los datos de tiempo de ejecucin
Utilizacin
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).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SpyStart.
Ejemplo 1
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
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.
Contina en la pgina siguiente
1 Instrucciones
1.171. SpyStart - Comienza la grabacin de los datos de tiempo de ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 488


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Formato de archivo
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.
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':=']<expression (IN) of string>';'
Informacin relacionada
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 SetDo1,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 READY
Para obtener ms informacin sobre Consulte
Detencin de la grabacin de los datos de
ejecucin
SpyStop - Detiene la grabacin de los datos
de tiempo de ejecucin en la pgina 489
Continuacin
1 Instrucciones
1.172. SpyStop - Detiene la grabacin de los datos de tiempo de ejecucin
RobotWare - OS
489 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.172. SpyStop - Detiene la grabacin de los datos de tiempo de ejecucin
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SpyStop.
Consulte tambin Ms ejemplos en la pgina 489.
Ejemplo 1
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin SpyStop.
Ejemplo 1
IF debug = TRUE SpyStart "HOME:/spy.log";
produce_sheets;
IF debug = TRUE SpyStop;
Si el indicador de depuracin tiene el valor TRUE, se inicia la grabacin de datos de ejecucin
en el archivo spy.log del disco HOME. Realizar la produccin en s, detener la grabacin y
cerrar 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.
Sintaxis
SpyStop;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Inicio de la grabacin de los datos de
ejecucin
SpyStart - Comienza la grabacin de los
datos de tiempo de ejecucin en la pgina
487
1 Instrucciones
1.173. StartLoad - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 490


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.173. StartLoad - Carga un mdulo de programa durante la ejecucin
Utilizacin
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 cualquier 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. En funcin del modo utilizado, algunas operaciones descargarn el
mdulo o no afectarn al mdulo en ningn sentido.
Modo esttico
En la tabla siguiente se muestra cmo afectan dos operaciones distintas a los programas o
mdulos de sistema cargados en el modo esttico.
Modo dinmico
En la tabla siguiente se muestra cmo afectan dos operaciones distintas a los programas o
mdulos de sistema cargados en el modo dinmico.
Tanto los mdulos cargados en modo esttico como los cargados en modo dinmico se
descargan al utilizar la instruccin UnLoad.
Trasladar el puntero de
programa a main desde TP
Abrir un nuevo programa
de RAPID
Mdulo de programa No se ve afectado Descargado
Mdulo de sistema No se ve afectado No se ve afectado
Trasladar el puntero de
programa a main desde TP
Abrir un nuevo programa
de RAPID
Mdulo de
programa
Descargado Descargado
Mdulo de sistema Descargado Descargado
Contina en la pgina siguiente
1 Instrucciones
1.173. StartLoad - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
491 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StartLoad.
Consulte tambin Ms ejemplos en la pgina 492.
Ejemplo 1
VAR loadsession load1;
! Start loading of new program module PART_B containing routine
routine_b in dynamic mode
StartLoad \Dynamic, diskhome \File:="PART_B.MOD", load1;
! Executing in parallel in old module PART_A containing routine_a
%"routine_a"%;
! Unload of old program module PART_A
UnLoad diskhome \File:="PART_A.MOD";
! Wait until loading and linking of new program module PART_B is
ready
WaitLoad load1;
! Execution in new program module PART_B
%"routine_b"%;
Inicia la carga del mdulo de programa PART_B.MOD desde diskhome en la memoria de
programas con la instruccin StartLoad. En paralelo con la carga, el programa ejecuta la
rutina routine_a del mdulo PART_A.MOD. La instruccin WaitLoad espera hasta que la
carga y la vinculacin han terminado. 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.
[\File]
Tipo de dato: string
Cuando se excluye el nombre del archivo en el argumento FilePath, es necesario definirlo
con este argumento.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.173. StartLoad - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 492


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 aceptarn de forma predeterminada para esta operacin de
carga StartLoad - WaitLoad, pero ser un error de tiempo de ejecucin al ejecutar una
referencia no resuelta.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin StartLoad.
Ejemplo 1
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.
Ejemplo 2
StartLoad \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;
Lo mismo que en el ejemplo 1, pero con otra sintaxis.
Ejemplo 3
StartLoad "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;
Lo mismo que en los ejemplos 1 y 2 anteriores, pero el mdulo se carga en el modo esttico.
Ejemplo 4
StartLoad \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD", load1;
WaitLoad load1;
Es lo mismo que:
Load \Dynamic, "HOME:" \File:="/DOORDIR/DOOR1.MOD";
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.173. StartLoad - Carga un mdulo de programa durante la ejecucin
RobotWare - OS
493 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si no se encuentra el archivo especificado en la instruccin, la variable de sistema ERRNO
cambia a ERR_FILNOTFND. A continuacin, este error puede ser gestionado en el gestor 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 :=] <expression (IN) of string>
[\File := <expression (IN) of string> ] ,
[LoadNo :=] <variable (VAR) of loadsession>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin de un mdulo cargado a una tarea WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Sesin de carga loadsession - Programar una sesin de carga
en la pgina 1134
Carga de un mdulo de programa Load - Carga un mdulo de programa durante
la ejecucin en la pgina 209
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Cancelacin de la carga de un mdulo de
programa
CancelLoad - Cancela la carga de un mdulo
en la pgina 34
Llamada a procedimiento con enlazamiento
en tiempo de ejecucin
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas - Llamada a procedimiento
Continuacin
1 Instrucciones
1.174. StartMove - Reanuda el movimiento del robot
RobotWare - OS
3HAC16581-5 Revisin: H 494


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.174. StartMove - Reanuda el movimiento del robot
Utilizacin
StartMove se utiliza para reanudar el movimiento del robot y los ejes externos y el proceso
perteneciente una vez detenido el movimiento.
La instruccin StopMove.
Tras la ejecucin de la secuencia StorePath ...RestoPath.
Los errores de movimiento elevador asincrnicamente, como por ejemplo
ERR_PATH_STOP o un error de proceso especfico tras la gestin en el gestor de
ERROR.
En el sistema bsico, es posible utilizar esta instruccin en el tipo siguiente de tareas de
programa:
Tarea main T_ROB1, para el reinicio del movimiento en esa tarea.
Cualquier otra tarea, para el reinicio del movimiento en la tarea main.
En el sistema MultiMove, es posible utilizar esta instruccin en el tipo siguiente de tareas de
programa:
Tarea de movimiento, para el reinicio del movimiento en esa tarea.
Tarea sin movimiento, para el reinicio del movimiento en la tarea de movimiento
conectada Adems, si el movimiento se reinicia en una tarea de movimiento conectada
que pertenece a un grupo de tarea coordinada sincronizada, el movimiento se reinicia
en todas las tareas cooperativas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StartMove.
Ejemplo 1
StopMove;
WaitDI ready_input,1;
StartMove;
El robot empieza de nuevo a moverse cuando se activa la entrada ready_input.
Ejemplo 2
...
MoveL p100, v100, z10, tool1;
StorePath;
p:= CRobT(\Tool:=tool1);
! New temporary movement
MoveL p1, v100, fine, tool1;
...
MoveL p, v100, fine, tool1;
RestoPath;
StartMove;
...
Tras volver a la posicin del paro p (en este ejemplo igual a p100), el robot est empezando
a moverse de nuevo en el nivel de trayectoria bsico.
Contina en la pgina siguiente
1 Instrucciones
1.174. StartMove - Reanuda el movimiento del robot
RobotWare - OS
495 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
StartMove [\AllMotionTasks]
[\AllMotionTasks]
Tipo de dato: switch
Reinicia el movimiento de todas las unidades mecnicas del sistema. El modificador
[\AllMotionTasks] slo puede usarse desde tareas de programa sin movimiento.
Ejecucin de programas
Cualquier proceso asociado al movimiento detenido se reanuda al mismo tiempo que se
reanuda el movimiento.
Para reiniciar una aplicacin MultiMove en el modo sincronizado coordinado, StartMove
debe ser ejecutado en todas las tareas de movimiento implicadas en la coordinacin.
Con el modificador \AllMotionTasks, (slo permitido con las tareas de programa sin
movimiento), se reinician los movimientos de todas las unidades mecnicas del sistema.
En un sistema bsico sin el modificador \AllMotionTasks, se reinician los movimientos de
las unidades mecnicas siguientes:
Siempre las unidades mecnicas de la tarea principal, independientemente de qu tarea
ejecute la instruccin StartMove.
En un sistema MultiMove sin el modificador \AllMotionTasks, se reinician los
movimientos de las unidades mecnicas siguientes:
Las unidades mecnicas de la tarea de movimiento que ejecute StartMove.
Las unidades mecnicas de la tarea de movimiento conectada a la tarea sin
movimiento en la que se ejecute StartMove. Adems, si las unidades mecnicas se
reinician en una tarea de movimiento conectada que pertenece a un grupo de tarea
coordinada sincronizada, las unidades mecnicas se reinician en todas las tareas
cooperativas.
Gestin de errores
Si el robot est demasiado alejado de la trayectoria (ms de 10 mm 20 grados) para realizar
el reinicio del movimiento interrumpido, la variable de sistema ERRNO cambia a
ERR_PATHDIST.
Si el robot se encuentra en espera en el momento en que se ejecuta StartMove, la variable
de sistema ERRNO cambia a ERR_STARTMOVE
Si la ejecucin del programa se detiene varias veces durante la recuperacin del movimiento
sobre la trayectoria con StartMove, la variable del sistema ERRNO cambia a ERR_PROGSTOP
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:
En caso de ERR_PATHDIST, mueva el robot para acercarlo a la trayectoria antes de
intentar RETRY.
En caso de ERR_STARTMOVE, ERR_PROGSTOP o ERR_ALRDY_MOVING espere unos
instantes antes de intentar ejecutar RETRY.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.174. StartMove - Reanuda el movimiento del robot
RobotWare - OS
3HAC16581-5 Revisin: H 496


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Slo se permite a una de las distintas tareas sin movimiento la realizacin de la secuencia
StopMove - StartMove respecto de alguna tarea de movimiento.
No es posible realizar ninguna recuperacin en caso de error si se ejecuta StartMove dentro
de cualquier gestor de errores.
Sintaxis
StartMove
[\AllMotionTasks];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Detencin del movimiento StopMove - Detiene el movimiento del robot
en la pgina 523
Continuacin de un movimiento StartMoveRetry - Reanuda el movimiento y la
ejecucin del robot en la pgina 497
Ms ejemplos StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Continuacin
1 Instrucciones
1.175. StartMoveRetry - Reanuda el movimiento y la ejecucin del robot
RobotWare - OS
497 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.175. StartMoveRetry - Reanuda el movimiento y la ejecucin del robot
Utilizacin
StartMoveRetry se utiliza para reanudar el movimiento del robot y de los ejes externos,
junto con el proceso correspondiente, y reintenta la ejecucin desde un gestor de ERROR.
Esta instruccin puede usarse en un gestor de ERROR de los tipos siguientes de tareas de
programa:
Tarea principal T_ROB1 de un sistema bsico
Cualquier tarea de movimiento de un sistema MultiMove
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StartMoveRetry.
Ejemplo 1
VAR robtarget p_err;
...
MoveL p1\ID:=50, v1000, z30, tool1 \WObj:=stn1;
...
ERROR
IF ERRNO = ERR_PATH_STOP THEN
StorePath;
p_err := CRobT(\Tool:= tool1 \WObj:=wobj0);
! Fix the problem
MoveL p_err, v100, fine, tool1;
RestoPath;
StartMoveRetry;
ENDIF
ENDPROC
ste es un ejemplo de un sistema MultiMove con movimientos sincronizados coordinados
(dos robots que funcionan alrededor de un objeto de trabajo en rotacin).
Durante el movimiento hasta la posicin p1, el otro robot cooperativo sufre un error de
proceso, de forma que los movimientos sincronizados coordinados se detienen. A
continuacin, este robot sufre el error ERR_PATH_STOP y la ejecucin se transfiere al gestor
de ERROR.
En el gestor de ERROR, se hace lo siguiente:
StorePath almacena la trayectoria original, pasa a un nuevo nivel de trayectoria y
pone el sistema MultiMove en el modo independiente.
Si se producen problemas con el robot, se inician los movimientos en el nuevo nivel
de trayectoria.
Antes de RestoPath es necesario volver a la posicin del error.
RestoPath vuelve al nivel de trayectoria original y devuelve el sistema MultiMove
al modo sincronizado.
StartMoveRetry reinicia el movimiento interrumpido y el proceso que est en
curso. Tambin devuelve la ejecucin para reanudar la ejecucin normal.
Contina en la pgina siguiente
1 Instrucciones
1.175. StartMoveRetry - Reanuda el movimiento y la ejecucin del robot
RobotWare - OS
3HAC16581-5 Revisin: H 498


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
StartMoveRetry realiza la secuencia siguiente:
Movimiento de recuperacin de la trayectoria
Reinicio de los procesos asociados al movimiento detenido
Reanudacin del movimiento interrumpido
RETRY de la ejecucin del programa
StartMoveRetry hace lo mismo que StartMove y RETRY juntos, pero en una operacin
indivisible.
Slo se reanuda el movimiento en las unidades mecnicas de la tarea de programa en la que
se ejecute StartMoveRetry.
Limitaciones
Slo puede usarse en los gestores de ERROR de las tareas de movimiento.
En los sistemas MultiMove que ejecutan movimientos sincronizados coordinados, es
necesario seguir las reglas de programacin siguientes en el gestor de ERROR:
StartMoveRetry debe usarse en todas las tareas de programa cooperativas.
Si se necesita para un movimiento en cualquier gestor de ERROR, las instrucciones
StorePath ... RestoPath deben usarse en todas las tareas de programa
cooperativas.
El programa debe devolver el robot hasta la posicin del error antes de ejecutar
RestoPath, si el robot fue movido en el nivel de StorePath.
Gestin de errores
Si el robot est demasiado alejado de la trayectoria (ms de 10 mm 20 grados) para realizar
el reinicio del movimiento interrumpido, la variable de sistema ERRNO cambia a
ERR_PATHDIST.
Si el robot se encuentra en espera en el momento en que se ejecuta StartMoveRetry, la
variable de sistema ERRNO cambia a ERR_STARTMOVE.
Si la ejecucin del programa se detiene varias veces durante la recuperacin del movimiento
sobre la trayectoria con StartMoveRetry, la variable del sistema ERRNO cambia a
ERR_PROGSTOP.
Si el robot se est moviendo en el momento en que se ejecuta StartMoveRetry, la variable
de sistema ERRNO cambia a ERR_ALRDY_MOVING.
No es posible hacer ninguna recuperacin en el caso de estos errores, dado que
StartMoveRetry slo puede ejecutarse en un gestor de errores.
Sintaxis
StartMoveRetry ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.175. StartMoveRetry - Reanuda el movimiento y la ejecucin del robot
RobotWare - OS
499 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Detencin del movimiento StopMove - Detiene el movimiento del robot
en la pgina 523
Continuacin de un movimiento StartMove - Reanuda el movimiento del robot
en la pgina 494
Reanudacin de la ejecucin despus de un
error
RETRY - Reanuda la ejecucin despus de
un error en la pgina 372
Almacenamiento y restauracin de
trayectorias
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Continuacin
1 Instrucciones
1.176. STCalib - Calibra una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 500


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.176. STCalib - Calibra una herramienta servo
Utilizacin
STCalib se utiliza para calibrar la distancia entre dos puntas de una herramienta. Resulta
necesario despus de cambiar las puntas o cambiar de herramienta y se recomienda despus
de la realizacin de una rectificacin de las puntas o despus de utilizar una herramienta
durante cierto tiempo.
Atencin! La herramienta realiza dos movimientos de cierre y apertura durante la
calibracin. El primer movimiento de cierre se usa para detectar la posicin de contacto de
las puntas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STCalib.
Ejemplo 1
VAR num curr_tip_wear;
VAR num retval;
CONST num max_adjustment := 20;
STCalib gun1 \ToolChg;
Calibra una pistola servo despus de un cambio de herramienta. Se espera hasta que la
calibracin de la pistola haya finalizado, antes de continuar con la siguiente instruccin de
RAPID.
Ejemplo 2
STCalib gun1 \ToolChg \Conc;
Calibra una pistola servo despus de un cambio de herramienta. Continuar con la siguiente
instruccin de RAPID sin esperar a que finalice la calibracin
Ejemplo 3
STCalib gun1 \TipChg;
Calibra una pistola servo despus de un cambio de puntas.
Ejemplo 4
STCalib gun1 \TipWear \RetTipWear := curr_tip_wear;
Calibra una pistola servo cuando se han desgastado las puntas. Guarda el desgaste de las
puntas en la variable curr_tip_wear.
Ejemplo 5
STCalib gun1 \TipChg \RetPosAdj:=retval;
IF retval > max_adjustment THEN
TPWrite "The tips are lost!";
...
Calibra una pistola servo despus de un cambio de puntas. Comprueba si faltan las puntas.
Ejemplo 6
STCalib gun1 \TipChg \PrePos:=10;
Calibra una pistola servo despus de un cambio de puntas. Se mueve rpidamente hasta la
posicin de 10 mm y empieza a buscar la posicin de contacto a una velocidad menor.
Contina en la pgina siguiente
1 Instrucciones
1.176. STCalib - Calibra una herramienta servo
Servo Tool Control
501 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 7
Ejemplo de combinacin no vlida:
STCalib gun1 \TipWear \RetTipWear := curr_tip_wear \Conc;
Realizar una calibracin de desgaste de puntas. Continuar con la siguiente instruccin de
RAPID sin esperar a que finalice la calibracin En este caso, el parmetro curr_tip_wear
no contendr ningn valor vlido, dado que se usa el modificador \Conc (la siguiente
instruccin de RAPID se ejecutar antes de que finalice el proceso de calibracin).
Argumentos
STCalib ToolName [\ToolChg] | [\TipChg] | [\TipWear] [\RetTipWear]
[\RetPosAdj] [\PrePos] [\Conc]
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
[\ToolChg]
Tipo de dato: switch
Calibracin tras un cambio de herramienta.
[\TipChg]
Tipo de dato: switch
Calibracin tras un cambio de puntas.
[\TipWear]
Tipo de dato: switch
Calibracin tras el desgaste de las puntas.
[\RetTipWear]
Tipo de dato: num
El desgaste de puntas detectado [en mm].
[\RetPosAdj]
Tipo de dato: num
El ajuste de posicin desde la ltima calibracin [mm].
[\PrePos]
Tipo de dato: num
La posicin a la que moverse a alta velocidad antes de empezar la bsqueda de la posicin de
contacto a menor velocidad [en mm].
[\Conc]
Tipo de dato: switch
Distintas instrucciones consecutivas se ejecutan mientras la pistola est en movimiento. El
argumento puede utilizarse para acortar el tiempo de ciclo. Esto resulta til, por ejemplo, si
se desea controlar dos pistolas al mismo tiempo.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.176. STCalib - Calibra una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 502


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Modos de calibracin
Si la unidad mecnica existe, se ordena la calibracin de la herramienta servo. La calibracin
se realiza de acuerdo con los modificadores. Consulte la informacin que aparece ms abajo.
Si se utiliza el parmetro RetTipWear, se actualiza el valor de desgaste de las puntas.
Calibracin tras un cambio de herramienta:
La herramienta se cerrar a baja velocidad en espera de que el contacto de las puntas se abra
rpidamente, se cierre rpidamente con una fuerza reducida y se vuelva a abrir en una
secuencia. El desgaste de la punta permanece sin cambios.
Calibracin tras un cambio de puntas:
La herramienta se cerrar a baja velocidad en espera de que el contacto de las puntas se abra
rpidamente, se cierre rpidamente con una fuerza reducida y se vuelva a abrir en una
secuencia. El desgaste de la punta se restablecer.
Calibracin tras el desgaste de las puntas:
La herramienta se cerrar a alta velocidad hasta la posicin de contacto, se abre rpidamente
y se cierra rpidamente con una fuerza reducida y se vuelve a abrir en una secuencia. El
desgaste de la punta se actualiza.
NOTA! Si se usa el modificador Conc, la instruccin se considerar terminada tan pronto
como se inicia y por tanto el valor de retorno RetTipWear no estar disponible. En este caso,
el valor de RetTipWear ser devuelto por la funcin STIsOpen. Para obtener ms detalles,
consulte Funciones de sistema operativo de RobotWare - STIsOpen.
Ajuste de posicin
El argumento opcional RetPosAdj puede usarse para detectar si, por ejemplo, las puntas se
han perdido tras un cambio de puntas. El parmetro conserva el valor del ajuste posicional
desde la ltima calibracin. El valor puede ser negativo o positivo.
Utilizacin de una posicin previa
Para acelerar la calibracin, es posible definir una posicin previa. Cuando comienza la
calibracin, el brazo de la pistola se mueve rpidamente hasta la posicin previa, se detiene
y contina lentamente *) para poder detectar la posicin de contacto de la punta. Si utiliza
una posicin previa, eljala cuidadosamente! Es importante que las puntas no entren en
contacto hasta despus de alcanzar la posicin previa! De lo contrario, la exactitud de la
calibracin ser insuficiente y es posible que se produzcan errores de supervisin de
movimientos. La posicin previa no se tiene en cuenta si es mayor que la posicin actual de
la pistola (para no ralentizar la calibracin).
*) El segundo movimiento tambin ser rpido si se usa la opcin \TipWear.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.176. STCalib - Calibra una herramienta servo
Servo Tool Control
503 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
Si la pistola no est abierta al ejecutar STCalib, la variable de sistema ERRNO cambia a
ERR_SGUN_NOTOPEN.
Si la unidad mecnica de la herramienta servo no est activada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTACT. Utilice la instruccin ActUnit para activar la herramienta
servo.
Si la posicin de la herramienta servo no est inicializada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTINIT. Es necesario inicializar la posicin de la herramienta servo
la primera vez que se instala la pistola o despus de hacer una calibracin fina. Utilice la
rutina de servicio ManServiceCalib o realice una calibracin de cambio de punta. El
desgaste de la punta se restablecer.
Si las puntas de la herramienta servo no estn sincronizadas, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTSYNC. Las puntas de la herramienta servo deben estar sincronizadas
si se ha perdido y/o actualizado el cuentarrevoluciones. No se pierde ningn dato de proceso,
por ejemplo el desgaste de las puntas.
Si la instruccin es ejecutada desde una tarea en segundo plano y se produce un paro de
emergencia, la instruccin ser finalizada y la variable de sistema ERRNO cambia a
ERR_SGUN_ESTOP. Recuerde que si la instruccin es ejecutada desde la tarea principal, el
puntero de programa se detiene en la instruccin y sta se reinicia desde el principio al
reiniciar el programa.
Si se especifica el argumento PrePos con un valor menor que cero, la variable de sistema
ERRNO cambia a ERR_SGUN_NEGVAL.
Si la instruccin es ejecutada desde una tarea en segundo plano y el sistema se encuentra en
el estado Motors OFF, la variable de sistema ERRNO cambia a ERR_SGUN_MOTOFF.
Todos estos errores pueden ser gestionados en un gestor de errores de RAPID.
Sintaxis
STCalib
[ ToolName := ] < expression (IN) of string > ,
[ \ToolChg] | [\TipChg] | [ \TipWear]
[ \RetTipWear := < variable or persistent(INOUT) of num >
];
[ \RetPosAdj := < variable or persistent(INOUT) of num > ];
[ \PrePos := < expression (IN) of num > ]
[ \Conc ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Cierre de una herramienta servo STClose - Cierra una herramienta servo en la
pgina 504
Continuacin
1 Instrucciones
1.177. STClose - Cierra una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 504


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.177. STClose - Cierra una herramienta servo
Utilizacin
STClose se utiliza para cerrar la herramienta servo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STClose.
Ejemplo 1
VAR num curr_thickness1;
VAR num curr_thickness2;
STClose gun1, 1000, 5;
Cierra la pistola servo con una fuerza de punta de 1.000 N y un grosor de plancha de 5 mm.
Se espera hasta que la pistola se haya cerrado, antes de continuar con la siguiente instruccin
de RAPID.
Ejemplo 2
STClose gun1, 2000, 3\RetThickness:=curr_thickness;
Cierra la pistola servo con una fuerza de punta de 2000 N y un grosor de plancha de 3 mm.
Almacena en la variable curr_thickness el grosor medido.
Ejemplo 3
Modo concurrente
STClose gun1, 1000, 5 \Conc;
STClose gun2, 2000, 3 \Conc;
Se cierra la pistola servo gun1 con una fuerza de puntas de 1000 N y un espesor de plancha
de 5 mm. Se contina la ejecucin del programa sin esperar al cierre de gun1 y se cierra la
pistola servo gun2 con una fuerza de puntas de 2000 N y un espesor de plancha de 3 mm. Se
contina la ejecucin del programa de RAPID sin esperar al cierre de gun2.
Ejemplo 4
IF STIsClosed (gun1)\RetThickness:=curr_thickness1 THEN
IF curr_thickness1 < 0.2 Set weld_start1;
ENDIF
IF STIsClosed (gun2)\RetThickness:=curr_thickness2 THEN
IF curr_thickness2 < 0.2 Set weld_start2;
ENDIF
Se obtiene el grosor medido en la funcin STIsClosed, variables curr_thickness1 y
curr_thickness2.
Ejemplo 5
Ejemplo de combinacin no vlida:
STClose gun1, 2000, 3\RetThickness:=curr_thickness \Conc;
Se cierra la pistola servo y se contina la ejecucin del programa de RAPID. En este caso, el
parmetro curr_thickness no contiene ningn valor vlido, dado que se usa el
modificador \Conc (la siguiente instruccin de RAPID empezar a ejecutarse antes de que
se cierre la pistola).
Contina en la pgina siguiente
1 Instrucciones
1.177. STClose - Cierra una herramienta servo
Servo Tool Control
505 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
STClose ToolName TipForce Thickness [\RetThickness][\Conc]
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
TipForce
Tipo de dato: num
La fuerza de punta deseada [N].
Thickness
Tipo de dato: num
La posicin de contacto esperada para la pistola servo [mm].
[\RetThickness]
Tipo de dato: num
El grosor obtenido [mm]. Slo obtendr un valor si no se utiliza el modificador \Conc.
[\Conc]
Tipo de dato: switch
Distintas instrucciones consecutivas se ejecutan mientras la pistola est en movimiento. El
argumento puede utilizarse para acortar el tiempo de ciclo. Esto resulta til, por ejemplo, si
se desea controlar dos pistolas al mismo tiempo.
Ejecucin de programas
Si la unidad mecnica existe, se ordena el cierre de la herramienta servo con el grosor y la
fuerza esperados.
La operacin de cierre empieza a mover el brazo de la herramienta hasta la posicin de
contacto esperada (el grosor esperado). El movimiento se detiene en esta posicin y se realiza
un cambio del modo de control de posicin al modo de control de fuerza.
El brazo de la herramienta se mueve a la velocidad y la aceleracin mximas y est definido
en los parmetros del sistema del eje externo correspondiente. En cuanto a los movimientos
de los dems ejes, se utiliza la velocidad reducida en el modo manual.
Cuando se consigue la fuerza de punta deseada, la instruccin est preparada y el grosor
conseguido se devuelve si se ha especificado el argumento opcional RetThickness.
NOTA! Si se usa el modificador Conc, la instruccin se considerar terminada tan pronto
como se inicia y por tanto el valor de retorno RetThickness no estar disponible. En este
caso, el valor de RetThickness ser devuelto por la funcin STIsClosed. Para obtener ms
detalles, consulte Funciones de sistema operativo de RobotWare - STIsClosed.
Es posible cerrar la herramienta durante un movimiento programado del robot, siempre y
cuando el movimiento del robot no incluya el movimiento del brazo de la herramienta.
Para obtener ms detalles, consulte Control de movimiento de herramientas servo.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.177. STClose - Cierra una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 506


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
Si la pistola no est abierta al ejecutar STClose, la variable de sistema ERRNO cambia a
ERR_SGUN_NOTOPEN.
Si la unidad mecnica de la herramienta servo no est activada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTACT. Utilice la instruccin ActUnit para activar la herramienta
servo.
Si la posicin de la herramienta servo no est inicializada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTINIT. Es necesario inicializar la posicin de la herramienta servo
la primera vez que se instala la pistola o despus de hacer una calibracin fina. Utilice la
rutina de servicio ManServiceCalib o realice una calibracin de cambio de punta. El
desgaste de la punta se restablecer.
Si las puntas de la herramienta servo no estn sincronizadas, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTSYNC. Las puntas de la herramienta servo deben estar sincronizadas
si se ha perdido y/o actualizado el cuentarrevoluciones. No se pierde ningn dato de proceso,
por ejemplo el desgaste de las puntas.
Si la instruccin es ejecutada desde una tarea en segundo plano y se produce un paro de
emergencia, la instruccin ser finalizada y la variable de sistema ERRNO cambia a
ERR_SGUN_ESTOP. Recuerde que si la instruccin es ejecutada desde la tarea principal, el
puntero de programa se detiene en la instruccin y sta se reinicia desde el principio al
reiniciar el programa.
Si la instruccin es ejecutada desde una tarea en segundo plano y el sistema se encuentra en
el estado Motors OFF, la variable de sistema ERRNO cambia a ERR_SGUN_MOTOFF.
Todos estos errores pueden ser gestionados en un gestor de errores de RAPID.
Sintaxis
STClose
[ ToolName := ] < expression (IN) of string > ,
[ Tipforce := ] < expression (IN) of num > ,
[ Thickness :=] < expression (IN) of num > ]
[\ RetThickness := < variable or persistent (INOUT) of num
> ]
[\Conc]
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Continuacin
1 Instrucciones
1.178. StepBwdPath - Retrocede un paso a lo largo de la trayectoria
RobotWare - OS
507 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.178. StepBwdPath - Retrocede un paso a lo largo de la trayectoria
Utilizacin
StepBwdPath se utiliza para hacer retroceder el TCP a lo largo de la trayectoria del robot, a
partir de una rutina de evento RESTART o un gestor de ERROR.
El usuario es el encargado de introducir un indicador de reinicio del proceso, de forma que
una instruccin StepBwdPath en una rutina de evento RESTART slo se ejecute al reiniciar
el proceso y no en el reinicio del programa.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StepBwdPath.
Ejemplo 1
StepBwdPath 30, 1;
Se retrocede 30 mm en 1 segundo.
Argumentos
StepBwdPath StepLength StepTime
StepLength
Tipo de dato: num
Especifica la distancia en milmetros de retroceso en este paso. Este argumento debe ser un
valor positivo.
StepTime
Tipo de dato: num
Especifica el tiempo, en segundos, que requerir el movimiento. Este argumento debe ser un
valor positivo.
Ejecucin de programas
El robot retrocede la distancia especificada a lo largo de su trayectoria. La trayectoria es
exactamente la misma, aunque en orden inverso, que la que exista antes de producirse el
paro. En caso de un paro rpido o un paro de emergencia, la llamada a la rutina de evento
RESTART se realiza una vez completada la fase de recuperacin, de forma que el robot se
encuentre ya en su trayectoria cuando se ejecuta esta instruccin.
La velocidad real de este movimiento es el valor que resulte menor de los siguientes:
StepLength / StepTime
La velocidad programada en el segmento
250 mm/s
Contina en la pgina siguiente
1 Instrucciones
1.178. StepBwdPath - Retrocede un paso a lo largo de la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 508


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Las propiedades siguientes son vlidas en Sistema MultiMove - Movimiento sincronizado y
coordinado:
Todas las unidades mecnicas implicadas retoceden simultneamente y de forma
coordinada.
Cada instruccin StepBwdPath ejecutada en cualquier tarea de programa implicada
da lugar a un nuevo paso de movimiento de retroceso (sin necesidad de ninguna
instruccin StartMove).
Para reiniciar y continuar los movimientos de proceso interrumpidos, debe ejecutarse
la instruccin StartMove en todas las tareas de programa implicadas.
Limitaciones
Una vez detenido el programa, es posible retroceder a lo largo de la trayectoria con las
limitaciones siguientes:
El primer paso de los movimientos de StepBwdPath se reduce al segmento actual del
robot.
Los movimientos de StepBwdPath siguientes se reducen al segmento previo al
segmento anterior (es posible retroceder paso a paso dentro de dos segmentos
anteriores al segmento interrumpido).
Si se intenta un movimiento ms all de estos lmites, se llama al gestor de errores con la
variable de sistema ERRNO cambiada a ERR_BWDLIMIT.
Sintaxis
StepBwdPath
[ StepLength':='] < expression (IN) of num >','
[ StepTime ':='] < expression (IN) of num >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID,
seccin Principios de movimiento y E/S
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID,
seccin Resumen sobre RAPID - Movimiento
Continuacin
1 Instrucciones
1.179. STIndGun - Pone la pistola en el modo independiente
Servo Tool Control
509 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.179. STIndGun - Pone la pistola en el modo independiente
Utilizacin
STIndGun(Servo Tool independent gun) se usa para poner la pistola en el modo
independiente y mover a continuacin la pistola hasta una posicin independiente
especificada. La pistola permanece en el modo independiente hasta que se ejecuta la
instruccin STIndGunReset.
Durante el modo independiente, el control de la pistola se separa del control del robot. Es
posible cerrar, abrir y calibrar la pistola o moverla a una nueva posicin independiente, pero
no seguir los movimientos coordinados del robot.
El modo independiente resulta til si la pistola realiza una tarea que es independiente de la
tarea del robot, por ejemplo la rectificacin de puntas de una pistola estacionaria.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STIndGun.
Ejemplo 1
Este procedimiento puede ser ejecutado desde una tarea en segundo plano mientras el robot
de la tarea principal contina con otras instrucciones, por ejemplo de movimiento.
PROC tipdress()
! Note that the gun will move to current robtarget position, if
! already in independent mode.
STIndGunReset gun1;
...
STIndGun gun1, 30;
StClose gun1, 1000, 5;
WaitTime 10;
STOpen gun1;
...
STIndGunReset gun1;
ENDPROC
Contina en la pgina siguiente
1 Instrucciones
1.179. STIndGun - Pone la pistola en el modo independiente
Servo Tool Control
3HAC16581-5 Revisin: H 510


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Se activa el modo independiente y se mueve la pistola a una posicin independiente (30 mm).
Durante el modo independiente, las instrucciones StClose, WaitTime y STOpen se ejecutan
sin interferir en los movimientos del robot. La instruccin StIndGunReset desactiva el
modo independiente de la pistola y la mueve a la posicin del objetivo de robot actual.
xx0500002342
La posicin p1 depende de la posicin de la pistola indicada en el objetivo de robot recin
ejecutado por el robot.
Argumentos
STIndGun ToolName GunPos
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
GunPos
Tipo de dato: num
La posicin (recorrido) de la pistola servo en mm.
Sintaxis
STIndGun
[ ToolName := ] < expression (IN) of string > ,
[ GunPos := < expression (IN) of num > ];
Continuacin
1 Instrucciones
1.180. STIndGunReset - Restablece el modo independiente de la pistola
Servo Tool Control
511 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.180. STIndGunReset - Restablece el modo independiente de la pistola
Utilizacin
STIndGunReset (Servo Tool independent gun reset) se utiliza para restablecer la pistola
desde el modo independiente y mover a continuacin la pistola a la posicin del objetivo de
robot actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STIndGunReset.
STIndGunReset gun1;
Argumentos
STIndGunReset ToolName
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
Ejecucin de programas
La instruccin restablece el modo independiente de la pistola y la mueve a la posicin del
objetivo de robot actual. Durante este movimiento, la velocidad coordinada de la pistola debe
ser cero. De lo contrario, se produce un error. La velocidad coordinada ser cero si el robot
est en reposo o si el movimiento actual del robot incluye un movimiento cero de la pistola.
Sintaxis
STIndGunReset
[ToolName :=]<expression (IN) of string>;
1 Instrucciones
1.181. SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta estacionaria
RobotWare - OS
3HAC16581-5 Revisin: H 512


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.181. SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta
estacionaria
Utilizacin
SToolRotCalib(Stationary Tool Rotation Calibration) 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 FlexPendant (se
describe en el Manual del operador - IRC5 con FlexPendant, seccin Programacin y
testing).
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 (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.
Como ayuda para apuntar hacia el eje x y el eje x positivos, puede usarse algn tipo de
herramienta alargadora.
Contina en la pgina siguiente
1 Instrucciones
1.181. SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta estacionaria
RobotWare - OS
513 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de robtargets RefTip, ZPos y XPos. Consulte la figura siguiente.
xx0500002343
NOTA!
No se recomienda modificar las posiciones de RefTip, ZPos y XPos en la instruccin
SToolRotCalib.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SToolRotCalib.
Ejemplo 1
! Created with pointing TCP pointing at the stationary tool
! coordinate system
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]];
!Instructions for creating or ModPos of pos_tip, pos_z and pos_x
MoveJ pos_tip, v10, fine, point_tool;
M oveJ 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.
Argumentos
SToolRotCalib RefTip ZPos XPos Tool
RefTip
Tipo de dato: robtarget
El punto en el que el TCP de la herramienta apuntadora est apuntando hacia el TCP de la
herramienta estacionaria a calibrar.
ZPos
Tipo de dato: robtarget
El punto de alargador que define la direccin z positiva.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.181. SToolRotCalib - Calibracin del TCP y de la rotacin de una herramienta estacionaria
RobotWare - OS
3HAC16581-5 Revisin: H 514


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
XPos
Tipo de dato:robtarget
El punto de alargador que define la direccin x positiva.
Tool
Tipo de dato: tooldata
La variable persistente 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 tooldata especificados. El clculo se basa en los 3 valores
especificados de robtarget. Los dems datos de tooldata permanecen sin cambios.
Sintaxis
SToolRotCalib
[ RefTip := ] < expression (IN) of robtarget > ,
[ ZPos := ] < expression (IN) of robtarget > ,
[ XPos := ] < expression (IN) of robtarget > ,
[ Tool := ] < persistent (PERS) of tooldata > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin del TCP de una herramienta
mvil
MToolTCPCalib - Calibracin del TCP de una
herramienta mvil en la pgina 284
Calibracin de la rotacin de una
herramienta mvil
MToolRotCalib - Calibracin de la rotacin de
una herramienta mvil en la pgina 281
Calibracin del TCP de una herramienta fija MToolTCPCalib - Calibracin del TCP de una
herramienta mvil en la pgina 284
Continuacin
1 Instrucciones
1.182. SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria
RobotWare - OS
515 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.182. SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria
Utilizacin
SToolTCPCalib(Stationary Tool TCP Calibration)) se usa para calibrar el TCP (punto
central de la herramienta) 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 FlexPendant (se
describe en el Manual del operador - IRC5 con FlexPendant, seccin Programacin y
testing).
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 las tres posiciones adicionales, p2, p3 y p4, todas con orientaciones diferentes.
Se recomienda que el TCP apunte hacia fuera con distintas orientaciones para obtener
un resultado estadstico fiable. Sin embargo, no es imprescindible.
Definicin de 4 robtargets, de p1 a p4. Consulte la figura siguiente.
xx0500002344
Contina en la pgina siguiente
1 Instrucciones
1.182. SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria
RobotWare - OS
3HAC16581-5 Revisin: H 516


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
NOTA!
No se recomienda modificar las posiciones de Pos1 a Pos4 en la instruccin
SToolTCPCalib.
La reorientacin entre las 4 posiciones debe ser la mayor posible, poniendo el robot en
configuraciones diferentes. Tambin resulta adecuado comprobar la calidad del TCP antes de
una calibracin. Esto puede realizarse reorientando la herramienta y comprobando si el TCP
permanece en la misma posicin.
Ejemplo bsico
A continuacin aparecen algunos ejemplos bsicos de la instruccin SToolTCPCalib.
Ejemplo 1
! Created with pointing TCP pointing at the stationary TC P
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;
! Instructions for creating or ModPos of p1 - 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;
SToolTCPCalib 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
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.182. SToolTCPCalib - Calibracin del TCP de una herramienta estacionaria
RobotWare - OS
517 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Pos4
Tipo de dato: robtarget
El cuarto punto de aproximacin.
Tool
Tipo de dato: tooldata
La variable persistente 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.
Sintaxis
SToolTCPCalib
[ Pos1 := ] < expression (IN) of robtarget > ,
[ Pos2 := ] < expression (IN) of robtarget > ,
[ Pos3 := ] < expression (IN) of robtarget > ,
[ Pos4 := ] < expression (IN) of robtarget > ,
[ Tool := ] < persistent (PERS) of tooldata > ,
[ MaxErr := ] < variable (VAR) of num > ,
[ MeanErr := ] < variable (VAR) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin del TCP de una herramienta
mvil
SToolTCPCalib - Calibracin del TCP de una
herramienta estacionaria en la pgina 515
Calibracin de la rotacin de una
herramienta mvil
MToolRotCalib - Calibracin de la rotacin de
una herramienta mvil en la pgina 281
Calibracin del TCP y la rotacin de una
herramienta fija
SToolRotCalib - Calibracin del TCP y de la
rotacin de una herramienta estacionaria en la
pgina 512
Continuacin
1 Instrucciones
1.183. Stop - Detiene la ejecucin del programa
RobotWare - OS
3HAC16581-5 Revisin: H 518


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.183. Stop - Detiene la ejecucin del programa
Utilizacin
Stopse utiliza para detener temporalmente la ejecucin del programa y los movimientos del
robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Stop.
Consulte tambin Ms ejemplos en la pgina 520.
Ejemplo 1
TPWrite "The line to the host computer is broken";
Stop;
La ejecucin del programa se detiene despus de escribir un mensaje en el FlexPendant.
Argumentos
Stop [ \NoRegain ] | [ \AllMoveTasks ]
[ \NoRegain ]
Tipo de dato: switch
Especifica si la unidad mecnica afectada debe regresar a la posicin de paro la siguiente vez
que se reanude el programa.
Si se usa el argumento \NoRegain, ni los ejes del robot ni los ejes externos regresan a 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 el FlexPendant. A continuacin, el usuario
puede decidir si el robot debe regresar a la posicin de paro.
[ \AllMoveTasks ]
Tipo de dato: switch
Especifica que deben detenerse los programas de todas las tareas normales en
funcionamiento, excepto la tarea actual.
Si se omite el argumento, slo se detiene el programa de la tarea en la que se ejecuta la
instruccin.
Contina en la pgina siguiente
1 Instrucciones
1.183. Stop - Detiene la ejecucin del programa
RobotWare - OS
519 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La instruccin detiene la ejecucin del programa cuando las unidades mecnicas afectadas de
la tarea de movimiento actual alcanzan la velocidad cero para el movimiento que est
realizando en cada momento y se detienen. Posteriormente es posible reanudar la ejecucin
del programa a partir de la instruccin siguiente.
Si la instruccin se usa sin ningn modificador, slo se ver afectado el programa de dicha
tarea.
Si se usa el modificador AllMoveTasks en una tarea (de tipo normal, esttica o
semiesttica), se detendrn tanto el programa de dicha tarea como todas las tareas de tipo
normal. Para obtener ms informacin sobre la declaracin de tareas, consulte la
documentacin sobre los parmetros del sistema.
El modificador NoRegain slo puede usarse en las tareas de movimiento, dado que slo
afecta a la trayectoria del movimiento.
Si hay una instruccin Stop en alguna rutina de evento, la ejecucin de la rutina se detiene y
la ejecucin contina como se describe en la TABLA 1.
Si hay una instruccin Stop\AllMoveTasks en alguna rutina de evento de un sistema
MultiMove, la tarea que contiene la instruccin contina de la forma descrita en la TABLA
1 y todas las dems tareas de movimiento que estn ejecutando una rutina de evento continan
de la forma descrita en la TABLA 2 (con el mismo efecto que un paro de programa normal
durante la ejecucin de la rutina de evento).
TABLA 1
Rutinas de evento Efecto de la instruccin Stop
POWER ON La ejecucin se detiene. Las rutinas de evento STOP se
ejecutan. La ejecucin no contina en la rutina de eventos
en el siguiente inicio solicitado.
START La ejecucin se detiene. Se ejecutan las rutinas de evento
STOP. La ejecucin no contina en la rutina de eventos en
el siguiente inicio solicitado.
RESTART La ejecucin se detiene. Se ejecutan las rutinas de evento
STOP. La ejecucin no contina en la rutina de eventos en
el siguiente inicio solicitado.
STOP La ejecucin se detiene. No se ejecutan otras rutinas de
evento. La ejecucin no contina en la rutina de eventos en
el siguiente inicio solicitado.
QSTOP La ejecucin se detiene. Se ejecutan las rutinas de evento
STOP. La ejecucin no contina en la rutina de eventos en
el siguiente inicio solicitado.
RESET La ejecucin se detiene. Se ejecutan las rutinas de evento
STOP. La ejecucin no contina en la rutina de eventos en
el siguiente inicio solicitado.
TABLA 2
Rutinas de evento Efecto de Stop \AllMoveTasks
POWER ON La rutina de evento POWER ON completa su ejecucin. No
se ejecuta ninguna rutina de evento STOP.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.183. Stop - Detiene la ejecucin del programa
RobotWare - OS
3HAC16581-5 Revisin: H 520


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin Stop.
Ejemplo 1
MoveL p1, v500, fine, tool1;
TPWrite "Jog the robot to the position for pallet corner 1";
Stop \NoRegain;
p1_read := CRobT(\Tool:=tool1 \WObj:=wobj0);
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.
Sintaxis
Stop
[ \ NoRegain ]|
[ \ AllMoveTasks ];
Informacin relacionada
START La ejecucin se detiene y contina en el siguiente inicio
solicitado. No se ejecuta ninguna rutina de evento STOP.
RESTART La ejecucin se detiene y contina en el siguiente inicio
solicitado. No se ejecuta ninguna rutina de evento STOP.
STOP La rutina de evento STOP completa su ejecucin.
QSTOP La rutina de evento QSTOP completa su ejecucin.
RESET La ejecucin se detiene y contina en el siguiente inicio
solicitado. No se ejecuta ninguna rutina de evento STOP.
TABLA 2
Rutinas de evento Efecto de Stop \AllMoveTasks
Para obtener ms informacin sobre Consulte
Finalizacin de la ejecucin del programa EXIT - Finaliza la ejecucin del programa en la
pgina 102
Paro de los movimientos del robot
nicamente
StopMove - Detiene el movimiento del robot en
la pgina 523
Detencin del programa para depuracin Break - Interrumpe la ejecucin del programa
en la pgina 31
Continuacin
1 Instrucciones
1.184. STOpen - Abre una herramienta servo
Servo Tool Control
521 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.184. STOpen - Abre una herramienta servo
Utilizacin
STOpen se utiliza para abrir la herramienta servo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STOpen.
Ejemplo 1
STOpen gun1;
Abre la herramienta servo gun1. Se espera hasta que la pistola se haya abierto, antes de
continuar con la siguiente instruccin de RAPID.
Ejemplo 2
STOpen gun1 \Conc;
Abre la herramienta servo gun1. Se contina con la siguiente instruccin de RAPID sin
esperar a que se abra la pistola.
Ejemplo 3
STOpen "SERVOGUN"\WaitZeroSpeed;
Se detiene la herramienta servo SERVOGUN, se espera hasta que finalice el movimiento
coordinado y se abre a continuacin la herramienta servo SERVOGUN.
Argumentos
STOpen ToolName
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
[\WaitZeroSpeed]
Tipo de dato: switch
Se detiene la herramienta servo, se espera hasta que finalice el movimiento coordinado y se
abre a continuacin la herramienta servo.
[\Conc]
Tipo de dato: switch
Distintas instrucciones consecutivas se ejecutan mientras la pistola est en movimiento. El
argumento puede utilizarse para acortar el tiempo de ciclo. Esto resulta til, por ejemplo, si
se desea controlar dos pistolas al mismo tiempo.
Ejecucin de programas
Si la unidad mecnica existe, se ordena la apertura de la herramienta servo. La fuerza de la
punta se reduce a cero y el brazo de la herramienta es devuelto a la posicin anterior al cierre.
El brazo de la herramienta se mueve a la velocidad y la aceleracin mximas y est definido
en los parmetros del sistema del eje externo correspondiente. En cuanto a los movimientos
de los dems ejes, se utiliza la velocidad reducida en el modo manual.
Contina en la pgina siguiente
1 Instrucciones
1.184. STOpen - Abre una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 522


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Es posible abrir la herramienta durante un movimiento programado del robot, siempre y
cuando el movimiento del robot no incluya el movimiento del brazo de la herramienta. Si la
herramienta se abre durante este movimiento, aparecer el error 50251 Tool opening
failed. Puede usarse el modificador WaitZeroSpeed para reducir el riesgo de que este
error se produzca.
Si se usa el modificador Conc, la instruccin se considerar como ejecutada antes de que se
abra la herramienta servo. Se recomienda usar la funcin STIsOpen a continuacin de
STOpen para evitar problemas en el modo concurrente.
Para obtener ms detalles, consulte Control de movimiento de herramientas servo.
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
Si la unidad mecnica de la herramienta servo no est activada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTACT. Utilice la instruccin ActUnit para activar la herramienta
servo.
Si la posicin de la herramienta servo no est inicializada, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTINIT. Es necesario inicializar la posicin de la herramienta servo
la primera vez que se instala la pistola o despus de hacer una calibracin fina. Utilice la
rutina de servicio ManServiceCalib o realice una calibracin de cambio de punta. El
desgaste de la punta se restablecer.
Si las puntas de la herramienta servo no estn sincronizadas, la variable de sistema ERRNO
cambia a ERR_SGUN_NOTSYNC. Las puntas de la herramienta servo deben estar sincronizadas
si se ha perdido y/o actualizado el cuentarrevoluciones. No se pierde ningn dato de proceso,
por ejemplo el desgaste de las puntas.
Todos estos errores pueden ser gestionados en un gestor de errores de RAPID.
NOTA!
Si la instruccin es ejecutada desde una tarea en segundo plano y se produce un paro de
emergencia, la instruccin ser finalizada sin ningn error.
Sintaxis
STOpen
[ ToolName := ] < expression (IN) of string > ,
[ \WaitZeroSpeed] ,
[ \Conc]
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cierre de una herramienta servo STClose - Cierra una herramienta servo en la
pgina 504
Continuacin
1 Instrucciones
1.185. StopMove - Detiene el movimiento del robot
RobotWare - OS
523 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.185. StopMove - Detiene el movimiento del robot
Utilizacin
StopMove se utiliza para detener temporalmente los movimientos de los ejes del robot y los
ejes externos y cualquier proceso asociado. Si se ejecuta la instruccin StartMove, el
movimiento y el proceso se reanudan.
Por ejemplo, esta instruccin puede usarse en una rutina TRAP para parar temporalmente el
robot cuando se produce una interrupcin.
En el sistema bsico, es posible utilizar esta instruccin en el tipo siguiente de tareas de
programa:
Tarea T_ROB1, para la detencin del movimiento en esa tarea.
Cualquier otra tarea, para la detencin del movimiento en la tarea main.
En los sistemas MultiMove, es posible utilizar esta instruccin en el tipo siguiente de tareas
de programa:
Tarea de movimiento, para la detencin del movimiento en esa tarea.
Tarea sin movimiento, para la detencin del movimiento en la tarea de movimiento
conectada Adems, si el movimiento se detiene en una tarea de movimiento que
pertenece a un grupo de tarea coordinada sincronizada, el movimiento se detiene en
todas las tareas cooperativas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StopMove.
Consulte tambin Ms ejemplos en la pgina 525.
Ejemplo 1
StopMove;
WaitDI ready_input, 1;
StartMove;
El movimiento del robot se detiene hasta que se activa la entrada ready_input.
Argumentos
StopMove [\Quick] [\AllMotionTasks]
[\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).
[\AllMotionTasks]
Tipo de dato: switch
Detiene el movimiento de todas las unidades mecnicas del sistema. El modificador
[\AllMotionTasks] slo puede usarse desde tareas de programa sin movimiento.
Contina en la pgina siguiente
1 Instrucciones
1.185. StopMove - Detiene el movimiento del robot
RobotWare - OS
3HAC16581-5 Revisin: H 524


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 tras esperar a que se detengan los ejes del robot ni los
ejes externos (en reposo).
Con el modificador \AllMotionTasks, (slo permitido con las tareas de programa sin
movimiento), se detienen los movimientos de todas las unidades mecnicas del sistema.
En un sistema base sin el modificador \AllMotionTasks, se detienen los movimientos de
las unidades mecnicas siguientes:
Siempre las unidades mecnicas de la tarea principal, independientemente de qu tarea
ejecute la instruccin StopMove.
En un sistema MultiMove sin el modificador \AllMotionTasks, se detienen los
movimientos de las unidades mecnicas siguientes:
Las unidades mecnicas de la tarea de movimiento que ejecute StopMove.
Las unidades mecnicas de la tarea de movimiento conectada a la tarea sin
movimiento en la que se ejecute StopMove. Adems, si las unidades mecnicas se
detienen en una tarea de movimiento conectada que pertenece a un grupo de tarea
coordinada sincronizada, las unidades mecnicas se detienen en todas las tareas
cooperativas.
El estado StopMove de la tarea de movimiento, generado por la propia tarea de movimiento,
se restablece automticamente al reiniciar la tarea desde el principio.
El estado StopMove de la tarea de movimiento conectado, generado por alguna tarea sin
movimiento, se restablece automticamente.
En el caso de una tarea normal sin movimiento, al iniciar la tarea desde el principio.
En el caso de una tarea semiesttica sin movimiento, al reiniciar tras una cada de
alimentacin si la tarea se inicia desde el principio.
En el caso de una tarea esttica sin movimiento, al iniciar la installation si la tarea se
inicia desde el principio.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.185. StopMove - Detiene el movimiento del robot
RobotWare - OS
525 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin StopMove.
Ejemplo 1
VAR intnum intno1;
...
CONNECT intno1 WITH go_to_home_pos;
ISignalDI di1,1,intno1;
TRAP go_to_home_pos
VAR robtarget p10;
StopMove;
StorePath;
p10:=CRobT(\Tool:=tool1 \WObj:=wobj0);
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.
Ejemplo 2
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(\Tool:=tool1 \WObj:=wobj0);
MoveL home,v500,fine,tool1;
WaitDI di1,0;
MoveL 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.
Limitaciones
Slo se permite a una de las distintas tareas sin movimiento la realizacin de la secuencia
StopMove - StartMove respecto de alguna tarea de movimiento.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.185. StopMove - Detiene el movimiento del robot
RobotWare - OS
3HAC16581-5 Revisin: H 526


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
StopMove
[\Quick]
[\AllMotionTasks];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Continuacin de un movimiento StartMove - Reanuda el movimiento del robot
en la pgina 494
StartMoveRetry - Reanuda el movimiento y la
ejecucin del robot en la pgina 497
Almacenamiento y restauracin de trayecto-
rias
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Continuacin
1 Instrucciones
1.186. StopMoveReset - Restablece el estado de movimiento de paro de sistema
RobotWare - OS
527 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.186. StopMoveReset - Restablece el estado de movimiento de paro de sistema
Utilizacin
StopMoveReset se usa para restablecer el estado de movimiento de paro de sistema, sin
iniciar ningn movimiento.
Los errores de movimiento elevados asncronamente, como ERR_PATH_STOP o un error de
proceso especfico durante el movimiento, pueden gestionarse en el gestor de ERROR. Cuando
se produce un error de este tipo, los movimientos se detienen inmediatamente y el indicador
de movimiento de paro de sistema se activa para las tareas de programa actuales. Esto
significa que el movimiento no se reinicia si se realiza cualquier reinicio de programa
mientras el puntero de programa est dentro del gestor de ERROR.
El reinicio de los movimientos tras un error de movimiento de este tipo tiene lugar una vez
realizada una de las acciones siguientes:
Ejecucin de StartMove o StartMoveRetry.
Ejecucin de StopMoveReset, con reanudacin del movimiento con el siguiente
inicio de programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StopMoveReset.
Ejemplo 1
...
ArcL p101, v100, seam1, weld1, weave1, z10, gun1;
...
ERROR
IF ERRNO=AW_WELD_ERR OR ERRNO=ERR_PATH_STOP THEN
! Execute something but without any restart of the movement
! ProgStop - ProgStart must be allowed
...
! No idea to try to recover from this error, so let the error
! Detener el programa
...
! Establecer el indicador de paro de movimiento para que sea
posible reiniciar manualmente
! el programa y el movimiento una vez que el programa se haya
! detenido
StopMoveReset;
ENDIF
ENDPROC
Una vez que el gestor de ERROR mostrado anteriormente ha ejecutado ENDPROC, la ejecucin
del programa se detiene y el puntero se sita al comienzo de la instruccin ArcL. El siguiente
inicio de programa reinicia el programa y los movimientos desde la posicin en la que se
produjo el error de movimiento original.
Contina en la pgina siguiente
1 Instrucciones
1.186. StopMoveReset - Restablece el estado de movimiento de paro de sistema
RobotWare - OS
3HAC16581-5 Revisin: H 528


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
StopMoveReset [\AllMotionTasks]
[\AllMotionTasks]
Tipo de dato: switch
Restablece el estado de paro de movimiento del sistema en todas las unidades mecnicas del
sistema. El modificador [\AllMotionTasks] slo puede usarse desde tareas de programa
sin movimiento.
Ejecucin de programas
Para restablecer una aplicacin MultiMove en el modo sincronizado coordinado,
StopMoveReset debe ser ejecutado en todas las tareas de movimiento implicadas en la
coordinacin.
Con el modificador \AllMotionTasks (slo permitido con las tareas de programa sin
movimiento), el restablecimiento se realiza en todas las unidades mecnicas del sistema.
En un sistema bsico sin el modificador \AllMotionTasks, el restablecimiento siempre se
realiza en la tarea main, independientemente de qu tarea ejecute la instruccin
StopMoveReset.
En el sistema bsico, es posible utilizar StopMoveReset en el tipo siguiente de tareas de
programa:
La tarea principal T_ROB1 para restablecer el estado de paro de movimiento en esa
tarea.
Cualquier otra tarea para restablecer el estado de paro de movimiento en la tarea
principal.
En el sistema MultiMove, es posible utilizar esta instruccin en el tipo siguiente de tareas de
programa:
Una tarea de movimiento para restablecer el estado de paro de movimiento en esa
tarea.
Una tarea sin movimiento para restablecer el estado de paro de movimiento en la tarea
de movimiento conectada. Adems, si el restablecimiento del estado de paro de
movimiento se realiza en una tarea de movimiento conectada perteneciente a un grupo
de tareas coordinadas sincronizadas, el estado de paro de movimiento tambin se
restablece en todas las tareas cooperativas.
Sintaxis
StopMoveReset
[\AllMotionTasks];
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.186. StopMoveReset - Restablece el estado de movimiento de paro de sistema
RobotWare - OS
529 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Detencin del movimiento StopMove - Detiene el movimiento del robot
en la pgina 523
Continuacin de un movimiento StartMove - Reanuda el movimiento del robot
en la pgina 494
StartMoveRetry - Reanuda el movimiento y la
ejecucin del robot en la pgina 497
Almacenamiento y restauracin de trayecto-
rias
StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria despus
de una interrupcin en la pgina 370
Continuacin
1 Instrucciones
1.187. StorePath - Almacena la trayectoria cuando se produce una interrupcin
RobotWare - OS
3HAC16581-5 Revisin: H 530


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.187. StorePath - Almacena la trayectoria cuando se produce una interrupcin
Utilizacin
StorePath se utiliza para almacenar la trayectoria de movimiento que se est ejecutando,
por ejemplo cuando se produce un error o una interrupcin. A continuacin, el gestor de
errores o la rutina TRAP pueden iniciar un nuevo movimiento temporal y reiniciar por ltimo
el movimiento original 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin StorePath.
Consulte tambin Ms ejemplos en la pgina 531.
Ejemplo 1
StorePath;
Se almacena para un uso posterior la trayectoria de movimiento actual. Se cambia el sistema
al modo de movimiento independiente.
Ejemplo 2
StorePath \KeepSync;
Se almacena para un uso posterior la trayectoria de movimiento actual. Se mantiene el modo
de movimiento sincronizado.
Argumentos
StorePath [\KeepSync]
[\KeepSync]
Tipo de dato: switch
Mantiene el modo de movimiento sincronizado tras la instruccin StorePath \KeepSync.
El modificador KeepSync slo puede usarse si el sistema se encuentra en el modo de
movimiento sincronizado antes de la llamada a StorePath \KeepSync.
Sin el parmetro opcional \KeepSync, en un sistema MultiMove con movimiento
sincronizado, el sistema cambia al modo de movimiento independiente semicoordinado. Tras
la ejecucin de StorePath en todas las tareas implicadas, el sistema se encuentra en el modo
semicoordinado si se sigue usando el objeto de trabajo coordinado. De lo contrario, se
encuentra en el modo independiente. En el modo semicoordinado, se recomienda empezar
siempre con un movimiento en la unidad mecnica que controla la base de coordenadas del
usuario antes de usar WaitSyncTask en todas las tareas implicadas.
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.
Contina en la pgina siguiente
1 Instrucciones
1.187. StorePath - Almacena la trayectoria cuando se produce una interrupcin
RobotWare - OS
531 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin StorePath.
Ejemplo 1
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. A continuacin, se reinicia el movimiento
normal.
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
[\KeepSync];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Restauracin de una trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Ms ejemplos RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
PathRecStart - Inicia la grabadora de trayecto-
rias en la pgina 314
SyncMoveResume - Activa el modo de
movimientos sincronizados coordinados en la
pgina 549
SyncMoveSuspend - Activa el movimiento
independiente-semicoordinado en la pgina
551
Continuacin
1 Instrucciones
1.188. STTune - Ajusta una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 532


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.188. STTune - Ajusta una herramienta servo
Utilizacin
STTune se utiliza para ajustar/cambiar un parmetro de una herramienta servo. Este
parmetro se cambia temporalmente respecto del valor original, que se configura en los
parmetros del sistema. El nuevo valor ajustado se activa inmediatamente tras la ejecucin de
la instruccin.
STTune resulta til en los procedimientos de ajuste. Estos procedimientos de ajuste suelen
utilizarse para encontrar el valor ptimo de un parmetro. Un experimento (por ejemplo la
ejecucin de un programa con un movimiento de herramienta servo) se repite al utilizar
distintos valores de ajuste.
STTune no debe utilizarse durante la calibracin o el cierre de la herramienta.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STTune.
Ejemplo 1
S TTune SEOLO_RG, 0.050, CloseTimeAdjust;
El parmetro de herramienta servo CloseTimeAdjust se cambia temporalmente a 0,050
segundos.
Argumentos
STTune MecUnit TuneValue Type
MecUnit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
TuneValue
Tipo de dato: num
El nuevo valor de ajuste.
Type
Tipo de dato: tunegtype
El tipo de parmetro. Los parmetros de herramienta servo disponibles para el ajuste son
RampTorqRefOpen, RampTorqRefClose, KV, SpeedLimit, CollAlarmTorq,
CollContactPos, CollisionSpeed, CloseTimeAdjust, ForceReadyDelayT,
PostSyncTime, CalibTime, CalibForceLow, CalibForceHigh. Estos tipos estn
predefinidos en los parmetros del sistema y constituyen los valores originales.
Descripcin
RampTorqRefOpen
Ajusta el parmetro del sistema Ramp when decrease force, que decide con qu rapidez
se libera la fuerza al abrir la herramienta. La unidad es Nm/s y su valor tpico es 200.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
ramp_torque_ref_opening.
Contina en la pgina siguiente
1 Instrucciones
1.188. STTune - Ajusta una herramienta servo
Servo Tool Control
533 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
RampTorqRefClose
Ajusta el parmetro del sistema Ramp when increase force, que decide con qu rapidez
se acumula la fuerza al abrir la herramienta. La unidad es Nm/s y su valor tpico es 80.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
ramp_torque_ref_closing.
KV
Ajusta el parmetro de sistema KV, que se utiliza para limitar la velocidad. La unidad es Nms/
rad y un valor tpico es 1. Para obtener ms detalles, consulte la documentacin del eje
externo.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro Kv.
SpeedLimit
Ajusta el parmetro de sistema Speed limit, que se utiliza para limitar la velocidad. La
unidad es rad/s (la velocidad del motor) y un valor tpico es 60. Para obtener ms detalles,
consulte la documentacin del eje externo.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
speed_limit.
CollAlarmTorq
Ajusta el parmetro de sistema Collision alarm torque, que se utiliza para la
calibracin automtica de nuevas puntas. La unidad es Nm (par del motor) y un valor tpico
es 1. Para obtener ms detalles, consulte la documentacin del eje externo.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
alarm_torque.
CollContactPos
Ajusta el parmetro de sistema Collision delta pos, que se utiliza para la calibracin
automtica de nuevas puntas. La unidad es m y un valor tpico es 0,002. Para obtener ms
detalles, consulte la documentacin del eje externo.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
distance_to_contact_position.
CollisionSpeed
Ajusta el parmetro de sistema Collision speed, que se utiliza para la calibracin
automtica de nuevas puntas. La unidad es m/s y un valor tpico es 0,02. Para obtener ms
detalles, consulte la documentacin del eje externo.
Parmetro de sistema correspondiente: Tema Motion, tipo Force master, parmetro
col_speed.
CloseTimeAdjust
El ajuste de tiempo constante (s), positivo o negativo, del momento en el que las puntas de la
herramienta establecen contacto durante el cierre de la herramienta. Puede usarse para
retrasar ligeramente el cierre cuando se utiliza el precierre sincronizado durante las
soldaduras.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
min_close_time_adjust.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.188. STTune - Ajusta una herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 534


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ForceReadyDelayT
Retardo de tiempo constante (s) antes del envo de la seal de soldadura preparada despus
de alcanzar la fuerza programada.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
pre_sync_delay_time.
PostSyncTime
Anticipacin de tiempo de liberacin (s) del siguiente movimiento del robot tras una
soldadura. Este tipo de ajuste puede ajustarse para sincronizar la apertura de la pistola con el
siguiente movimiento del robot. La sincronizacin puede fallar si los parmetros tienen
valores demasiado elevados.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
post_sync_time.
CalibTime
El tiempo de espera (s) durante la calibracin antes de que se realice la correccin de posicin
de la punta de la herramienta. Para obtener los mejores resultados, no utilice un valor
demasiado bajo, por ejemplo 0,5 s.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
calib_time.
CalibForceLow
La fuerza mnima de la punta (N) utilizada durante una calibracin. Para obtener los mejores
resultados de deteccin de grosor, se recomienda utilizar la mnima fuerza de soldadura
programada.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
calib_force_low.
CalibForceHigh
La fuerza mxima de la punta (N) utilizada durante una calibracin. Para obtener los mejores
resultados de deteccin de grosor, se recomienda utilizar la mxima fuerza de soldadura
programada.
Parmetro de sistema correspondiente: Tema Motion, tipo SG process, parmetro
calib_force_high.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.188. STTune - Ajusta una herramienta servo
Servo Tool Control
535 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
El tipo de ajuste especificado y el valor de ajuste se activan para la unidad mecnica
especificada. Este valor se aplica a todos los movimientos hasta que se programa un nuevo
valor para la unidad mecnica actual o hasta que se restablecen los tipos y valores de ajuste
mediante la instruccin STTuneReset.
Los valores de ajuste originales pueden cambiarse para siempre en los parmetros del
sistema.
Los valores predeterminados de ajuste de la herramienta servo se establecen automticamente
en los casos siguientes:
Al ejecutar la instruccin STTuneReset.
En los arranques en fro.
Cuando se carga un nuevo programa.
Cuando se inicia la ejecucin del programa desde el principio
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
El error puede ser gestionado en un gestor de errores de RAPID.
Sintaxis
STTune
[ MecUnit := ] < variable (VAR) of mecunit > ,
[ TuneValue := ] < expression (IN) of num > ,
[ Type :=] < expression (IN) of tunegtype > ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Restablecimiento de parmetros de
herramientas servo
TuneReset - Restablecimiento del ajuste del
servo en la pgina 646
Ajuste de herramientas servo Application manual - Additional axes and
stand alone controller
Continuacin
1 Instrucciones
1.189. STTuneReset - Restablece el ajuste de la herramienta servo
Servo Tool Control
3HAC16581-5 Revisin: H 536


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.189. STTuneReset - Restablece el ajuste de la herramienta servo
Utilizacin
STTuneReset se utiliza para restablecer los valores originales de los parmetros de la
herramienta servo si han sido cambiados con la instruccin STTune.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STTuneReset.
Ejemplo 1
STTuneReset SEOLO_RG;
Restablece los valores originales de los parmetros de la herramienta servo de la unidad
mecnica SEOLO_RG.
Argumentos
STTuneReset MecUnit
MecUnit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Ejecucin de programas
Se restablecen los parmetros originales de la herramienta servo.
Tambin se realiza 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
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
El error puede ser gestionado en un gestor de errores de RAPID.
Sintaxis
STTuneReset
[ MecUnit := ] < variable (VAR) of mecunit > ,
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ajuste de parmetros de herramientas servo STTune - Ajusta una herramienta servo en la
pgina 532
Ajuste de parmetros de herramientas servo Application manual - Additional axes and
stand alone controller
1 Instrucciones
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
RW-MRS Synchronized
537 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
Utilizacin
SyncMoveOff se utiliza para finalizar una secuencia de movimientos sincronizados y, en
muchos casos, movimientos coordinados. En primer lugar, todas las tareas de programa
implicadas deben esperar la sincronizacin en un punto de paro, tras lo cual los planificadores
de movimientos de las tareas de programa implicadas cambian al modo independiente.
La instruccin SyncMoveOff slo puede usarse en un sistema MultiMove que tenga la opcin
Coordinated Robots y slo en las tareas de programa definidas como Motion Task.
AVISO!
Para conseguir un funcionamiento seguro de la sincronizacin, cada punto de reunin
(parmetro SyncID) debe tener un nombre exclusivo. El nombre del punto de reunin
tambin debe ser el mismo en todas las tareas de programa que deban coincidir.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SyncMoveOff.
Consulte tambin Ms ejemplos en la pgina 539.
Ejemplo 1
!Program example in task T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
...
SyncMoveOn sync1, task_list;
...
SyncMoveOff sync2;
...
!Program example in task T_ROB2
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
...
SyncMoveOn sync1, task_list;
...
SyncMoveOff sync2;
...
La tarea de programa que llegue en primer lugar a SyncMoveOff con la identidad sync2
espera hasta que la otras tareas lleguen a su SyncMoveOff con la misma identidad sync2.
En ese punto de sincronizacin sync2, los planificadores de movimientos de las tareas de
programa implicadas cambian al modo independiente. A continuacin, tanto la tarea T_ROB1
como la tarea T_ROB2 prosiguen su ejecucin.
Contina en la pgina siguiente
1 Instrucciones
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
RW-MRS Synchronized
3HAC16581-5 Revisin: H 538


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
SyncMoveOff SyncID [\TimeOut]
SyncID
Synchronization Identity
Tipo de dato:syncident
Variables que especifican el nombre del punto en el que se anula la sincronizacin (reunin).
El tipo de dato syncident es un tipo de dato sin valor. Slo se utiliza como identificador
para denominar el punto de anulacin de la sincronizacin.
La variable debe ser definida y tener un nombre igual en todas las tareas de programa
cooperantes. Se recomienda definir siempre la variable global en cada tarea (VAR
syncident ...).
[\TimeOut]
Tipo de dato: num
El tiempo mximo que debe esperarse hasta que las dems tareas de programa lleguen hasta
el punto de anulacin de la sincronizacin. El tiempo lmite se define en segundos (resolucin
0,001 s).
Si el tiempo se agota antes de que todas las tareas de programa alcancen el punto de anulacin
de la sincronizacin, se llama al gestor de errores si lo hay, con el cdigo de error
ERR_SYNCMOVEOFF. Si no hay ningn gestor de errores, se detiene la ejecucin.
Si se omite este argumento, la tarea de programa esperar de forma indefinida.
Ejecucin de programas
La tarea de programa que llegue en primer lugar a SyncMoveOff espera hasta que todas las
dems tareas especificadas alcancen SyncMoveOff con la misma identidad SyncID. En ese
punto de anulacin de la sincronizacin SyncID, el planificador de movimientos de las tareas
de programa implicadas cambia al modo independiente. A continuacin, las tareas de
programa implicadas prosiguen su ejecucin.
Los planificadores de movimientos de las tareas de programa implicadas cambian al modo no
sincronizado. Esto significa lo siguiente:
Todas las tareas de programa de RAPID y todos los movimientos de estas tareas
vuelven a funcionar de forma independiente las unas de las otras.
Ninguna instruccin Move debe estar marcada con ningn nmero de ID. Consulte la
instruccin MoveL.
Es posible excluir las tareas de programa de las funciones de pruebas del panel de seleccin
de tareas del FlexPendant. Las instrucciones SyncMoveOn y SyncMoveOff seguirn
funcionando con el nmero reducido de tareas de programa, incluso si slo es una tarea de
programa.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
RW-MRS Synchronized
539 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin SyncMoveOff.
Ejemplo 1
!Program example in task T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, tcp1;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, tcp1;
syncmove;
...
ENDPROC
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, tcp1 \WOBJ:= rob2_obj;
MoveL * \ID:=20, v100, fine, tcp1 \WOBJ:= rob2_obj;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
!Program example in task T_ROB2
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, obj2;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, obj2;
syncmove;
...
ENDPROC
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
RW-MRS Synchronized
3HAC16581-5 Revisin: H 540


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, obj2;
MoveL * \ID:=20, v100, fine, obj2 ;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
En primer lugar, las tareas de programa T_ROB1 y T_ROB2 esperan mutuamente en
WaitSyncTask con la identidad sync1, programada con una trayectoria de esquina para los
movimientos precedentes, con el fin de ahorrar tiempo de ciclo.
A continuacin, las tareas de programa esperan mutuamente en SyncMoveOn con la identidad
sync2, programada con un punto de paro necesario para los movimientos precedentes.
Despus, el planificador de movimientos de las tareas de programa implicadas cambia al
modo sincronizado.
A continuacin, T_ROB2 mueve obj2 al punto ID 10 y 20 en el sistema de coordenadas,
mientras que T_ROB1 mueve el tcp1 al punto ID 10 y 20 en el objeto mvil obj2.
A continuacin, las tareas de programa esperan mutuamente en SyncMoveOff con la
identidad sync3, programada con un punto de paro necesario para los movimientos
precedentes. Despus, el planificador de movimientos de las tareas de programa implicadas
cambia al modo independiente.
Ejemplo 2
!Program example with use of time-out function
VAR syncident sync3;
...
SyncMoveOff sync3 \TimeOut := 60;
...
ERROR
IF ERRNO = ERR_SYNCMOVEOFF THEN
RETRY;
ENDIF
La tarea de programa espera en la instruccin SyncMoveOff hasta que otra tarea de programa
alcance el mismo punto de sincronizacin sync3. Despus de esperar en 60 segundos, se
llama al gestor de errores con ERRNO cambiado al valor ERR_SYNCMOVEOFF. A continuacin,
se llama de nuevo a la instruccin SyncMoveOff para una espera adicional en 60 segundos.
Gestin de errores
Si se alcanza el tiempo lmite debido a que SyncMoveOff no concluye a tiempo, la variable
de sistema ERRNO cambia a ERR_SYNCMOVEOFF.
El error puede ser gestionado en el gestor ERROR.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.190. SyncMoveOff - Finaliza los movimientos sincronizados coordinados
RW-MRS Synchronized
541 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La instruccin SyncMoveOff slo puede ejecutarse si todos los robots implicados estn
detenidos en un punto de paro.
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.
SyncMoveOff no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop, Restart, o Reset.
Sintaxis
SyncMoveOff
[ SyncID := ] < variable (VAR) of syncident>
[ \TimeOut := < expression (IN) of num> ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa
cooperativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Definicin de movimientos independientes SyncMoveUndo - Activa los movimientos
independientes en la pgina 553
Comprobacin de si est activado el modo
sincronizado
IsSyncMoveOn - Comprueba si el modo de
movimiento sincronizado est activado en la
pgina 896
MultiMove que tenga la opcin Coordinated
robots
Manual de aplicaciones - MultiMove
Continuacin
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
3HAC16581-5 Revisin: H 542


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
Utilizacin
SyncMoveOn se utiliza para iniciar una secuencia de movimientos sincronizados, en la
mayora de los casos movimientos coordinados. En primer lugar, todas las tareas de programa
implicadas deben esperar la sincronizacin en un punto de paro, tras lo cual el planificador
de movimientos de las tareas de programa implicadas cambian al modo sincronizado.
La instruccin SyncMoveOn slo puede usarse en un sistema MultiMove que tenga la opcin
Coordinated Robots y slo en las tareas de programa definidas como Motion Task.
AVISO!
Para conseguir un funcionamiento seguro de la sincronizacin, cada punto de reunin
(parmetro SyncID) debe tener un nombre exclusivo. El nombre del punto de reunin
tambin debe ser el mismo en todas las tareas de programa que deban coincidir en el punto
de reunin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SyncMoveOn.
Consulte tambin Ms ejemplos en la pgina 544.
Ejemplo 1
!Program example in task T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
...
SyncMoveOn sync1, task_list;
...
SyncMoveOff sync2;
...
!Program example in task T_ROB2
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
...
SyncMoveOn sync1, task_list;
...
SyncMoveOff sync2;
...
La tarea de programa que llegue en primer lugar a SyncMoveOn con la identidad sync1
espera hasta que la otras tareas lleguen a su SyncMoveOn con la misma identidad sync1. En
ese punto de sincronizacin sync1, el planificador de movimientos de las tareas de programa
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
543 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
implicadas cambia al modo sincronizado. A continuacin, tanto la tarea T_ROB1 como la
tarea T_ROB2 prosiguen su ejecucin de forma sincronizada hasta que alcanzan la instruccin
SyncMoveOff con la misma identidad sync2.
Argumentos
SyncMoveOn SyncID TaskList [\TimeOut]
SyncID
Synchronization Identity
Tipo de dato:syncident
Una variable que especifica el nombre del punto de sincronizacin (reunin). El tipo de dato
syncident es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de sincronizacin.
La variable debe ser definida y tener un nombre igual en todas las tareas de programa
cooperantes. Se recomienda definir siempre la variable global en cada tarea (VAR
syncident ...).
TaskList
Tipo de dato:tasks
Una variable persistente que especifica en una lista de tareas (matriz) el nombre (string) de
las tareas de programa que deben coincidir en el punto de sincronizacin cuyo nombre se
especifica en el argumento SyncID.
La variable persistente debe ser definida y tener un nombre igual y el mismo contenido en
todas las tareas de programa cooperantes. Se recomienda definir siempre la variable global
en el sistema (PERS tasks ...).
[\TimeOut]
Tipo de dato: num
El tiempo mximo que debe esperarse hasta que las dems tareas de programa lleguen hasta
el punto de sincronizacin. El tiempo lmite se define en segundos (resolucin 0,001 s).
Si el tiempo se agota antes de que todas las tareas de programa alcancen el punto de
sincronizacin, se llama al gestor de errores si lo hay, con el cdigo de error
ERR_SYNCMOVEON. Si no hay ningn gestor de errores, se detiene la ejecucin.
Si se omite este argumento, la tarea de programa esperar de forma indefinida.
Ejecucin de programas
La tarea de programa que llegue en primer lugar a SyncMoveOn espera hasta que todas las
dems tareas especificadas alcancen sus instrucciones SyncMoveOn con la misma identidad
SyncID. En ese punto de sincronizacin SyncID, el planificador de movimientos de las
tareas de programa implicadas cambia al modo sincronizado. A continuacin, las tareas de
programa implicadas prosiguen su ejecucin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
3HAC16581-5 Revisin: H 544


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Los planificadores de movimientos de las tareas de programa implicadas cambian al modo
sincronizado. Esto significa lo siguiente:
Cada instruccin de movimiento de cualquier tarea de programa de TaskList
funciona de forma sincronizada con instrucciones de movimiento en otras tareas de
programa de TaskList.
Todas las instrucciones de movimiento cooperativas se planifican e interpolan con el
mismo planificador de movimientos.
Todos los movimientos comienzan y terminan al mismo tiempo. El movimiento que
requiera el tiempo ms largo ser el que controle la velocidad, con una velocidad
reducida respecto del objeto de trabajo de los dems movimientos.
Todas las instrucciones de movimiento cooperativas deben estar marcadas con el
mismo nmero de ID. Consulte la instruccin MoveL.
Es posible excluir las tareas de programa de las funciones de pruebas del panel de seleccin
de tareas del FlexPendant. La instruccin SyncMoveOn seguir funcionando con el nmero
reducido de tareas de programa, incluso si slo es una tarea de programa.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin SyncMoveOn.
Ejemplo 1
!Program example in task T_ROB1
PERS tasks task_list{2} := [["T_ROB1"], ["T_ROB2"]];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, tcp1;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, tcp1;
syncmove;
...
ENDPROC
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, tcp1 \WOBJ:= rob2_obj;
MoveL * \ID:=20, v100, fine, tcp1 \WOBJ:= rob2_obj;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
545 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
!Program example in task T_ROB2
PERS tasks task_list{2} := [["T_ROB1"], ["T_ROB2"]];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, obj2;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, obj2;
syncmove;
...
ENDPROC
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, obj2;
MoveL * \ID:=20, v100, fine, obj2;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
En primer lugar, las tareas de programa T_ROB1 y T_ROB2 se esperan la una a la otra en
WaitSyncTask con la identidad sync1. Se programan con la trayectoria de esquina para los
movimientos precedentes con el fin de ahorrar tiempo de ciclo.
A continuacin, las tareas de programa se esperan la una a la otra en SyncMoveOn con la
identidad sync2. Se programan con un punto de paro necesario para los movimientos
precedentes. Despus, el planificador de movimientos de las tareas de programa implicadas
cambia al modo sincronizado.
A continuacin, T_ROB2 mueve obj2 al punto ID 10 y 20 en el sistema de coordenadas,
mientras que T_ROB1 mueve el tcp1 al punto ID 10 y 20 en el objeto mvil obj2.
Ejemplo 2
!Program example with use of time-out function
VAR syncident sync3;
...
SyncMoveOn sync3, task_list \TimeOut :=60;
...
ERROR
IF ERRNO = ERR_SYNCMOVEON THEN
RETRY;
ENDIF
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
3HAC16581-5 Revisin: H 546


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La tarea de programa espera en la instruccin SyncMoveOn hasta que la tarea de programa
T_ROB2 alcance el mismo punto de sincronizacin sync3. Despus de esperar en 60
segundos, se llama al gestor de errores con ERRNO cambiado al valor ERR_SYNCMOVEON. A
continuacin, se llama de nuevo a la instruccin SyncMoveOn para una espera adicional en
60 segundos.
Ejemplo 3: Ejemplo de programa con tres tareas
!Program example in task T_ROB1
PERS tasks task_list1 {2} :=[["T_ROB1"], ["T_ROB2"]];
PERS tasks task_list2 {3} :=[["T_ROB1"], ["T_ROB2"], ["T_ROB3"]];
VAR syncident sync1;
...
VAR syncident sync5;
...
SyncMoveOn sync1, task_list1;
...
SyncMoveOff sync2;
WaitSyncTask sync3, task_list2;
SyncMoveOn sync4, task_list2;
...
SyncMoveOff sync5;
...
!Program example in task T_ROB2
PERS tasks task_list1 {2} := [["T_ROB1"], ["T_ROB2"]];
PERS tasks task_list2 {3} := [["T_ROB1"], ["T_ROB2"], ["T_ROB3"]];
VAR syncident sync1;
...
VAR syncident sync5;
...
SyncMoveOn sync1, task_list1;
...
SyncMoveOff sync2;
WaitSyncTask sync3, task_list2;
SyncMoveOn sync4, task_list2;
...
SyncMoveOff sync5;
...
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
547 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
!Program example in task T_ROB3
PERS tasks task_list2 {3} := [["T_ROB1"], ["T_ROB2"], ["T_ROB3"]];
VAR syncident sync3;
VAR syncident sync4;
VAR syncident sync5;
...
WaitSyncTask sync3, task_list2;
SyncMoveOn sync4, task_list2;
...
SyncMoveOff sync5;
...
En este ejemplo, inicialmente las tareas de programa T_ROB1 y T_ROB2 tienen sincronizados
los movimientos y T_ROB3 se mueve independientemente. Ms adelante en el programa, las
tres tareas se mueven de forma sincronizada. Para impedir que la instruccin de SyncMoveOn
se ejecute en T_ROB3 antes de que la primera sincronizacin de T_ROB1 y T_ROB2 haya
terminado, se utiliza la instruccin WaitSyncTask.
Gestin de errores
Si se alcanza el tiempo lmite debido a que SyncMoveOn no concluye a tiempo, la variable
de sistema ERRNO cambia a ERR_SYNCMOVEON.
El error puede ser gestionado en el gestor ERROR.
Limitaciones
La instruccin SyncMoveOn slo puede ejecutarse si todos los robots implicados estn
detenidos en un punto de paro.
Slo un grupo de movimientos sincronizados coordinados puede estar activo cada vez.
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.
SyncMoveOn no puede ejecutarse en rutinas de RAPID que estn conectadas a los siguientes
eventos especiales del sistema: PowerOn, Stop, QStop, Restart, o Reset.
Sintaxis
SyncMoveOn
[ SyncID := ] < variable (VAR) of syncident> ,
[ TaskList := ] < persistent array {*} (PERS) of tasks> ,
[ \TimeOut := < expression (IN) of num > ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa
cooperativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.191. SyncMoveOn - Inicia los movimientos sincronizados coordinados
RW-MRS Independent
3HAC16581-5 Revisin: H 548


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Definicin de movimientos independientes SyncMoveUndo - Activa los movimientos
independientes en la pgina 553
Comprobacin de si est activado el modo
sincronizado
IsSyncMoveOn - Comprueba si el modo de
movimiento sincronizado est activado en la
pgina 896
Sistema MultiMove con la opcin
Coordinated Robots
Manual de aplicaciones - MultiMove
Espera a tareas sincronizadas WaitSyncTask - Espera en un punto de sin-
cronizacin con otras tareas de programa en
la pgina 694
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.192. SyncMoveResume - Activa el modo de movimientos sincronizados coordinados
Path Recovery
549 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.192. SyncMoveResume - Activa el modo de movimientos sincronizados
coordinados
Utilizacin
SyncMoveResumese utiliza para volver al modo de movimiento sincronizado desde el modo
de movimiento independiente. Esta instruccin slo puede usarse en el nivel StorePath, por
ejemplo, una vez que se ha ejecutado una instruccin StorePath \KeepSync y el sistema
se encuentra en el modo de movimiento independiente una vez ejecutada la instruccin
SyncMoveSuspend. Para poder utilizar la instruccin, el sistema debe haber estado en el
modo de movimiento sincronizado antes de ejecutar las instrucciones StorePath y
SyncMoveSuspend.
La instruccin SyncMoveResume slo puede usarse en un sistema MultiMove que tenga las
opciones Coordinated Robots y Path Recovery y slo en las tareas de programa definidas
como tarea de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SyncMoveResume.
Ejemplo 1
ERROR
StorePath \KeepSync;
! Save position
p11 := CRobT(\Tool:=tool2);
! Move in syncronized motion mode
MoveL p12\ID:=111, v50, fine, tool2;
SyncMoveSuspend;
! Move in independent mode somewhere, e.g. to a cleaning station
p13 := CRobT();
MoveL p14, v100, fine, tool2;
! Do something at cleaning station
MoveL p13, v100, fine, tool2;
SyncMoveResume;
! Move in syncronized motion mode back to start position p11
MoveL p11\ID:=111, fine, z20, tool2;
RestoPath;
StartMove;
RETRY;
Se produce algn tipo de error recuperable. El sistema permanece en el modo sincronizado y
se realiza un movimiento sincronizado a un punto, por ejemplo retrocediendo por la
trayectoria. A continuacin, se realiza un movimiento independiente hacia una estacin de
limpieza. Seguidamente, el robot retrocede hasta el punto en el que se produjo el error y el
programa contina en el punto en el que fue interrumpido por el error.
Contina en la pgina siguiente
1 Instrucciones
1.192. SyncMoveResume - Activa el modo de movimientos sincronizados coordinados
Path Recovery
3HAC16581-5 Revisin: H 550


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
SyncMoveResume fuerza la reanudacin del modo sincronizado cuando el sistema se
encuentra en el modo de movimiento independiente en el nivel StorePath.
La instruccin SyncMoveResume es necesaria en todas las tareas que se estn ejecutando en
el modo de movimiento sincronizado antes de activar el modo de movimiento independiente.
Si una tarea de movimiento ejecuta una instruccin SyncMoveResume, dicha tarea esperar
hasta que tambin todas las tareas que estuvieran anteriormente en el modo de movimiento
sincronizado ejecuten una instruccin SyncMoveResume. A continuacin, las tareas de
programa implicadas prosiguen su ejecucin.
Limitaciones
La instruccin SyncMoveResume slo puede usarse para volver al modo de movimiento
sincronizado y slo puede usarse en el nivel StorePath.
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.
SyncMoveResume no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop, Restart, o Reset.
Sintaxis
SyncMoveResume ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa
cooperativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Comprobacin de si est activado el modo
sincronizado
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Almacenamiento de la trayectoria StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Restauracin de la trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Suspensin del movimiento sincronizado SyncMoveSuspend - Activa el movimiento
independiente-semicoordinado en la pgina
551
Continuacin
1 Instrucciones
1.193. SyncMoveSuspend - Activa el movimiento independiente-semicoordinado
Path Recovery
551 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.193. SyncMoveSuspend - Activa el movimiento independiente-semicoordinado
Utilizacin
SyncMoveSuspendse usa para suspender el modo de movimiento sincronizado y poner el
sistema en el modo de movimiento independiente-semicoordinado. Esta instruccin slo
puede usarse en el nivel StorePath, por ejemplo, una vez que se ha ejecutado una
instruccin StorePath o StorePath \KeepSync y el sistema se encuentra en el modo de
movimiento sincronizado.
La instruccin SyncMoveSuspend slo puede usarse en un MultiMove System que disponga
de las opciones Coordinated Robots y Path Recovery y slo en tareas de programa definidas
como tarea de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SyncMoveSuspend.
Ejemplo 1
ERROR
StorePath \KeepSync;
! Save position
p11 := CRobT(\Tool:=tool2);
! Move in syncronized motion mode
MoveL p12\ID:=111, v50, fine, tool2;
SyncMoveSuspend;
! Move in independent mode somewhere, e.g. to a cleaning station
p13 := CRobT();
MoveL p14, v100, fine, tool2;
! Do something at cleaning station
MoveL p13, v100, fine, tool2;
SyncMoveResume;
! Move in syncronized motion mode back to start position p11
MoveL p11\ID:=111, fine, z20, tool2;
RestoPath;
StartMove;
RETRY;
Se produce algn tipo de error recuperable. El sistema permanece en el modo sincronizado y
se realiza un movimiento sincronizado a un punto, por ejemplo retrocediendo por la
trayectoria. A continuacin, se realiza un movimiento independiente hacia una estacin de
limpieza. Seguidamente, el robot retrocede hasta el punto en el que se produjo el error y el
programa contina en el punto en el que fue interrumpido por el error.
Ejecucin de programas
SyncMoveSuspend fuerza el restablecimiento de los movimientos sincronizados y pone el
sistema en el modo de movimiento independiente-semicoordinado.
La instruccin SyncMoveSuspend es necesaria en todas las tareas de movimiento
sincronizado, para poner el sistema en el modo de movimiento independiente-
semicoordinado. Si una tarea de movimiento ejecuta una instruccin SyncMoveSuspend, la
tarea espera hasta que las dems tareas hayan ejecutado una instruccin SyncMoveSuspend.
Contina en la pgina siguiente
1 Instrucciones
1.193. SyncMoveSuspend - Activa el movimiento independiente-semicoordinado
Path Recovery
3HAC16581-5 Revisin: H 552


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Tras la ejecucin de SyncMoveSuspend en todas las tareas implicadas, el sistema se
encuentra en el modo semicoordinado si se sigue usando el objeto de trabajo coordinado. De
lo contrario, se encuentra en el modo independiente. En el modo semicoordinado, se
recomienda empezar siempre con un movimiento en la unidad mecnica que controla la base
de coordenadas del usuario antes de usar WaitSyncTask en todas las tareas implicadas.
Limitaciones
La instruccin SyncMoveSuspend suspende el modo sincronizado slo en el nivel
StorePath. Despus de volver del nivel StorePath, el sistema cambia al modo en el que
se encontraba antes de StorePath.
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.
SyncMoveSuspend no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop, Restart, o Reset.
Sintaxis
SyncMoveSuspend';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Comprobacin de si est activado el modo
sincronizado
IsSyncMoveOn - Comprueba si el modo de
movimiento sincronizado est activado en la
pgina 896
Almacenamiento de la trayectoria StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Restauracin de la trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina
370
Reanudacin del movimiento sincronizado SyncMoveResume - Activa el modo de
movimientos sincronizados coordinados en
la pgina 549
Continuacin
1 Instrucciones
1.194. SyncMoveUndo - Activa los movimientos independientes
RobotWare - OS
553 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.194. SyncMoveUndo - Activa los movimientos independientes
Utilizacin
SyncMoveUndo se utiliza para forzar el restablecimiento de los movimientos sincronizados
coordinados y pone el sistema en el modo de movimientos independientes.
La instruccin SyncMoveUndo slo puede usarse en un sistema MultiMove que tenga la
opcin Coordinated Robots y slo en las tareas de programa definidas como Motion Task.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SyncMoveUndo.
Ejemplo 1
Ejemplo de programa de la tarea T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, tcp1;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, tcp1;
syncmove;
...
ENDPROC
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, tcp1 \WOBJ:= rob2_obj;
MoveL * \ID:=20, v100, fine, tcp1 \WOBJ:= rob2_obj;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
Si el programa se detiene mientras la ejecucin se encuentra dentro del procedimiento
syncmove y el puntero de programa se mueve hacia el exterior del procedimiento syncmove,
se ejecutan todas las instrucciones que se encuentren dentro del gestor de deshacer UNDO. En
este ejemplo se ejecuta la instruccin SyncMoveUndo y el sistema cambia al modo de
movimientos independientes.
Contina en la pgina siguiente
1 Instrucciones
1.194. SyncMoveUndo - Activa los movimientos independientes
RobotWare - OS
3HAC16581-5 Revisin: H 554


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Se fuerza el restablecimiento de los movimientos sincronizados coordinados y pone el
sistema en el modo de movimientos independientes.
Basta con ejecutar SyncMoveUndo en una tarea de programa para cambiar todo el sistema al
modo de movimientos independientes. La instruccin puede ejecutarse varias veces sin que
se produzca ningn error si el sistema ya se encuentra en el modo de movimientos
independientes.
El sistema cambia tambin al modo de movimientos independientes en las situaciones
siguientes:
En los arranques en fro.
Cuando se carga un nuevo programa.
Cuando se inicia la ejecucin del programa desde el principio
Cuando se mueve el puntero de programa hasta el principio.
Sintaxis
SyncMoveUndo ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Comprobacin de si est activado el modo
sincronizado
IsSyncMoveOn - Comprueba si el modo de
movimiento sincronizado est activado en la
pgina 896
Continuacin
1 Instrucciones
1.195. SystemStopAction - Para el sistema de robot
RobotWare - OS
555 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.195. SystemStopAction - Para el sistema de robot
Utilizacin
SystemStopAction puede usarse para parar el sistema de robot de distintas formas en
funcin de la gravedad del error o el problema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin SystemStopAction.
Ejemplo 1
SystemStopAction \Stop;
Esto hace que se detenga la ejecucin del programa y los movimientos del robot en todas las
tareas de movimiento. No se requiere ninguna accin especfica antes del reinicio de la
ejecucin del programa.
Ejemplo 2
SystemStopAction \StopBlock;
Esto hace que se detenga la ejecucin del programa y los movimientos del robot en todas las
tareas de movimiento. Todos los punteros de programa deben ser movidos antes de que sea
posible reanudar la ejecucin del programa.
Ejemplo 3
SystemStopAction \Halt;
Esto provoca el estado Motors OFF, la detencin de la ejecucin del programa y los
movimientos del robot en todas las tareas de movimiento. Se debe cambiar a Motors ON antes
de que sea posible reanudar la ejecucin del programa.
Argumentos
SystemStopAction [\Stop] [\StopBlock] [\Halt]
[\Stop]
Tipo de dato: switch
\Stop se usa para parar la ejecucin del programa y los movimientos del robot en todas las
tareas de movimiento. No se requiere ninguna accin especfica antes del reinicio de la
ejecucin del programa.
[\StopBlock]
Tipo de dato: switch
\StopBlock se usa para parar la ejecucin del programa y los movimientos del robot en
todas las tareas de movimiento. Todos los punteros de programa deben ser movidos antes de
que sea posible reanudar la ejecucin del programa.
[\Halt]
Tipo de dato: switch
\Halt de lugar al estado Motors OFF, la detencin de la ejecucin del programa y los
movimientos del robot en todas las tareas de movimiento. Se debe cambiar a Motors ON antes
de que sea posible reanudar la ejecucin del programa.
Contina en la pgina siguiente
1 Instrucciones
1.195. SystemStopAction - Para el sistema de robot
RobotWare - OS
3HAC16581-5 Revisin: H 556


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Si el robot realiza un movimiento circular durante el SystemStopAction \StopBlock, el
puntero de programa y el robot deben moverse al principio del movimiento circular antes de
reanudar la ejecucin del programa.
Sintaxis
SystemStopAction
[ \Stop ]
| [ \StopBlock ]
| [ \Halt ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Detiene la ejecucin del programa Stop - Detiene la ejecucin del programa en
la pgina 518
Finaliza la ejecucin del programa EXIT - Finaliza la ejecucin del programa en
la pgina 102
Paro de los movimientos del robot
nicamente.
StopMove - Detiene el movimiento del robot
en la pgina 523
Escribir un mensaje de error ErrLog - Escribe un mensaje de error en la
pgina 92
Continuacin
1 Instrucciones
1.196. TEST - En funcin del valor de una expresin...
RobotWare - OS
557 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.196. TEST - En funcin del valor de una expresin...
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TEST.
Ejemplo 1
TEST reg1
CASE 1,2,3 :
routine1;
CASE 4 :
routine2;
DEFAULT :
TPWrite "Illegal choice";
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 Test data {CASE Test value {, Test value} : ...} [ DEFAULT:
...] ENDTEST
Test data
Tipo de dato: All
El dato o la expresin con el que se comparar el valor de prueba.
Test value
Tipo de dato: Del mismo tipo que test data
El valor que debe tener el dato de prueba para que se ejecuten las instrucciones asociadas.
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).
Contina en la pgina siguiente
1 Instrucciones
1.196. TEST - En funcin del valor de una expresin...
RobotWare - OS
3HAC16581-5 Revisin: H 558


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
(EBNF)
TEST <expressio
{( CASE<test value> { , <test value> } :
<instruction list> ) | <CSE> }
[ DEFAULT : <instruction list> ]
ENDTEST
<test value> ::= <expression>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Expresiones Manual de referencia tcnica - Instrucciones,
funciones y tipos de datos de RAPID, seccin
Caractersticas bsicas - Expresiones
Continuacin
1 Instrucciones
1.197. TestSignDefine - Define una seal de prueba
RobotWare - OS
559 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.197. TestSignDefine - Define una seal de prueba
Utilizacin
TestSignDefine se utiliza para definir una seal de prueba para el sistema de movimiento
del robot.
Una seal de prueba refleja continuamente un flujo de datos de movimiento en concreto. Por
ejemplo, referencia de par para algn 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. Las seales
de prueba tambin estn disponibles bajo pedido para los ejes de robot y para las seales de
prueba no predefinidas para los ejes externos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TestSignDefine.
Ejemplo 1
TestSignDefine 1, resolver_angle, Orbit, 2, 0.1;
La seal de prueba resolver_angle conectada al canal 1 proporciona el valor de ngulo de
resolver para el eje externo 2 en el manipulador orbit, muestreado con una frecuencia de
100 ms.
Argumentos
TestSignDefine Channel SignalId MechUnit Axis SampleTime
Channel
Tipo de dato: num
Los nmeros 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
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero de eje de la unidad mecnica.
Contina en la pgina siguiente
1 Instrucciones
1.197. TestSignDefine - Define una seal de prueba
RobotWare - OS
3HAC16581-5 Revisin: H 560


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
SampleTime
Tipo de dato: num
El tiempo de muestreo en segundos.
Con un tiempo de muestreo <0,004 s, la funcin TestSignRead devuelve el valor medio de
los ltimos muestreos internos disponibles, como se muestra en la tabla siguiente.
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 un error en el parmetro MechUnit, la variable ERRNO cambia a ERR_UNIT_PAR. Si
hay un error en el parmetro Axis, ERRNO cambia a ERR_AXIS_PAR.
Sintaxis
TestSignDefine
[ Channel := ] < expression (IN) of num> ,
[ SignalId := ] < expression (IN) of testsignal> ,
[ MechUnit := ] < variable (VAR) of mecunit> ,
[ Axis := ] < expression (IN) of num> ,
[ SampleTime := ] < expression (IN) of num > ;
Informacin relacionada
Tiempo de muestreo
en segundos
Resultado de TestSignRead
0 Valor medio de los ltimos 8 muestreos generados cada 0,5 ms
0.001 Valor medio de los ltimos 4 muestreos generados cada 1 ms
0.002 Valor medio de los ltimos 2 muestreos generados cada 2 ms
Mayor o igual a 0,004 Valor momentneo generado en el tiempo de muestreo especifi-
cado
0.1 Valor momentneo generado en el tiempo de muestreo especifi-
cado, de 100 ms
Para obtener ms informacin sobre Consulte
Seal de prueba testsignal - Seal de prueba en la pgina
1205
Lectura de una seal de prueba TestSignRead - Obtiene el valor de una seal
de test en la pgina 1031
Puesta a cero de seales de prueba TestSignReset - Restablece todas las defini-
ciones de seales de prueba en la pgina 561
Continuacin
1 Instrucciones
1.198. TestSignReset - Restablece todas las definiciones de seales de prueba
RobotWare - OS
561 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.198. TestSignReset - Restablece todas las definiciones de seales de prueba
Utilizacin
TestSignReset se utiliza para desactivar todas las seales de prueba definidas
anteriormente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TestSignReset.
Ejemplo 1
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
Para obtener ms informacin sobre Consulte
Definicin de una seal de test TestSignDefine - Define una seal de prueba
en la pgina 559
Lectura de una seal de prueba TestSignRead - Obtiene el valor de una seal
de test en la pgina 1031
1 Instrucciones
1.199. TextTabInstall - Instalacin de una tabla de textos
RobotWare - OS
3HAC16581-5 Revisin: H 562


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.199. TextTabInstall - Instalacin de una tabla de textos
Utilizacin
TextTabInstall se usa para instalar una tabla de textos en el sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TextTabInstall.
Ejemplo 1
! System Module with Event Routine to be executed at event
! POWER ON, RESET or START
PROC install_text()
IF TextTabFreeToUse("text_table_name") THEN
TextTabInstall "HOME:/text_file.eng";
ENDIF
ENDPROC
La primera vez que se ejecuta la rutina de evento install_text, la funcin
TextTabFreeToUse devuelve TRUE y el archivo de texto text_file.eng se instala en el
sistema. A continuacin, es posible obtener con RAPID las cadenas de texto instaladas en el
sistema, con ayuda de las funciones TextTabGet y TextGet.
La prxima vez que se ejecuta la rutina de evento install_text, la funcin
TextTabFreeToUse devuelve FALSE y la instalacin no se repite.
Argumentos
TextTabInstall File
File
Tipo de dato: string
La ruta y el nombre del archivo que contiene las cadenas de texto que se desea instalar en el
sistema.
Limitaciones
Limitaciones de la instalacin de tablas de textos (recursos de texto) en el sistema:
No es posible instalar una misma tabla de textos ms de una vez en el sistema.
No es posible desinstalar (liberar) una sola tabla de textos del sistema. La nica forma
de desinstalar tablas de textos del sistema es realizar un arranque en fro del sistema.
De esta forma, se desinstalan todas las tablas de textos (tanto las del sistema como las
definidas por el usuario).
Gestin de errores
Si no es posible abrir el archivo especificado en la instruccin TextTabInstall, la variable
de sistema ERRNO cambia a ERR_FILEOPEN. A continuacin, este error puede ser gestionado
en el gestor de errores.
Contina en la pgina siguiente
1 Instrucciones
1.199. TextTabInstall - Instalacin de una tabla de textos
RobotWare - OS
563 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TextTabInstall
[ File ':='] < expression (IN) of string >';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si una tabla de textos est
libre
TextTabFreeToUse - Comprueba si una tabla
de textos est libre para su uso en la pgina
1035
Formato de archivos de texto Technical reference manual - RAPID kernel,
seccin Archivos de texto
Obtencin de un nmero de tabla de textos TextTabGet - Obtiene el nmero de una tabla
de textos en la pgina 1037
Obtencin de textos de las tablas de textos
del sistema
TextGet - Obtener un texto de las tablas de
textos del sistema en la pgina 1033
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones de cadena
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Continuacin
1 Instrucciones
1.200. TPErase - Borra el texto mostrado en el FlexPendant
3HAC16581-5 Revisin: H 564


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.200. TPErase - Borra el texto mostrado en el FlexPendant
Utilizacin
TPErase (FlexPendant Erase) se utiliza para borrar la pantalla del FlexPendant.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TPErase.
Ejemplo 1
TPErase;
TPWrite "Execution started";
Se borra la pantalla del FlexPendant antes de escribir en ella el mensaje Execution
started.
Ejecucin de programas
Se elimina todo el texto de la pantalla del FlexPendant. La prxima vez que se escribe un
texto, ste aparece en la lnea superior de la pantalla.
Sintaxis
TPErase;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura en el FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
1 Instrucciones
1.201. TPReadFK - Lee las teclas de funcin
RobotWare - OS
565 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.201. TPReadFK - Lee las teclas de funcin
Utilizacin
TPReadFK (FlexPendant Read Function Key) se utiliza para escribir un texto en las teclas de
funcin y para determinar qu tecla de funcin se ha presionado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TPReadFK.
Consulte tambin Ms ejemplos en la pgina 567.
Ejemplo 1
TPReadFK reg1, "More?", stEmpty, stEmpty, stEmpty, "Yes", "No";
Se escribe el texto More? en la pantalla del FlexPendant y se activan las teclas de funcin 4
y 5 usando las cadenas de texto Yes y No respectivamente (consulte la figura siguiente). 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.
En la figura se muestra cmo el operador puede introducir informacin a travs de las teclas
de funcin.
xx0500002345
Argumentos
TPReadFK TPAnswer TPText TPFK1 TPFK2 TPFK3 TPFK4 TPFK5 [\MaxTime]
[\DIBreak] [\DOBreak] [\BreakFlag]
TPAnswer
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.
TPText
Tipo de dato: string
El texto informativo que debe escribirse en la pantalla (con un mximo de 80 caracteres y 40
caracteres por fila).
Contina en la pgina siguiente
1 Instrucciones
1.201. TPReadFK - Lee las teclas de funcin
RobotWare - OS
3HAC16581-5 Revisin: H 566


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
TPFKx
Function key text
Tipo de dato: string
El texto que debe escribirse en tecla de funcin adecuada (con un mximo de 42 caracteres).
TPFK1 es la tecla que se encuentra en el extremo izquierdo.
Para especificar que una tecla de funcin no debe tener ningn texto, 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]
Digital Input Break
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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital que soporta la peticin de finalizacin desde otras tareas. Si no se selecciona
ningn botn 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_DOBREAK 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, DIBreak o DOBreak.
Si se omite esta variable opcional, se ejecuta el gestor de errores. Las constantes
ERR_TP_MAXTIME,ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar
el motivo.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.201. TPReadFK - Lee las teclas de funcin
RobotWare - OS
567 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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. Puede haber un
mximo de 7 lneas por encima del nuevo texto escrito.
El texto se escribe en las teclas de funcin adecuadas.
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 el FlexPendant
(peticin TP) desde una misma tarea de programa o desde otras tareas de programa:
Una nueva peticin de unidad de programacin de otras tareas 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)
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TPReadFK.
Ejemplo 1
VAR errnum errvar;
...
TPReadFK reg1, "Go to service position?", stEmpty, stEmpty,
stEmpty, "Yes","No"
\MaxTime:= 600
\DIBreak:= di5\BreakFlag:= errvar;
IF reg1 = 4 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 ("Yes")
o si se activa la seal 5. Si no se da ninguna respuesta en un periodo de 10 minutos, la
ejecucin finaliza.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.201. TPReadFK - Lee las teclas de funcin
RobotWare - OS
3HAC16581-5 Revisin: H 568


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Si tiene lugar la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el gestor
de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la instruccin, la
variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la ejecucin contina en el
gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
TPReadFK se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar a
un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentizacin de
la respuesta del FlexPendant.
Datos predefinidos
CONST string stEmpty := "";
La constante predefinida stEmpty debe usarse en el caso de las teclas de funcin que no
tienen textos asignados. El uso de stEmpty en lugar de "" ahorra aproximadamente 80 bytes
por cada tecla de funcin que no tenga texto.
Sintaxis
TPReadFK
[TPAnswer :=] <var or pers (INOUT) of num>,
[TPText :=] <expression (IN) of string>,
[TPFK1 :=] <expression (IN) of string>,
[TPFK2 :=] <expression (IN) of string>,
[TPFK3 :=] <expression (IN) of string>,
[TPFK4 :=] <expression (IN) of string>,
[TPFK5 :=] <expression (IN) of string>
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>];
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.201. TPReadFK - Lee las teclas de funcin
RobotWare - OS
569 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura y lectura a travs del FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Respuestas a travs del FlexPendant Manual del operador - IRC5 con Flex-
Pendant, seccin Produccin en funciona-
miento
Continuacin
1 Instrucciones
1.202. TPReadNum - Lee un nmero del FlexPendant
RobotWare - OS
3HAC16581-5 Revisin: H 570


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.202. TPReadNum - Lee un nmero del FlexPendant
Utilizacin
TPReadNum (FlexPendant Read Numerical) se usa para leer un nmero del FlexPendant.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TPReadNum.
Consulte tambin Ms ejemplos en la pgina 571.
Ejemplo 1
TPReadNum reg1, "How many units should be produced?";
Se escribe el texto How many units should be produced? en la pantalla del
FlexPendant. La ejecucin del programa espera hasta que se introduzca un nmero a travs
del teclado numrico del FlexPendant. El nmero se almacena en reg1.
Argumentos
TPReadNum TPAnswer TPText [\MaxTime] [\DIBreak] [\DOBreak]
[\BreakFlag]
TPAnswer
Tipo de dato: num
La variable en la que se almacena el nmero introducido a travs del FlexPendant.
TPText
Tipo de dato: string
El texto informativo que debe escribirse en el FlexPendant (con un mximo de 80 caracteres
y 40 caracteres por fila).
[\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]
Digital Input Break
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.
Contina en la pgina siguiente
1 Instrucciones
1.202. TPReadNum - Lee un nmero del FlexPendant
RobotWare - OS
571 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital que soporta la peticin de finalizacin desde otras tareas. Si no se selecciona
ningn botn 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_DOBREAK 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, DIBreak o DOBreak.
Si se omite esta variable opcional, se ejecuta el gestor de errores. Las constantes
ERR_TP_MAXTIME, ERR_TP_DIBREAK y ERR_TP_DOBREAK 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. Puede haber un
mximo de 7 lneas por encima del nuevo texto escrito.
La ejecucin del programa espera hasta que se escribe un nmero mediante el teclado
numrico (seguido de Intro u OK) o hasta que la instruccin es interrumpida por un tiempo
lmite agotado o una accin de seal.
Consulte TPReadFK para obtener una descripcin de la peticin concurrente de TPReadFK o
TPReadNum en el FlexPendant desde la misma tarea de programa o desde tareas de programa
diferentes.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TPReadNum.
Ejemplo 1
TPReadNum reg1, "How many units should be produced?";
FOR i FROM 1 TO reg1 DO
produce_part;
ENDFOR
Se escribe el texto How many units should be produced? en la pantalla del
FlexPendant. A continuacin, la rutina produce_part se repite el nmero de veces
especificado a travs del FlexPendant.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.202. TPReadNum - Lee un nmero del FlexPendant
RobotWare - OS
3HAC16581-5 Revisin: H 572


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Si tiene lugar la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el gestor
de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la instruccin, la
variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la ejecucin contina en el
gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Sintaxis
TPReadNum
[TPAnswer:=] <var or pers (INOUT) of num>,
[TPText:=] <expression (IN) of string>
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura y lectura a travs del FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Introduccin de un nmero en el
FlexPendant
Manual del operador - IRC5 con Flex-
Pendant, seccin Produccin en funciona-
miento
Ejemplos de cmo usar los argumentos
MaxTime, DIBreak y BreakFlag
TPReadFK - Lee las teclas de funcin en la
pgina 565
Continuacin
1 Instrucciones
1.203. TPShow - Cambia de ventana en el FlexPendant
RobotWare - OS
573 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.203. TPShow - Cambia de ventana en el FlexPendant
Utilizacin
TPShow (FlexPendant Show) se utiliza para seleccionar desde RAPID una ventana del
FlexPendant.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TPShow.
Ejemplo 1
TPShow TP_LATEST;
La ltima ventana usada en el FlexPendant antes de la ventana actual del FlexPendant ser la
que se active tras la ejecucin de esta instruccin.
Argumentos
TPShow Window
Window
Tipo de dato: tpnum
La ventana TP_LATEST mostrar la ltima ventana usada en el FlexPendant antes de la
ventana actual del FlexPendant.
Datos predefinidos
CONST tpnum TP_LATEST := 2;
Ejecucin de programas
Se activa la ventana que se seleccione para el FlexPendant.
Sintaxis
TPShow
[Window':='] <expression (IN) of tpnum> ;'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin a travs del FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Nmero de ventana del FlexPendant tpnum - Nmero de ventana del FlexPendant
en la pgina 1211
1 Instrucciones
1.204. TPWrite - Escribe en el FlexPendant
RobotWare - OS
3HAC16581-5 Revisin: H 574


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.204. TPWrite - Escribe en el FlexPendant
Utilizacin
TPWrite (FlexPendant Write) se utiliza para escribir texto en el FlexPendant. Es posible
escribir el valor de determinados datos, adems de texto.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TPWrite.
Ejemplo 1
TPWrite "Execution started";
El texto Execution started se escribe en el FlexPendant.
Ejemplo 2
TPWrite "No of produced parts="\Num:=reg1;
Por ejemplo, si reg1 contiene el valor 5, se escribe el texto No of produced parts=5 en
el FlexPendant.
Argumentos
TPWrite String [\Num] | [\Bool] | [\Pos] | [\Orient] | [\Dnum]
String
Tipo de dato: string
La cadena de texto a escribir (con un mximo de 80 caracteres y 40 caracteres por fila).
[\Num]
Numeric
Tipo de dato: num
El dato cuyo valor numrico se desea escribir a continuacin de la cadena de texto.
[\Bool]
Boolean
Tipo de dato: bool
El dato cuyo valor lgico se desea escribir a continuacin de la cadena de texto.
[\Pos]
Position
Tipo de dato: pos
El dato cuya posicin se desea escribir a continuacin de la cadena de texto.
[\Orient]
Orientation
Tipo de dato: orient
El dato cuya orientacin se desea escribir a continuacin de la cadena de texto.
[\Dnum]
Numeric
Tipo de dato: dnum
El dato cuyo valor numrico se desea escribir a continuacin de la cadena de texto.
Contina en la pgina siguiente
1 Instrucciones
1.204. TPWrite - Escribe en el FlexPendant
RobotWare - OS
575 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
El texto escrito en el FlexPendant comienza siempre en una nueva lnea. Si la pantalla est
llena de texto (11 lneas), dicho texto se mueve previamente una lnea hacia arriba.
Si se usa uno de los argumentos \Num, \Dnum, \Bool,\Pos u \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:
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, \Dnum, \Bool, \Pos y \Orient son excluyentes entre s y por tanto
no pueden usarse simultneamente en la misma instruccin.
Sintaxis
TPWrite
[TPText:=] <expression (IN) of string>
[\Num:= <expression (IN) of num> ]
| [\Bool:= <expression (IN) of bool> ]
| [\Pos:= <expression (IN) of pos> ]
| [\Orient:= <expression (IN) of orient> ]
| [\Dnum:= <expression (IN) of dnum> ];
Informacin relacionada
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]"
\Dnum 0d4294967295 "4294967295"
Para obtener ms informacin sobre Consulte
Borrado y lectura a travs del FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 576


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.205. TriggC - Movimiento circular del robot con eventos
Utilizacin
TriggC (Trigg 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 8) mediante las instrucciones
TriggIO, TriggEquip, TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO y
hacer referencia posteriormente a estas definiciones en la instruccin TriggC.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggC.
Consulte tambin Ms ejemplos en la pgina 580.
Ejemplo 1
VAR triggdata gunon;
TriggIO gunon, 0 \Start \DOp:=gun, 1;
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.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin fija.
xx0500002267
Argumentos
TriggC [\Conc] CirPoint ToPoint [\ID] Speed [\T] Trigg_1 [\T2]
[\T3] [\T4] [\T5] [\T6] [\T7] [\T8] Zone [\Inpos] Tool
[\WObj] [ \Corr ]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento no se utiliza normalmente, pero puede utilizarse para evitar los paros no deseados,
causados por la sobrecarga de la CPU al utilizar puntos de paso. Esto resulta til cuando los
puntos programados estn muy cercanos entre s y se trabaja a velocidades elevadas. Este
argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con equipos

Contina en la pgina siguiente


1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
577 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
externos ni la sincronizacin entre los equipos externos y los movimientos del robot. 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.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Time
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 578


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T2 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T3 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T4 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T5 ]
Trigg 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,
TriggInt, TriggCheck, TriggSpeed o TriggRampAO..
[ \T6 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T7 ]
Trigg 7
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
579 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T8 ]
Trigg 8
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
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 ]
In position
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 ]
Work Object
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 ]
Correction
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 580


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggC.
Ejemplo 1
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 s antes del punto p2 o p4 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.
El valor de la variable de sistema ERRNO puede cambiarse a ERR_NORUNUNIT si no hay
ningn contacto con la unidad de E/S al introducir la instruccin y los datos triggdata
utilizados dependen de una unidad de E/S en funcionamiento, es decir, que se utiliza una seal
en los datos triggdata.
Estos errores pueden ser gestionados en el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
581 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Limitaciones generales acorde con la instruccin MoveC.
Si el punto de inicio actual se desva del punto 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.
AVISO!
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 := ] < expression (IN) of robtarget > ,
[ ToPoint := ] < expression (IN) of robtarget > ,
[ \ ID := < expression (IN) of identno >] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ] ,
[Trigg_1 := ] < variable (VAR) of triggdata >
[ \ T2 := < variable (VAR) of triggdata > ]
[ \ T3 := < variable (VAR) of triggdata > ]
[ \ T4 := < variable (VAR) of triggdata > ]
[ \ T5 := < variable (VAR) of triggdata > ]
[ \ T6 := < variable (VAR) of triggdata > ]
[ \ T7 := < variable (VAR) of triggdata > ]
[ \ T8 := < variable (VAR) of triggdata > ] ,
[Zone := ] < expression (IN) of zonedata >
[ \ Inpos := < expression (IN) of stoppointdata > ],
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ]
[ \ Corr ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento lineal con disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
Movimiento de ejes con disparadores TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Movimiento del robot en crculo MoveC - Mueve el robot en crculo en la
pgina 237
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.205. TriggC - Movimiento circular del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 582


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de disparadores TriggIO - Define un evento de E/S de posicin
o tiempo fijos cerca de un punto de paro en la
pgina 598
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
TriggInt - Define una interrupcin dependiente
de una posicin en la pgina 594
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
TriggRampAO - Define un evento AO de
rampa de posicin fija en la trayectoria en la
pgina 623
TriggSpeed - Define la velocidad del TCP en
proporcin a una salida analgica con un
evento de escala fija de posicin-tiempo en la
pgina 629
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Movimiento circular Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
RobotWare - OS
583 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
Utilizacin
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 tendr lugar ninguna
accin especfica. Sin embargo, 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggCheckIO.
Consulte tambin Ms ejemplos en la pgina 586.
Ejemplo 1
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, la ejecucin normal del
programa contina. Si no est activada, se ejecuta la rutina de interrupcin trap1.
En la figura se muestra un ejemplo de comprobacin de E/S basado en una posicin fija.
xx0500002254
Contina en la pgina siguiente
1 Instrucciones
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
RobotWare - OS
3HAC16581-5 Revisin: H 584


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
TriggCheckIO TriggData Distance [\Start] | [\Time] Signal Relation
CheckValue |CheckDvalue [\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 s) 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). Si la seal es una seal digital, debe ser un valor entero.
Si la seal es una seal digital de grupo, el valor permitido depende del nmero de seales del
grupo. El valor mximo que puede usarse en el argumento CheckValue es de 8388608, que
es el valor que una seal digital de grupo de 23 bits puede tener como valor mximo (consulte
los rangos vlidos para num).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
RobotWare - OS
585 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
CheckDvalue
Tipo de dato: dnum
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). Si la seal es una seal digital, debe ser un valor entero.
Si la seal es una seal digital de grupo, el valor permitido depende del nmero de seales del
grupo. El valor mximo de los bits de seales que puede tener una seal digital de grupo es
de 32. Con una variable dnum es posible cubrir los valores del 0 al 4294967295, que
constituyen el rango que puede tener una seal digital de 32 bits.
[ \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 en cuanto a las definiciones de TriggCheckIO:
En la tabla se describe la distancia especificada en el argumento Distance:
La figura muestra la comprobacin de E/S en una posicin fija con una trayectoria de esquina.
xx0500002256
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 (TriggL...).
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
RobotWare - OS
3HAC16581-5 Revisin: H 586


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggCheckIO.
Ejemplo 1
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
! log some information
...
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 se
desplaza hasta p1 y contina. Si no est abierta, 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.206. TriggCheckIO - Define una comprobacin de E/S en una posicin fija
RobotWare - OS
587 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 s (valores tpicos a una velocidad de 500 mm/s: 150 ms
en el caso del IRB2400 y de 250 ms 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 ms. Los valores tpicos en cuanto a la repeticin de las pruebas de entradas digitales
es de +/- 2 ms.
Sintaxis
TriggCheckIO
[ TriggData := ] < variable (VAR) of triggdata> ,
[ Distance := ] < expression (IN) of num>
[ \ Start ] | [ \ Time ] ,
[ Signal := ] < variable (VAR) of anytype> ,
[ Relation := ] < expression (IN) of opnum> ,
[ CheckValue := ] < expression (IN) of num>
| [ CheckDvalue := ] < expression (IN) of dnum>
[ \ StopMove] ,
[ Interrupt := ] < variable(VAR) of intnum> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de eventos de E/S basados en la
posicin y el tiempo
TriggIO - Define un evento de E/S de
posicin o tiempo fijos cerca de un punto de
paro en la pgina 598
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
Definicin de interrupciones basadas en la
posicin
TriggInt - Define una interrupcin
dependiente de una posicin en la pgina
594
Almacenamiento de datos de disparo triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Definicin de operadores de comparacin opnum - Operador de comparacin en la
pgina 1145 I
Continuacin
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 588


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la
trayectoria
Utilizacin
TriggEquip (Trigg Equipment) 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.
Siempre debe usarse TriggIO (no TriggEquip) si se necesita una buena exactitud de los
ajustes de E/S cerca de un punto de paro.
Los datos definidos se utilizan para la implementacin o instrucciones TriggL, TriggC o
TriggJ posteriores.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggEquip.
Consulte tambin Ms ejemplos en la pgina 591.
Ejemplo 1
VAR triggdata gunon;
...
TriggEquip gunon, 10, 0.1 \DOp:=gun, 1;
TriggL p1, v500, gunon, z50, gun1;
La herramienta gun1 empieza a abrirse cuando su TCP se encuentra 0,1 s antes del punto
ficticio p2 (10 mm antes del punto p1). La pistola est totalmente abierta cuando el TCP
alcanza el punto p2.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin y un tiempo fijos.
xx0500002260
Argumentos
TriggEquip TriggData Distance [\Start] EquipLag [\DOp] | [\GOp]|
[\AOp] | [\ProcID] SetValue | SetDvalue [\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.
Contina en la pgina siguiente
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
589 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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
Equipment Lag
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 alcance fsicamente la
distancia especificada respecto del punto de inicio o final del movimiento.
Un valor de argumento negativo 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.
En la figura se muestra el uso del argumento EquipLag.
xx0500002262
[ \DOp ]
Digital Output
Tipo de dato: signaldo
El nombre de la seal cuando es necesario cambiar una seal digital de salida.
[ \GOp ]
Group Output
Tipo de dato: signalgo
El nombre de la seal, cuando es necesario cambiar un grupo de seales digitales de salida.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 590


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \AOp ]
Analog Output
Tipo de dato: signalao
El nombre de la seal cuando es necesario cambiar una seal analgica de salida.
[ \ProcID ]
Process Identity
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 (dentro del rango permitido para la seal actual). Si la seal es
una seal digital, debe ser un valor entero. Si la seal es una seal digital de grupo, el valor
permitido depende del nmero de seales del grupo. El valor mximo que puede usarse en el
argumento SetValue es de 8388608, que es el valor que una seal digital de grupo de 23 bits
puede tener como valor mximo (consulte los rangos vlidos para num).
SetDvalue
Tipo de dato: dnum
El valor deseado para la seal (dentro del rango permitido para la seal actual). Si la seal es
una seal digital, debe ser un valor entero. Si la seal es una seal digital de grupo, el valor
permitido depende del nmero de seales del grupo. El valor mximo de los bits de seales
que puede tener una seal digital de grupo es de 32. Con una variable dnum es posible cubrir
los valores del 0 al 4294967295, que constituyen el rango que puede tener una seal digital
de 32 bits.
[ \Inhib ]
Inhibit
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 momento del establecimiento de la seal analgica, la seal especificada
(DOp, GOp o AOp) se 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 en cuanto a las definiciones de TriggEquip:
En la tabla se describe la distancia especificada en el argumento Distance:
Movimiento lineal La distancia en lnea recta
Movimiento circular La longitud del arco del crculo
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
591 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La figura muestra la E/S en una posicin y un tiempo fijos con una trayectoria de esquina.
xx0500002263
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 (TriggL...). Cuando
se usa el argumento EquipLag con un tiempo (retardo) negativo, la seal de E/S puede
activarse despus del punto final.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggEquip.
Ejemplo 1
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 s.
Ejemplo 2
...
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.
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 592


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los eventos de E/S basados en una distancia 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 positivo
EquipLag < 60 ms, equivalente al retardo del servo del robot (sin cambiar el
parmetro de sistema Event Preset Time). El retardo puede variar de un tipo de
robot a otro. Por ejemplo, es menor en el caso del IRB140.
La exactitud especificada a continuacin es vlida para un parmetro EquipLag
positivo < valor configurado en Event Preset Time (parmetro de sistema).
La exactitud especificada a continuacin es vlida para un parmetro EquipLag
positivo > valor configurado en Event Preset Time (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 valores absolutos tpicos en cuanto a la exactitud al activar salidas digitales es de +/- 5
ms.
Los valores absolutos tpicos en cuanto a la repeticin al activar salidas digitales es de +/- 2
ms.
Sintaxis
TriggEquip
[ TriggData := ] < variable (VAR) of triggdata> ,
[ Distance := ] < expression (IN) of num>
[ \ Start ] ,
[ EquipLag := ] < expression (IN) of num>
[ \ DOp := < variable (VAR) of signaldo> ]
| [ \ GOp := < variable (VAR) of signalgo> ]
| [ \ AOp := < variable (VAR) of signalao> ]
| [ \ ProcID := < expression (IN) of num> ] ,
[ SetValue := ] < expression (IN) of num>
| [ SetDvalue := ] < expression (IN) of dnum>
[ \ Inhib := < persistent (PERS) of bool> ] ,
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.207. TriggEquip - Define un evento de E/S basado en la posicin y el tiempo en la trayectoria
RobotWare - OS
593 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de otros disparos TriggIO - Define un evento de E/S de posicin
o tiempo fijos cerca de un punto de paro en la
pgina 598
TriggInt - Define una interrupcin dependiente
de una posicin en la pgina 594
Definicin de una comprobacin de E/S en
una posicin fija
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
Almacenamiento de datos de disparo triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Establecimiento de E/S SetDO - Cambia el valor de una seal digital de
salida en la pgina 448
SetGO - Cambia el valor de un grupo de
seales digitales de salida en la pgina 450
SetAO - Cambia el valor de una seal
analgica de salida en la pgina 439
Configuracin de Event preset time Manual de referencia tcnica - Parmetros del
sistema, seccin Motion
Continuacin
1 Instrucciones
1.208. TriggInt - Define una interrupcin dependiente de una posicin
RobotWare - OS
3HAC16581-5 Revisin: H 594


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.208. TriggInt - Define una interrupcin dependiente de una posicin
Utilizacin
TriggInt se utiliza para definir las condiciones y acciones de ejecucin de una rutina de
interrupcin en una posicin especfica 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggInt.
Ejemplo 1
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;
La rutina de interrupcin trap1 se ejecuta cuando el TCP est en una posicin situada 5 mm
antes del punto p1 o p2 respectivamente.
En la figura se muestra un ejemplo de interrupcin relacionada con una posicin.
xx0500002251
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.
Contina en la pgina siguiente
1 Instrucciones
1.208. TriggInt - Define una interrupcin dependiente de una posicin
RobotWare - OS
595 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 s) 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 en cuanto a las definiciones de TriggInt:
En la tabla se describe la distancia especificada en el argumento Distance:
La figura muestra una interrupcin relacionada con una posicin de una trayectoria de
esquina.
xx0500002253
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.208. TriggInt - Define una interrupcin dependiente de una posicin
RobotWare - OS
3HAC16581-5 Revisin: H 596


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La interrupcin relacionada con 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 (TriggL...).
Se considera que la interrupcin es una interrupcin segura. Una interrupcin segura no
puede ponerse en reposo con la instruccin ISleep. El evento de interrupcin segura se
almacena en la cola en caso de paro del programa y ejecucin paso a paso y cuando se inicia
de nuevo en el modo continuo, la interrupcin se ejecuta. El nico momento en el que una
interrupcin segura se desecha es cuando la cola de interrupciones est llena. En este caso se
genera un error. La interrupcin no sobrevive al restablecimiento del programa, por ejemplo
el traslado del PP a main.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggInt.
Ejemplo 1
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
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.208. TriggInt - Define una interrupcin dependiente de una posicin
RobotWare - OS
597 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 s (valores tpicos a una velocidad de 500 mm/s: 150 ms en el caso del
IRB2400 y de 250 ms 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 ms. Los valores tpicos en cuanto a la repeticin la generacin de interrupciones son
de +/- 2 ms. Normalmente, existe un retardo de 2 a 30 ms entre la generacin de
interrupciones y la respuesta, en funcin del tipo de movimiento que se realiza en el momento
de la interrupcin. (Consulte el Manual de referencia de RAPID - Descripcin general de
RAPID, seccin Caractersticas bsicas - 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.
Sintaxis
TriggInt
[ TriggData := ] < variable (VAR) of triggdata> ,
[ Distance := ] < expression (IN) of num>
[ \ Start ] | [ \ Time ] ,
[ Interrupt := ] < variable (VAR) ofintnum> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de E/S de posicin fija TriggIO - Define un evento de E/S de posicin
o tiempo fijos cerca de un punto de paro en la
pgina 598
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
Definicin de una comprobacin de E/S en
una posicin fija
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
Almacenamiento de datos de disparo triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Continuacin
1 Instrucciones
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 598


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un
punto de paro
Utilizacin
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.
Siempre debe usarse TriggIO (no TriggEquip) si se necesita una buena exactitud de los
ajustes de E/S cerca de un punto de paro.
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggIO.
Consulte tambin Ms ejemplos en la pgina 601.
Ejemplo 1
VAR triggdata gunon;
...
TriggIO gunon, 0.2\Time\DOp:=gun, 1;
TriggL p1, v500, gunon, fine, gun1;
La seal digital de salida gun cambia al valor 1 cuando el TCP se encuentra a 0,2 s antes del
punto p1.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin fija.
xx0500002247
Argumentos
TriggIO TriggData Distance [\Start] | [\Time] [\DOp] | [\GOp]|
[\AOp] | [\ProcID] SetValue | SetDvalue [\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.
Contina en la pgina siguiente
1 Instrucciones
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro
RobotWare - OS
599 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 las secciones tituladas Ejecucin de programas en la pgina 600 y Limitaciones en
la pgina 601 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 s) antes
de que el robot alcance el punto final de la instruccin. Consulte la seccin Limitaciones para
obtener ms detalles.
[ \DOp ]
Digital Output
Tipo de dato: signaldo
El nombre de la seal cuando es necesario cambiar una seal digital de salida.
[ \GOp ]
Group Output
Tipo de dato: signalgo
El nombre de la seal, cuando es necesario cambiar un grupo de seales digitales de salida.
[ \AOp ]
Analog Output
Tipo de dato: signalao
El nombre de la seal cuando es necesario cambiar una seal analgica de salida.
[ \ProcID ]
Process Identity
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.)
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 600


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
SetValue
Tipo de dato: num
El valor deseado para la seal (dentro del rango permitido para la seal actual). Si la seal es
una seal digital, debe ser un valor entero. Si la seal es una seal digital de grupo, el valor
permitido depende del nmero de seales del grupo. El valor mximo que puede usarse en el
argumento SetValue es de 8388608, que es el valor que una seal digital de grupo de 23 bits
puede tener como valor mximo (consulte los rangos vlidos para num).
SetDvalue
Tipo de dato: d num
El valor deseado para la seal (dentro del rango permitido para la seal actual). Si la seal es
una seal digital, debe ser un valor entero. Si la seal es una seal digital de grupo, el valor
permitido depende del nmero de seales del grupo. El valor mximo de los bits de seales
que puede tener una seal digital de grupo es de 32. Con una variable dnum es posible cubrir
los valores del 0 al 4294967295, que constituyen el rango que puede tener una seal digital
de 32 bits.
[ \DODelay ]
Digital Output Delay
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.
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 en el argumento TriggData.
A continuacin, cuando se ejecuta una de las instrucciones TriggL, TriggC o TriggJ, se
aplica lo siguiente en cuanto a las definiciones de TriggIO:
En la tabla siguiente se describe la distancia especificada en el argumento Distance:
La figura muestra la E/S en una posicin fija con una trayectoria de esquina.
xx0500002248
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro
RobotWare - OS
601 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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...).
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggIO.
Ejemplo 1
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 (TCP)
atraviesa un punto situado 1 mm despus del punto de inicio p1.
Ejemplo 2
...
TriggL p3, v500, glueflow, z50, tool1;
La seal analgica de salida glue cambia de nuevo al valor 5,3 cuando el punto de (TCP)
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 con el parmetro distance=0
y que utilizan puntos de paro retardarn el disparo hasta que el robot haya alcanzado el punto
con una exactitud de +/-24 ms.
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 s
(valores tpicos a una velocidad de 500 mm/s: 150 ms en el caso del IRB2400 y de 250 ms 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
ms. Los valores absolutos tpicos en cuanto a la repeticin al activar salidas digitales es de
+/- 2 ms.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.209. TriggIO - Define un evento de E/S de posicin o tiempo fijos cerca de un punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 602


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TriggIO
[ TriggData := ] < variable (VAR) of triggdata> ,
[ Distance := ] < expression (IN) of num>
[ \ Start ] | [ \ Time ]
[ \ DOp := < variable (VAR) of signaldo> ]
| [ \ GOp := < variable (VAR) of signalgo> ]
| [ \ AOp := < variable (VAR) of signalao> ]
| [ \ ProcID := < expression (IN) of num> ] ,
[ SetValue := ] < expression (IN) of num>
| [ SetDvalue := ] < expression (IN) of dnum>
[ \ DODelay := < expression (IN) of num> ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de eventos de E/S basados en la
posicin y el tiempo
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
Definicin de interrupciones basadas en la
posicin
TriggInt - Define una interrupcin dependiente
de una posicin en la pgina 594
Almacenamiento de datos de disparo triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Definicin de una comprobacin de E/S en
una posicin fija
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
Establecimiento de E/S SetDO - Cambia el valor de una seal digital
de salida en la pgina 448
SetGO - Cambia el valor de un grupo de
seales digitales de salida en la pgina 450
SetAO - Cambia el valor de una seal
analgica de salida en la pgina 439
Continuacin
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
603 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
Utilizacin
TriggJ (TriggJoint) se utiliza para establecer seales de salida y/o ejecutar rutinas de
interrupcin en posiciones fijas aproximadas, 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 8) mediante las instrucciones
TriggIO, TriggEquip, TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO y
hacer referencia posteriormente a estas definiciones en la instruccin TriggJ.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggJ.
Consulte tambin Ms ejemplos en la pgina 607.
Ejemplo 1
VAR triggdata gunon;
...
TriggIO gunon, 0 \Start \DOp:=gun, 1;
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.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin fija.
xx0500002272
Argumentos
TriggJ [\Conc] ToPoint [\ID] Speed [\T] Trigg_1 [ \T2 ] [ \T3 ]
[\T4] [\T5] [\T6] [\T7] [\T8] Zone [\Inpos] Tool [\WObj]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento puede usarse para evitar los paros no deseados, causados por la sobrecarga de la
CPU, cuando se utilizan puntos de paso. Esto resulta til cuando los puntos programados
estn muy cercanos entre s y se trabaja a velocidades elevadas.

Contina en la pgina siguiente


1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
3HAC16581-5 Revisin: H 604


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Este argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con
equipos externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
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 se ejecuta una vez que el robot ha
alcanzado el punto de paro especificado, o 100 ms antes de la zona especificada.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Time
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
605 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T2 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T3 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T4 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T5 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T6 ]
Trigg 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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
[ \T7 ]
Trigg 7
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
3HAC16581-5 Revisin: H 606


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T8 ]
Trigg 8
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,
TriggInt, TriggCheckIO, TriggSpeed o TriggRampAO..
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 ]
In position
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 ]
Work Object
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 de ejes 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
607 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggJ.
Ejemplo 1
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 una
posicin 0,1 s antes del punto de paro p1 o p2, segn corresponda.
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.
El valor de la variable de sistema ERRNO puede cambiarse a ERR_NORUNUNIT si no hay
ningn contacto con la unidad de E/S al introducir la instruccin y los datos triggdata
utilizados dependen de una unidad de E/S en funcionamiento, es decir, que se utiliza una seal
en los datos triggdata.
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
3HAC16581-5 Revisin: H 608


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TriggJ
[ \ Conc ,]
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >],
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ],
[Trigg_1 := ] < variable (VAR) of triggdata >
[ \ T2 := < variable (VAR) of triggdata > ]
[ \ T3 := < variable (VAR) of triggdata > ]
[ \ T4 := < variable (VAR) of triggdata > ]
[ \ T5 := < variable (VAR) of triggdata > ]
[ \ T6 := < variable (VAR) of triggdata > ]
[ \ T7 := < variable (VAR) of triggdata > ]
[ \ T8 := < variable (VAR) of triggdata > ] ,
[Zone := ] < expression (IN) of zonedata >
[ '\'Inpos ':='< expression (IN) of stoppointdata > ],'
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj :=< persistent (PERS) of wobjdata > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento lineal con disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
Movimiento circular con disparadores TriggC - Movimiento circular del robot con
eventos en la pgina 576
Definicin de disparadores TriggIO - Define un evento de E/S de posicin
o tiempo fijos cerca de un punto de paro en la
pgina 598
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
TriggRampAO - Define un evento AO de
rampa de posicin fija en la trayectoria en la
pgina 623
TriggInt - Define una interrupcin
dependiente de una posicin en la pgina
594
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
Movimiento del robot mediante un
movimiento de ejes
MoveJ - Mueve el robot mediante un
movimiento de ejes en la pgina 255
Movimiento de ejes Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.210. TriggJ - Movimientos de ejes del robot a partir de eventos
RobotWare - OS
609 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 610


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.211. TriggL - Movimiento lineal del robot con eventos
Utilizacin
TriggL (Trigg Linear) 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 8) mediante las instrucciones
TriggIO, TriggEquip, TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO. A
continuacin, se hace referencia a estas definiciones en la instruccin TriggL.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggL.
Consulte tambin Ms ejemplos en la pgina 614.
Ejemplo 1
VAR triggdata gunon;
TriggIO gunon, 0 \Start \DOp:=gun, 1;
MoveJ 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.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin fija.
xx0500002291
Argumentos
TriggL [\Conc] ToPoint [\ID] Speed [\T] Trigg_1 [\T2] [\T3] [\T4]
[\T5] [\T6] [\T7] [\T8] Zone [\Inpos] Tool [\WObj][\Corr]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento puede usarse para evitar los paros no deseados, causados por la sobrecarga de la
CPU, cuando se utilizan puntos de paso. Esto resulta til cuando los puntos programados
estn muy cercanos entre s y se trabaja a velocidades elevadas.

Contina en la pgina siguiente


1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
611 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Este argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con
equipos externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Time
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,
TriggInt, TriggSpeed, TriggCheckIO oTriggRampAO.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 612


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T2 ]
Trigg 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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
[ \T3 ]
Trigg 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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
[ \T4 ]
Trigg 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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
[ \T5 ]
Trigg 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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
[ \T6 ]
Trigg 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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
[ \T7 ]
Trigg 7
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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
613 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \T8 ]
Trigg 8
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,
TriggInt, TriggSpeed, TriggCheckIO o TriggRampAO..
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 ]
In position
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 ]
Work Object
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 ]
Correction
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 614


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggL.
Ejemplo 1
V AR 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 s 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.
El valor de la variable de sistema ERRNO puede cambiarse a ERR_NORUNUNIT si no hay
ningn contacto con la unidad de E/S al introducir la instruccin y los datos triggdata
utilizados dependen de una unidad de E/S en funcionamiento, es decir, que se utiliza una seal
en los datos triggdata.
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
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
615 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Sintaxis
TriggL
[\ Conc ,]
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ],
[Trigg_1 := ] < variable (VAR) of triggdata >
[ \ T2 := < variable (VAR) of triggdata > ]
[ \ T3 := < variable (VAR) of triggdata > ]
[ \ T4 := < variable (VAR) of triggdata > ]
[ \ T5 := < variable (VAR) of triggdata > ]
[ \ T6 := < variable (VAR) of triggdata > ]
[ \ T7 := < variable (VAR) of triggdata > ]
[ \ T8 := < variable (VAR) of triggdata > ] ,
[Zone := ] < expression (IN) of zonedata >
[ \ Inpos := < expression (IN) of stoppointdata > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ]
[\ Corr ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento circular con disparadores TriggC - Movimiento circular del robot con
eventos en la pgina 576
Movimiento de ejes con disparadores TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de disparadores TriggIO - Define un evento de E/S de
posicin o tiempo fijos cerca de un punto de
paro en la pgina 598
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
TriggInt - Define una interrupcin
dependiente de una posicin en la pgina
594
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
TriggRampAO - Define un evento AO de
rampa de posicin fija en la trayectoria en la
pgina 623
TriggSpeed - Define la velocidad del TCP en
proporcin a una salida analgica con un
evento de escala fija de posicin-tiempo en la
pgina 629
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.211. TriggL - Movimiento lineal del robot con eventos
RobotWare - OS
3HAC16581-5 Revisin: H 616


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Escritura en una entrada de correccin CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Movimiento lineal Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de datos de zona zonedata - Datos de zonas en la pgina 1231
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Definicin de herramientas tooldata - Datos de herramientas en la
pgina 1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
617 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
Utilizacin
TriggLIOs (disparar E/S lineal) se utiliza para establecer seales de salida al tiempo que se
mueve el robot siguiendo un movimiento lineal.
La instruccin TriggLIOs est optimizada para proporcionar una buena exactitud cuando se
utilizan movimientos con zonas (comprese con TriggEquip/TriggL).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggLIOs.
Consulte tambin Ms ejemplos en la pgina 620.
Ejemplo 1
VAR triggios gunon{1};
gunon{1}.used:=TRUE;
gunon{1}.distance:=3;
gunon{1}.start:=TRUE;
gunon{1}.signalname:="gun";
gunon{1}.equiplag:=0;
gunon{1}.setvalue:=1;
MoveJ p1, v500, z50, gun1;
TriggLIOs p2, v500, \TriggData1:=gunon, z50, gun1;
MoveL p3, v500, z50, gun1;
La seal gun se activa cuando el TCP est 3 mm despus del punto p1.
En la figura se muestra un ejemplo de evento de E/S basado en una posicin fija.
en0800000157
Argumentos
TriggLIOs [\Conc] ToPoint [\ID] Speed [\T] [\TriggData1]
[\TriggData2] Zone [\Inpos] Tool [\WObj] [\Corr]
[ \Conc ]
Concurrent
Tipo de dato:switch
Distintas instrucciones consecutivas se ejecutan mientras el robot est en movimiento. Este
argumento puede usarse para evitar los paros no deseados, causados por la sobrecarga de la
CPU, cuando se utilizan puntos de paso. Esto resulta til cuando los puntos programados
estn muy cercanos entre s y se trabaja a velocidades elevadas.
Contina en la pgina siguiente
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 618


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Este argumento tambin resulta til si, por ejemplo, no se requiere la comunicacin con
equipos externos ni la sincronizacin entre los equipos externos y los movimientos del robot.
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.
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.
Este argumento no puede usarse en los movimientos sincronizados coordinados en un sistema
MultiMove.
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).
[ \ID ]
Synchronization id
Tipo de dato: identno
Este argumento debe utilizarse en los sistemas MultiMove si el movimiento est sincronizado
y coordinado y no est permitido en ningn otro caso.
El nmero de ID especificado debe ser el mismo en todas las tareas de programa que cooperan
entre s. El nmero de ID constituye una garanta de que los movimientos no se mezclen en
tiempo de ejecucin.
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 ]
Time
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.
[\TriggData1]
Tipo de dato: array of triggios
Una variable (matriz) que hace referencia a condiciones de disparo y actividad de disparo. Al
utilizar este argumento, es posible establecer seales analgicas de salida, seales digitales
de salida y seales digitales de salida de grupo. Si utiliza una seal digital de salida de grupo,
existe una limitacin de 23 seales por grupo.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
619 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\TriggData2]
Tipo de dato: array of triggstrgo
Una variable (matriz) que hace referencia a condiciones de disparo y actividad de disparo. Al
utilizar este argumento, es posible establecer seales digitales de salida de grupo compuestas
por 32 seales en el grupo y con un valor establecido mximo de 4.294.967.295. Slo es
posible utilizar seales digitales de salida de grupo.
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 ]
In position
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 ]
Work Object
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 ]
Correction
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.
La instruccin TriggLIOs permite configurar de 1 a 50 actividades de disparo diferentes a
partir de seales de E/S a lo largo de una trayectoria de A a B. Las seales que pueden usarse
son seales digitales de salida, seales digitales de salida de grupo y seales analgicas de
salida. Las condiciones de disparo se cumplen a cierta distancia antes del punto final de la
instruccin o una determinada distancia tras el punto de inicio de la instruccin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 620


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La instruccin requiere el uso del argumento TriggData1 o TriggData2, o ambos. Sin
embargo, el uso de cualquiera de los disparos. Para inhibir el uso de un disparo, el
componente used puede cambiarse a FALSE en el elemento de matriz de los tipos de datos
triggios/triggstrgo. Si no se utiliza ningn elemento de matriz, la instruccin
TriggLIOs se comporta como una instruccin MoveL y no se realiza ninguna actividad de
E/S.
Si se ejecuta el programa paso a paso hacia delante, las actividades de E/S se ejecutan.
Durante la ejecucin paso a paso hacia atrs, no se realiza ninguna actividad de E/S.
Si se define el componente EquipLag en TriggData1 o el argumento TriggData2 con un
tiempo (retardo) negativo, la seal de E/S puede establecerse a continuacin del punto de
destino (ToPoint).
Si utiliza el argumento TriggData2, es posible utilizar valores hasta el 4.294.967.295, que
es el valor mximo que puede tener un grupo de seales digitales (el sistema admite como
mximo 32 seales en una seal de grupo).
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggLIOs.
Ejemplo 1
VAR triggios mytriggios{3}:= [[TRUE, 3, TRUE, 0, "go1", 55, 0],
[TRUE, 15, TRUE, 0, "ao1", 10, 0], [TRUE, 3, FALSE, 0, "do1",
1, 0]];
...
MoveL p1, v500, z50, gun1;
TriggLIOs p2, v500, \TriggData1:=mytriggios, z50, gun1;
MoveL p3, v500, z50, gun1;
La seal digital de salida de grupo go1 recibe el valor 55 a una distancia de 3 mm de p1. La
seal analgica recibe el valor 10 a una distancia de 15 mm de p1. La seal digital de salida
do1 recibir el valor 3 mm a partir de ToPoint p2.
Ejemplo 2
VAR triggios mytriggios{3}:= [[TRUE, 3, TRUE, 0, "go1", 55, 0],
[TRUE, 15, TRUE, 0, "ao1", 10, 0], [TRUE, 3, FALSE, 0, "do1",
1, 0]];
VAR triggstrgo mytriggstrgo{3}:= [[TRUE, 3, TRUE, 0, "go2", "1",
0], [TRUE, 15, TRUE, 0, "go2", "800000", 0], [TRUE, 4, FALSE,
0, "go2", "4294967295", 0]];
...
MoveL p1, v500, z50, gun1;
TriggLIOs p2, v500, \TriggData1:=mytriggios \TriggData2:=
mytriggstrgo, z50, gun1;
MoveL p3, v500, z50, gun1;
La seal digital de salida de grupo go1 recibe el valor 55 a una distancia de 3 mm de p1. La
seal analgica de salida ao1 recibe el valor 10 a una distancia de 15 mm de p1. La seal
digital de salida do1 recibir el valor 3 mm a partir de ToPoint p2. Estos eventos de posicin
son definidos por la variable mytriggios. La variable mytriggstrgo establece que se
produzcan eventos de posicin a una distancia de entre 3 y 15 mm de p1. La seal go2 recibe
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
621 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
primero el valor 1 y luego el valor 800.000. La seal recibe el valor 4.294.967.295 a una
distancia de 4 mm de ToPoint p2. Se trata del valor mximo para una seal digital de salida
de 32 bits.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad de E/S.
Limitaciones
Si el punto de inicio actual se desva del habitual, de forma que la longitud de
posicionamiento total de la instruccin TriggLIOs es ms corta de lo habitual (es decir, al
principio de TriggLIOs 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.
La limitacin en el nmero de disparos de la instruccin TriggLIOs es de 50 para cada
instruccin programada. Sin embargo, si se supone que estos disparos deben producirse a
corta distancia, el sistema no ser capaz de gestionarlo. Esto depende de cmo se realice el
movimiento, la velocidad de TCP utilizada y la cercana programada entre los disparos. Estas
limitaciones existen pero resulta difcil predecir cundo se producirn estos problemas.
Sintaxis
TriggL IOs
[\ Conc ,]
[ ToPoint := ] < expression (IN) of robtarget >
[ \ ID := < expression (IN) of identno >] ,
[ Speed := ] < expression (IN) of speeddata >
[ \ T := < expression (IN) of num > ],
[ \ TriggData1 := ] < array {*} (VAR) of triggios >
[ \ TriggData2 := ] < array {*} (VAR) of triggstrgo >
[Zone := ] < expression (IN) of zonedata >
[ \ Inpos := < expression (IN) of stoppointdata > ] ,
[ Tool := ] < persistent (PERS) of tooldata >
[ \ WObj := < persistent (PERS) of wobjdata > ]
[\ Corr ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Almacenamiento de condiciones de disparo y
actividad de disparo
triggios - Positioning events, trigg en la
pgina 1215
Almacenamiento de condiciones de disparo y
actividad de disparos de una seal digital de
grupo compuesta por 32 seales
triggstrgo - Positioning events, trigg en la
pgina 1218
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.212. TriggLIOs - Movimientos lineales del robot con eventos de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 622


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Movimiento lineal Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
623 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la
trayectoria
Utilizacin
TriggRampAO(Trigg Ramp Analog Output) se utiliza para definir condiciones y acciones
para la aplicacin de una rampa ascendente o descendente a un valor de 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. Aparte de estas instrucciones, tambin es posible usar TriggRampAO en
las instrucciones CapL o CapC.
EL tipo de acciones disparo conectado a la misma instruccin TriggL/C/J puede ser
TriggRampAO o cualquiera de las instrucciones TriggIO, TriggEquip, TriggSpeed,
TriggInt o TriggCheckIO. Se permite cualquier tipo de combinacin, si bien slo se
permite una nica accin TriggSpeed con la misma seal dentro de la misma instruccin
TriggL/C/J.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggRampAO.
Consulte tambin Ms ejemplos en la pgina 627.
Ejemplo 1
VAR triggdata ramp_up;
...
TriggRampAO ramp_up, 0 \Start, 0.1, aolaser1, 8, 15;
MoveL p1, v200, z10, gun1;
TriggL p2, v200, ramp_up, z10, gun1;
La seal analgica aolaser1 inicia una rampa ascendente de su valor lgico desde el valor
actual hasta el nuevo valor 8, cuando el TCP de la herramienta gun1 se encuentra 0,1 s antes
del centro de la trayectoria de esquina en p1. La totalidad de la rampa ascendente se completa
mientras el robot se mueve 15 mm.
Ejemplo 2
VAR triggdata ramp_down;
...
TriggRampAO ramp_down, 15, 0.1, aolaser1, 2, 10;
MoveL p3, v200, z10, gun1;
TriggL p4, v200, ramp_down, z10, gun1;
La seal analgica aolaser1 inicia una rampa descendente de su valor lgico desde el valor
actual hasta el nuevo valor 2, cuando el TCP de la herramienta gun1 se encuentra 15 mm y
0,1 s antes del centro de la trayectoria de esquina en p4. La totalidad de la rampa descendente
se completa mientras el robot se mueve 10 mm.
Contina en la pgina siguiente
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 624


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
TriggRampAO TriggData Distance [\Start] EquipLag AOutput SetValue
RampLength [\Time]
xx0600003433
TriggData
Tipo de dato: triggdata
Una variable para almacenar el triggdata devuelto por la instruccin. Estos datos
triggdata pueden usarse en las instrucciones TriggL, TriggC , TriggJ, CapL o CapC
posteriores.
Distance
Tipo de dato: num
Define la distancia desde el centro de la trayectoria de esquina en la que debe iniciarse la
rampa de la salida analgica.
Se especifica como la distancia en mm (valor positivo) desde el punto final (ToPoint) 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 est relacionada con el punto de
inicio del movimiento (ToPoint precedente) en lugar del punto final.
D Parmetro Distance
RL Parmetro RampLength
CV Valor actual de la seal analgica
SV Parmetro SetValue para el valor de la seal analgica
P1 ToPoint para la instruccin de movimiento precedente
P2 ToPoint para la instruccin TrigL/C/J actual
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
625 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
EquipLag
Equipment Lag
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 de argumento positivo significa que el principio de la rampa de la seal AO
es realizado por el sistema de robot en un momento especificado antes de que el TCP alcance
fsicamente el punto de la distancia especificada, respecto del punto inicial o final del
movimiento.
Un valor de argumento negativo significa que el inicio de la rampa de la seal AO es realizado
por el sistema de robot en un momento determinado. A continuacin, el TCP ha sobrepasado
el punto de distancia especificado en relacin con el punto inicial o final del movimiento.
En la figura se muestra el uso del argumento EquipLag.
xx0500002262
AOutput
Analog Output
Tipo de dato: signalao
El nombre de la seal de salida analgica.
SetValue
Tipo de dato: num
El valor hasta el cual debe aumentar o descender en rampa la seal analgica de salida (debe
estar dentro del valor de rango lgico permitido para la seal). La rampa comienza con el
valor actual de la seal analgica de salida.
RampLength
Tipo de dato: num
La longitud de la rampa en mm a lo largo de la trayectoria de movimientos del TCP.
[\Time]
Tipo de dato: switch
Se utiliza cuando RampLength especifica el tiempo de rampa en s en lugar de en longitud de
la rampa.
Debe utilizarse si una instruccin TriggL, TriggC o TriggJ posterior especifica que el
movimiento total debe realizarse por tiempo (argumento \T) en lugar de por velocidad.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 626


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Cuando se ejecuta la instruccin TriggRampAO, 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 en cuanto a las definiciones de TriggRampAO:
En la tabla se describe la distancia especificada en el argumento Distance:
La figura muestra la rampa de AO en una trayectoria de esquina.
xx0600003439
Caractersticas de ejecucin de programas de TriggRampAO en conexin con cualquier
TriggL/C/J:
La rampa de la seal AO comienza cuando el robot alcanza el punto Distance
especificado en la trayectoria del robot (con compensacin del valor especificado de
EquipLag)
La funcin de rampa se realiza durante un periodo de tiempo calculado a partir del
valor de RampLength especificado y la velocidad de TCP programada. El clculo
tiene en cuenta VelSet, la redefinicin de velocidad manual y el mximo de 250 mm/
s en el modo MAN, pero no tiene en cuenta ninguna otra limitacin.
La actualizacin del valor de la seal AO desde el principio (lectura actual) al valor de
SetValue especificado se realiza cada 10 ms, lo cual da lugar a una forma de escalera.
Si el tiempo de rampa calculado o el tiempo de rampa especificado es superior a 0,5
s, la frecuencia de rampa ser menor:
<=0,5 s produce como mximo 50 pasos de 10 ms cada uno
<=1 s produce como mximo 50 pasos de 20 ms cada uno
<=1,5 s produce como mximo 50 pasos de 30 ms cada uno, etctera
La accin TriggRampAO tambin se realiza en el paso FWD, pero no en el modo de paso BWD.
En cualquier tipo de paro (paro de programa, paro de emergencia), si la funcin de rampa est
activa en esa ocasin:
- En caso de rampa ascendente, el valor de AO cambia momentneamente a un valor anterior.
- En caso de rampa descendente, el valor de AO cambia momentneamente al nuevo valor de
SetValue.
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
627 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin TriggRampAO.
Ejemplo 1
VAR triggdata ramp_up;
VAR triggdata ramp_down;
...
TriggRampAO ramp_up, 0 \Start, 0.1, aolaser1, 8, 15;
TriggRampAO ramp_down, 15, 0.1, aolaser1, 2, 10;
MoveL p1, v200, z10, gun1;
TriggL p2, v200, ramp_up, \T2:=ramp_down, z10, gun1;
En este ejemplo, se realiza tanto la rampa ascendente como la rampa descendente de AO en la
misma instruccin TriggL y en la misma trayectoria de movimiento. Funciona sin ninguna
interferencia de los valores de AO, siempre y cuando la trayectoria de movimiento sea lo
suficientemente larga.
La seal analgica aolaser1 inicia una rampa ascendente de su valor lgico desde el valor
actual hasta el nuevo valor 8, cuando el TCP de la herramienta gun1 se encuentra 0,1 s antes
del centro de la trayectoria de esquina en p1. La totalidad de la rampa ascendente se completa
mientras el robot se mueve 15 mm.
La seal analgica aolaser1 inicia una rampa descendente de su valor lgico desde el valor
actual 8 hasta el nuevo valor 2, cuando el TCP de la herramienta gun1 se encuentra 15 m y
0,1 s antes del centro de la trayectoria de esquina en p2. La totalidad de la rampa ascendente
se completa mientras el robot se mueve 10 mm.
Gestin de errores
Si el argumento SetValue programado para la seal analgica de salida AOutput 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
El valor de la seal analgica de salida no se compensa por la reduccin de velocidad del TCP
en la trayectoria de esquina ni durante otras fases de aceleracin o deceleracin (AO no es
proporcional a la velocidad del TCP).
Slo el punto de inicio de la rampa de AO se ejecutar en la posicin especificada de la
trayectoria. La rampa ascendente o descendente se realizar con un clculo muerto y con
alta exactitud:
A una velocidad constante, la desviacin del fin de la rampa de AO con respecto al
especificado ser reducida.
Durante las fases de aceleracin o deceleracin, como por ejemplo cerca de puntos de
paro, la desviacin ser mayor.
Recomendacin: Utilice trayectorias de esquina antes de las rampas ascendentes y a
continuacin de las rampas descendentes.
Si utiliza dos o ms TriggRampAO en la misma seal analgica de salida y en conexin con
la misma instruccin TriggL/C/J y las dos RampLength o varias de ellas estn situadas en
la misma parte de la trayectoria del robot, los valores de AO interactuarn entre s.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.213. TriggRampAO - Define un evento AO de rampa de posicin fija en la trayectoria
RobotWare - OS
3HAC16581-5 Revisin: H 628


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El evento AO de rampa relacionada con la posicin (+/- tiempo) comienza cuando se pase ms
all del punto ToPoint anterior, si el valor especificado de Distance a partir del punto
ToPoint no est dentro de la longitud del movimiento de la instruccin TriggL/C/J actual.
El evento AO de rampa relacionada con la posicin (+/- tiempo) comienza cuando se pase ms
all del punto ToPoint anterior, si el valor especificado de Distance desde el punto
ToPoint anterior no est dentro de la longitud del movimiento de la instruccin TriggL/C/
J actual (con el argumento \Start).
No se admite el reinicio de la funcin AO de rampa a continuacin de ningn tipo de paro
(paro de programa, paro de emergencia, etc.).
En caso de reinicio tras una cada de alimentacin, la instruccin TriggL/C/J comienza por
el principio desde la posicin de cada de alimentacin actual.
Sintaxis
TriggRampAO
[ TriggData := ] < variable (VAR) of triggdata > ,
[ Distance := ] < expression (IN) of num >
[ \ Start] ,
[ EquipLag := ] < expression (IN) of num > ,
[ AOutput := ] < variable (VAR) of signalao> ,
[ SetValue := ] < expression (IN) of num> ,
[ RampLength := ] < expression (IN) of num> ,
[ \ Time] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de otros disparos TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
Almacenamiento de datos de disparo triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Establecimiento de una seal analgica de
salida
SetAO - Cambia el valor de una seal
analgica de salida en la pgina 439
signalxx - Seales digitales y analgicas en
la pgina 1178
Configuracin del tiempo preestablecido para
eventos
Manual de referencia tcnica - Parmetros
del sistema, seccin Movimiento
Continuacin
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
629 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida
analgica con un evento de escala fija de posicin-tiempo
Utilizacin
TriggSpeed se utiliza para definir condiciones y acciones para el control de una seal
analgica de salida cuyo valor de salida es proporcional a la velocidad real del TCP. El inicio,
el escalado y la finalizacin de la salida analgica pueden especificarse en una posicin-
tiempo fija a lo largo de la trayectoria de movimientos del robot. Es posible utilizar una
compensacin de tiempo para el retardo del equipo externo en el inicio, el escalado y la
finalizacin de la salida analgica y tambin para los cambios de velocidad del robot.
Los datos definidos se utilizan en una o varias instrucciones TriggL, TriggC o TriggJ
posteriores.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TriggSpeed.
Consulte tambin Ms ejemplos en la pgina 633.
Ejemplo 1
VAR triggdata glueflow;
TriggSpeed glueflow, 0, 0.05, glue_ao, 0.8\DipLag=:0.04
\ErrDO:=glue_err;
TriggL p1, v500, glueflow, z50, gun1;
TriggSpeed glueflow, 10, 0.05, glue_ao, 1;
TriggL p2, v500, glueflow, z10, gun1;
TriggSpeed glueflow, 0, 0.05, glue_ao, 0;
TriggL p3, v500, glueflow, z50, gun1;
La figura siguiente muestra un ejemplo de secuencia con TriggSpeed.
xx0500002329
El flujo de adhesivo (salida analgica glue_ao) con valor de escala de 0,8 comienza cuando
el TCP est 0.05 s antes del punto p1, el nuevo valor de escala de flujo de adhesivo 1 cuando
el TCP est 10 mm y 0.05 s antes del punto p2, y el flujo de adhesivo termina (valor de escala
9) cuando el TCP est 0,05 s antes del punto p3.
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
3HAC16581-5 Revisin: H 630


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Cualquier reduccin de velocidad del robot recibe una compensacin de tiempo de forma que
la seal de salida analgica glue_ao se vea afectada 0,04 s antes de que se produzca la
reduccin de velocidad del TCP.
En caso de rebasamiento del valor lgico calculado de la salida analgica glue_ao, se activa
la seal de salida digital glue_err. Si no hay ms desbordamiento, glue_err se pone a
cero.
Argumentos
TriggSpeed TriggData Distance [\Start] ScaleLag AOp ScaleValue
[\DipLag] [\ErrDO] [\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.
Distance
Tipo de dato: num
Define la posicin en la trayectoria para el cambio del valor de salida analgico.
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 Ejecucin de programas en la pgina 632 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.
ScaleLag
Tipo de dato: num
Especifique el retardo de tiempo en s (valor positivo) del equipo externo antes del cambio del
valor de la salida analgica (inicio, escalado y finalizacin).
Para la compensacin del retardo del equipo externo, el valor de este argumento significa que
la seal de salida es activada por el robot en el momento especificado, antes de que el TCP
fsico alcance la distancia especificada respecto del punto de inicio o final del movimiento.
Este argumento tambin puede usarse para extender la salida analgica ms all del punto
final. Establezca el tiempo en segundos durante el cual el robot debe mantener la seal
analgica. Establezca el tiempo con un signo negativo. El lmite es -0,10 segundos.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
631 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En la figura siguiente se ilustra el uso del argumento ScaleLag
xx0500002330
AOp
Analog Output
Tipo de dato: signalao
El nombre de la seal de salida analgica.
ScaleValue
Tipo de dato: num
El valor de escala de la seal de salida analgica.
El valor fsico de salida de la seal analgica es calculado por el robot:
Valor lgico de salida =Valor de escala * velocidad actual del TCP en mm/s.
Valor fsico de salida =De acuerdo con la definicin de la configuracin de la seal
analgica de salida actual, tomando como entrada el valor lgico de salida indicado
ms arriba.
[ \DipLag ]
Tipo de dato: num
Especifique el retardo de tiempo en s (valor positivo) del equipo externo antes del cambio del
valor de la salida analgica debido a los cambios de velocidad del robot.
Para la compensacin del retardo del equipo externo, el valor de este argumento significa que
la seal de salida analgica es activada por el robot en el momento especificado, antes de que
se produzca la reduccin de velocidad del TCP.
Este argumento slo puede ser utilizado por el robot en la primera instruccin TriggSpeed
(en combinacin con una de las instrucciones TriggL, TriggC o TriggJ) en una secuencia
de varias instrucciones TriggSpeed. El primer valor de argumento especificado es vlido
para todas las dems instrucciones TriggSpeed de la secuencia.
[ \ErrDO ]
Error Digital Output
Tipo de dato: signaldo
El nombre de la seal de salida digital para informar del desbordamiento del valor analgico.
Si, durante el movimiento, el clculo del valor lgico de salida analgica de la seal indicada
en el argumento AOp da lugar a un desbordamiento debido a un exceso de velocidad, esta
seal se activa y el valor fsico de la salida analgica se reduce al valor mximo. Si no hay
ms desbordamiento, la seal se pone a cero.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
3HAC16581-5 Revisin: H 632


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Este argumento slo puede ser utilizado por el robot en la primera instruccin TriggSpeed
(en combinacin con una de las instrucciones TriggL, TriggC o TriggJ) en una secuencia
de varias instrucciones TriggSpeed. El primer valor de argumento especificado es vlido
para todas las dems instrucciones TriggSpeed de la secuencia.
[ \Inhib ]
Inhibit
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
el momento del establecimiento de la seal analgica, la seal especificada AOp se cambia a
0 en lugar del valor especificado.
Este argumento slo puede ser utilizado por el robot en la primera instruccin TriggSpeed
(en combinacin con una de las instrucciones TriggL, TriggC o TriggJ) en una secuencia
de varias instrucciones TriggSpeed. El primer valor de argumento especificado es vlido
para todas las dems instrucciones TriggSpeed de la secuencia.
Ejecucin de programas
Cuando se ejecuta la instruccin TriggSpeed, 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 en cuanto a las definiciones de TriggSpeed:
En cuanto a la distancia especificada en el argumento Distance, consulte la tabla siguiente:
La figura siguiente muestra el evento de valor de escala fija de posicin-tiempo en una
trayectoria de esquina.
xx0500002331
El evento de valor de escala dependiente de posicin-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 (TriggL,
TriggC o TriggJ).
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).
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
633 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La primera instruccin TriggSpeed utilizada por una de las instrucciones TriggL, TriggC
o TriggJ crear internamente en el sistema un proceso con el mismo nombre que la seal de
salida analgica. El mismo proceso ser utilizado por todas las instrucciones TriggL,
TriggC o TriggJ posteriores que hagan referencia al mismo nombre de seal, configurado
por una instruccin TriggSpeed.
El proceso cambia inmediatamente la salida analgica a 0 en el caso de un paro de emergencia
de programa. En el caso de un paro de programa, la seal de salida analgica permanece
proporcional a la velocidad del TCP hasta que el robot se detiene. El proceso se mantiene
vivo y listo para un reinicio. Cuando el robot reanuda su funcionamiento, la seal es
proporcional a la velocidad del TCP desde el mismo momento del inicio.
xx0500002332
El proceso muere tras gestionar un evento de escala con valor 0, siempre y cuando no haya
ninguna instruccin TriggL, TriggC o TriggJ en la cola en ese momento.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin TriggSpeed.
Ejemplo 1
VAR triggdata flow;
TriggSpeed flow, 10 \Start, 0.05, flowsignal, 0.5 \DipLag:=0.03;
MoveJ p1, v1000, z50, tool1;
TriggL p2, v500, flow, z50, tool1;
La seal analgica de salida flowsignal cambia a un valor lgico =(0,5* velocidad actual
del TCP en mm/s) 0,05 s antes de que el TCP atraviese un punto situado 10 mm despus del
punto de inicio p. El valor de salida se ajusta de forma proporcional a la velocidad actual del
TCP durante el movimiento hacia p2.
...
TriggL p3, v500, flow, z10, tool1;
El robot se mueve de p2 a p3, manteniendo el valor de la salida analgica de forma
proporcional a la velocidad actual del TCP. El valor de la salida analgica se reduce 0,03 s
antes de que el robot reduzca la velocidad del TCP mientras pasa por la trayectoria de esquina
z10.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
3HAC16581-5 Revisin: H 634


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
A continuacin se muestran las limitaciones de la instruccin TriggSpeed.
Exactitud de un evento de valor de escala dependiente de posicin-tiempo
Los valores absolutos tpicos en cuanto a la exactitud de los eventos de valor de escala son de
5 ms.
Los valores de repeticin tpicos en cuanto a la exactitud de los eventos de valor de escala son
de 2 ms.
Exactitud de la adaptacin a los cambios de velocidad del TCP (fases de deceleracin y aceleracin)
Los valores absolutos tpicos en cuanto a la exactitud de la adaptacin a los cambios de
velocidad del TCP son de 5 ms.
Los valores de repeticin tpicos en cuanto a la exactitud de la adaptacin a los cambios de
velocidad del TCP son de 2 ms (el valor depende del valor configurado en Path resolution).
Negativo ScaleLag
Si se usa un valor negativo en el parmetro ScaleLag para trasladar la escala cero al
siguiente segmento, la seal de salida digital no se pone a cero si se produce un paro de
programa. Los paros de emergencia siempre ponen a cero la seal analgica.
La seal analgica deja de ser proporcional a la velocidad del TCP en el punto final del
segmento.
xx0500002333
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
635 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Esta explicacin corresponde a dos segmentos consecutivos con instrucciones TriggL/
TriggSpeed. Un valor negativo en el parmetro ScaleLag hace posible trasladar el evento
de escala del primer segmento al principio del segundo segmento. Si el segundo segmento se
escala al principio, no hay ningn control si las dos escalas interfieren.
xx0500002334
Parmetros del sistema relacionados
El parmetro del sistema Event Preset Time se utiliza para retrasar el robot para permitir la
activacin y el control de equipos externos antes de que el robot atraviese la posicin.
En la tabla siguiente se muestra la recomendacin para la configuracin del parmetro del
sistema Event Preset Time, con un valor de retardo de servo tpico de 0,060 s.
ScaleLag DipLag
Valor de Event Preset
Time necesario para
evitar los errores de
tiempo de ejecucin
Valor de Event
Preset Time
recomendado para
obtener la mxima
exactitud
ScaleLag >
DipLag
Siempre DipLag,
si DipLag > Servo Lag
ScaleLag en s ms
0,090 s
ScaleLag <
DipLag
DipLag <
Servo Lag
- " - 0.090 s
- " - DipLag
>Servo Lag
- " - DipLag en s ms 0.030
s
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.214. TriggSpeed - Define la velocidad del TCP en proporcin a una salida analgica con un evento de
escala fija de posicin-tiempo
3HAC16581-5 Revisin: H 636


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TriggSpeed
[ TriggData := ] < variable (VAR) of triggdata>,
[ Distance := ] < expression (IN) of num>
[ \ Start ] ,
[ ScaleLag:= ] < expression (IN) of num> ,
[ AOp :=] < variable (VAR) of signalao> ,
[ ScaleValue := ] < expression (IN) of num>
[ \ DipLag := < expression (IN) of num> ]
[ \ ErrDO := < variable (VAR ) of signaldo> ]
[ \ Inhib := < persistent (PERS ) of bool >] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Utilizacin de disparadores TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
TriggJ - Movimientos de ejes del robot a partir
de eventos en la pgina 603
Definicin de otros disparos TriggIO - Define un evento de E/S de posicin
o tiempo fijos cerca de un punto de paro en la
pgina 598
TriggInt - Define una interrupcin dependiente
de una posicin en la pgina 594
TriggEquip - Define un evento de E/S basado
en la posicin y el tiempo en la trayectoria en
la pgina 588
Almacenamiento de disparos triggdata - Eventos de posicionamiento, trigg
en la pgina 1214
Configuracin de Event preset time Manual de referencia tcnica - Parmetros del
sistema, seccin Motion - Motion Planner -
Event Preset Time
Continuacin
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
637 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante
paros
Utilizacin
La instruccin TriggStopProc crea un proceso interno de supervisin en el sistema para la
puesta a cero de las seales de proceso especificadas y la generacin de datos de reinicio en
una variable persistente especificada, cada vez que se detiene el programa (STOP) o se
produce un paro de emergencia (QSTOP) en el sistema.
TriggStopProc y el tipo de dato restartdata han sido creados para su uso en el reinicio
tras un paro de programa (STOP) o un paro de emergencia (QSTOP) de las instrucciones del
propio proceso definidas en RAPID (rutinas NOSTEPIN).
En una rutina de evento RESTART definida por el usuario, es posible analizar los datos de
reinicio actuales, retroceder por la trayectoria con la instruccin StepBwdPath y activar
seales de proceso adecuadas antes del reinicio del movimiento.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Recuerde que en el caso de los sistemas MultiMove, slo un proceso de soporte
TriggStopProc con el nombre de seal "shadow" (argumento ShadowDO) puede estar
activa en el sistema cada vez. Esto significa que TriggStopProc supervisa el paro de
programa o el paro de emergencia en la tarea de programa en la que fue ejecutado por ltima
vez.
Argumentos
TriggStopProc RestartRef [\DO] [\GO1] [\GO2] [\GO3] [\GO4]
ShadowDO
RestartRef
Restart Reference
Tipo de dato: restartdata
La variable persistente en la que estarn disponibles los datos de reinicio despus de cada
detencin de la ejecucin del programa.
[\DO1]
Digital Output 1
Tipo de dato: signaldo
La variable de seal de una seal digital de proceso que debe ponerse a cero y supervisarse
en los datos de reinicio cuando se detiene la ejecucin del programa.
[\GO1]
Group Output 1
Tipo de dato: signalgo
La variable de seal de una seal digital de grupo de proceso que debe ponerse a cero y
supervisarse en los datos de reinicio cuando se detiene la ejecucin del programa.
Contina en la pgina siguiente
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
3HAC16581-5 Revisin: H 638


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\GO2]
Group Output 2
Tipo de dato: signalgo
La variable de seal de una seal digital de grupo de proceso que debe ponerse a cero y
supervisarse en los datos de reinicio cuando se detiene la ejecucin del programa.
[\GO3]
Group Output 3
Tipo de dato: signalgo
La variable de seal de una seal digital de grupo de proceso que debe ponerse a cero y
supervisarse en los datos de reinicio cuando se detiene la ejecucin del programa.
[\GO4]
Group Output 4
Tipo de dato: signalgo
La variable de seal de una seal digital de grupo de proceso que debe ponerse a cero y
supervisarse en los datos de reinicio cuando se detiene la ejecucin del programa.
Se debe utilizar al menos uno de los parmetros de opcin D01, GO1 ... GO4.
ShadowDO
Shadow Digital Output
Tipo de dato: signaldo
La variable de seal de la seal digital que debe reflejar si el proceso est activo a lo largo de
la trayectoria del robot.
Esta seal no ser puesta a cero por el proceso TriggStopProc ante un STOP o QSTOP, pero
sus valores se reflejarn en restartdata.
Ejecucin de programas
Configuracin y ejecucin de TriggStopProc
La llamada a TriggStopProc debe realizarse desde los dos lugares siguientes:
La rutina de evento START o la parte inicial del programa (el cambio del PP a main
elimina el proceso interno para TriggStopProc)
La rutina de evento POWERON (el apagado elimina el proceso interno para
TriggStopProc)
El nombre interno del proceso para TriggStopProc es el mismo que el nombre de la seal
del argumento ShadowDO. Si se ejecuta dos veces TriggStopProc, con el mismo nombre
de seal en el argumento ShadowDO, desde la misma tarea de programa o desde otra, slo
estar activa la operacin TriggStopProc ejecutada en ltimo lugar.
La ejecucin de TriggStopProc slo inicia la supervisin de las seales de E/S con los
paros STOP y QSTOP.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
639 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Paro de programa STOP
El proceso TriggStopProc comprende los pasos siguientes:
Se espera hasta que el robot se haya detenido a lo largo de la trayectoria.
Se almacena el valor actual (valor previo de acuerdo con restartdata) de todas las
seales de proceso utilizadas. Se ponen a cero todas las seales de proceso utilizadas,
excepto ShadowDO.
Se hace lo siguiente durante la siguiente fase, de aproximadamente 500 ms: - Si alguna
seal de proceso cambia de valor durante este tiempo: - Se almacena de nuevo su valor
actual (valor posterior de acuerdo con restatdata) - Se pone a cero la seal, excepto
ShadowDO - Se cuenta el nmero de transiciones de estado (flancos) de la seal
ShadowDO
Se actualiza la variable persistente especificada con el dato de reinicio.
Paro de emergencia (QSTOP)
El proceso TriggStopProc comprende los pasos siguientes:
Se hace el paso siguiente lo antes posible.
Se almacena el valor actual (valor previo de acuerdo con restartdata) de todas las
seales de proceso utilizadas. Se ponen a cero todas las seales de proceso utilizadas,
excepto ShadowDO.
Se hace lo siguiente durante la siguiente fase, de aproximadamente 500 ms: - Si alguna
seal de proceso cambia de valor durante este tiempo: - Se almacena de nuevo su valor
actual (valor posterior de acuerdo con restatdata) - Se pone a cero la seal, excepto
ShadowDO - Se cuenta el nmero de transiciones de estado (flancos) de la seal
ShadowDO
Se actualiza la variable persistente especificada con el dato de reinicio.
rea crtica para el reinicio del proceso
Tanto el servo del robot como el equipo externo presentan ciertos retardos. Todas las
instrucciones de la familia Trigg han sido diseadas de forma que todas las seales se
establezcan en lugares adecuados a lo largo de la trayectoria del robot, independientemente
de los distintos retardos en el equipo externo, con el fin de obtener los mejores resultados de
proceso posibles. Por ello, el establecimiento de las seales de E/S pueden retrasarse
internamente en el sistema de 0a80ms, una vez que el robot se detiene con un paro de
programa (STOP) o tras el registro de un paro de emergencia (QSTOP). Debido a esta
desventaja de las funciones de reinicio, tanto el valor previo como el valor posterior, as como
los flancos de la seal correspondiente, se introducen en los datos de reinicio.
Si este intervalo crtico de 0a80ms coincide con los casos de proceso de aplicacin
siguientes, resulta difcil realizar un buen reinicio de proceso:
Al principio del proceso de aplicacin
Al final del proceso de aplicacin
Durante un proceso de aplicacin breve
Durante una breve interrupcin en el proceso de aplicacin
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
3HAC16581-5 Revisin: H 640


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La figura siguiente ilustra las fases de proceso en STOP o QSTOP dentro del intervalo crtico
0-80ms
xx0500002326
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
641 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Realizacin de un reinicio
Un reinicio de las instrucciones del proceso (rutinas NOSTEPIN) a lo largo de la trayectoria
del robot debe realizarse en una rutina de evento RESTART.
La rutina de evento RESTART puede componerse de los pasos siguientes:
Tras un paro QSTOP, la recuperacin de la trayectoria se realiza al iniciarse el
programa.
Se analizan los datos de reinicio desde el ltimo paro STOP o QSTOP.
Se determina la estrategia de reinicio del proceso partiendo del resultado del anlisis,
por ejemplo:
- Proceso activo, se procesa el reinicio.
- Proceso inactivo, no se procesa el reinicio.
- Se realizan las acciones adecuadas en funcin del tipo de aplicacin de proceso en
los casos siguientes:
- Inicio del proceso
- Fin del proceso
- Proceso corto
- Interrupcin corta en el proceso
Se retrocede sobre la trayectoria.
Se activan las seales de proceso adecuadas con valores adecuados segn los datos de
reinicio.
La reanudacin del programa da lugar al reinicio del movimiento.
Si se est en espera en cualquier rutina de evento STOP o QSTOP hasta que el proceso
TriggStopProc haya concluido, por ejemplo con WaitUntil
(myproc.restartstop=TRUE), \MaxTime:=2;, el usuario debe siempre poner a cero el
indicador de la rutina de evento RESTART, por ejemplo con
myproc.restartstop:=FALSE. A continuacin, el reinicio queda completado.
Gestin de errores
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
Limitacin
No se admite el reinicio de las instrucciones del proceso tras una cada de alimentacin.
Sintaxis
TriggStopProc
[ RestartRef := ] < persistent (PERS) of restartdata>
[ \ DO1:= < variable (VAR) of signaldo>
[ \ GO1:= < variable (VAR) of signalgo> ]
[ \ GO2:= < variable (VAR) of signalgo> ]
[ \ GO3:= < variable (VAR) of signalgo> ]
[ \ GO4:= < variable (VAR) of signalgo> ] ,
[ ShadowDO:= ] < variable (VAR) of signaldo> ;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.215. TriggStopProc - Genera datos de reinicio para las seales de disparo ante paros
RobotWare - OS
3HAC16581-5 Revisin: H 642


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de proceso TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
Datos de reinicio restartdata - Datos de reinicio de seales de
disparo en la pgina 1163
Retroceso por la trayectoria StepBwdPath - Retrocede un paso a lo largo
de la trayectoria en la pgina 507
Continuacin
1 Instrucciones
1.216. TryInt - Comprobar si un objeto de dato es un entero vlido
RobotWare - OS
643 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.216. TryInt - Comprobar si un objeto de dato es un entero vlido
Utilizacin
TryInt se utiliza para comprobar si un objeto de dato determinado es un entero vlido.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TryInt.
Ejemplo 1
VAR num myint := 4;
...
TryInt myint;
Se evala el valor de myint y, dado que 4 es un entero vlido, la ejecucin del programa
contina.
Ejemplo 2
VAR num myint := 5.2;
...
TryInt myint;
...
ERROR
IF ERRNO = ERR_INT_NOTVAL THEN
myint := Round(myint);
RETRY;
ENDIF
Se evala el valor de myint y, dado que 5.2 no es un entero vlido, se generar un error. En
el gestor de errores, myint se redondea a 5 y la instruccin TryInt se ejecuta una vez ms.
Argumentos
TryInt DataObj
DataObj
Data Object
Tipo de dato: num
El objeto de datos en el que se desea comprobar si el valor es un entero vlido.
Ejecucin de programas
Se comprueba el objeto de dato indicado:
Si es un entero vlido, la ejecucin contina con la instruccin siguiente.
Si no es un entero vlido, la ejecucin contina en el gestor de errores del
procedimiento actual.
Contina en la pgina siguiente
1 Instrucciones
1.216. TryInt - Comprobar si un objeto de dato es un entero vlido
RobotWare - OS
3HAC16581-5 Revisin: H 644


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si DataObj contiene un valor con decimales, la variable ERRNO cambia a ERR_INT_NOTVAL.
Si el valor de DataObj es mayor o menor que el rango de valor entero del tipo de dato num,
la variable ERRNO cambia a ERR_INT_MAXVAL.
Estos errores pueden ser gestionados en el gestor de errores.
Recuerde que un valor de 3.0 se evala como un entero, dado que el valor .0 puede omitirse.
Sintaxis
TryInt
[ DataObj := ] < expression (IN) of num> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de dato num num - Valores numricos en la pgina 1142
Continuacin
1 Instrucciones
1.217. TRYNEXT - Salta sobre una instruccin que ha provocado un error
RobotWare-OS
645 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.217. TRYNEXT - Salta sobre una instruccin que ha provocado un error
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TryNext.
Ejemplo 1
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 (lo cual da lugar a una divisin por
cero), se realiza un salto al gestor de errores, donde se asigna a reg2 el valor 0. A
continuacin, la instruccin TRYNEXT se utiliza para continuar con la siguiente instruccin.
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
Para obtener ms informacin sobre Consulte
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
1 Instrucciones
1.218. TuneReset - Restablecimiento del ajuste del servo
RobotWare - OS
3HAC16581-5 Revisin: H 646


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.218. TuneReset - Restablecimiento del ajuste del servo
Utilizacin
TuneReset se utiliza para devolver el comportamiento dinmico de todos los ejes del robot
y de las unidades mecnicas a sus valores normales.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TuneReset.
Ejemplo 1
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
Para obtener ms informacin sobre Consulte
Ajuste de servos TuneServo - Ajuste de servos en la pgina 647
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
647 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.219. TuneServo - Ajuste de servos
Utilizacin
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.
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.
Atencin! 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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
AVISO!
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.
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.
Descripcin
Reduce el riesgo de sobrepasar posiciones - 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.
Contina en la pgina siguiente
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
3HAC16581-5 Revisin: H 648


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 2 y 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.
Reduce el riesgo de sobrepasar posiciones - TUNE_DG
TUNE_DG puede reducir el sobrepasamiento de posiciones en casos muy especficos.
Normalmente no debe utilizarse.
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.
Reduce las vibraciones con cargas pesadas - 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 TuneValue.
Nunca utilice TUNE_DH mientras el robot est en movimiento.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
649 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Reduce el nmero de errores de trayectoria - 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 TuneValue.
Slo para uso interno de ABB - TUNE_DK, TUNE_DL
-
AVISO!
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.
Ajuste de ejes externos - TUNE_KP, TUNE_KV, TUNE_TI
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.
Ajuste de ejes de robot - TUNE_KP, TUNE_KV, TUNE_TI
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/s).
Valores recomendados: TUNE_KV 100 - 180%, TUNE_TI 50 - 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, 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/s). 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 Yes el
parmetro de sistema Motion/Control Parameters/Friction FFW On.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
3HAC16581-5 Revisin: H 650


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El modelo de friccin es un nivel constante con el signo opuesto al sentido de avance del eje.
Friction FFW Level (Nm) es el nivel absoluto de friccin a (baja) velocidad y es mayor que
Friction FFW Ramp (rad/s). Consulte la figura siguiente, que muestra un modelo de friccin.
xx0500002188
TUNE_FRIC_LEV redefine el valor del parmetro de sistema Friction FFW Level.
El ajuste de Friction FFW Level (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 Friction FFW Ramp. En la
mayora de los casos, no es necesario ajustar el valor de Friction FFW Ramp. 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:
Friction FFW Level =1. Valor de ajuste final (TUNE_FRIC_LEV) =150%.
Cambie el valor de Friction FFW Level 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
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
651 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \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.
Puede omitir este argumento si utiliza el tipo de ajuste TUNE_DF.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin TuneServo.
Ejemplo 1
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) of mecunit> ,
[Axis := ] < expression (IN) of num> ,
[TuneValue := ] < expression (IN) of num>
[\ Type := <expression (IN) of tunetype>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Otros parmetros de movimiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Parmetros de movimiento
Tipos de ajuste de servo tunetype - Tipo de ajuste de servo en la
pgina 1221
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.219. TuneServo - Ajuste de servos
RobotWare - OS
3HAC16581-5 Revisin: H 652


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Restablecimiento de todos los ajustes de
servo
TuneReset - Restablecimiento del ajuste del
servo en la pgina 646
Ajuste de ejes externos Application manual - Additional axes and
stand alone controller
Compensacin de friccin Manual de referencia tcnica - Parmetros del
sistema, seccin Motion - Friction Compensa-
tion
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
653 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
Utilizacin
UIMsgBox (User Interaction Message Box) se usa para comunicarse con el usuario del
sistema de robot a travs de un dispositivo de usuario disponible, como el FlexPendant. Tras
la escritura de la informacin de salida, la seleccin de pulsadores mostrados creada por el
usuario se devuelve al programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin UIMsgBox.
Consulte tambin Ms ejemplos en la pgina 657.
Ejemplo 1
UIMsgBox Continue the program ?;
Se muestra el mensaje "Continue the program ?". El programa contina tan pronto
como el usuario presiona el botn predeterminado OK.
Ejemplo 2
VAR btnres answer;
...
UIMsgBox
\Header:="UIMsgBox Header",
"Lnea de mensaje 1"
\MsgLine2:="Message Line 2"
\MsgLine3:="Message Line 3"
\MsgLine4:="Message Line 4"
\MsgLine5:="Message Line 5"
\Buttons:=btnOKCancel
\Icon:=iconInfo
\Result:=answer;
IF answer = resOK my_proc;
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
3HAC16581-5 Revisin: H 654


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
xx0500002432
Se muestra en la pantalla del FlexPendant el cuadro de mensaje anterior, con icono, ttulo,
lneas de mensaje de la 1 a la 5 y pulsadores definidos por el usuario. La ejecucin espera
hasta que se presiona OK o Cancelar. En otras palabras, se asigna a answer el valor 1 (OK)
5 (Cancelar) en funcin de cul de los botones se presione. Si la respuesta es OK, se llama
a my_proc.
Recuerde que las lneas de mensaje de la 1 a la 5 se muestran en las lneas de la 1 a la 5
separadas (no se usa el modificador \Wrap).
Argumentos
UIMsgBox [\Header] MsgLine1 [\MsgLine2] [\MsgLine3] [\MsgLine4]
[\MsgLine5] [\Wrap] [\Buttons] [\Icon] [\Image] [\Result]
[\MaxTime] [\DIBreak] [\DOBreak] [\BreakFlag]
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de mensaje. Mximo 40
caracteres.
MsgLine1
Message Line 1
Tipo de dato: string
La lnea 1 del texto a escribir en la pantalla. Mximo 55 caracteres.
[\MsgLine2]
Message Line 2
Tipo de dato: string
Se escribe la lnea 2 de texto adicional en la pantalla. Mximo 55 caracteres.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
655 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\MsgLine3]
Message Line 3
Tipo de dato: string
Se escribe la lnea 3 de texto adicional en la pantalla. Mximo 55 caracteres.
[\MsgLine4]
Message Line 4
Tipo de dato: string
Se escribe la lnea 4 de texto adicional en la pantalla. Mximo 55 caracteres.
[\MsgLine5]
Message Line 5
Tipo de dato: string
Se escribe la lnea 5 de texto adicional en la pantalla. Mximo 55 caracteres.
[\Wrap]
Tipo de dato: switch
Si se selecciona, todas las cadenas de MsgLine1 ... MsgLine5 se concatenan para formar
una cadena con un solo espacio entre las distintas cadenas individuales y distribuida en el
nmero mnimo posible de lneas.
De forma predeterminada, cada cadena de mensaje de MsgLine1 ... MsgLine5 aparece en una
lnea separada en la pantalla.
[\Buttons]
Tipo de dato: buttondata
Define los pulsadores que se desea mostrar. Slo puede mostrarse una de las combinaciones
de botones predefinidas del tipo buttondata. Consulte Datos predefinidos en la pgina 657.
De forma predeterminada, el sistema muestra el botn OK. (\Buttons:=btn OK).
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Slo puede usarse uno de los iconos predefinidos de tipo
icondata. Consulte Datos predefinidos en la pgina 657.
De forma predeterminada, no se usa ningn icono.
[\Image]
Tipo de dato: string
El nombre de la imagen que debe utilizarse. Para iniciar sus propias imgenes, las imgenes
deben estar situadas en el directorio HOME: del sistema activo o directamente en el sistema
activo.
La recomendacin es situar los archivos en el directorio HOME: de forma que se incluyan en
las operaciones de copia de seguridad y restauracin.
Se requiere un arranque en caliente, tras lo cual el FlexPendant carga las imgenes.
Una exigencia del sistema es que se use la opcin de RobotWare FlexPendant Interface.
La imagen a mostrar puede tener 185 pxeles de anchura y 300 pxeles de altura. Si la imagen
tiene un tamao mayor, slo se muestran 185 * 300 pxeles de la imagen a partir de su parte
superior izquierda.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
3HAC16581-5 Revisin: H 656


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
No es posible especificar ningn valor exacto en cuanto al tamao que una imagen puede
tener o el nmero de imgenes que es posible cargar en el FlexPendant. Depende del tamao
de los dems archivos cargados en el FlexPendant. La ejecucin de los programas contina
simplemente si se usa una imagen que no est cargada en el FlexPendant.
[\Result]
Tipo de dato: btnres
La variable cuyo valor se devuelve (de 0 a 7) en funcin de qu botn se presione. Slo es
posible usar una de las constantes predefinidas del tipo btnres para evaluar la seleccin del
usuario. Consulte Datos predefinidos en la pgina 657.
En caso de cualquier tipo de interrupcin del sistema, como \MaxTime, \DIBreak o
\DOBreak o en caso de que \Buttons:=btnNone, se devuelve igual a 0.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se selecciona ningn botn 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se
selecciona ningn botn 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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se selecciona
ningn botn 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_DOBREAK puede usarse para comprobar si
esto ha ocurrido.
[\BreakFlag]
Tipo de dato: errnum
Una variable (cambiada a 0 por el sistema antes de su uso) que contiene el cdigo de error si
se utilizan \MaxTime, \DIBreak o \DOBreak. Las constantes ERR_TP_MAXTIME,
ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar el motivo. Si se
omite esta variable opcional, se ejecuta el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
657 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Se muestra un cuadro de mensaje con icono, ttulo, lneas de mensaje, imgenes y botones,
de acuerdo con los argumentos del programa. La ejecucin del programa espera hasta que el
usuario seleccione un botn o que el cuadro de mensaje sea interrumpido por un tiempo lmite
o una accin de seal. La opcin seleccionada por el usuario y el motivo de la interrupcin se
devuelven al programa.
El nuevo cuadro de mensaje del nivel de rutina TRAP toma el foco del cuadro de mensaje del
nivel bsico.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
!Buttons:
CONST buttondata btnNone := -1;
CONST buttondata btnOK := 0;
CONST buttondata btnAbrtRtryIgn := 1;
CONST buttondata btnOKCancel := 2;
CONST buttondata btnRetryCancel := 3;
CONST buttondata btnYesNo := 4;
CONST buttondata btnYesNoCancel := 5;
!Results:
CONST btnres resUnkwn := 0;
CONST btnres resOK := 1;
CONST btnres resAbort := 2;
CONST btnres resRetry := 3;
CONST btnres resIgnore := 4;
CONST btnres resCancel := 5;
CONST btnres resYes := 6;
CONST btnres resNo := 7;
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin UIMsgBox.
Ejemplo 1
VAR errnum err_var;
...
UIMsgBox \Header:= "Cycle step 4", "Robot moving to load position"
\Buttons:=btnNone \Icon:=iconInfo \MaxTime:=60 \DIBreak:=di5
\BreakFlag:=err_var;
TEST err_var
CASE ERR_TP_MAXTIME:
! Time out error
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
3HAC16581-5 Revisin: H 658


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
CASE ERR_TP_DIBREAK:
! Robot in load position
DEFAULT:
! Not such case defined
ENDTEST
El cuadro de mensaje se muestra mientras el robot se mueve hacia su posicin de carga. El
operador no puede responder ni eliminar el cuadro de mensaje. Se elimina el cuadro de
mensaje cuando el robot se encuentra en posicin (di1 cambiado a 1) o en caso de alcanzar
el tiempo lmite (tras 60 segundos).
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Si se activa la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el
gestor de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la
instruccin, la variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la
ejecucin contina en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
UIMsgBox se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar a
un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentizacin de
la respuesta del FlexPendant.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.220. UIMsgBox - Cuadro de mensaje de usuario de tipo bsico
RobotWare - OS
659 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
UIMsgBox
[\Header:= <expression (IN) of string>,]
[MsgLine1:=] <expression (IN) of string>
[\MsgLine2:=<expression (IN) of string>]
[\MsgLine3:=<expression (IN) of string>]
[\MsgLine4:=<expression (IN) of string>]
[\MsgLine5:=<expression (IN) of string>]
[\Wrap]
[\Buttons:= <expression (IN) of buttondata>]
[\Icon:= <expression (IN) of icondata>]
[\Image:=<expression (IN) of string>]
[\Result:=< var or pers (INOUT) of btnres>]
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos en
la pgina 1117
Datos de pulsador buttondata - Datos de pulsador en la pgina
1085
Datos de resultado de pulsador btnres - Datos de resultado de pulsador en la
pgina 1082
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con
el usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario en
la pgina 1067
Introduccin alfanumrica de interaccin
con el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
FlexPendant Interface Especificaciones del producto, software de
controlador IRC5, RobotWare 5.0, seccin
Comunicacin - FlexPendant Interface
Continuacin
1 Instrucciones
1.221. UIShow - Visualizacin de interfaz de usuario
3HAC16581-5 Revisin: H 660


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.221. UIShow - Visualizacin de interfaz de usuario
Utilizacin
UIShow (User Interface Show) se usa para comunicarse con el usuario del sistema de robot a
travs de un dispositivo de usuario disponible, como el FlexPendant. Con UIShow tanto las
aplicaciones individuales como las aplicaciones estndar pueden ser iniciadas desde un
programa de RAPID.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin UIShow.
Los ejemplos 1 y 2 slo funcionan si los archivos TpsViewMyAppl.dll y
TpsViewMyAppl.gtpu.dll estn presentes en el directorio HOME: y se ha realizado un
arranque en caliente.
Ejemplo 1
CONST string Name:="TpsViewMyAppl.gtpu.dll";
CONST string Type:="ABB.Robotics.SDK.Views.TpsViewMyAppl";
CONST string Cmd1:="Init data string passed to the view";
CONST string Cmd2:="New init data string passed to the view";
PERS uishownum myinstance:=0;
VAR num mystatus:=0;
...
! Launch one view of my application MyAppl
UIShow Name, Type \InitCmd:=Cmd1 \InstanceID:=myinstance
\Status:=mystatus;
! Update the view with new init command
UIShow Name, Type \InitCmd:=Cmd2 \InstanceID:=myinstance
\Status:=mystatus;
El cdigo anterior inicia la vista TpsViewMyAppl con el comando de inicializacin Cmd1 y
a continuacin actualiza la vista con Cmd2.
Ejemplo 2
CONST string Name:="TpsViewMyAppl.gtpu.dll";
CONST string Type:="ABB.Robotics.SDK.Views.TpsViewMyAppl";
CONST string Cmd1:="Init data string passed to the view";
CONST string Cmd2:="New init data string passed to the view";
PERS uishownum myinstance:=0;
VAR num mystatus:=0;
...
! Launch one view of my application MyAppl
UIShow Name, Type \InitCmd:=Cmd1 \Status:=mystatus;
! Launch another view of the application MyAppl
UIShow Name, Type \InitCmd:=Cmd2 \InstanceID:=myinstance
\Status:=mystatus;
El cdigo anterior inicia la vista TpsViewMyAppl con el comando de inicializacin Cmd1. A
continuacin, inicia otra vista con el comando de inicializacin Cmd2.
Contina en la pgina siguiente
1 Instrucciones
1.221. UIShow - Visualizacin de interfaz de usuario
661 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 3
CONST string Name:="tpsviewbackupandrestore.dll";
CONST string
Type:="ABB.Robotics.Tps.Views.TpsViewBackupAndRestore";
VAR num mystatus:=0;
...
UIShow Name, Type \Status:=mystatus;
Inicio de las aplicaciones estndar de copia de seguridad y restauracin.
Argumentos
UIShow AssemblyName TypeName [\InitCmd] [\InstanceId] [\Status]
[\NoCloseBtn]
AssemblyName
Tipo de dato: string
El nombre del conjunto que contiene la vista.
TypeName
Tipo de dato: string
ste es el nombre de la vista (del tipo a crear). ste es el nombre completo del nombre del
tipo, es decir, con su espacio de nombres incluido.
[\InitCmd]
Init Command
Tipo de dato: string
Una cadena de datos de inicializacin entregada a la vista.
[\InstanceId]
Tipo de dato: uishownum
Un parmetro que representa un token utilizado para identificar una vista. Si se muestra una
vista a continuacin de la llamada a UIShow, se devuelve un valor que identifica la vista. A
continuacin, este token puede usarse en otras llamadas a UIShow para activar una vista que
ya est en funcionamiento. Si el valor identifica una vista existente (en ejecucin), se activa
la vista. Si no existe, se crea una nueva instancia. Esto significa que este parmetro puede
usarse para determinar si se iniciar una nueva instancia o no. Si su valor identifica a una vista
ya iniciada, esta vista se activar, independientemente de los valores de los dems
parmetros. Una recomendacin es usar una variable InstanceId exclusiva para cada nueva
aplicacin que se prevea iniciar con la instruccin UIShow.
El parmetro debe ser una variable persistente y el motivo para ello es que esta variable debe
conservar su valor, incluso si el puntero de programa se mueve a Main. Si se ejecuta la misma
instruccin UIShow que antes y se usa la misma variable, se activa la misma siempre y cuando
siga abierta. Si la vista ha sido cerrada, se inicia una nueva vista.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.221. UIShow - Visualizacin de interfaz de usuario
3HAC16581-5 Revisin: H 662


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Status]
Tipo de dato: num
Status indica si la operacin tuvo xito o no. Recuerde que si se usa esta opcin, la ejecucin
de RAPID permanecer en espera hasta que se completa la instruccin, es decir, la vista se
inicia.
Este parmetro opcional se usa principalmente para fines de depuracin. (Consulte Gestin
de errores)
[\NoCloseBtn]
No Close Button
Tipo de dato: switch
NoCloseBtn desactiva el botn Cerrar de la vista.
Ejecucin de programas
La instruccin UIShow se utiliza para iniciar aplicaciones individuales en el FlexPendant.
Para iniciar aplicaciones individuales, los conjuntos deben estar situados en el directorio
HOME: del sistema activo, directamente en el sistema activo o en una opcin adicional. La
recomendacin es situar los archivos en el directorio HOME: de forma que se incluyan en las
operaciones de copia de seguridad y restauracin. Se requiere un arranque en caliente, tras lo
cual el FlexPendant carga los nuevos conjuntos. Una exigencia del sistema es que se use la
opcin de RobotWare FlexPendant Interface.
Tambin es posible iniciar aplicaciones estndar, como la copia de seguridad y la
restauracin. En este caso, no existe la exigencia de tener instalada la opcin de RobotWare
FlexPendant Interface.
Si se usa el parmetro \Status, la ejecucin del programa espera hasta el inicio de la
aplicacin. Si los errores de la aplicacin no son gestionados, lo nico que se supervisa es el
resultado del inicio. Sin el parmetro \Status, se ordena al FlexPendant que inicie la
aplicacin, pero no existe ninguna comprobacin para determinar si el inicio es posible o no.
Status Descripcin
0 Aceptar
-1 No queda espacio en el FlexPendant para la nueva vista. Es posible tener
abiertas un mximo de 6 vistas a la vez en el FlexPendant.
-2 No se encuentra el conjunto. No existe.
-3 El archivo se ha encontrado, pero no es posible cargarlo.
-4 El conjunto existe, pero no puede crearse ninguna instancia nueva.
-5 El valor de typename no es vlido para este conjunto.
-6 InstanceID no se corresponde con el conjunto a cargar.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.221. UIShow - Visualizacin de interfaz de usuario
663 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la instruccin, la
variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la ejecucin contina en el
gestor de errores.
Si se usa el parmetro \Status, estas situaciones pueden ser gestionadas en el gestor de
errores:
Si no queda espacio libre en el FlexPendant para el conjunto, la variable de sistema
ERRNO cambia a ERR_UISHOW_FULL y la ejecucin contina en el gestor de errores.
El FlexPendant puede tener abiertas 6 vistas a la vez.
Si algo sale mal al intentar iniciar una vista, la variable de sistema ERRNO cambia a
ERR_UISHOW_FATAL y la ejecucin contina en el gestor de errores.
Limitaciones
Al utilizar la instruccin UIShow para iniciar aplicaciones individuales, existe la exigencia de
que el sistema est dotado de la opcin FlexPendant Interface.
Las aplicaciones iniciadas con la instruccin UIShow no sobreviven a las situaciones de cada
de alimentacin. Es posible usar la rutina de evento POWER ON para volver a configurar la
aplicacin.
Sintaxis
UIShow
[AssemblyName :=] < expression (IN) of string >,
[TypeName :=] < expression (IN) of string >,
[\InitCmd := < expression (IN) of string> ]
[\InstanceId := < persistent (PERS) of uishownum> ]
[\Status := < variable (VAR) of num> ]
[\NoCloseBtn ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
FlexPendant nterface Especificaciones del producto - Software de
controlador IRC5, RobotWare 5.0, seccin
Communication - FlexPendant Interface
Creacin de aplicaciones individuales para
el FlexPendant
Application manual - Robot Application Builder
uishownum uishownum - ID de instancia para UIShow en
la pgina 1222
Continuacin
1 Instrucciones
1.222. UnLoad - Descarga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 664


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.222. UnLoad - Descarga un mdulo de programa durante la ejecucin
Utilizacin
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 las instrucciones Load o StartLoad - WaitLoad.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin UnLoad.
Consulte tambin Ms ejemplos, a continuacin.
Ejemplo 1
UnLoad diskhome \File:="PART_A.MOD";
Realizar una operacin UnLoad para descargar de la memoria de programas el mdulo de
programa PART_A.MOD, que fue cargado anteriormente en la memoria con Load. (Consulte
la instruccin Load). diskhome es una constante de cadena predefinida para "HOME:".
Argumentos
UnLoad [\ErrIfChanged] | [\Save] FilePath [\File]
[\ErrIfChanged]
Tipo de dato: switch
Si se usa este argumento y el mdulo ha cambiado desde su carga en el sistema, la instruccin
generar el cdigo de recuperacin de errores ERR_NOTSAVED.
[\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.
Contina en la pgina siguiente
1 Instrucciones
1.222. UnLoad - Descarga un mdulo de programa durante la ejecucin
RobotWare - OS
665 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin UnLoad.
Ejemplo 1
UnLoad "HOME:/DOORDIR/DOOR1.MOD";
Realizar una operacin UnLoad para descargar de la memoria de programas el mdulo de
programa DOOR1.MOD, que fue cargado anteriormente en la memoria.
Ejemplo 2
UnLoad "HOME:" \File:="DOORDIR/DOOR1.MOD";
Lo mismo que en el ejemplo 1 anterior pero con otra sintaxis.
Ejemplo 3
Unload \Save, "HOME:" \File:="DOORDIR/DOOR1.MOD";
Lo mismo que en los ejemplos 1 y 2 anteriores, pero guarda el mdulo de programa antes de
la descarga.
Limitaciones
No se permite descargar mdulos de programa que se estn ejecutando (puntero de programa
en el mdulo).
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 puede dar lugar a
un paro protegido con los motores apagados y un mensaje de error "20025 Tiempo excesivo
Orden paro" en el FlexPendant.
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.
Si se utiliza el argumento \ErrIfChanged y el mdulo ha cambiado, la ejecucin de esta
rutina cambiar la variable de sistema ERRNO a ERR_NOTSAVED.
Estos errores pueden ser gestionados en el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.222. UnLoad - Descarga un mdulo de programa durante la ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 666


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
UnLoad
[\ErrIfChanged ,] | [\Save ,]
[FilePath:=]<expression (IN) of string>
[\File:= <expression (IN) of string>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobar referencias de programa CheckProgRef - Comprobar referencias de
programa en la pgina 36
Carga de un mdulo de programa Load - Carga un mdulo de programa
durante la ejecucin en la pgina 209
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Continuacin
1 Instrucciones
1.223. UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes
RobotWare - OS
667 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.223. UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes
Utilizacin
UnpackRawBytes se utiliza para desempaquetar el contenido de un contenedor de tipo
rawbytes en variables de tipo byte, num, dnum o string.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin UnpackRawBytes.
Ejemplo 1
VAR iodev io_device;
VAR rawbytes raw_data_out;
VAR rawbytes raw_data_in;
VAR num integer;
VAR dnum bigInt;
VAR num float;
VAR string string1;
VAR byte byte1;
VAR byte data1;
! Data packed in raw_data_out according to the protocol
...
Open "chan1:", io_device\Bin;
WriteRawBytes io_device, raw_data_out;
ReadRawBytes io_device, raw_data_in\Time := 1;
Close io_device;
De acuerdo con el protocolo conocido por el programador, el mensaje se enva al dispositivo
"chan1:". A continuacin, la respuesta es leda desde el dispositivo.
Por ejemplo, la respuesta contiene lo siguiente:
UnpackRawBytes raw_data_in, 1, integer \IntX := DINT;
El contenido de integer ser el nmero entero 5.
UnpackRawBytes raw_data_in, 5, float \Float4;
El contenido de float ser el nmero con decimales 234.6.
UnpackRawBytes raw_data_in, 9, string1 \ASCII:=17;
El contenido de string1 ser "This is real fun!".
UnpackRawBytes raw_data_in, 26, byte1 \Hex1;
Nmero de byte: Contenido:
1-4 Entero '5'
5-8 Flotante 234,6
9-25 Cadena: Qu bien me lo paso!
26 Valor hexadecimal '4D'
27 Cdigo ASCII 122, es decir, z
28-36 Entero 4294967295
Contina en la pgina siguiente
1 Instrucciones
1.223. UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 668


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El contenido de byte1 ser el valor hexadecimal 4D.
UnpackRawBytes raw_data_in, 27, data1 \ASCII:=1;
El contenido de data1 ser 122, el cdigo ASCII de "z".
UnpackRawBytes raw_data_in, 28, bigInt \IntX := LINT;
El contenido de bigInt ser 4294967295.
Argumentos
UnpackRawBytes RawData [ \Network ] StartIndex Value
[ \Hex1 ] | [ \IntX ] | [ \Float4 ] | [ \ASCII ]
RawData
Tipo de dato: rawbytes
El contenedor de variable del cual se desempaquetarn los datos.
[ \Network ]
Tipo de dato: switch
Indica que los valores enteros y flotantes deben desempaquetarse con la representacin big-
endian (orden de red) de RawData. Tanto ProfiBus como InterBus utilizan big-endian.
Sin este modificador, los valores enteros y flotantes se desempaquetan con la representacin
little-endian (sin el orden de la red) de RawData. DeviceNet utiliza little-endian.
Slo relevante junto con los parmetros opcionales \IntX - UINT, UDINT, ULINT, INT,
DINT , LINT y \Float4.
StartIndex
Tipo de dato: num
StartIndex, entre 1 y 1.024, indica a partir de dnde debe empezar el desempaquetado de
RawData.
Value
Tipo de dato: anytype
La variable que contiene los datos desempaquetados de RawData.
Los tipos de datos permitidos son: byte, num, dnum o string. No se permite el uso de
matrices.
[ \Hex1 ]
Tipo de dato: switch
Los datos a desempaquetar y situar en Value tienen el formato hexadecimal en 1 byte y se
convierten al formato decimal en una variable de tipo byte.
[ \IntX ]
Tipo de dato: inttypes
Los datos a desempaquetar tienen el formato que corresponde a la constante especificada del
tipo inttypes. Los datos se convertirn a una variable de tipo num o dnum que contiene un
entero y se almacenan en Value.
Consulte Datos predefinidos en la pgina 669.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.223. UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes
RobotWare - OS
669 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Float4 ]
Tipo de dato: switch
Los datos a desempaquetar y situar en Value tienen el formato flotante de 4 bytes y se
convertirn en una variable de tipo num que contiene un valor de coma flotante.
[ \ASCII ]
Tipo de dato: num
Los datos a desempaquetar y situar en Value tienen el formato byte o string.
Si Value es de tipo byte, los datos se interpretarn como cdigo ASCII y se convertirn al
formato byte (1 carcter).
Si Value es del tipo string, los datos se almacenarn como string (de 1 a 80 caracteres).
Los datos de cadena no son terminados con NULL en el caso de los datos de tipo rawbytes.
Es necesario programar uno de los argumentos, \Hex1, \IntX, \Float4 o \ASCII.
Se permiten las combinaciones siguientes:
*) Debe ser un entero dentro del rango de valor de la constante simblica seleccionada,
USINT, UINT, UDINT, SINT, INT o DINT.
*) Debe ser un entero dentro del rango de valor de la constante simblica seleccionada,
USINT, UINT, UDINT, ULINT, SINT, INT, DINT o LINT.
Ejecucin de programas
Durante la ejecucin del programa, se desempaquetan los datos del contenedor del tipo
rawbytes en una variable de tipo anytype.
Datos predefinidos
Se han definido las constantes simblicas siguientes para el tipo de dato inttypes. Puede
usarlas para especificar el tipo del entero almacenado en RawData con el parmetro \IntX.
Tipo de dato de Value: Parmetros de opcin permitidos:
num *) \IntX
dnum**) \IntX
num \Float4
string \ASCII:=n with n between 1 and 80
byte \Hex1 \ASCII:=1
Constante
simblica
Valor
constante
Formato de entero
Rango de valores
enteros
USINT 1 Entero de 1 byte sin signo 0 ... 255
UINT 2 Entero de 2 byte sin signo 0 ... 65 535
UDINT 4 Entero de 4 byte sin signo 0 - 8 388 608 *)
ULINT 8 Entero de 8 byte sin signo 0 - 4503599627370495**)
SINT - 1 Entero de 1 bytes con signo - 128 ... 127
INT - 2 Entero de 2 bytes con signo - 32 768 ... 32 767
DINT - 4 Entero de 4 bytes con signo - 8 388 607 ... 8 388 608 *)
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.223. UnpackRawBytes - Desempaqueta datos de un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 670


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
*) Limitacin de RAPID para el almacenamiento de enteros en el tipo de dato num.
*) Limitacin de RAPID para el almacenamiento de enteros en el tipo de dato dnum.
Sintaxis
UnpackRawBytes
[RawData := ] < variable (VAR) of rawbytes>
[ \ Network ] ,
[StartIndex := ] < expression (IN) of num> ,
[Value := ] < variable (VAR) of anytype>
[ \ Hex1 ]
| [ \ IntX := < expression (IN) of inttypes>]
| [ \ Float4 ]
| [ \ ASCII := < expression (IN) of num>] ;
Informacin relacionada
LINT - 8 Entero de 8 bytes con signo - 4503599627370495...
4503599627370495 **)
Constante
simblica
Valor
constante
Formato de entero
Rango de valores
enteros
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Borrado del contenido de un dato rawbytes ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato rawbytes CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un
dato de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Funciones para bits/bytes Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Continuacin
1 Instrucciones
1.224. VelSet - Cambia la velocidad programada
RobotWare - OS
671 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.224. VelSet - Cambia la velocidad programada
Utilizacin
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.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin VelSet.
Consulte tambin Ms ejemplos en la pgina 672.
Ejemplo 1
VelSet 50, 800;
Todas las velocidades programadas se reducen hasta el 50% del valor indicado en la
instruccin. Sin embargo, no se permite que TCP tenga una velocidad superior a los 800 mm/
s.
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/s.
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.
El argumento Max slo afecta a la velocidad del TCP.
Contina en la pgina siguiente
1 Instrucciones
1.224. VelSet - Cambia la velocidad programada
RobotWare - OS
3HAC16581-5 Revisin: H 672


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Los valores predeterminados de Override y Max son del 100% y de vmax.v_tcp mm/s *)
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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin VelSet.
Ejemplo 1
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/s hasta el punto p1 y de 800 mm/s 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 := ] < expression (IN) of num > ,
[ Max := ] < expression (IN) of num > ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Velocidad mxima del TCP para el robot
actual
MaxRobSpeed - Velocidad mxima del robot
en la pgina 901
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Continuacin
1 Instrucciones
1.225. WaitAI - Espera hasta que se establece un valor de seal analgica de entrada
RobotWare - OS
673 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.225. WaitAI - Espera hasta que se establece un valor de seal analgica de
entrada
Utilizacin
WaitAI (Wait Analog Input) se usa para esperar hasta que se establece un valor de seal
analgica de entrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitAI.
Ejemplo 1
WaitAI ai1, \GT, 5;
La ejecucin del programa slo contina una vez que la entrada analgica ai1 tiene un valor
mayor que 5.
Ejemplo 2
WaitAI ai1, \LT, 5;
La ejecucin del programa slo contina una vez que la entrada analgica ai1 tiene un valor
inferior a 5.
Argumentos
WaitAI Signal [\LT] | [\GT] Value [\MaxTime]
Signal
Tipo de dato: signalai
El nombre de la seal analgica de entrada.
[\LT]
Less Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitAI espera hasta que el valor de la seal analgica
es inferior que el valor de Value.
[\GT]
Greater Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitAI espera hasta que el valor de la seal analgica
es mayor que el valor de Value.
Value
Tipo de dato: num
El valor deseado para la seal.
Contina en la pgina siguiente
1 Instrucciones
1.225. WaitAI - Espera hasta que se establece un valor de seal analgica de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 674


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\MaxTime]
Maximum Time
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.
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 y el programa
contina tan pronto como la seal cambie al valor correcto. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).
Cuando el robot est en espera, el tiempo se supervisa. De forma predeterminada, el robot
puede esperar para siempre, pero el tiempo de espera mximo puede especificarse con el
argumento opcional \MaxTime. Si se sobrepasa este tiempo mximo, se genera un error.
En el modo manual y si el tiempo de espera es mayor que 3 s, aparecer una ventana de alerta
que pregunta si desea simular la instruccin. Si no desea que aparezca la ventana de alerta,
puede cambiar el valor del parmetro del sistema SimMenu a NO (Manual de referencia
tcnica - Parmetros del sistema, seccin Controller - System Misc).
Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que la seal cambie al valor
correcto, la variable de sistema ERRNO cambia a ERR_WAIT_MAXTIME y la ejecucin contina
en el gestor de errores.
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Sintaxis
WaitAI
[ Signal := ] < variable (VAR) of signalai> ,
[ \ LT] | [ \ GT] ,
[ Value := ] < expression (IN) of num>
[\MaxTime :=<expression (IN) of num>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Espera hasta que se activa o desactiva una
salida analgica
WaitAO - Espera hasta que se establece un
valor de seal analgica de salida en la
pgina 675
Continuacin
1 Instrucciones
1.226. WaitAO - Espera hasta que se establece un valor de seal analgica de salida
RobotWare - OS
675 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.226. WaitAO - Espera hasta que se establece un valor de seal analgica de salida
Utilizacin
WaitAO (Wait Analog Output) se usa para esperar hasta que se establece un valor de seal
analgica de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitAO.
Ejemplo 1
WaitAO ao1, \GT, 5;
La ejecucin del programa slo contina una vez que la salida analgica ao1 tiene un valor
mayor que 5.
Ejemplo 2
WaitAO ao1, \LT, 5;
La ejecucin del programa slo contina una vez que la salida analgica ao1 tiene un valor
menor que 5.
Argumentos
WaitAO Signal [\LT] | [\GT] Value [\MaxTime]
Signal
Tipo de dato: signalao
El nombre de la seal de salida analgica.
[\LT]
Less Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitAO espera hasta que el valor de la seal analgica
es inferior que el valor de Value.
[\GT]
Greater Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitAO espera hasta que el valor de la seal analgica
es mayor que el valor de Value.
Value
Tipo de dato: num
El valor deseado para la seal.
[\MaxTime]
Maximum Time
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.
Contina en la pgina siguiente
1 Instrucciones
1.226. WaitAO - Espera hasta que se establece un valor de seal analgica de salida
RobotWare - OS
3HAC16581-5 Revisin: H 676


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 y el programa
contina tan pronto como la seal cambie al valor correcto. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).
Cuando el robot est en espera, el tiempo se supervisa. De forma predeterminada, el robot
puede esperar para siempre, pero el tiempo de espera mximo puede especificarse con el
argumento opcional \MaxTime. Si se sobrepasa este tiempo mximo, se genera un error.
En el modo manual y si el tiempo de espera es mayor que 3 s, aparecer una ventana de alerta
que pregunta si desea simular la instruccin. Si no desea que aparezca la ventana de alerta,
puede cambiar el valor del parmetro del sistema SimMenu a NO (Manual de referencia
tcnica - Parmetros del sistema, seccin Controller - System Misc).
Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que la seal cambie al valor
correcto, la variable de sistema ERRNO cambia a ERR_WAIT_MAXTIME y la ejecucin contina
en el gestor de errores.
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Sintaxis
WaitAO
[ Signal := ] < variable (VAR) of signalao> ,
[ \ LT] | [ \ GT] ,
[ Value := ] < expression (IN) of num>
[\MaxTime :=<expression (IN) of num>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Espera hasta que se activa o desactiva una
entrada analgica
WaitAI - Espera hasta que se establece un
valor de seal analgica de entrada en la
pgina 673
Continuacin
1 Instrucciones
1.227. WaitDI - Espera hasta que se activa una seal digital de entrada
RobotWare - OS
677 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.227. WaitDI - Espera hasta que se activa una seal digital de entrada
Utilizacin
WaitDI (Wait Digital Input) se usa para esperar hasta que se activa una entrada digital.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitDI.
Ejemplo 1
WaitDI di4, 1;
La ejecucin del programa slo contina despus de que se ha activado la entrada di4.
Ejemplo 2
WaitDI grip_status, 0;
La ejecucin del programa slo contina despus de que se ha restablecido 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]
Maximum Time
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]
Timeout Flag
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.
Contina en la pgina siguiente
1 Instrucciones
1.227. WaitDI - Espera hasta que se activa una seal digital de entrada
RobotWare - OS
3HAC16581-5 Revisin: H 678


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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, tras esperar 3 s, aparecer una ventana de alerta que pregunta si desea
simular la instruccin. Si no desea que aparezca la ventana de alerta, puede cambiar el valor
del parmetro del sistema SimMenu a NO (Manual de referencia tcnica - Parmetros del
sistema, seccin Controller - System Misc).
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Sintaxis
WaitDI
[ Signal := ] < variable (VAR) of signaldi> ,
[ Value := ] < expression (IN) of dionum>
[\MaxTime :=<expression (IN) of num>]
[\TimeFlag:=<variable (VAR) of bool>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Continuacin
1 Instrucciones
1.228. WaitDO - Espera hasta que se activa una seal digital de salida
RobotWare - OS
679 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.228. WaitDO - Espera hasta que se activa una seal digital de salida
Utilizacin
WaitDO (Wait Digital Output) se usa para esperar hasta que se activa una salida digital.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitDO.
Ejemplo 1
WaitDO do4, 1;
La ejecucin del programa slo contina despus de que se ha activado la salida do4.
Ejemplo 2
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]
Maximum Time
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 y no se utiliza el argumento TimeFlag, es
posible llamar al gestor de errores con el cdigo de error ERR_WAIT_MAXTIME. Si no hay
ningn gestor de errores, se detiene la ejecucin.
[\TimeFlag]
Timeout Flag
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.
Contina en la pgina siguiente
1 Instrucciones
1.228. WaitDO - Espera hasta que se activa una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 680


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Si el valor de la seal de salida es correcto cuando se ejecuta la instruccin, el programa
sencillamente contina con la instruccin siguiente.
Si el valor de la seal de salida no es correcto, el robot pasa a 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 Time Flag o genera un error si no
se especifica. Si se especifica un TimeFlag, ste cambia a TRUE si se supera el tiempo. De
lo contrario cambia a FALSE.
En el modo manual, tras esperar 3 s, aparecer una ventana de alerta que pregunta si desea
simular la instruccin. Si no desea que aparezca la ventana de alerta, puede cambiar el valor
del parmetro del sistema SimulateMenu a NO (Manual de referencia tcnica - Parmetros
del sistema, seccin Controller - System Misc).
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Sintaxis
WaitDO
[ Signal :=] < variable (VAR) of signaldo >,
[ Value := ] < expression (IN) of dionum>
[\MaxTime :=<expression (IN) of num>]
[\TimeFlag:=<variable (VAR) of bool>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Espera hasta que se activa o desactiva una
entrada
WaitDI - Espera hasta que se activa una seal
digital de entrada en la pgina 677
Continuacin
1 Instrucciones
1.229. WaitGI - Espera hasta que se activa un grupo de entradas digitales
RobotWare - OS
681 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.229. WaitGI - Espera hasta que se activa un grupo de entradas digitales
Utilizacin
WaitGI (Wait Group digital Input) se utiliza para esperar hasta que un grupo de seales
digitales de entrada es cambiado a los valores especificados.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitGI.
Consulte tambin Ms ejemplos en la pgina 682.
Ejemplo 1
WaitGI gi4, 5;
La ejecucin del programa slo contina despus de que la entrada gi4 tiene el valor 5.
Ejemplo 2
WaitGI grip_status, 0;
La ejecucin del programa slo contina despus de que se ha restablecido la entrada
grip_status.
Argumentos
WaitGI Signal [\NOTEQ] | [\LT] | [\GT] Value | Dvalue [\MaxTime]
Signal
Tipo de dato: signalgi
El nombre de la seal de grupo de entradas digitales.
[\NOTEQ]
NOT EQual
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGI espera hasta que el valor de la seal digital
de grupo divide al valor de Value.
[\LT]
Less Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGI espera hasta que el valor de la seal digital
de grupo es inferior que el valor de Value.
[\GT]
Greater Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGI espera hasta que el valor de la seal digital
de grupo es mayor que el valor de Value.
Contina en la pgina siguiente
1 Instrucciones
1.229. WaitGI - Espera hasta que se activa un grupo de entradas digitales
RobotWare - OS
3HAC16581-5 Revisin: H 682


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Value
Tipo de dato: num
El valor deseado para la seal. Debe ser un valor entero dentro del rango de trabajo de la seal
digital de grupo de entradas que se utiliza. El valor permitido depende del nmero de seales
del grupo. El valor mximo que puede usarse en el argumento Value es de 8388608, que es
el valor que una seal digital de grupo de 23 bits puede tener como valor mximo.
Dvalue
Tipo de dato: dnum
El valor deseado para la seal. Debe ser un valor entero dentro del rango de trabajo de la seal
digital de grupo de entradas que se utiliza. El valor permitido depende del nmero de seales
del grupo. El valor mximo de los bits de seales que puede tener una seal digital de grupo
es de 32. Con una variable dnum es posible cubrir los valores del 0 al 4294967295, que
constituyen el rango que puede tener una seal digital de 32 bits.
[\MaxTime]
Maximum Time
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.
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 y el programa
contina tan pronto como la seal cambie al valor correcto. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).
Cuando el robot est en espera, el tiempo se supervisa. De forma predeterminada, el robot
puede esperar para siempre, pero el tiempo de espera mximo puede especificarse con el
argumento opcional \MaxTime. Si se sobrepasa este tiempo mximo, se genera un error.
En el modo manual y si el tiempo de espera es mayor que 3 s, aparecer una ventana de alerta
que pregunta si desea simular la instruccin. Si no desea que aparezca la ventana de alerta,
puede cambiar el valor del parmetro del sistema SimMenu a NO (Manual de referencia
tcnica - Parmetros del sistema, seccin Controller - System Misc).
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitGI.
Ejemplo 1
WaitGI gi1,\NOTEQ,0;
La ejecucin del programa slo contina despus de que la entrada gi1 es distinta del valor 0.
Ejemplo 2
WaitGI gi1,\LT,1;
La ejecucin del programa slo contina una vez que gi1 es menor que 1.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.229. WaitGI - Espera hasta que se activa un grupo de entradas digitales
RobotWare - OS
683 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 3
WaitGI gi1,\GT,0;
La ejecucin del programa slo contina una vez que gi1 es mayor que 0.
Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que la seal cambie al valor
correcto, la variable de sistema ERRNO cambia a ERR_WAIT_MAXTIME y la ejecucin contina
en el gestor de errores.
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Sintaxis
WaitGI
[ Signal := ] < variable (VAR) of signalgi> ,
[\ NOTEQ] | [ \ LT] | [ \ GT] ,
[ Value := ] < expression (IN) of num>
| [ Dvalue := ] < expression (IN) of dnum>
[\MaxTime :=<expression (IN) of num>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Espera hasta que un grupo de salidas
digitales se activa/desactiva
WaitGO - Espera hasta que se activa un
grupo de salidas digitales en la pgina 684
Continuacin
1 Instrucciones
1.230. WaitGO - Espera hasta que se activa un grupo de salidas digitales
RobotWare - OS
3HAC16581-5 Revisin: H 684


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.230. WaitGO - Espera hasta que se activa un grupo de salidas digitales
Utilizacin
WaitGO (Wait Group digital Output) se utiliza para esperar hasta que un grupo de seales
digitales de salida cambia a un valor especificado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitGO.
Consulte tambin Ms ejemplos en la pgina 685.
Ejemplo 1
WaitGO go4, 5;
La ejecucin del programa slo contina despus de que la salida go4 tiene el valor 5.
Ejemplo 2
WaitGO grip_status, 0;
La ejecucin del programa slo contina despus de que la salida grip_status se
restablece.
Argumentos
WaitGO Signal [\NOTEQ] | [\LT] | [\GT] Value |Dvalue [\MaxTime]
Signal
Tipo de dato: signalgo
El nombre de la seal de grupo de salidas digitales.
[\NOTEQ]
NOT EQual
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGO espera hasta que el valor de la seal digital
de grupo divide al valor de Value.
[\LT]
Less Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGO espera hasta que el valor de la seal digital
de grupo es inferior que el valor de Value.
[\GT]
Greater Than
Tipo de dato: switch
Si se usa este parmetro, la instruccin WaitGO espera hasta que el valor de la seal digital
de grupo es mayor que el valor de Value.
Contina en la pgina siguiente
1 Instrucciones
1.230. WaitGO - Espera hasta que se activa un grupo de salidas digitales
RobotWare - OS
685 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Value
Tipo de dato: num
El valor deseado para la seal. Debe ser un valor entero dentro del rango de trabajo de la seal
digital de grupo de salidas que se utiliza. El valor permitido depende del nmero de seales
del grupo. El valor mximo que puede usarse en el argumento Value es de 8388608, que es
el valor que una seal digital de grupo de 23 bits puede tener como valor mximo.
Dvalue
Tipo de dato: dnum
El valor deseado para la seal. Debe ser un valor entero dentro del rango de trabajo de la seal
digital de grupo de salidas que se utiliza. El valor permitido depende del nmero de seales
del grupo. El valor mximo de los bits de seales que puede tener una seal digital de grupo
es de 32. Con una variable dnum es posible cubrir los valores del 0 al 4294967295, que
constituyen el rango que puede tener una seal digital de 32 bits.
[\MaxTime]
Maximum Time
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.
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 y el programa
contina tan pronto como la seal cambie al valor correcto. El cambio se detecta mediante
una interrupcin, lo cual genera una respuesta rpida (no sondeada).
Cuando el robot est en espera, el tiempo se supervisa. De forma predeterminada, el robot
puede esperar para siempre, pero el tiempo de espera mximo puede especificarse con el
argumento opcional \MaxTime. Si se sobrepasa este tiempo mximo, se genera un error.
En el modo manual y si el tiempo de espera es mayor que 3 s, aparecer una ventana de alerta
que pregunta si desea simular la instruccin. Si no desea que aparezca la ventana de alerta,
puede cambiar el valor del parmetro del sistema SimMenu a NO (Manual de referencia
tcnica - Parmetros del sistema, seccin Controller - System Misc).
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitGO.
Ejemplo 1
WaitGO go1,\NOTEQ,0;
La ejecucin del programa slo contina despus de que la entrada go1 es distinta del valor 0.
Ejemplo 2
WaitGO go1,\LT,1;
La ejecucin del programa slo contina una vez que go1 es menor que 1.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.230. WaitGO - Espera hasta que se activa un grupo de salidas digitales
RobotWare - OS
3HAC16581-5 Revisin: H 686


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 3
WaitGO go1,\GT,0;
La ejecucin del programa slo contina una vez que go1 es mayor que 0.
Gestin de errores
Si se alcanza el tiempo lmite (parmetro \MaxTime) antes de que la seal cambie al valor
correcto, la variable de sistema ERRNO cambia a ERR_WAIT_MAXTIME y la ejecucin contina
en el gestor de errores.
Si no hay contacto con la unidad de E/S, la variable de sistema ERRNO cambia a
ERR_NORUNUNIT y la ejecucin contina en el gestor de errores.
A continuacin, estas situaciones pueden ser gestionadas en el gestor de errores.
Sintaxis
WaitGO
[ Signal := ] < variable (VAR) of signalgo> ,
[\ NOTEQ] | [ \ LT] | [ \ GT] ,
[ Value := ] < expression (IN) of num>
| [ Dvalue := ] < expression (IN) of dnum>
[\MaxTime :=<expression (IN) of num>] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera durante un periodo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Espera hasta que un grupo de entradas
digitales se activa/desactiva
WaitGI - Espera hasta que se activa un grupo
de entradas digitales en la pgina 681
Continuacin
1 Instrucciones
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
RobotWare - OS
687 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
Utilizacin
WaitLoad se utiliza para conectar el mdulo cargado con StartLoad a la tarea de programa.
El mdulo de programa cargado se aade a los mdulos que ya existen en la memoria de
programa.
El mdulo cargado con StartLoad debe estar conectado a la tarea de programa con la
instruccin WaitLoad para poder utilizar cualquiera de sus smbolos/rutinas.
WaitLoad tambin puede descargar un mdulo de programa si se utilizan los modificadores
opcionales. De esta forma se reduce el nmero de vnculos (1 en lugar de 2).
WaitLoad tambin puede comprobar si hay referencias no resueltas si se utiliza el
modificador opcional \CheckRef.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitLoad.
Consulte tambin Ms ejemplos en la pgina 688.
Ejemplo 1
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 programas el mdulo PART_A.MOD existente en 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 [\CheckRef]
[\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.
Contina en la pgina siguiente
1 Instrucciones
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
RobotWare - OS
3HAC16581-5 Revisin: H 688


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
LoadNo
Tipo de dato: loadsession
sta es una referencia a la sesin de carga, creada por la instruccin StartLoad que se
necesita para conectar a la tarea de programa el mdulo cargado.
[\CheckRef]
Tipo de dato: switch
Busca referencias no resueltas en la tarea de programa despus de la carga del mdulo. Si no
se usa, no se realiza ninguna bsqueda de referencias no resueltas.
Ejecucin de programas
A continuacin, la instruccin WaitLoad espera primero a que se complete la carga , si no se
ha 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 aceptarn siempre para las operaciones de carga StartLoad
- WaitLoad si no se utiliza el parmetro \CheckRef, pero ser un error de tiempo de
ejecucin al ejecutar una referencia no resuelta.
El sistema se inicia con la operacin de descarga, si se especifica. Si la descarga del mdulo
falla, no se carga ningn nuevo mdulo.
Si se produce algn error en la operacin de carga, incluidas las referencias no resueltas si se
usa el modificador \CheckRef, el mdulo cargado no estar ya disponible en la memoria de
programas.
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 cargar un programa que contiene un procedimiento principal desde un programa
principal (que tiene su propio procedimiento main), consulte la instruccin Load.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitLoad.
Ejemplo 1
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.
Ejemplo 2
StartLoad "HOME:" \File:="DOORDIR/DOOR2.MOD", load1;
! The robot can do some other work
WaitLoad \UnloadPath:="HOME:" \File:= "DOORDIR/DOOR1.MOD", load1;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
RobotWare - OS
689 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 en lugar de los dos
vnculos que aparecen a continuacin).
Load "HOME:" \File:="DOORDIR/DOOR2.MOD";
UnLoad "HOME:" \File:="DOORDIR/DOOR1.MOD";
Gestin de errores
Si no se encuentra el archivo especificado en la instruccin StartLoad, la variable de
sistema ERRNO cambia a ERR_FILNOTFND en la ejecucin de WaitLoad.
Si se produce otro tipo de problemas que impiden leer el archivo a cargar, la variable de
sistema ERRNO cambia a ERR_IOERROR.
Si el argumento LoadNo hace referencia a una sesin de carga desconocida, la variable de
sistema ERRNO cambia a ERR_UNKPROC.
Si el mdulo no puede cargarse porque la memoria de programas est llena, la variable de
sistema ERRNO cambia a ERR_PRGMEMFULL.
Si el mdulo ya est cargado en la memoria de programa, la variable de sistema ERRNO
cambia a ERR_LOADED.
Si el mdulo cargado contiene errores de sintaxis, la variable de sistema ERRNO cambia a
ERR_SYNTAX.
Si el mdulo cargado da lugar a errores de vnculo no recuperables, la variable de sistema
ERRNO cambia a ERR_LINKREF.
Si se usa WaitLoad con el modificador \CheckRef para buscar errores de referencia y la
memoria de programas contiene referencias no resueltas, la variable de sistema ERRNO
cambia a ERR_LINKREF.
Los errores siguientes slo pueden producirse cuando el argumento \UnloadPath se usa en
la instruccin WaitLoad:
Si no es posible descargar el mdulo 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 especificado en el argumento \UnloadPath
porque el mdulo de programa no ha sido cargado con Load o StartLoad-
WaitLoad desde el programa de RAPID, la variable de sistema ERRNO tambin
cambia a ERR_UNLOAD.
Estos errores pueden ser gestionados en el gestor de ERROR. Si se produce alguno de estos
errores, el mdulo en s ser descargado y no estar disponible en el gestor de ERROR.
NOTA!
RETRY no puede usarse para la recuperacin de errores generados por WaitLoad.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
RobotWare - OS
3HAC16581-5 Revisin: H 690


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
No es posible cambiar el valor actual de una variable PERS cargando el mismo mdulo con
un nuevo valor de inicializacin para el valor real de la variable PERS.
Ejemplo:
Se carga en el sistema el archivo my_module.mod con la declaracin PERS num
my_pers:=1;.
El archivo my_module.mod se edita en el disco con el nuevo valor de variable
persistente, por ejemplo PERS num my_pers:=3;
Se ejecuta el cdigo que aparece ms abajo.
Despus de cargar de nuevo my_module.mod, el valor de my_pers sigue siendo 1 en
lugar de 3.
StartLoad \Dynamic, "HOME:/my_module.mod", load1;
...
WaitLoad \UnLoadPath:="HOME:/my_module.mod", load1;
Esta limitacin es consecuencia de las caractersticas de las variables PERS. El valor actual
de la variable PERS no es alterado por el valor de inicializacin de la variable PERS cargada
nuevamente si la variable PERS ya se est utilizando en el momento de la carga.
Los problemas descritos anteriormente no se producen si se ejecuta en su lugar el cdigo
siguiente:
UnLoad "HOME:/my_module.mod";
StartLoad \Dynamic, "HOME:/my_module.mod", load1;
...
WaitLoad load1;
Otra opcin es utilizar una constante CONST para el valor de inicializacin y hacer la
asignacin siguiente al comienzo de la ejecucin del nuevo mdulo: my_pers :=
my_const;
Sintaxis
WaitLoad
[ \ UnloadPath := <expression (IN) of string> ,]
[ \ UnloadFile := <expression (IN) of string> ,]
[ LoadNo := ] <variable (VAR) of loadsession>
[ \ CheckRef ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Carga de mdulos de programa durante la
ejecucin
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
Sesin de carga loadsession - Programar una sesin de carga
en la pgina 1134
Carga de un mdulo de programa Load - Carga un mdulo de programa
durante la ejecucin en la pgina 209
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.231. WaitLoad - Conecta el mdulo cargado a la tarea
RobotWare - OS
691 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Cancelacin de la carga de un mdulo de
programa
CancelLoad - Cancela la carga de un mdulo
en la pgina 34
Comprobar referencias de programa CheckProgRef - Comprobar referencias de
programa en la pgina 36
Llamada a procedimiento con enlazamiento
en tiempo de ejecucin
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas - Llamada a procedimiento
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.232. WaitRob - Esperar hasta un punto de paro o una velocidad cero
RobotWare - OS
3HAC16581-5 Revisin: H 692


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.232. WaitRob - Esperar hasta un punto de paro o una velocidad cero
Utilizacin
WaitRob espera hasta que el robot y los ejes externos han llegado al punto de paro o tienen
una velocidad cero.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitRob.
Consulte tambin Ms ejemplos en la pgina 692.
Ejemplo 1
WaitRob \InPos;
La ejecucin del programa espera hasta que el robot y los ejes externos hayan llegado al punto
de paro.
Argumentos
WaitRob [\InPos] | [\ZeroSpeed]
[\InPos]
In Position
Tipo de dato: switch
Si se utiliza este argumento, el robot y los ejes externos deben haber llegado al punto de paro
(ToPoint de la instruccin de movimiento actual) para que pueda continuar la ejecucin.
[\ZeroSpeed]
Zero Speed
Tipo de dato: switch
Si se utiliza este argumento, el robot y los ejes externos deben presentar una velocidad cero
para que pueda continuar la ejecucin.
Si no se introduce ninguno de los argumentos \InPos ni \ZeroSpeed, aparece un mensaje
de error.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WaitRob.
Ejemplo 1
PROC stop_event()
WaitRob \ZeroSpeed;
SetDO rob_moving, 0;
ENDPROC
Este ejemplo muestra una rutina de evento que ejecuta un paro de programa. La seal digital
de salida rob_moving tiene el valor 1 mientras el robot se est moviendo y cambia a 0
cuando el robot y los ejes externos se han detenido tras un paro de programa.
Sintaxis
WaitRob
[ \ InPos ] | [ \ ZeroSpeed ];
Contina en la pgina siguiente
1 Instrucciones
1.232. WaitRob - Esperar hasta un punto de paro o una velocidad cero
RobotWare - OS
693 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Otras instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin
Definicin de datos de punto de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Continuacin
1 Instrucciones
1.233. WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de programa
Multitasking
3HAC16581-5 Revisin: H 694


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.233. WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de
programa
Utilizacin
WaitSyncTask se utiliza para sincronizar varias tareas de programa en un punto especial de
cada uno de los programas. Cada tarea de programa espera hasta que todas las tareas de
programa hayan alcanzado el punto de sincronizacin designado.
NOTA!
WaitSyncTask slo sincroniza la ejecucin del programa. Para conseguir la sincronizacin
tanto de la ejecucin del programa como de los movimientos del robot, la instruccin de
movimiento previa a WaitSyncTask debe ser un punto de paro en todas las tareas de
programa implicadas. Tambin es posible sincronizar tanto la ejecucin del programa como
los movimientos del robot utilizando WaitsyncTask \Inpos ... en todas las tareas de
programa implicadas.
AVISO!
Para conseguir un funcionamiento seguro de la sincronizacin, el punto de reunin
(parmetro SyncID) debe tener un nombre exclusivo en cada tarea de programa. Este nombre
debe ser tambin el mismo en el caso de las tareas de programa que deben coincidir en el
punto de reunin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitSyncTask.
Consulte tambin Ms ejemplos en la pgina 696.
Ejemplo 1
Ejemplo de programa de la tarea T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
...
WaitSyncTask sync1, task_list;
...
Ejemplo 2
Ejemplo de programa de la tarea T_ROB2
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
...
WaitSyncTask sync1, task_list;
...
La tarea de programa que llegue en primer lugar a WaitSyncTask con la identidad sync1
espera hasta que la otra tarea de programa llegue a su WaitSyncTask con la misma identidad
sync1. A continuacin, las dos tareas de programa T_ROB1 y T_ROB2 prosiguen su
ejecucin.
Contina en la pgina siguiente
1 Instrucciones
1.233. WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de programa
Multitasking
695 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
WaitSyncTask [\InPos] SyncID TaskList [\TimeOut]
[\InPos]
In Position
Tipo de dato: switch
Si se usa este argumento, los ejes del robot y los ejes externos deben estar completamente
parados antes de que esta tarea de programa empiece a esperar a otras tareas de programa para
que alcancen el punto de reunin especificado en la instruccin WaitSyncTask.
SyncID
Synchronization identity
Tipo de dato: syncident
Una variable que especifica el nombre del punto de sincronizacin (reunin). El tipo de dato
syncident es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de sincronizacin.
La variable debe ser definida y tener un nombre igual en todas las tareas de programa
cooperantes. Se recomienda definir siempre la variable global en cada tarea de programa (VAR
syncident ...).
TaskList
Tipo de dato: tasks
Una variable persistente que especifica en una lista de tareas (matriz) el nombre (string) de
las tareas de programa que deben coincidir en el punto de sincronizacin cuyo nombre se
especifica en el argumento SyncID.
La variable persistente debe ser definida y tener un nombre igual y el mismo contenido en
todas las tareas de programa cooperantes. Se recomienda definir siempre la variable global
en el sistema (PERS tasks ...).
[\TimeOut]
Tipo de dato: num
El tiempo mximo que debe esperarse hasta que las dems tareas de programa lleguen hasta
el punto de sincronizacin. Tiempo lmite en segundos (resolucin 0,001 s). Si este
argumento no se especifica, la tarea de programa esperar de forma indefinida.
Si el tiempo se agota antes de que todas las tareas de programa alcancen el punto de
sincronizacin, se llama al gestor de errores si lo hay, con el cdigo de error
ERR_WAITSYNCTASK. Si no hay ningn gestor de errores, se detiene la ejecucin.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.233. WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de programa
Multitasking
3HAC16581-5 Revisin: H 696


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
La tarea de programa actual espera en WaitSyncTask, hasta que las otras tareas de programa
indicadas en TaskList hayan alcanzado el mismo punto SyncID. En ese momento, la tarea
de programa correspondiente continuar ejecutando su siguiente instruccin.
Es posible programar WaitSyncTask entre instrucciones de movimiento con una zona de
esquina intercalada. En funcin del equilibrio de temporizacin entre las tareas de programa
en el momento de la ejecucin, el sistema puede:
Con la mejor temporizacin, mantener todas las zonas de esquina.
Con la peor temporizacin, mantener slo la zona de esquina de la tarea de programa
que alcance la instruccin WaitSyncTask en ltimo lugar. En el caso de las tareas de
programa, esto da como resultado puntos de paro.
Es posible excluir las tareas de programa de las funciones de pruebas del panel de seleccin
de tareas del FlexPendant.
Es posible utilizar los principios siguientes:
Principio 1) Excluir permanentemente en el ciclo la tarea de programa del panel de
seleccin de tareas antes del inicio desde Main (tras cambiar el PP a Main). Esta
desconexin ser vlida durante todo el ciclo del programa.
Principio 2) Excluir temporalmente la tarea de programa del panel de seleccin de
tareas entre varias instrucciones WaitSyncTask del ciclo de programa. El sistema
slo ejecutar las otras tareas conectadas, pero forzar al usuario con un mensaje de
error a conectar las tareas de programa excluidas antes de pasar por la instruccin
WaitSyncTask cooperativa.
Principio 3) Si se ejecuta de acuerdo con el principio 2, es posible excluir algn ciclo
permanente de tarea de programa del panel de seleccin de tareas para su posterior
ejecucin segn el principio 2, ejecutando la rutina de servicio SkipTaskExec.
Recuerde que el panel de seleccin de tareas est bloqueado mientras el sistema est
funcionando con movimiento sincronizado.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitSyncTask.
Ejemplo 1
Ejemplo de programa de la tarea T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
...
WaitSyncTask \InPos, sync1, task_list \TimeOut := 60;
...
ERROR
IF ERRNO = ERR_WAITSYNCTASK THEN
RETRY;
ENDIF
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.233. WaitSyncTask - Espera en un punto de sincronizacin con otras tareas de programa
Multitasking
697 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La tarea de programa T_ROB1 espera en la instruccin WaitSyncTask hasta que sus
unidades mecnicas estn en posicin y, a continuacin, espera a que la tarea de programa
T_ROB2 alcance el punto de sincronizacin con la misma identidad. Despus de esperar
durante 60 s, se llama al gestor de errores con ERRNO cambiado al valor
ERR_WAITSYNCTASK. A continuacin, se llama de nuevo a la instruccin WaitSyncTask
para una espera adicional de 60 s.
Gestin de errores
Si se alcanza el tiempo lmite debido a que WaitSyncTask no concluye a tiempo, la variable
de sistema ERRNO cambia a ERR_WAITSYNCTASK.
El error puede ser gestionado en el gestor ERROR.
Limitacin
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, el
reinicio tras la cada de alimentacin puede ser imposible.
WaitSyncTask \InPos no puede ejecutarse en rutinas de RAPID que estn conectadas a
los siguientes eventos especiales del sistema: PowerOn, Stop, QStop, o Restart.
Sintaxis
WaitSyncTask
[\ InPos ,]
[ SyncID := ] < variable (VAR) of syncident> ,
[ TaskList := ] < persistent array {*} (PERS) of tasks>
[ \ TimeOut := < expression (IN) of num > ] ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa
cooperativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Continuacin
1 Instrucciones
1.234. WaitTestAndSet - Espera a que se desactive una variable y la activa a continuacin
RobotWare - OS
3HAC16581-5 Revisin: H 698


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.234. WaitTestAndSet - Espera a que se desactive una variable y la activa a
continuacin
Utilizacin
WaitTestAndSet espera que el valor de una variable persistente de tipo bool cambie a
FALSE. Una vez que la variable cambia al valor FALSE, la instruccin cambia el valor a TRUE
y permite proseguir con la ejecucin. La variable persistente puede usarse como un semforo
binario para tareas de sincronizacin y exclusin mutua.
Esta instruccin tiene la misma funcionalidad subyacente que la funcin TestAndSet, pero
WaitTestAndSet espera siempre y cuando el valor bool sea FALSE, mientras que la
instruccin TestAndSet finaliza inmediatamente.
No se recomienda usar la instruccin WaitTestAndSet en rutinas TRAP, gestores de
deshacer o rutinas de evento.
A continuacin se enumeran algunos de los recursos que pueden necesitar proteccin de
acceso al mismo tiempo:
Uso de algunas rutinas de RAPID que presentan problemas de funcionamiento cuando
se ejecutan en paralelo
Uso del FlexPendant - Registro del operador
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitTestAndSet.
Consulte tambin Ms ejemplos en la pgina 699.
Ejemplo 1
MAIN program task:
PERS bool tproutine_inuse := FALSE;
...
WaitTestAndSet tproutine_inuse;
TPWrite "First line from MAIN";
TPWrite "Second line from MAIN";
TPWrite "Third line from MAIN";
tproutine_inuse := FALSE;
BACK1 program task:
PERS bool tproutine_inuse := FALSE;
...
WaitTestAndSet tproutine_inuse;
TPWrite "First line from BACK1";
TPWrite "Second line from BACK1";
TPWrite "Third line from BACK1";
tproutine_inuse := FALSE;
Para evitar mezclar las lneas en el registro del operador, una de MAIN y una de BACK1, el uso
de la funcin WaitTestAndSet garantiza que las tres lneas de cada tarea no se separen.
Contina en la pgina siguiente
1 Instrucciones
1.234. WaitTestAndSet - Espera a que se desactive una variable y la activa a continuacin
RobotWare - OS
699 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Si la tarea de programa MAIN activa el semforo WaitTestAndSet(tproutine_inuse) en
primer lugar, la tarea de programa BACK1 debe esperar hasta que la tarea de programa MAIN
libere el semforo.
Argumentos
WaitTestAndSet Object
Object
Tipo de dato: bool
Objeto de datos definido por el usuario para usarlo como semforo.- El objeto de datos debe
ser una variable persistente PERS. Si se utilizan funciones WaitTestAndSet entre tareas de
programa diferentes, el objeto debe ser de tipo PERS global.
Ejecucin de programas
Esta instruccin comprueba y define, en un solo paso indivisible, la variable persistente
definida por el usuario como en el ejemplo de cdigo que aparece a continuacin:
Si tiene el valor FALSE, lo cambia a TRUE
Si tiene el valor TRUE,, espera hasta que cambie a FALSE y lo cambia a TRUE
IF Object = FALSE THEN
Object := TRUE;
ELSE
! Wait until it become FALSE
WaitUntil Object = FALSE;
Object := TRUE;
ENDIF
A continuacin, la instruccin queda completada. Para evitar problemas, dado que las
variables persistentes conservan su valor si el puntero de programa PP se mueve a Main,
cambie siempre el objeto de semforo a FALSE en el evento de rutina START.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitTestAndSet.
Ejemplo 1
PERS bool semPers:= FALSE;
...
PROC doit(...)
WaitTestAndSet semPers;
...
semPers := FALSE;
ENDPROC
NOTA!
Si la ejecucin del programa se detiene en la rutina doit y el puntero de programa se traslada
a main, la variable semPers no se restablecer. Para evitarlo, devuelva la variable semPers
a FALSE en la rutina de evento START.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.234. WaitTestAndSet - Espera a que se desactive una variable y la activa a continuacin
RobotWare - OS
3HAC16581-5 Revisin: H 700


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
WaitTestAndSet
[ Object := ] < persistent (PERS) of bool> ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de una variable y activarla si
est desactivada (tipo sondeado con
WaitTime)
TestAndSet - Comprueba una variable y la
establece si no est establecida en la pgina
1027
Continuacin
1 Instrucciones
1.235. WaitTime - Espera una cantidad de tiempo determinada
RobotWare - OS
701 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.235. WaitTime - Espera una cantidad de tiempo determinada
Utilizacin
WaitTimese 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitTime.
Consulte tambin Ms ejemplos, a continuacin.
Ejemplo 1
WaitTime 0.5;
La ejecucin del programa espera 0,5 segundos.
Argumentos
WaitTime [\InPos] Time
[\InPos]
In Position
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. Este argumento slo puede usarse
si la tarea controla las unidades mecnicas.
Time
Tipo de dato: num
El tiempo, en segundos, que debe esperar la ejecucin del programa. Valor mnimo 0 s. Valor
mximo sin lmites. Resolucin 0,001 s.
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 el tiempo de espera es superior a 3 s, aparecer una ventana de alerta
que pregunta si desea simular la instruccin. Si no quiere que aparezca la ventana de alerta,
puede cambiar el parmetro del sistema Controller/System Misc./ Simulate Menu a 0.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WaitTime.
Ejemplo 1
WaitTime \InPos,0;
La ejecucin del programa espera hasta que los ejes del robot y los ejes externos se hayan
detenido completamente.
Contina en la pgina siguiente
1 Instrucciones
1.235. WaitTime - Espera una cantidad de tiempo determinada
RobotWare - OS
3HAC16581-5 Revisin: H 702


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El argumento \Inpos no puede usarse junto con el servo suave.
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.
WaitTime \Inpos no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop o Restart.
Sintaxis
WaitTime
[\InPos,]
[Time ':='] <expression (IN) of num>';'
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se cumple una condicin WaitUntil - Espera hasta que se cumple una
condicin en la pgina 703
Espera hasta que se activa o desactiva una
E/S
WaitDI - Espera hasta que se activa una
seal digital de entrada en la pgina 677
Continuacin
1 Instrucciones
1.236. WaitUntil - Espera hasta que se cumple una condicin
RobotWare - OS
703 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.236. WaitUntil - Espera hasta que se cumple una condicin
Utilizacin
WaitUntil se usa para esperar hasta que se cumpla una condicin lgica. Por ejemplo, puede
usarse para esperar hasta que se activan una o varias entradas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitUntil.
Consulte tambin Ms ejemplos en la pgina 704.
Ejemplo 1
WaitUntil di4 = 1;
La ejecucin del programa slo contina despus de que se ha activado la entrada di4.
Argumentos
WaitUntil [\InPos] Cond [\MaxTime] [\TimeFlag] [\PollRate]
[\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. Este argumento slo puede usarse si la tarea
controla las unidades mecnicas.
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 active 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]
Timeout Flag
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.
Contina en la pgina siguiente
1 Instrucciones
1.236. WaitUntil - Espera hasta que se cumple una condicin
RobotWare - OS
3HAC16581-5 Revisin: H 704


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\PollRate]
Polling Rate
Tipo de dato: num
La frecuencia de sondeo en segundos para la comprobacin si la condicin del argumento
Cond es TRUE. Esto significa que WaitUntil comprueba primero la condicin una vez, y si
no es TRUE, la comprueba cada segundo especificado hasta que sea TRUE. El valor mnimo
de la frecuencia de sondeo es 0,01 s. Si no se usa este argumento, se cambia la tasa de sondeo
predeterminada a 0,1 s.
Ejecucin de programas
Si no se cumple la condicin programada al ejecutar una instruccin WaitUntil, la
condicin se comprueba de nuevo cada 100 ms (o segn el valor especificado en el argumento
Cond).
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 TimeFlag o genera un error si no
se especifica el indicador. Si se especifica un TimeFlag, ste cambia a TRUE si se supera el
tiempo. De lo contrario cambia a FALSE.
En el modo manual, tras esperar ms de 3 s, aparecer una ventana de alerta que pregunta si
desea simular la instruccin. Si no desea que aparezca la ventana de alerta, puede cambiar el
valor del parmetro del sistema SimMenu a NO (Manual de referencia tcnica - Parmetros
del sistema, seccin Controller - System Misc).
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WaitUntil.
Ejemplo 1
VAR bool timeout;
WaitUntil start_input = 1 AND grip_status = 1\MaxTime := 60
\TimeFlag := timeout;
IF timeout THEN
TPWrite "No start order received within expected time";
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 del FlexPendant.
Ejemplo 2
WaitUntil \Inpos, di4 = 1;
La ejecucin del programa espera hasta que el robot se ha detenido y hasta que se activa la
entrada di4.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.236. WaitUntil - Espera hasta que se cumple una condicin
RobotWare - OS
705 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitacin
El argumento \Inpos no puede usarse junto con el servo suave.
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.
WaitUntil \Inpos no puede ejecutarse en rutinas de RAPID que estn conectadas a los
siguientes eventos especiales del sistema: PowerOn, Stop, QStop o Restart.
Sintaxis
WaitUntil
[\InPos,]
[Cond :=] <expression (IN) of bool>
[\MaxTime :=<expression (IN) of num>]
[\TimeFlag :=<variable (VAR) of bool>]
[\PollRate :=<expression (IN) of num>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Espera hasta que se activa o desactiva una
entrada
WaitDI - Espera hasta que se activa una
seal digital de entrada en la pgina 677
Espera durante un tiempo determinado WaitTime - Espera una cantidad de tiempo
determinada en la pgina 701
Expresiones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Continuacin
1 Instrucciones
1.237. WaitWObj - Espera a un objeto de trabajo en un transportador
Conveyor Tracking
3HAC16581-5 Revisin: H 706


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.237. WaitWObj - Espera a un objeto de trabajo en un transportador
Utilizacin
WaitWObj (Wait Work Object) establece una conexin a un objeto de trabajo de la ventana de
inicio de la unidad mecnica de transportador.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WaitWObj.
Consulte tambin Ms ejemplos en la pgina 707.
Ejemplo 1
WaitWObj wobj_on_cnv1;
El programa se conecta al primer objeto de la cola de objetos que se encuentre dentro de la
ventana de inicio del controlador. Si no hay ningn objeto en la ventana de inicio, la ejecucin
espera algn objeto.
Argumentos
WaitWObj WObj [ \RelDist ][\MaxTime][\TimeFlag]
WObj
Work Object
Tipo de dato: wobjdata
El objeto de trabajo mvil (sistema de coordenadas) con el que est relacionada la posicin
de robot indicada en la instruccin. El transportador de la unidad mecnica debe especificarse
con ufmec en el objeto de trabajo.
[ \RelDist ]
Relative Distance
Tipo de dato: num
Espera a que un objeto entre en la ventana de inicio y pase ms all de la distancia
especificada por el argumento. Si el objeto ya est conectado, la ejecucin espera hasta que
el objeto pasa ms all de la distancia indicada. Si el objeto ya ha pasado ms all de la
\RelDist la ejecucin contina.
[\MaxTime]
Maximum Time
Tipo de dato: num
El periodo mximo permitido para el tiempo de espera, expresado en segundos. Si el tiempo
se agota antes de la conexin del objeto o antes de que se alcance la distancia \Reldist, 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.
Contina en la pgina siguiente
1 Instrucciones
1.237. WaitWObj - Espera a un objeto de trabajo en un transportador
Conveyor Tracking
707 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\TimeFlag]
Timeout Flag
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 conecte el objeto o se alcance la distancia \Reldist. 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.
Ejecucin de programas
Si no hay ningn objeto en la ventana de inicio, la ejecucin del programa espera. Si hay un
objeto presente, ste se conecta al transportador y la ejecucin prosigue.
Si se ejecuta una segunda instruccin WaitWObj mientras la conexin ya existe, se devuelve
un error a no ser que ser utilice el argumento opcional \RelDist.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WaitWObj.
Ejemplo 1
WaitWObj wobj_on_cnv1\RelDist:=500.0;
Si no hay conexin, se espera a que el objeto entre en la ventana de inicio y a continuacin se
espera a que el objeto sobrepase un punto situado a 500 mm en el transportador.
Si ya existe una conexin al objeto, se espera a que el objeto sobrepase los 500 mm.
Si no hay conexin, se espera la presencia de un objeto en la ventana de inicio.
Ejemplo 2
WaitWObj wobj_on_cnv1\RelDist:=0.0;
Si ya existe una conexin, se contina la ejecucin dado que el objeto ya ha sobrepasado la
posicin de 0,0 mm.
Ejemplo 3
WaitWObj wobj_on_cnv1;
WaitWObj wobj_on_cnv1\RelDist:=0.0;
La primera instruccin WaitWObj se conecta al objeto que se encuentra en la ventana de
inicio. La segunda instruccin WaitWObj retorna inmediatamente si el objeto sigue
conectado. Sin embargo, esperar al siguiente objeto si el objeto anterior se ha movido ms
all de la distancia mxima o ha sido soltado.
Ejemplo 4
WaitWObj wobj_on_cnv1\RelDist:=500.0\MaxTime:=0.1
\Timeflag:=flag1;
La instruccin WaitWobj retorna inmediatamente si el objeto ha pasado ms all de los 500
mm pero, de lo contrario, espera a un objeto durante 0,1 s. Si ningn objeto sobrepasa la
posicin de 500 mm durante estos 0,1 s, la instruccin retornar con flag1 =TRUE.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.237. WaitWObj - Espera a un objeto de trabajo en un transportador
Conveyor Tracking
3HAC16581-5 Revisin: H 708


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Se requieren 50 ms para conectarse al primer objeto de la ventana de inicio. Despus de la
conexin, una segunda instruccin WaitWObj con el argumento opcional \RelDist slo
requiere el tiempo normal de ejecucin de una instruccin de RAPID.
Gestin de errores
Si se producen los errores siguientes durante la ejecucin de la instruccin WaitWobj, la
variable de sistema ERRNO cambia de valor. Estos errores pueden ser gestionados en el gestor
de errores.
Sintaxis
WaitWObj
[ WObj':=']< persistent (PERS) of wobjdata> ';'
[ '\'RelDist ':='< expression (IN) of num > ]
['\'MaxTime ':='<expression (IN) of num>]
[\TimeFlag :=<variable (VAR) of bool>] ;
Informacin relacionada
ERR_CNV_NOT_ACT El transportador no est activado.
ERR_CNV_CONNECT La instruccin WaitWobj ya est conectada.
ERR_CNV_DROPPED El objeto que estaba esperando la instruccin WaitWobj ha
sido desechado por otra tarea. (DSQC 354, revisin 2: Un
objeto ha pasado por la ventana de inicio).
ERR_WAIT_MAXTIME El objeto no lleg a tiempo y no hay ningn Timeflag.
Para obtener ms informacin sobre Consulte
Colocacin de un objeto de trabajo en un
transportador
DropWObj - Suelta un objeto de trabajo sobre
un transportador en la pgina 84
Conveyor tracking Application manual - Conveyor tracking
Continuacin
1 Instrucciones
1.238. WarmStart - Reinicia el controlador
RobotWare - OS
709 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.238. WarmStart - Reinicia el controlador
Utilizacin
WarmStart se utiliza para reiniciar el controlador.
Los parmetros del sistema pueden cambiarse desde RAPID con la instruccin
WriteCfgData. Debe reiniciar el controlador para que los cambios de algunos parmetros
del sistema entren en vigor. El reinicio puede realizarse con la instruccin WarmStart.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WarmStart.
Ejemplo 1
WriteCfgData "/MOC/MOTOR_CALIB/rob1_1","cal_offset",offset1;
WarmStart;
Escribe el valor de la variable de tipo num de tipo offset1 como offset de calibracin del eje
1 de rob1 y genera un reinicio del controlador.
Ejecucin de programas
Warmstart se aplica inmediatamente y el puntero de programa se sita en la instruccin
siguiente.
Sintaxis
WarmStart ;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Escritura de un atributo de un parmetro del
sistema
WriteCfgData - Escribe un atributo de un
parmetro del sistema en la pgina 726
Configuracin Manual de referencia tcnica - Parmetros
del sistema
1 Instrucciones
1.239. WHILE - Repite una o varias operaciones siempre y cuando...
RobotWare - OS
3HAC16581-5 Revisin: H 710


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.239. WHILE - Repite una o varias operaciones siempre y cuando...
Utilizacin
WHILEse 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WHILE.
Ejemplo 1
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 Condition DO ... ENDWHILE
Condition
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 del bloque WHILE y el control del programa se
transfiere inmediatamente a la instruccin que sigue al bloque WHILE.
Comentarios
Si es posible determinar el nmero de repeticiones, puede usarse la instruccin FOR.
Sintaxis
(EBNF)
WHILE <conditional expression> DO
<instruction list>
ENDWHILE
Contina en la pgina siguiente
1 Instrucciones
1.239. WHILE - Repite una o varias operaciones siempre y cuando...
RobotWare - OS
711 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Expresiones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Repeticin un nmero determinado de veces FOR - Repite un nmero determinado de
veces en la pgina 105
Continuacin
1 Instrucciones
1.240. WorldAccLim - Control de aceleracin en el sistema de coordenadas mundo
RobotWare - OS
3HAC16581-5 Revisin: H 712


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.240. WorldAccLim - Control de aceleracin en el sistema de coordenadas mundo
Utilizacin
WorldAccLim (World Acceleration Limitation) se usa para limitar la aceleracin y
deceleracin de la herramienta (y de la carga til) en el sistema de coordenadas mundo.
Slo se implementa en el tipo de robot IRB5400-04, IRB6600 y IRB7600 con movimiento
sobre track.
La limitacin se consigue conjuntamente en el punto central de gravedad de la herramienta
usada, la carga til real (si la hay) y la brida de montaje del robot.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WorldAccLim.
Ejemplo 1
WorldAccLim \On := 3.5;
Se limita la aceleracin a 3,5 m/s
2
.
Ejemplo 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
Contina en la pgina siguiente
1 Instrucciones
1.240. WorldAccLim - Control de aceleracin en el sistema de coordenadas mundo
RobotWare - OS
713 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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
La aceleracin mnima permitida es de 1 m/s
2
.
Gestin de errores
Si el argumento On se cambia a un valor que es 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 := <expression (IN) of num>] | [\Off ];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Datos de parmetros de movimiento motsetdata - Datos de parmetros de
movimiento en la pgina 1137
Reduccin de la aceleracin AccSet - Reduce la aceleracin en la pgina
15
Limitacin de aceleracin a lo largo de la
trayectoria
PathAccLim - Reduce la aceleracin del TCP
a lo largo de la trayectoria en la pgina 300
Continuacin
1 Instrucciones
1.241. Write - Escribe en un archivo o un canal serie alfanumrico
RobotWare - OS
3HAC16581-5 Revisin: H 714


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.241. Write - Escribe en un archivo o un canal serie alfanumrico
Utilizacin
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 bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin Write.
Consulte tambin Ms ejemplos en la pgina 716.
Ejemplo 1
Write logfile, "Execution started";
Se escribe el texto Execution started en el archivo al que se hace referencia en logfile.
Ejemplo 2
VAR num reg1:=5;
...
Write logfile, "No of produced parts="\Num:=reg1;
Se escribe el texto No of produced parts=5 en el archivo al que se hace referencia en
logfile.
Argumentos
Write IODevice String [\Num] | [\Bool] | [\Pos] | [\Orient] |
[\Dnum] [\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]
Numeric
Tipo de dato: num
El dato cuyo valor numrico se desea escribir a continuacin de la cadena de texto.
[\Bool]
Boolean
Tipo de dato: bool
El dato cuyo valor lgico se desea escribir a continuacin de la cadena de texto.
[\Pos]
Position
Tipo de dato: pos
El dato cuya posicin se desea escribir a continuacin de la cadena de texto.
Contina en la pgina siguiente
1 Instrucciones
1.241. Write - Escribe en un archivo o un canal serie alfanumrico
RobotWare - OS
715 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Orient]
Orientation
Tipo de dato: orient
El dato cuya orientacin se desea escribir a continuacin de la cadena de texto.
[\Dnum]
Numeric
Tipo de dato: dnum
El dato cuyo valor numrico se desea escribir a continuacin de la cadena de texto.
[\NoNewLine]
Tipo de dato: switch
Omite el carcter de salto de lnea que suele indicar el final del texto. Es decir, la siguiente
instruccin write escribe a continuacin en la misma lnea.
Ejecucin de programas
La cadena de texto se escribe en un archivo o un canal serie especificado. Tambin se escribe
un carcter de salto de lnea (LF), pero tambin puede omitirse si se usa el argumento
\NoNewLine.
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:
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.
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]"
\Dnum 0d4294967295 "4294967295"
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.241. Write - Escribe en un archivo o un canal serie alfanumrico
RobotWare - OS
3HAC16581-5 Revisin: H 716


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin Write.
Ejemplo 1
VAR iodev printer;
VAR num reg1:=0
VAR num stopprod_value:=0
...
Open "com2:", printer\Write;
stopprod_value:=stopprod;
WHILE stopprod_value = 0 DO
produce_part;
reg1:=reg1+1;
Write printer, "Produced part="\Num:=reg1\NoNewLine;
Write printer, " "\NoNewLine;
Write printer, CTime();
stopprod_value:=stopprod;
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:
Limitaciones
Los argumentos \Num, \Dnum, \Bool, \Pos y \Orient son excluyentes entre s y por tanto
no pueden usarse simultneamente en la 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) of iodev>,
[String:=] <expression (IN) of string>
[\Num:= <expression (IN) of num> ]
| [\Bool:= <expression (IN) of bool> ]
| [\Pos:= <expression (IN) of pos> ]
| [\Orient:= <expression (IN) of orient> ]
| [\Dnum:= <expression (IN) of dnum> ]
[\NoNewLine];
Produced part=473 09:47:15
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.241. Write - Escribe en un archivo o un canal serie alfanumrico
RobotWare - OS
717 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de un archivo o canal serie Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
1 Instrucciones
1.242. WriteAnyBin - Escribe datos en un canal serie o archivo binario
RobotWare - OS
3HAC16581-5 Revisin: H 718


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.242. WriteAnyBin - Escribe datos en un canal serie o archivo binario
Utilizacin
WriteAnyBin (Write Any Binary) se utiliza para escribir cualquier tipo de dato en un canal
serie o un archivo binario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteAnyBin.
Consulte tambin Ms ejemplos en la pgina 719.
Ejemplo 1
VAR iodev channel2;
VAR orient quat1 := [1, 0, 0, 0];
...
Open "com2:", channel2 \Bin;
WriteAnyBin channel2, quat1;
El dato de tipo orient data 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
Dato a 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 a escribir con esta instruccin WriteAnyBin deben ser de los tipos de datos num,
bool o string. Tambin puede usarse un registro, un componente de registro, una matriz o
un elemento de matriz de este tipo de dato de valor. No es posible usar datos enteros o datos
parciales con semivalor ni tipos de datos sin valor.
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.
Contina en la pgina siguiente
1 Instrucciones
1.242. WriteAnyBin - Escribe datos en un canal serie o archivo binario
RobotWare - OS
719 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WriteAnyBin.
Ejemplo 1
VAR iodev channel;
VAR num input;
VAR robtarget cur_robt;
Open "com2:", channel\Bin;
! Send the control character enq
WriteStrBin channel, "\05";
! Wait for the control character ack
input := ReadBin (channel \Time:= 0.1);
IF input = 6 THEN
! Send current robot position
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.
Limitaciones
Dado que WriteAnyBin-ReadAnyBin slo se han diseado para enviar datos internos de
controlador entre sistemas de control IRC5, no se hace pblico ningn protocolo de datos y
no es posible interpretar estos datos en ningn PC.
El desarrollo de software de control puede afectar a la compatibilidad, de forma que no es
posible usar WriteAnyBin-ReadAnyBin entre versiones de software de RobotWare
diferentes. Si un WriteAnyBin a un archivo se realiza con RobotWare versin 5.07, no es
posible leer el archivo con la instruccin ReadAnyBin de RobotWare versin 5.08. Y, en el
caso opuesto, si un WriteAnyBin a un archivo se realiza con RobotWare versin 5.08, no es
posible leer el archivo con la instruccin ReadAnyBin de RobotWare versin 5.07.
Versin 0 del software de controlador IRC5 igual o anterior a la RW5.07
Versin 1 del software de controlador IRC5 igual o posterior a la RW5.08
Siempre existe la compatibilidad entre todas las revisiones de cualquier versin de software.
Sintaxis
WriteAnyBin
[IODevice:=] <variable (VAR) of iodev>,
[Data:=] <expression (IN) of ANYTYPE>;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.242. WriteAnyBin - Escribe datos en un canal serie o archivo binario
RobotWare - OS
3HAC16581-5 Revisin: H 720


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie o archivos
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Lectura de datos de un canal serie o un
archivo
ReadAnyBin - Lee datos de un canal serie o
un archivo binario en la pgina 347
Continuacin
1 Instrucciones
1.243. WriteBin - Escribe en un canal serie binario
RobotWare - OS
721 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.243. WriteBin - Escribe en un canal serie binario
Utilizacin
WriteBin se usa para escribir un nmero de bytes en un canal serie binario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteBin.
Consulte tambin Ms ejemplos en la pgina 722.
Ejemplo 1
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: array of num
La lista (matriz) que contiene los nmeros (caracteres) que se desean escribir.
NChar
Number of Characters
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 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.
Contina en la pgina siguiente
1 Instrucciones
1.243. WriteBin - Escribe en un canal serie binario
RobotWare - OS
3HAC16581-5 Revisin: H 722


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WriteBin.
Ejemplo 1
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;!( e )
out_buffer{4} := 108;!( l )
out_buffer{5} := 108;!( l )
out_buffer{6} := 111;!( o )
out_buffer{7} := 32;!( )
out_buffer{8} := StrToByte("w"\Char);!( w )
out_buffer{9} := StrToByte("o"\Char);!( o )
out_buffer{10} := StrToByte("r"\Char);!( r )
out_buffer{11} := StrToByte("l"\Char);!( l )
out_buffer{12} := StrToByte("d"\Char);!( d )
out_buffer{13} := 3;!( etx )
WriteBin channel, out_buffer, 13;
ENDIF
Despus de un intercambio de indicativos de control (enq,ack) se escribe la cadena de texto
Hello world (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) of iodev>,
[Buffer:=] <array {*} (IN) of num>,
[NChar:=] <expression (IN) of num>;
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.243. WriteBin - Escribe en un canal serie binario
RobotWare - OS
723 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Conversin de una cadena de caracteres a
datos de byte
StrToByte - Convierte una cadena en un byte
en la pgina 1017
Datos de byte byte - Valores enteros de 0 a 255 en la pgina
1087
Continuacin
1 Instrucciones
1.244. WriteBlock - Escribe un bloque de datos en un dispositivo
Sensor Interface
3HAC16581-5 Revisin: H 724


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.244. WriteBlock - Escribe un bloque de datos en un dispositivo
Utilizacin
WriteBlock se utiliza para escribir un bloque de datos en un dispositivo que est conectado
a la interfaz de sensores serie. Los datos se capturan de un archivo.
La interfaz de sensores se comunica con los sensores a travs de canales serie, utilizando el
protocolo de transporte RTP1.
ste es un ejemplo de configuracin de un canal de sensor.
COM_PHY_CHANNEL:
Name COM1:
Connector COM1
Baudrate 19200
COM_TRP:
Name sen1:
Type RTP1
PhyChannel COM1
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteBlock.
Ejemplo 1
CONST string SensorPar := "flp1:senpar.cfg";
CONST num ParBlock:= 1;
! Connect to the sensor device "sen1:" (defined in sio.cfg).
SenDevice "sen1:";
! Write sensor parameters from flp1:senpar.cfg
! to sensor datablock 1.
WriteBlock "sen1:", ParBlock, SensorPar;
Argumentos
WriteBlock device BlockNo FileName [ \TaskName ]
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
BlockNo
Tipo de dato: num
El argumento BlockNo se utiliza para seleccionar el bloque de datos de sensor que se desea
escribir.
Contina en la pgina siguiente
1 Instrucciones
1.244. WriteBlock - Escribe un bloque de datos en un dispositivo
Sensor Interface
725 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
FileName
Tipo de dato: string
El argumento FileName se utiliza para seleccionar un archivo cuyos datos se escriben en el
bloque de datos de sensor seleccionado en el argumento BlockNo.
[ \TaskName ]
Tipo de dato: string
El argumento TaskName hace posible el acceso a dispositivos de otras tareas de RAPID.
Gestin de fallos
Sintaxis
WriteBlock
[ device := ] < expression(IN) of string>,
[ BlockNo := ] < expression (IN) of num > ,
[ FileName := ] < expression (IN) of string > ,
[ \ TaskName := < expression (IN) of string > ] ;
Informacin relacionada
Constante de error (valor de ERRNO) Descripcin
SEN_NO_MEAS Fallo de medicin
SEN_NOREADY Sensor incapaz de gestionar el comando
SEN_GENERRO Error general del sensor
SEN_BUSY Bus de sensor
SEN_UNKNOWN Sensor desconocido
SEN_EXALARM Error de sensor externo
SEN_CAALARM Error de sensor interno
SEN_TEMP Error de temperatura del sensor
SEN_VALUE Valor de comunicacin no vlido
SEN_CAMCHECK Fallo de comprobacin de sensor
SEN_TIMEOUT Error de comunicacin
Para obtener ms informacin sobre Consulte
Establecimiento de una conexin a un
dispositivo de sensor
SenDevice - Establece una conexin a un
dispositivo de sensor en la pgina 433
Escritura de una variable de sensor WriteVar - Escribe una variable en la pgina
734
Lectura de un bloque de datos de sensor ReadBlock - Lee un bloque de datos de un
dispositivo en la pgina 350
Configuracin de la comunicacin del sensor Manual de referencia tcnica - Parmetros
del sistema, seccin Communication
Continuacin
1 Instrucciones
1.245. WriteCfgData - Escribe un atributo de un parmetro del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 726


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.245. WriteCfgData - Escribe un atributo de un parmetro del sistema
Utilizacin
WriteCfgData se utiliza para escribir un atributo de un parmetro del sistema (de los datos
de configuracin).
Adems de escribir parmetros con nombre, tambin es posible buscar y actualizar
parmetros sin nombre.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteCfgData. Estos
dos ejemplos muestran cmo escribir datos de parmetro con nombre.
Ejemplo 1
VAR num offset1 := 1.2;
...
WriteCfgData "/MOC/MOTOR_CALIB/rob1_1","cal_offset",offset1;
Escribe en la variable de tipo num con nombre offset1 el offset de calibracin para el eje 1
de rob_1.
Ejemplo 2
VAR string io_unit := "my_unit";
...
WriteCfgData "/EIO/EIO_SIGNAL/process_error","Unit",io_unit;
Escribe en la variable de tipo string con nombre io_unit, el nombre de la unidad de E/S
en la que est definida la seal process_error.
Argumentos
WriteCfgData InstancePath Attribute CfgData [\ListNo]
InstancePath
Tipo de dato:string
Especifica una ruta hasta el parmetro que debe leerse.
En el caso de los parmetros con nombre, el formato de esta cadena es /DOMAIN/TYPE/
ParameterName.
En el caso de los parmetros sin nombre, el formato de esta cadena es /DOMAIN/TYPE/
Attribute/AttributeValue.
Attribute
Tipo de dato: string
El nombre del atributo del parmetro que se desea escribir.
CfgData
Tipo de dato: anytype
El objeto de dato del que se lee el nuevo dato que se desea almacenar. En funcin del tipo de
atributo, los tipos vlidos son bool, num o string.
Contina en la pgina siguiente
1 Instrucciones
1.245. WriteCfgData - Escribe un atributo de un parmetro del sistema
RobotWare - OS
727 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\ListNo]
Tipo de dato: num
Una variable que contiene el nmero de instancia de atributo+AttributeValue a
encontrar y actualizar.
La primera vez que aparece Attribute +AttributeValue tiene el nmero de instancia 0.
Si hay ms instancias a buscar, el valor devuelto en \ListNo se incrementar en 1. De lo
contrario, si no hay ms instancias el valor de retorno ser -1. La constante predefinida
END_OF_LIST puede usarse para comprobar si hay ms instancias a buscar.
Ejecucin de programas
El valor del atributo especificado por el argumento Attribute se define de acuerdo con el
valor del objeto de dato especificado por el argumento CfgData.
Si se usa el formato /DOMAIN/TYPE/ParameterName en InstancePath, slo estn
disponibles los parmetros con nombre, es decir, los parmetros cuyo primer atributo sea
name, Name o NAME.
En el caso de los parmetros sin nombre, utilice el parmetro opcional \ListNo para
especificar en cul de las instancias debe escribirse el valor del atributo. Se actualiza tras cada
escritura exitosa en la siguiente instancia disponible.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin WriteCfgdata. Estos dos ejemplos
muestran cmo escribir en parmetros sin nombre.
Ejemplo 1
VAR num read_index;
VAR num write_index;
VAR string read_str;
...
read_index:=0;
write_index:=0;
ReadCfgData "/EIO/EIO_CROSS/Act1/do_13", "Res", read_str,
\ListNo:=read_index;
WriteCfgData "/EIO/EIO_CROSS/Act1/do_13", "Res", "my"+read_str,
\ListNo:=write_index;
Lee la seal resultante de la seal digital de actuacin sin nombre do_13 y guarda el nombre
en la variable de cadena llamada read_str. A continuacin se actualiza el nombre a di_13
con el prefijo "my".
En este ejemplo, el dominio EIO tiene el cdigo cfg siguiente:
EIO_CROSS:
-Res "di_1" -Act1 "do_2"
-Res "di_2" -Act1 "do_2"
-Res "di_13" -Act1 "do_13"
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.245. WriteCfgData - Escribe un atributo de un parmetro del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 728


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
VAR num read_index;
VAR num write_index;
VAR string read_str;
...
read_index:=0;
write_index:=0;
WHILE read_index <> END_OF_LIST DO
ReadCfgData "/EIO/EIO_SIGNAL/Unit/USERIO", "Name", read_str,
\ListNo:=read_index;
WriteCfgData "/EIO/EIO_SIGNAL/Unit/USERIO", "Name",
"my"+read_str, \ListNo:=write_index;
ENDWHILE;
Se leen los nombres de todas las seales definidas para la unidad de E/S USERIO. Cambie los
nombres de las seales al nombre ledo, con el prefijo "my".
En este ejemplo, el dominio EIO tiene el cdigo cfg siguiente:
EIO_SIGNAL:
-Name "USERDO1" -SignalType "DO" -Unit "USERIO" -UnitMap "0"
-Name "USERDO2" -SignalType "DO" -Unit "USERIO" -UnitMap "1"
-Name "USERDO3" -SignalType "DO" -Unit "USERIO" -UnitMap "2"
Gestin de errores
Si no es posible encontrar los datos especificados con InstancePath +Attribute en la
base de datos de configuracin, la variable de sistema ERRNO cambia a ERR_CFG_NOTFND.
Si el tipo de dato del parmetro CfgData es distinto del tipo de dato real de los datos
encontrados y especificados con InstancePath +Attribute en la base de datos de
configuracin, la variable de sistema ERRNO cambia a ERR_CFG_ILLTYPE.
Si el dato del parmetro CfgData est fuera de lmites (valor mx./mn.), la variable de
sistema ERRNO cambia a ERR_CFG_LIMIT.
Si se est intentando escribir en un dato protegido contra escritura, la variable de sistema
ERRNO cambia a ERR_CFG_INTERNAL.
Si la variable del argumento \ListNo tiene un valor que est fuera del rango de instancias
disponibles (0 ... n) al ejecutar la instruccin, ERRNO cambia a ERR_CFG_OUTOFBOUNDS.
Estos errores pueden ser gestionados en el gestor de errores.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.245. WriteCfgData - Escribe un atributo de un parmetro del sistema
RobotWare - OS
729 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La conversin de las unidades de los programas de RAPID (mm, grados, segundos, etc.) a las
unidades del parmetro del sistema (metros, radianes, segundos, etc.), que afecta a CfgData
del tipo de datos num, debe ser realizada por el usuario en el programa de RAPID.
Debe reiniciar manualmente el controlador o ejecutar la instruccin WarmStart para que el
cambio entre en vigor.
Si se usa el formato /DOMAIN/TYPE/ParameterName en InstancePath, slo estn
disponibles los parmetros con nombre, es decir, los parmetros cuyo primer atributo sea
name, Name o NAME.
Las cadenas de RAPID estn limitadas a 80 caracteres. En algunos casos, puede ser en teora
una longitud demasiado reducida para la definicin de InstancePath, Attribute o
CfgData.
Datos predefinidos
La constante predefinida END_OF_LIST, con valor -1, puede usarse para detener la escritura
si no es posible encontrar ms instancias.
Sintaxis
WriteCfgData
[ InstancePath := ] < expression (IN) of string >,
[ Attribute := ] < expression (IN) of string >,
[ CfgData := ] < expression (IN) of anytype >
[\ListNo:= < variable (VAR) of num >];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Lectura de un atributo de un parmetro del
sistema
ReadCfgData - Lee un atributo de un
parmetro del sistema en la pgina 352
Obtencin del nombre del robot de la tarea
actual
RobName - Obtiene el nombre del robot del
TCP en la pgina 974
Configuracin Manual de referencia tcnica - Parmetros
del sistema
Reinicio en caliente del sistema WarmStart - Reinicia el controlador en la
pgina 709
Continuacin
1 Instrucciones
1.246. WriteRawBytes - Escribe un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 730


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.246. WriteRawBytes - Escribe un dato de tipo rawbytes
Utilizacin
WriteRawBytes se usa para escribir datos de tipo rawbytes en un dispositivo abierto con
Open\Bin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteRawBytes.
Ejemplo 1
VAR iodev io_device;
VAR rawbytes raw_data_out;
VAR rawbytes raw_data_in;
VAR num float := 0.2;
VAR string answer;
ClearRawBytes raw_data_out;
PackDNHeader "10", "20 1D 24 01 30 64", raw_data_out;
PackRawBytes float, raw_data_out, (RawBytesLen(raw_data_out)+1)
\Float4;
Open "/FCI1:/dsqc328_1", io_device \Bin;
WriteRawBytes io_device, raw_data_out;
ReadRawBytes io_device, raw_data_in \Time:=1;
Close io_device;
UnpackRawBytes raw_data_in, 1, answer \ASCII:=10;
En este ejemplo, raw_data_out se deja sin contenido y se empaqueta con el encabezado de
DeviceNet, junto con un valor de coma flotante con el valor 0.2.
Se abre un dispositivo, "/FCI1/:dsqc328_1", y los datos vlidos actuales de
raw_data_out se escriben en el dispositivo. A continuacin, el programa espera al menos
1 segundo antes de leer del dispositivo, almacenando en raw_data_in la informacin leda.
Despus de cerrar el dispositivo /FCI1/:dsqc328_1, los datos ledos se desempaquetan
dando lugar a una cadena de 10 caracteres que se almacenan en "answer".
Argumentos
WriteRawBytes IODevice RawData [\NoOfBytes]
IODevice
Tipo de dato: iodev
IODevice es el identificador del dispositivo en el que se debe escribir el dato RawData.
RawData
Tipo de dato: rawbytes
RawData el contenedor de datos que se debe escribir en IODevice.
Contina en la pgina siguiente
1 Instrucciones
1.246. WriteRawBytes - Escribe un dato de tipo rawbytes
RobotWare - OS
731 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\NoOfBytes]
Tipo de dato: num
\NoOfBytes indica cuntos bytes de RawData deben escribirse en IODevice, empezando
por el nmero de ndice 1.
Si \NoOfBytes no est presente, se escribe en IODevice la longitud actual de bytes vlidos
de la variable RawData.
Ejecucin de programas
Durante la ejecucin del programa, los datos se escriben en el dispositivo indicado por
IODevice.
Si se utiliza WriteRawBytes junto con los comandos de bus de campo, por ejemplo
DeviceNet, el bus de campo siempre enva una respuesta. La respuesta debe ser manejada en
RAPID con la instruccin ReadRawBytes.
La longitud actual de los bytes vlidos de la variable RawData no cambia.
Gestin de errores
Si se produce un error durante la escritura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
A continuacin, es posible gestionar este error en el gestor de errores.
Sintaxis
WriteRawBytes
[IODevice := ] < variable (VAR) of iodev> ,
[RawData := ] < variable (VAR) of rawbytes>
[\NoOfBytes := < expression (IN) of num>];
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un
dato de tipo rawbytes en la pgina 949
Borrado del contenido de un dato rawbytes ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato rawbytes CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un
encabezado de DeviceNet en datos
rawbytes en la pgina 293
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un
dato de tipo rawbytes en la pgina 296
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Continuacin
1 Instrucciones
1.247. WriteStrBin - Escribe una cadena de caracteres en un canal serie binario
RobotWare - OS
3HAC16581-5 Revisin: H 732


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.247. WriteStrBin - Escribe una cadena de caracteres en un canal serie binario
Utilizacin
WriteStrBin (Write String Binary) se utiliza para escribir una cadena de un canal serie o un
archivo binario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteStrBin.
Consulte tambin Ms ejemplos en la pgina 733.
Ejemplo 1
WriteStrBin channel2, "Hello World\0A";
Se escribe la cadena "Hello World\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
String
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.
Contina en la pgina siguiente
1 Instrucciones
1.247. WriteStrBin - Escribe una cadena de caracteres en un canal serie binario
RobotWare - OS
733 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WriteStrBin.
Ejemplo 1
VAR iodev channel;
VAR num input;
Open "com2:", channel\Bin;
! Send the control character enq
WriteStrBin channel, "\05";
! Wait for the control character ack
input := ReadBin (channel \Time:= 0.1);
IF input = 6 THEN
! Send a text starting with control character stx and ending with
etx
WriteStrBin channel, "\02Hello world\03";
ENDIF
Close channel;
Despus de un intercambio de indicativos de control, se escribe la cadena de texto Hello
world (con los caracteres de control asociados en formato hexadecimal) en un canal serie
binario.
Sintaxis
WriteStrBin
[IODevice:=] <variable (VAR) of iodev>,
[Str:=] <expression (IN) of string>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Lectura de cadenas binarias ReadStrBin - Lee una cadena de un canal
serie o un archivo binario en la pgina 965
Continuacin
1 Instrucciones
1.248. WriteVar - Escribe una variable
Sensor Interface
3HAC16581-5 Revisin: H 734


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.248. WriteVar - Escribe una variable
Utilizacin
WriteVar se utiliza para escribir una variable en un dispositivo que est conectado a la
interfaz de sensores serie..
La interfaz de sensores se comunica con los sensores a travs de canales serie, utilizando el
protocolo de transporte RTP1.
ste es un ejemplo de configuracin de un canal de sensor.
COM_PHY_CHANNEL:
Name COM1:
Connector COM1
Baudrate 19200
COM_TRP:
Name sen1:
Type RTP1
PhyChannel COM1
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WriteVar.
Ejemplo 1
! Define variable numbers
CONST num SensorOn := 6;
CONST num XCoord := 8;
CONST num YCoord := 9;
CONST num ZCoord := 10;
VAR pos SensorPos;
! Connect to the sensor device sen1: (defined in sio.cfg).
SenDevice "sen1:";
! Request start of sensor meassurements
WriteVar "sen1:", SensorOn, 1;
! Read a cartesian position from the sensor.
SensorPos.x := ReadVar "sen1:", XCoord;
SensorPos.y := ReadVar "sen1:", YCoord;
SensorPos.z := ReadVar "sen1:", ZCoord;
! Stop sensor
WriteVar "sen1:", SensorOn, 0;
Contina en la pgina siguiente
1 Instrucciones
1.248. WriteVar - Escribe una variable
Sensor Interface
735 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
WriteVar device VarNo VarData [ \TaskName ]
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
VarNo
Tipo de dato: num
El argumento VarNo se utiliza para seleccionar la variable de sensor.
VarData
Tipo de dato: num
El argumento VarData define qu datos deben ser escritos en la variable seleccionada por el
argumento VarNo.
[ \TaskName ]
Tipo de dato: string
El argumento TaskName hace posible el acceso a dispositivos de otras tareas de RAPID.
Gestin de fallos
Sintaxis
WriteVar
[ device := ] < expression (IN) of string> ,
[ VarNo := ] < expression (IN) of num > ,
[ VarData := ] < expression (IN) of num > ,
[ \ TaskName := < expression (IN) of string > ] ;
Constante de error (valor de ERRNO) Descripcin
SEN_NO_MEAS Fallo de medicin
SEN_NOREADY Sensor incapaz de gestionar el comando
SEN_GENERRO Error general del sensor
SEN_BUSY Sensor ocupado
SEN_UNKNOWN Sensor desconocido
SEN_EXALARM Error de sensor externo
SEN_CAALARM Error de sensor interno
SEN_TEMP Error de temperatura del sensor
SEN_VALUE Valor de comunicacin no vlido
SEN_CAMCHECK Fallo de comprobacin de sensor
SEN_TIMEOUT Error de comunicacin
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.248. WriteVar - Escribe una variable
Sensor Interface
3HAC16581-5 Revisin: H 736


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Establecimiento de una conexin a un
dispositivo de sensor
SenDevice - Establece una conexin a un
dispositivo de sensor en la pgina 433
Lectura de una variable de sensor ReadVar - Lee una variable de un dispositivo
en la pgina 967
Escritura de un bloque de datos de sensor WriteBlock - Escribe un bloque de datos en un
dispositivo en la pgina 724
Lectura de un bloque de datos de sensor ReadBlock - Lee un bloque de datos de un
dispositivo en la pgina 350
Configuracin de la comunicacin del sensor Manual de referencia tcnica - Parmetros
del sistema, seccin Communication
Continuacin
1 Instrucciones
1.249. WZBoxDef - Define una zona mundo con forma de prisma
World Zones
737 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.249. WZBoxDef - Define una zona mundo con forma de prisma
Utilizacin
WZBoxDef (World Zone Box Definition) se usa para definir una zona mundo con forma de
prisma recto cuyos ejes son paralelos a los ejes del sistema de coordenadas mundo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZBoxDef.
Ejemplo 1
xx0500002205
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.
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,z) en mm que define una esquina inferior del prisma.
Contina en la pgina siguiente
1 Instrucciones
1.249. WZBoxDef - Define una zona mundo con forma de prisma
World Zones
3HAC16581-5 Revisin: H 738


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 activo (se usa el componente trans de robtarget por ejemplo p1.trans
como argumento).
Sintaxis
WZBoxDef
[[\Inside] | [\Outside],]
[LowPoint:=]<expression (IN) of pos>,
[Shape:=]<variable (VAR) of shapedata>,
[HighPoint:=]<expression (IN) of pos>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con
forma cilndrica en la pgina 739
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo
para la limitacin de los ejes en la pgina 755
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
1 Instrucciones
1.250. WZCylDef - Define una zona mundo con forma cilndrica
World Zones
739 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.250. WZCylDef - Define una zona mundo con forma cilndrica
Utilizacin
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZCylDef.
Ejemplo 1
xx0500002206
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.
Shape
Tipo de dato: shapedata
Una variable para el almacenamiento del volumen definido (datos privados del sistema).
Contina en la pgina siguiente
1 Instrucciones
1.250. WZCylDef - Define una zona mundo con forma cilndrica
World Zones
3HAC16581-5 Revisin: H 740


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 el componente trans de robtarget por ejemplo p1.trans como
argumento).
Sintaxis
WZCylDef
[\Inside] | [\Outside],
[Shape:=]<variable (VAR) of shapedata>,
[centerPoint:=]<expression (IN) of pos>,
[Radius:=]<expression (IN) of num>,
[Height:=]<expression (IN) of num>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Definicin de zonas mundo en forma de
prisma
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo para
la limitacin de los ejes en la pgina 755
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.250. WZCylDef - Define una zona mundo con forma cilndrica
World Zones
741 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Activacin de la supervisin de lmites de
las zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.251. WZDisable - Desactiva la supervisin de las zonas mundo temporales
World Zones
3HAC16581-5 Revisin: H 742


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.251. WZDisable - Desactiva la supervisin de las zonas mundo temporales
Utilizacin
WZDisable (World Zone Disable) se utiliza para desactivar la supervisin de una zona
mundo temporal, definida anteriormente para detener el movimiento o activar una salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZDisable.
Ejemplo 1
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.
Sintaxis
WZDisable
[WorldZone:=]<variable or persistent (INOUT) of
wztemporary>;
Contina en la pgina siguiente
1 Instrucciones
1.251. WZDisable - Desactiva la supervisin de las zonas mundo temporales
World Zones
743 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Datos de zonas mundo temporales wztemporary - Datos de zona mundo temporal
en la pgina 1229
Activacin de la supervisin de lmites de
las zonas mundo
WZLimSup - Activa la supervisin de lmites de
las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Activacin de zonas mundo WZEnable - Activa la supervisin de las zonas
mundo temporales en la pgina 748
Eliminacin de zonas mundo WZFree - Elimina la supervisin de las zonas
mundo temporales en la pgina 750
Continuacin
1 Instrucciones
1.252. WZDOSet - Activacin de salidas digitales basadas en zonas mundo
World Zones
3HAC16581-5 Revisin: H 744


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.252. WZDOSet - Activacin de salidas digitales basadas en zonas mundo
Utilizacin
WZDOSet (World Zone Digital Output Set) 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZDOSet.
Consulte tambin Ms ejemplos en la pgina 746.
Ejemplo 1
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]
Temporary
Tipo de dato: switch
La zona mundo a definir es una zona mundo temporal.
[\Stat]
Stationary
Tipo de dato: switch
La zona mundo a definir es una zona mundo estacionaria.
Es imprescindible especificar uno de los argumentos \Temp o \Stat.
Contina en la pgina siguiente
1 Instrucciones
1.252. WZDOSet - Activacin de salidas digitales basadas en zonas mundo
World Zones
745 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
WorldZone
Tipo de dato: wztemporary O bien wzstationary
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.
[\Inside]
Tipo de dato: switch
La seal digital de salida se activa cuando el TCP del robot o los ejes especificados se
encuentran dentro del volumen definido.
[\Before]
Tipo de dato: switch
La seal digital de salida se activa antes de que el TCP del robot o los ejes especificados
alcancen 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, FP). Cambie el valor de Access Level de la seal en los
parmetros del sistema o en los ejes especificados.
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 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.252. WZDOSet - Activacin de salidas digitales basadas en zonas mundo
World Zones
3HAC16581-5 Revisin: H 746


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WZDOSet.
Ejemplo 1
VAR wztemporary home;
VAR wztemporary service;
PERS wztemporary equip1:=[0];
PROC main()
...
! Definition of all temporary world zones
zone_output;
...
! equip1 in robot work area
WZEnable equip1;
...
! equip1 out of robot work area
WZDisable equip1;
...
! No use for equip1 any more
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 not in robot work area
WZDisable equip1;
ENDPROC
Se definen las zonas mundo temporales home y service en el programa de aplicacin para
cambiar el valor de las seales do_home y do_service, cuando el robot est dentro de la
esfera home o service respectivamente durante la ejecucin del programa o durante los
movimientos manuales.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.252. WZDOSet - Activacin de salidas digitales basadas en zonas mundo
World Zones
747 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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.
Las zonas mundo temporales pueden ser desactivadas (WZDisable), activadas de nuevo
(WZEnable) o borrarse (WZFree)) en el programa de RAPID.
Sintaxis
WZDOSet
[[\Temp] | [\Stat],]
[WorldZone:=]<variable or persistent (INOUT) of wztemporary>
[\Inside] | [\Before] ,
[Shape:=]<variable (VAR) of shapedata>,
[Signal:=]<variable (VAR) of signaldo>,
[SetValue:=]<expression (IN) of dionum>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Zona mundo temporal wztemporary - Datos de zona mundo
temporal en la pgina 1229
Zona mundo estacionaria wzstationary - Datos de zona mundo estacio-
naria en la pgina 1227
Definicin de zonas mundo en forma de
prisma recto
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con
forma cilndrica en la pgina 739
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Nivel de acceso de las seales Manual de referencia tcnica - Parmetros
del sistema, seccin I/O - Signal - Access
Level
Continuacin
1 Instrucciones
1.253. WZEnable - Activa la supervisin de las zonas mundo temporales
World Zones
3HAC16581-5 Revisin: H 748


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.253. WZEnable - Activa la supervisin de las zonas mundo temporales
Utilizacin
WZEnable (World Zone Enable) se utiliza para reactivar la supervisin de una zona mundo
temporal, definida anteriormente para detener el movimiento o activar una salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZEnable.
Ejemplo 1
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.
Sintaxis
WZEnable
[WorldZone:=]<variable or persistent (INOUT) of
wztemporary>;
Contina en la pgina siguiente
1 Instrucciones
1.253. WZEnable - Activa la supervisin de las zonas mundo temporales
World Zones
749 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Datos de zonas mundo temporales wztemporary - Datos de zona mundo temporal
en la pgina 1229
Activacin de la supervisin de lmites de
las zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Desactivacin de zonas mundo WZDisable - Desactiva la supervisin de las
zonas mundo temporales en la pgina 742
Eliminacin de zonas mundo WZFree - Elimina la supervisin de las zonas
mundo temporales en la pgina 750
Continuacin
1 Instrucciones
1.254. WZFree - Elimina la supervisin de las zonas mundo temporales
World Zones
3HAC16581-5 Revisin: H 750


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.254. WZFree - Elimina la supervisin de las zonas mundo temporales
Utilizacin
WZFree (World Zone Free) se utiliza para eliminar la definicin de una zona mundo temporal,
definida anteriormente para detener el movimiento o activar una salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZFree.
Ejemplo 1
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.
Sintaxis
WZFree
[WorldZone:=]<variable or persistent (INOUT) of
wztemporary>;
Contina en la pgina siguiente
1 Instrucciones
1.254. WZFree - Elimina la supervisin de las zonas mundo temporales
World Zones
751 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Datos de zonas mundo temporales wztemporary - Datos de zona mundo temporal
en la pgina 1229
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Desactivacin de zonas mundo WZDisable - Desactiva la supervisin de las
zonas mundo temporales en la pgina 742
Activacin de zonas mundo WZEnable - Activa la supervisin de las zonas
mundo temporales en la pgina 748
Continuacin
1 Instrucciones
1.255. WZHomeJ ointDef - Define una zona mundo para las posiciones iniciales de los ejes
World Zones
3HAC16581-5 Revisin: H 752


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.255. WZHomeJointDef - Define una zona mundo para las posiciones iniciales de
los ejes
Utilizacin
WZHomeJointDef (World Zone Home Joint Definition) 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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZHomeJointDef.
Ejemplo 1
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
to 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).
Contina en la pgina siguiente
1 Instrucciones
1.255. WZHomeJ ointDef - Define una zona mundo para las posiciones iniciales de los ejes
World Zones
753 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
En la figura siguiente se muestra la definicin de espacios de ejes para los ejes de rotacin.
xx0500002208
En la figura siguiente se muestra la definicin de espacios de ejes para los ejes lineales.
xx0500002209
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, pero 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 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 eje activo 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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.255. WZHomeJ ointDef - Define una zona mundo para las posiciones iniciales de los ejes
World Zones
3HAC16581-5 Revisin: H 754


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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
HOME 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 HOME 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 del programa o mediante un movimiento especial.
Por ejemplo, si un eje con supervisin est fuera de la posicin de ejes HOME pero est
desactivado, esto no impide que la seal digital de salida de la posicin de ejes HOME se
establezca si todos los dems ejes activos con supervisin de espacio se encuentran dentro de
la posicin de ejes HOME. 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 HOME. La salida digital se
restablece.
Sintaxis
WZHomeJointDef
[[\Inside] | [\Outside],]
[Shape:=]<variable (VAR) of shapedata>,
[MiddleJointVal :=]<expression (IN) of jointtarget>,
[DeltaJointVal :=]<expression (IN) of jointtarget>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Definicin de zonas mundo en forma de
prisma
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con
forma cilndrica en la pgina 739
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo
para la limitacin de los ejes en la pgina 755
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
1 Instrucciones
1.256. WZLimJ ointDef - Define una zona mundo para la limitacin de los ejes
World Zones
755 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.256. WZLimJointDef - Define una zona mundo para la limitacin de los ejes
Utilizacin
WZLimJointDef (World Zone Limit Joint Definition) 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 los parmetros
del sistema Motion - Arm - robx_y - Upper Joint Bound ... Lower Joint Bound.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZLimJointDef.
Ejemplo 1
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, 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).
Shape
Tipo de dato: shapedata
Una variable para el almacenamiento del espacio de ejes (datos privados del sistema).
Contina en la pgina siguiente
1 Instrucciones
1.256. WZLimJ ointDef - Define una zona mundo para la limitacin de los ejes
World Zones
3HAC16581-5 Revisin: H 756


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 o
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 o
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 menos LowJointVal en cada eje debe ser mayor que 0 en todos
los ejes que se desee supervisar.
En la figura siguiente se muestra la definicin de espacios de ejes para los ejes de rotacin.
xx0500002281
En la figura siguiente se muestra la definicin de espacios de ejes para los ejes lineales.
xx0500002282
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.
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.256. WZLimJ ointDef - Define una zona mundo para la limitacin de los ejes
World Zones
757 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Si se usa WZLimJointDef con un espacio interior de ejes (argumento \Inside) junto con
WZLimSup, se detiene el robot tan pronto como el ltimo eje activo 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
-
AVISO!
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 HOME 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 del 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
WZLimJointDef
[[\Inside] | [\Outside],]
[Shape:=]<variable (VAR) of shapedata>,
[LowJointVal:=]<expression (IN) of jointtarget>,
[HighJointVal:=]<expression (IN) of jointtarget>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas
mundo en la pgina 1176
Definicin de zonas mundo en forma de
prisma
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con
forma cilndrica en la pgina 739
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.256. WZLimJ ointDef - Define una zona mundo para la limitacin de los ejes
World Zones
3HAC16581-5 Revisin: H 758


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Para obtener ms informacin sobre Consulte
Continuacin
1 Instrucciones
1.257. WZLimSup - Activa la supervisin de lmites de las zonas mundo
World Zones
759 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.257. WZLimSup - Activa la supervisin de lmites de las zonas mundo
Utilizacin
WZLimSup (World Zone Limit Supervision) se usa para definir la accin y para activar una
zona mundo para la supervisin del rea de trabajo del robot o de los ejes externos.
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.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZLimSup.
Consulte tambin Ms ejemplos en la pgina 760.
Ejemplo 1
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]
Temporary
Tipo de dato: switch
La zona mundo a definir es una zona mundo temporal.
[\Stat]
Stationary
Tipo de dato: switch
La zona mundo a definir es una zona mundo estacionaria.
Es imprescindible especificar uno de los argumentos \Temp o \Stat.
Contina en la pgina siguiente
1 Instrucciones
1.257. WZLimSup - Activa la supervisin de lmites de las zonas mundo
World Zones
3HAC16581-5 Revisin: H 760


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
WorldZone
Tipo de dato: wztemporary O bien wzstationary
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.
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 eje activo 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.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin WZLimSup.
Ejemplo 1
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
Continuacin
Contina en la pgina siguiente
1 Instrucciones
1.257. WZLimSup - Activa la supervisin de lmites de las zonas mundo
World Zones
761 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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.
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.
Las zonas mundo temporales pueden ser desactivadas (WZDisable), activadas de nuevo
(WZEnable) o borrarse (WZFree)) en el programa de RAPID.
Sintaxis
WZLimSup
[[\Temp] | [\Stat],]
[WorldZone:=]<variable or persistent (INOUT) of
wztemporary>,
[Shape:=]<variable (VAR) of shapedata>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Zona mundo temporal wztemporary - Datos de zona mundo temporal
en la pgina 1229
Zona mundo estacionaria wzstationary - Datos de zona mundo estacio-
naria en la pgina 1227
Definicin de zonas mundo en forma de
prisma recto
WZBoxDef - Define una zona mundo con forma
de prisma en la pgina 737
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con forma
cilndrica en la pgina 739
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo para
la limitacin de los ejes en la pgina 755
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
1 Instrucciones
1.258. WZSphDef - Define una zona mundo con forma esfrica
World Zones
3HAC16581-5 Revisin: H 762


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1.258. WZSphDef - Define una zona mundo con forma esfrica
Utilizacin
WZSphDef (World Zone Sphere Definition) se usa para definir una zona mundo con la forma
de una esfera.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin WZSphDef.
Ejemplo 1
xx0500002207
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).
CentrePoint
Tipo de dato: pos
La posicin (x,y,z) en mm que define el centro de la esfera.
Contina en la pgina siguiente
1 Instrucciones
1.258. WZSphDef - Define una zona mundo con forma esfrica
World Zones
763 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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 el componente trans de robtarget por ejemplo p1.trans como
argumento).
Sintaxis
WZSphDef
[[\Inside] | [\Outside],]
[Shape:=]<variable (VAR) of shapedata>,
[CentrePoint:=]<expression (IN) of pos>,
[Radius:=]<expression (IN) of num>;
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Definicin de zonas mundo en forma de
prisma
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con forma
cilndrica en la pgina 739
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo para
la limitacin de los ejes en la pgina 755
Activacin de la supervisin de lmites de
las zonas mundo
WZLimSup - Activa la supervisin de lmites de
las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
1 Instrucciones
1.258. WZSphDef - Define una zona mundo con forma esfrica
World Zones
3HAC16581-5 Revisin: H 764


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2 Funciones
2.1. Abs - Obtiene el valor absoluto
RobotWare - OS
765 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2 Funciones
2.1. Abs - Obtiene el valor absoluto
Utilizacin
Abs se utiliza para obtener el valor absoluto, es decir, un valor positivo a partir de un dato
numrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Abs.
Consulte tambin Ms ejemplos en la pgina 765.
Ejemplo 1
reg1 := Abs(reg2);
Se asigna a Reg1 el valor absoluto de reg2.
Valor de retorno
Tipo de dato: num
El valor absoluto, es decir, un valor numrico positivo, por ejemplo:
Argumentos
Abs (Input)
Input
Tipo de dato: num
El valor de entrada.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin Abs.
Ejemplo 1
TPReadNum no_of_parts, "How many parts should be produced? ";
no_of_parts := Abs(no_of_parts);
Se pregunta al operador cuntas piezas deben producirse. Para garantizar que el valor sea
mayor que cero, se convierte en positivo el valor introducido por el operador.
Sintaxis
Abs (
[ Input := ] < expression (IN) of num >)
Una funcin con un valor de retorno del tipo de dato num.
Valor de entrada Valor devuelto
3 3
-3 3
-2.53 2.53
Contina en la pgina siguiente
2 Funciones
2.1. Abs - Obtiene el valor absoluto
RobotWare - OS
3HAC16581-5 Revisin: H 766


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.2. ACos - Calcula el valor de arco coseno
RobotWare - OS
767 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.2. ACos - Calcula el valor de arco coseno
Utilizacin
ACos (Arc Cosine) se utiliza para calcular el valor de arco coseno.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ACos.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
angle := ACos(value);
angle obtiene el valor de arco coseno de value.
Valor de retorno
Tipo de dato: num
El valor del arco coseno, expresado en grados, en el rango [0, 180].
Argumentos
ACos (Value)
Value
Tipo de dato: num
El valor del argumento debe estar en el rango [-1, 1].
Limitaciones
La ejecucin de la funcin Acos(x) genera un error si x est fuera del rango [-1, 1].
Sintaxis
Acos(
[Value :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.3. AOutput - Lee el valor de una seal analgica de salida
RobotWare - OS
3HAC16581-5 Revisin: H 768


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.3. AOutput - Lee el valor de una seal analgica de salida
Utilizacin
AOutput se utiliza para obtener el valor actual de una seal analgica de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin AOutput.
Ejemplo 1
IF AOutput(ao4) > 5 THEN ...
Si el valor actual de la seal ao4 es mayor que 5, entonces ...
Valor de retorno
Tipo de dato: num
El valor actual de la seal.
Al valor actual se le aplica una escala (acorde con los parmetros del sistema) antes de leerlo
desde el programa de RAPID. En la figura siguiente se muestra un diagrama de cmo se
ajustan los valores de las seales analgicas a una escala.
xx0500002408
Argumentos
AOutput (Signal)
Signal
Tipo de dato: signalao
El nombre de la salida analgica que debe leerse.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Sintaxis
AOutput (
[ Signal := ] < variable (VAR) of signalao > )
Contina en la pgina siguiente
2 Funciones
2.3. AOutput - Lee el valor de una seal analgica de salida
RobotWare - OS
769 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Establecimiento de una seal analgica de
salida
SetAO - Cambia el valor de una seal
analgica de salida en la pgina 439
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
2 Funciones
2.4. ArgName - Obtiene el nombre de un argumento
RobotWare - OS
3HAC16581-5 Revisin: H 770


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.4. ArgName - Obtiene el nombre de un argumento
Utilizacin
ArgName (Argument Name) se utiliza para obtener el nombre del objeto de datos original del
argumento o el dato actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ArgName.
Consulte tambin Ms ejemplos en la pgina 771.
Ejemplo 1
VAR num chales :=5;
...
proc1 chales;
PROC proc1 (num par1)
VAR string name;
...
name:=ArgName(par1);
TPWrite "Argument name "+name+" with value "\Num:=par1;
ENDPROC
La variable name recibe el valor de cadena "chales". En el FlexPendant se escribe la cadena
siguiente: "Nombre de argumento chales con el valor 5".
Valor de retorno
Tipo de dato: string
El nombre del objeto de datos original.
Argumentos
ArgName (Parameter)
Parameter
Tipo de dato: anytype
El identificador formal del parmetro (en la rutina en la que se encuentra ArgName) o la
identidad de los datos.
Puede usar todos los tipos de datos con estructura atmica o de registro, componente de
registro, matriz o elemento de matriz.
Ejecucin de programas
La funcin devuelve el nombre del objeto de datos original de todo un objeto de tipo
constante, variable o variable persistente. El objeto de datos original puede ser global, local
del mdulo de programa o local de una rutina (se aplican las reglas de mbito habituales de
RAPID).
Si forma parte de un objeto de datos, se devuelve el nombre del objeto de datos en su
conjunto.
Contina en la pgina siguiente
2 Funciones
2.4. ArgName - Obtiene el nombre de un argumento
RobotWare - OS
771 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ArgName.
Conversin de un identificador en una cadena
Esta funcin tambin puede usarse para convertir un identificador en un valor string,
especificando el identificador en el argumento Parameter de cualquier objeto de datos
global, local del mdulo o local del mbito de la rutina:
VAR num chales :=5;
...
proc1;
PROC proc1 ()
VAR string name;
...
name:=ArgName(chales);
TPWrite "Global data object "+name+" has value "\Num:=chales;
ENDPROC
La variable name recibe el valor de cadena "chales". En el FlexPendant se escribe la cadena
siguiente: "El objeto de datos global chales tiene el valor 5".
Llamada a la rutina en varios pasos
Recuerde que la funcin devuelve el nombre original del objeto de datos:
VAR num chales :=5;
...
proc1 chales;
...
PROC proc1 (num parameter1)
...
proc2 parameter1;
...
ENDPROC
PROC proc2 (num par1)
VAR string name;
...
name:=ArgName(par1);
TPWrite "Original data object name "+name+" with value"
\Num:=par1;
ENDPROC
La variable name recibe el valor de cadena "chales". En el FlexPendant se escribe la cadena
siguiente: "Nombre original del objeto de datos chales con el valor 5".
Continuacin
Contina en la pgina siguiente
2 Funciones
2.4. ArgName - Obtiene el nombre de un argumento
RobotWare - OS
3HAC16581-5 Revisin: H 772


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si se produce uno de los errores siguientes, la variable de sistema ERRNO cambia a
ERR_ARGNAME:
El argumento es un valor de expresin.
El argumento no est presente.
El argumento es del tipo switch.
A continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
ArgName (
[ Parameter:= ] < reference (REF) of any type> )
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.5. ASin - Calcula el valor del arco seno
RobotWare - OS
773 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.5. ASin - Calcula el valor del arco seno
Utilizacin
ASin (Arc Sine) se utiliza para calcular el valor de arco seno.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ASin.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
angle := ASin(value);
angle obtiene el valor de arco seno de value
Valor de retorno
Tipo de dato: num
El valor del arco seno, expresado en grados, en el rango [-90, 90].
Argumentos
ASin (Value)
Value
Tipo de dato: num
El valor del argumento debe estar en el rango [-1, 1].
Limitaciones
La ejecucin de la funcin ASin(x) genera un error si x est fuera del rango [-1, 1].
Sintaxis
ASin(
[Value :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.6. ATan - Calcula el valor de arco tangente
RobotWare - OS
3HAC16581-5 Revisin: H 774


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.6. ATan - Calcula el valor de arco tangente
Utilizacin
ATan (Arc Tangent) se utiliza para calcular el valor de arco tangente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ATan.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
angle := ATan(value);
angle obtiene el valor de arco tangente de value.
Valor de retorno
Tipo de dato: num
El valor del arco tangente, expresado en grados, en el rango [-90, 90].
Argumentos
ATan (Value)
Value
Tipo de dato: num
El valor del argumento.
Sintaxis
ATan(
[Value :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Arco tangente con un valor devuelto en el
rango [-180, 180]
ATan2 - Calcula el valor de arco tangente 2
en la pgina 775
2 Funciones
2.7. ATan2 - Calcula el valor de arco tangente 2
RobotWare - OS
775 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.7. ATan2 - Calcula el valor de arco tangente 2
Utilizacin
ATan2 (Arc Tangent2) se utiliza para calcular el valor del arco tangente 2.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ATan2.
Ejemplo 1
VAR num angle;
VAR num x_value;
VAR num y_value;
...
...
angle := ATan2(y_value, x_value);
angle obtiene el valor de arco tangente de y_value/x_value.
Valor de retorno
Tipo de dato: num
El valor del arco tangente, expresado en grados, en el rango [-180, 180]. El valor ser igual a
ATan(y/x), pero en el rango [-180, 180], ya que la funcin utiliza el signo de los dos
argumentos para determinar el cuadrante del valor de retorno.
Argumentos
ATan2 (Y X)
Y
Tipo de dato: num
El valor del argumento numerador.
X
Tipo de dato: num
El valor del argumento denominador.
Sintaxis
ATan2(
[Y :=] <expression (IN) of num> ,
[X :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Arco tangente con un solo argumento ATan - Calcula el valor de arco tangente en la
pgina 774
2 Funciones
2.8. BitAnd - AND lgico bit a bit - Operacin con datos de byte
RobotWare - OS
3HAC16581-5 Revisin: H 776


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.8. BitAnd - AND lgico bit a bit - Operacin con datos de byte
Utilizacin
BitAnd se utiliza para ejecutar una operacin lgica bit a bit AND en tipos de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitAnd.
Ejemplo 1
VAR byte data1 := 38;
VAR byte data2 := 34;
VAR byte data3;
data3 := BitAnd(data1, data2);
Se ejecuta la operacin lgica AND bit a bit (consulte la figura siguiente) con los datos data1
y data2. El resultado se devuelve en data3 (representacin entera).
xx0500002454
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica AND bit a bit en representacin entera.
Argumentos
BitAnd (BitData1 BitData2)
BitData1
Tipo de dato: byte
El dato de bit 1, en representacin entera.
BitData2
Tipo de dato: byte
El dato de bit 2, en representacin entera.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
Contina en la pgina siguiente
2 Funciones
2.8. BitAnd - AND lgico bit a bit - Operacin con datos de byte
RobotWare - OS
777 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
BitAnd(
[BitData1 :=] <expression (IN) of byte> ,
[BitData2 :=] <expression (IN) of byte>
)
Una funcin con un valor de retorno del tipo de dato byte.
Informacin relacionada
Para obtener ms informacin sobre Consulte
OR lgico bit a bit - Operacin con datos de
byte
BitOr - OR lgico bit a bit - Operacin con
datos de byte en la pgina 784
XOR lgico bit a bit - Operacin con datos de
byte
BitXOr - XOR lgico bit a bit - Operacin con
datos de byte en la pgina 788
NEGACIN lgica bit a bit - Operacin con
datos de byte
BitNeg - NEGACIN lgica bit a bit -
Operacin con datos de byte en la pgina
782
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones de bits
Continuacin
2 Funciones
2.9. BitCheck - Comprueba si un bit especificado de un dato de byte est activado
RobotWare - OS
3HAC16581-5 Revisin: H 778


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.9. BitCheck - Comprueba si un bit especificado de un dato de byte est activado
Utilizacin
BitCheck se utiliza para comprobar si un bit especificado de un dato de byte definido tiene
el valor 1.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitCheck.
Ejemplo 1
CONST num parity_bit := 8;
VAR byte data1 := 130;
IF BitCheck(data1, parity_bit) = TRUE THEN
...
ELSE
...
ENDIF
Se comprueba el bit nmero 8 (parity_bit) de la variable data1. Es decir, si el bit
especificado tiene el valor 1 en la variable data1, esta funcin devolver TRUE. La
comprobacin de bits de un dato de tipo byte se muestra en la figura siguiente.
xx0500002442
Valor de retorno
Tipo de dato: bool
TRUE si el bit especificado tiene el valor 1, FALSE si el bit especificado tiene el valor 0.
Argumentos
BitCheck (BitData BitPos)
BitData
Tipo de dato: byte
Los datos de bits a comprobar, en representacin entera.
Contina en la pgina siguiente
2 Funciones
2.9. BitCheck - Comprueba si un bit especificado de un dato de byte est activado
RobotWare - OS
779 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
BitPos
Bit Position
Tipo de dato: num
El valor de la posicin de bit (de 1 a 8) de BitData a comprobar.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255 en decimal.
Las posiciones de bit vlidas son de la 1 a la 8.
Sintaxis
BitCheck(
[BitData :=] <expression (IN) of byte> ,
[BitPos :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de un bit especfico de un dato de
byte
BitSet - Activa un bit especfico de un dato de
byte en la pgina 27
Desactivacin de un bit especfico de un
dato de byte
BitClear - Desactiva un bit especfico de un
dato de byte en la pgina 25
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones de bits
Continuacin
2 Funciones
2.10. BitLSh - DESPLAZAMIENTO A LA IZQUIERDA lgico bit a bit - Operacin de byte
RobotWare - OS
3HAC16581-5 Revisin: H 780


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.10. BitLSh - DESPLAZAMIENTO A LA IZQUIERDA lgico bit a bit - Operacin de
byte
Utilizacin
BitLSh (Bit Left Shift) se utiliza para ejecutar una operacin lgica de DESPLAZAMIENTO
A LA IZQUIERDA bit a bit en tipos de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitLSh.
Ejemplo 1
VAR num left_shift := 3;
VAR byte data1 := 38;
VAR byte data2;
data2 := BitLSh(data1, left_shift);
Se ejecuta la operacin lgica DESPLAZAMIENTO A LA IZQUIERDA bit a bit con el dato
data1, con 3 pasos (left_shift) de desplazamiento hacia la izquierda. El resultado se
devuelve en data2 (representacin entera).
En la figura siguiente se muestra la operacin DESPLAZAMIENTO A LA IZQUIERDA
lgico bit a bit.
xx0500002457
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica DESPLAZAMIENTO A LA IZQUIERDA bit a bit en
representacin entera.
Las posiciones de bit de la derecha se rellenan con bits 0.
Argumentos
BitLSh (BitData ShiftSteps)
BitData
Tipo de dato: byte
Los datos de bits a desplazar, en representacin entera.
ShiftSteps
Tipo de dato: num
El nmero de desplazamientos lgicos (de 1 a 8) que se desea ejecutar.
Contina en la pgina siguiente
2 Funciones
2.10. BitLSh - DESPLAZAMIENTO A LA IZQUIERDA lgico bit a bit - Operacin de byte
RobotWare - OS
781 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
El valor vlido del argumento ShiftSteps es un nmero de 1 a 8, lo que corresponde a un
byte.
Sintaxis
BitLSh(
[BitData :=] <expression (IN) of byte> ,
[ShiftSteps :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato byte.
Informacin relacionada
Para obtener ms informacin sobre Consulte
DESPLAZAMIENTO A LA DERECHA lgico
bit a bit - Operacin con datos de bit
BitRSh - DESPLAZAMIENTO A LA
DERECHA lgico bit a bit - Operacin de byte
en la pgina 786
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Continuacin
2 Funciones
2.11. BitNeg - NEGACIN lgica bit a bit - Operacin con datos de byte
RobotWare - OS
3HAC16581-5 Revisin: H 782


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.11. BitNeg - NEGACIN lgica bit a bit - Operacin con datos de byte
Utilizacin
BitNeg (Bit Negation) se utiliza para ejecutar una operacin lgica NEGATION - bit a bit
(complementode uno) en los tipos de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitNeg.
Ejemplo 1
VAR byte data1 := 38;
VAR byte data2;
data2 := BitNeg(data1);
Se ejecuta la operacin lgica NEGATION bit a bit (consulte la figura siguiente) con los datos
data1. El resultado se devuelve en data2 (representacin entera).
xx0500002456
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica NEGATION bit a bit en representacin entera.
Argumentos
BitNeg (BitData)
BitData
Tipo de dato: byte
El dato de byte, en representacin entera.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
Sintaxis
BitNeg(
[BitData :=] <expression (IN) of byte>
)
Una funcin con un valor de retorno del tipo de dato byte.
Contina en la pgina siguiente
2 Funciones
2.11. BitNeg - NEGACIN lgica bit a bit - Operacin con datos de byte
RobotWare - OS
783 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
AND lgico bit a bit - Operacin con datos de
byte
BitAnd - AND lgico bit a bit - Operacin con
datos de byte en la pgina 776
OR lgico bit a bit - Operacin con datos de
byte
BitOr - OR lgico bit a bit - Operacin con
datos de byte en la pgina 784
XOR lgico bit a bit - Operacin con datos de
byte
BitXOr - XOR lgico bit a bit - Operacin con
datos de byte en la pgina 788
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones de bits
Continuacin
2 Funciones
2.12. BitOr - OR lgico bit a bit - Operacin con datos de byte
RobotWare - OS
3HAC16581-5 Revisin: H 784


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.12. BitOr - OR lgico bit a bit - Operacin con datos de byte
Utilizacin
BitOr (Bit inclusive Or) se utiliza para ejecutar una operacin lgica OR bit a bit en los tipos
de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitOr.
Ejemplo 1
VAR byte data1 := 39;
VAR byte data2 := 162;
VAR byte data3;
data3 := BitOr(data1, data2);
Se ejecuta la operacin lgica OR bit a bit con los datos data1 y data2. El resultado se
devuelve en data3 (representacin entera).
En la figura siguiente se muestra la operacin OR lgico bit a bit.
xx0500002458
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica OR bit a bit en representacin entera.
Argumentos
BitOr (BitData1 BitData2)
BitData1
Tipo de dato: byte
El dato de bit 1, en representacin entera.
BitData2
Tipo de dato: byte
El dato de bit 2, en representacin entera.
Contina en la pgina siguiente
2 Funciones
2.12. BitOr - OR lgico bit a bit - Operacin con datos de byte
RobotWare - OS
785 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
Sintaxis
BitOr(
[BitData1 :=] <expression (IN) of byte> ,
[BitData2 :=] <expression (IN) of byte>
)
Una funcin con un valor de retorno del tipo de dato byte.
Informacin relacionada
Para obtener ms informacin sobre Consulte
AND lgico bit a bit - Operacin con datos de
byte
BitAnd - AND lgico bit a bit - Operacin con
datos de byte en la pgina 776
XOR lgico bit a bit - Operacin con datos
de byte
BitXOr - XOR lgico bit a bit - Operacin con
datos de byte en la pgina 788
NEGACIN lgica bit a bit - Operacin con
datos de byte
BitNeg - NEGACIN lgica bit a bit -
Operacin con datos de byte en la pgina 782
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Continuacin
2 Funciones
2.13. BitRSh - DESPLAZAMIENTO A LA DERECHA lgico bit a bit - Operacin de byte
RobotWare - OS
3HAC16581-5 Revisin: H 786


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.13. BitRSh - DESPLAZAMIENTO A LA DERECHA lgico bit a bit - Operacin de
byte
Utilizacin
BitRSh (Bit Right Shift) se utiliza para ejecutar una operacin lgica de
DESPLAZAMIENTO A LA DERECHA bit a bit en tipos de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitRSh.
Ejemplo 1
VAR num right_shift := 3;
VAR byte data1 := 38;
VAR byte data2;
data2 := BitRSh(data1, right_shift);
Se ejecuta la operacin lgica DESPLAZAMIENTO A LA DERECHA bit a bit con el dato
data1, con 3 pasos (right_shift) de desplazamiento hacia la derecha. El resultado se
devuelve en data2 (representacinentera).
En la figura siguiente se muestra la operacin DESPLAZAMIENTO A LA DERECHA
lgico bit a bit.
xx0500002455
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica DESPLAZAMIENTO A LA DERECHA bit a bit en
representacin entera.
Las posiciones de bit de la izquierda se rellenan con bits 0.
Argumentos
BitRSh (BitData ShiftSteps)
BitData
Tipo de dato: byte
Los datos de bits a desplazar, en representacin entera.
ShiftSteps
Tipo de dato: num
El nmero de desplazamientos lgicos (de 1 a 8) que se desea ejecutar.
Contina en la pgina siguiente
2 Funciones
2.13. BitRSh - DESPLAZAMIENTO A LA DERECHA lgico bit a bit - Operacin de byte
RobotWare - OS
787 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
El valor vlido del argumento ShiftSteps es un nmero de 1 a 8, lo que corresponde a un
byte.
Sintaxis
BitRSh(
[BitData :=] <expression (IN) of byte>,
[ShiftSteps:=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato byte.
Informacin relacionada
Para obtener ms informacin sobre Consulte
DESPLAZAMIENTO A LA IZQUIERDA lgico
bit a bit - Operacin con datos de bit
BitLSh - DESPLAZAMIENTO A LA
IZQUIERDA lgico bit a bit - Operacin de
byte en la pgina 780
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Continuacin
2 Funciones
2.14. BitXOr - XOR lgico bit a bit - Operacin con datos de byte
RobotWare - OS
3HAC16581-5 Revisin: H 788


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.14. BitXOr - XOR lgico bit a bit - Operacin con datos de byte
Utilizacin
BitXOr (Bit eXclusive Or) se utiliza para ejecutar una operacin lgica bit a bit XOR en tipos
de datos byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin BitXOr.
Ejemplo 1
VAR byte data1 := 39;
VAR byte data2 := 162;
VAR byte data3;
data3 := BitXOr(data1, data2);
Se ejecuta la operacin lgica XOR bit a bit con los datos data1 y data2. El resultado se
devuelve en data3 (representacin entera).
En la figura siguiente se muestra la operacin XOR lgico bit a bit.
xx0500002459
Valor de retorno
Tipo de dato: byte
El resultado de la operacin lgica XOR bit a bit en representacin entera.
Argumentos
BitXOr (BitData1 BitData2)
BitData1
Tipo de dato: byte
El dato de bit 1, en representacin entera.
BitData2
Tipo de dato: byte
El dato de bit 2, en representacin entera.
Contina en la pgina siguiente
2 Funciones
2.14. BitXOr - XOR lgico bit a bit - Operacin con datos de byte
RobotWare - OS
789 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255.
Sintaxis
BitXOr(
[BitData1 :=] <expression (IN) of byte> ,
[BitData2 :=] <expression (IN) of byte>
)
Una funcin con un valor de retorno del tipo de dato byte.
Informacin relacionada
Para obtener ms informacin sobre Consulte
AND lgico bit a bit - Operacin con datos de
byte
BitAnd - AND lgico bit a bit - Operacin con
datos de byte en la pgina 776
OR lgico bit a bit - Operacin con datos de
byte
BitOr - OR lgico bit a bit - Operacin con
datos de byte en la pgina 784
NEGACIN lgica bit a bit - Operacin con
datos de byte
BitNeg - NEGACIN lgica bit a bit -
Operacin con datos de byte en la pgina
782
Otras funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Continuacin
2 Funciones
2.15. ByteToStr - Convierte un byte en un dato de cadena de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 790


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.15. ByteToStr - Convierte un byte en un dato de cadena de caracteres
Utilizacin
ByteToStr(Byte To String) se utiliza para convertir un byte a un dato del tipo string con un
formato de datos de byte definido.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ByteToStr.
Ejemplo 1
VAR string con_data_buffer{5};
VAR byte data1 := 122;
con_data_buffer{1} := ByteToStr(data1);
El contenido del componente con_data_buffer{} de la matriz ser "122" tras la funcin
ByteToStr ....
con_data_buffer{2} := ByteToStr(data1\Hex);
El contenido del componente con_data_buffer{} de la matriz ser "7A" tras la funcin
ByteToStr ....
con_data_buffer{3} := ByteToStr(data1\Okt);
El contenido del componente con_data_buffer{} de la matriz ser "172" tras la funcin
ByteToStr ....
con_data_buffer{4} := ByteToStr(data1\Bin);
El contenido del componente con_data_buffer{} de la matriz ser 01111010 despus
de la funcin ByteToStr ....
con_data_buffer{5} := ByteToStr(data1\Char);
El contenido del componente con_data_buffer{} de la matriz ser "z" tras la funcin
ByteToStr ....
Valor de retorno
Tipo de dato: string
El resultado de la operacin de conversin, con el formato siguiente:
(*) Si es un carcter ASCII no imprimible, el formato de retorno ser el formato de cdigo de
carcter de RAPID (por ejemplo \07 para el carcter de control BEL).
Argumentos
ByteToStr (BitData [\Hex] | [\Okt] | [\Bin] | [\Char])
Formato Caracteres Longitud de cadena Rango
Dec .....: 0 - 9 1-3 "0" - "255"
Hex .....: 0 - 9, A -F 2 "00" - "FF"
Oct ......: 0 - 7 3 "000" - "377"
Bin ......: 0 - 1 8 "00000000" - "11111111"
Char ....: Cualquier carcter
ASCII (*)
1 Un carcter ASCII
Contina en la pgina siguiente
2 Funciones
2.15. ByteToStr - Convierte un byte en un dato de cadena de caracteres
RobotWare - OS
791 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
BitData
Tipo de dato: byte
Los datos de bits a convertir.
Si se omite el argumento modificador opcional, los datos se convierten al formato decimal
(Dec).
[\Hex]
Hexadecimal
Tipo de dato: switch
Los datos se convierten al formato hexadecimal.
[\Okt]
Octal
Tipo de dato: switch
Los datos se convierten al formato octal.
[\Bin]
Binary
Tipo de dato: switch
Los datos se convierten al formato binary.
[\Char]
Character
Tipo de dato: switch
Los datos se convierten al formato de carcter ASCII.
Limitaciones
El rango de los tipos de datos byte es de 0 a 255 en decimal.
Sintaxis
ByteToStr(
[BitData :=] <expression (IN) of byte>
[\ Hex ] | [\ Okt] | [\ Bin] | [\ Char]
)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conversin de una cadena de caracteres a
datos de byte
StrToByte - Convierte una cadena en un byte
en la pgina 1017
Otras funciones de bits (byte) Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Otras funciones de cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Continuacin
2 Funciones
2.16. CalcJ ointT - Calcula los ngulos de las articulaciones a partir de un robtarget
RobotWare - OS
3HAC16581-5 Revisin: H 792


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.16. CalcJointT - Calcula los ngulos de las articulaciones a partir de un robtarget
Utilizacin
CalcJointT (Calculate Joint Target) se utiliza para calcular ngulos de los ejes del robot y
de los ejes externos a partir de datos robtarget especificados.
Los datos de entrada robtarget deben especificarse con el mismo sistema de coordenadas
que se especifique con argumento en Tool, WObj, en el desplazamiento de programa activo
en el momento de la ejecucin (ProgDisp) y en el offset de los ejes externos (EOffs)).. Los
datos jointtarget devueltos se expresan en el sistema de coordenadas de calibracin.
Si una aplicacin MultiMove de tipo semicoordinado o de modo sincronizado coordinado con
el objeto de trabajo coordinado movido por alguna unidad mecnica situada en otra tarea de
programa, la funcin CalcJointT puede usarse si:
Es adecuado que la posicin actual del objeto de trabajo coordinado movido por la
unidad mecnica se use en el clculo (base de coordenadas del usuario actual). Todos
los dems datos sern capturados desde el programa de RAPID.
La unidad mecnica situada en otra tarea de programa est en reposo.
Se usa el argumento \UseCurWObjPos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CalcJointT.
Ejemplo 1
VAR jointtarget jointpos1;
CONST robtarget p1 := [...];
jointpos1 := CalcJointT(p1, tool1 \WObj:=wobj1);
El valor de jointtarget correspondiente al valor de robtarget p1 se almacena en
jointpos1. La herramienta tool1 y el objeto de trabajo wobj1 se utilizan para calcular los
ngulos de los ejes jointpos1.
Ejemplo 2
VAR jointtarget jointpos2;
CONST robtarget p2 := [...];
jointpos2 := CalcJointT(\UseCurWObjPos, p2, tool2 \WObj:=orb1);
El valor de jointtarget correspondiente al valor de robtarget p2 se almacena en
jointpos2. La herramienta tool 2 y el objeto de trabajo orb1 se utilizan para calcular los
ngulos de los ejes jointpos2. Se usa para el clculo la posicin actual del manipulador
orb1 en reposo, no situado en la misma tarea de programa que el robot del TCP.
Valor de retorno
Tipo de dato: jointtarget
Los ngulos en grados de los ejes del robot en el lado del brazo.
Los valores de los ejes externos, en mm para los ejes lineales y en grados para los ejes de
rotacin.
Los valores devueltos estn siempre relacionados con la posicin de calibracin.
Contina en la pgina siguiente
2 Funciones
2.16. CalcJ ointT - Calcula los ngulos de las articulaciones a partir de un robtarget
RobotWare - OS
793 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
CalcJointT ( [\UseCurWObjPos] Rob_target Tool [\WObj] )
[\UseCurWObjPos]
Tipo de dato: switch
Se usa en el clculo la posicin actual del objeto de trabajo coordinado movido por la unidad
mecnica en otra tarea (base de coordenadas del usuario actual). Todos los dems datos sern
capturados desde el programa de RAPID.
Rob_target
Tipo de dato: robtarget
La posicin del robot y de los ejes externos en el sistema de coordenadas ms externo
respecto de la herramienta y el objeto de trabajo especificados y respecto del desplazamiento
de programa activo en el momento de la ejecucin (ProgDisp) y/o el offset de los ejes
externos (EOffs).
Tool
Tipo de dato: tooldata
La herramienta utilizada para el clculo de los ngulos de los ejes del robot.
[\WObj]
Work Object
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que est relacionada la posicin del
robot.
Si se omite este argumento, se utiliza el objeto de trabajo wobj0. Este argumento debe
especificarse si se utiliza una herramienta estacionaria, ejes externos coordinados o un
transportador.
Ejecucin de programas
El valor jointtarget devuelto se calcula a partir del valor de entrada robtarget. Si se usa
el argumento \UseCurWObjPos, tambin se usa la posicin actual de la unidad mecnica que
controla la base de coordenadas del usuario. Para calcular los ngulos de los ejes del robot,
se tienen en cuenta Tool, WObj (incluida la base coordinada de coordenadas del usuario) y el
ProgDisp activo en el momento de la ejecucin. Para calcular la posicin de los ejes
externos en el momento de la ejecucin, se tiene en cuenta el EOffs activo.
El clculo selecciona siempre la configuracin del robot acorde con los datos de
configuracin especificados en los datos de entrada robtarget. Ni la instruccin ConfL ni
ConfJ afectan a este principio de clculo. Si se utiliza la singularidad de la mueca, se cambia
el eje 4 a 0 grados.
Si hay cualquier desplazamiento de programa activo (ProgDisp) y/o se almacena un
desplazamiento de eje externo (EOffs) en el momento de almacenar los datos robtarget, es
necesario que el mismo desplazamiento de programa y/o el mismo offset de eje externo est
activo cuando se ejecuta CalcJointT.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.16. CalcJ ointT - Calcula los ngulos de las articulaciones a partir de un robtarget
RobotWare - OS
3HAC16581-5 Revisin: H 794


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitacin
Si se utiliza una base de coordenadas, la unidad coordinada debe estar activada antes de usar
CalcJointT.
La unidad mecnica que controla la base de coordenadas del usuario en el objeto de trabajo
debe estar disponible normalmente en la misma tarea de programa que el robot del TCP que
ejecuta CalcJointT.
Normalmente, CalcJointT utiliza robtarget, tooldata y wobjdata desde el programa
de RAPID para calcular jointtarget. En el caso de los objetos de trabajo coordinados, la
posicin de la unidad mecnica se indica como una posicin de ejes externos en el
robtarget. ste no es el caso si la unidad mecnica es controlada por otra tarea de programa
(sistema MultiMove) o si la unidad mecnica no est controlada por el sistema de control
(transportador). En el caso del sistema MultiMove, pero no en el caso del transportador, es
posible usar el argumento \UseCurWObjPos si la unidad mecnica est en reposo en el
momento de la ejecucin de CalCJointT.
Gestin de errores
Si al menos uno de los ejes est fuera del rea de trabajo o se superan los lmites en al menos
un eje acoplado, la variable de sistema ERRNO cambia a ERR_ROBLIMIT y la ejecucin
contina en el gestor de errores.
Si la unidad mecnica que controla el objeto de trabajo (base de coordenadas del usuario) no
est en reposo en el momento de la ejecucin de CalJointT \UseCurWobjPos, la variable
de sistema ERRNO cambia a ERR_WOBJ_MOVING y la ejecucin contina en el gestor de
errores.
A partir de ese momento, el gestor de errores puede controlar estas situaciones.
Sintaxis
CalcJointT(
[\UseCurWObjPos ,]
[Rob_target :=] <expression (IN) of robtarget>,
[Tool := ] <persistent (PERS) of tooldata>
[\WObj := <persistent (PERS) of wobjdata>] )
Una funcin con un valor de retorno del tipo de dato jointtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Clculo de robtarget a partir de jointtarget CalcRobT - Calcula el valor de robtarget a
partir de jointtarget en la pgina 796
Definicin de posicin robtarget - Datos de posicin en la pgina
1172
Definicin de posicin de los ejes jointtarget - Datos de posicin de eje en la
pgina 1125
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Continuacin
Contina en la pgina siguiente
2 Funciones
2.16. CalcJ ointT - Calcula los ngulos de las articulaciones a partir de un robtarget
RobotWare - OS
795 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de
coordenadas
Sistema de coordenadas de desplazamiento
de programa
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Sistema de coordenadas de offset de ejes
externos
EOffsOn - Activa un offset de ejes externos
en la pgina 86
Para obtener ms informacin sobre Consulte
Continuacin
2 Funciones
2.17. CalcRobT - Calcula el valor de robtarget a partir de jointtarget
RobotWare - OS
3HAC16581-5 Revisin: H 796


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.17. CalcRobT - Calcula el valor de robtarget a partir de jointtarget
Utilizacin
CalcRobT (Calculate Robot Target )se utiliza para calcular los datos de robtarget a partir
de datos jointtarget determinados.
Esta funcin devuelve un valor de robtarget con la posicin (x, y, z), la orientacin (q1 ...
q4), la configuracin de los ejes del robot y la posicin de los ejes externos.
Los datos de entrada de jointtarget deben especificarse en el sistema de coordenadas de
calibracin.
Los datos robtarget devueltos se expresan en el sistema de coordenadas ms exterior.
Tiene en cuenta la herramienta, el objeto de trabajo y el desplazamiento de programa activo
en el momento de la ejecucin (ProgDisp) y el offset de eje externo (EOffs).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CalcRobT.
Ejemplo 1
VAR robtarget p1;
CONST jointtarget jointpos1 := [...];
p1 := CalcRobT(jointpos1, tool1 \WObj:=wobj1);
El valor de robtarget correspondiente al valor de jointtarget jointpos1 se almacena
en p1. La herramienta tool1 y el objeto de trabajo wobj1 se utilizan para calcular la posicin
p1.
Valor de retorno
Tipo de dato: robtarget
El robot y la posicin de los ejes externos se devuelven en el tipo de dato robtarget y se
expresan en el sistema de coordenadas ms exterior. Tiene en cuenta la herramienta, el objeto
de trabajo y el desplazamiento de programa activo en el momento de la ejecucin
(ProgDisp) y el offset de eje externo (EOffs).
Si no hay ningn ProgDisp activo, la posicin del robot se expresa en el sistema de
coordenadas del objeto. Si no hay ningn EOffs activo, la posicin de los ejes externos se
expresa en el sistema de coordenadas de calibracin.
Argumentos
CalcRobT ( Joint_target Tool [\WObj] )
Joint_target
Tipo de dato: jointtarget
La posicin de los ejes del robot y de los ejes externos, respecto del sistema de coordenadas
de calibracin.
Tool
Tipo de dato: tooldata
La herramienta utilizada para el clculo de la posicin del robot.
Contina en la pgina siguiente
2 Funciones
2.17. CalcRobT - Calcula el valor de robtarget a partir de jointtarget
RobotWare - OS
797 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\WObj]
Work Object
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que est relacionada la posicin del robot
devuelta por la funcin.
Si se omite este argumento, se utiliza el objeto de trabajo wobj0. Este argumento debe
especificarse si se utiliza una herramienta estacionaria, ejes externos coordinados o un
transportador.
Ejecucin de programas
El valor robtarget devuelto se calcula a partir del valor de entrada jointtarget. Para
calcular la posicin cartesiana del robot, se tienen en cuenta los valores especificados de
Tool, WObj (incluida la base de coordenadas de usuario coordinada) y el ProgDisp activo
en el momento de la ejecucin.
Para calcular la posicin de los ejes externos, se tiene en cuenta adems el EOffs activo en
el momento de la ejecucin.
Limitacin
Si se utiliza una base de coordenadas, la unidad coordinada debe estar activada antes de usar
CalcRobT. La unidad coordinada tambin debe estar situada en la misma tarea que el robot.
Sintaxis
CalcRobT(
[Joint_target := ] <expression (IN) of jointtarget>,
[Tool := ] <persistent (PERS) of tooldata>
[\WObj := <persistent (PERS) of wobjdata>] )
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Clculo de robtarget a partir de jointtarget CalcJointT - Calcula los ngulos de las articu-
laciones a partir de un robtarget en la pgina
792
Definicin de posicin robtarget - Datos de posicin en la pgina 1172
Definicin de posicin de los ejes jointtarget - Datos de posicin de eje en la
pgina 1125
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Sistema de coordenadas de
desplazamiento de programa
PDispOn - Activa el desplazamiento de
programa en la pgina 324
Sistema de coordenadas de offset de ejes
externos
EOffsOn - Activa un offset de ejes externos en
la pgina 86
Continuacin
2 Funciones
2.18. CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
3HAC16581-5 Revisin: H 798


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.18. CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin
Utilizacin
CalcRotAxFrameZ (Calculate Rotational Axis Frame with positive Z-point) se utiliza para
calcular el sistema de coordenadas de usuario de una unidad mecnica basada en un eje de
rotacin. Esta funcin debe utilizarse cuando el robot maestro y el eje externo se encuentran
en tareas de RAPID diferentes. Si se encuentran en la misma tarea, se debe utilizar la funcin
CalcRotAxisFrame.
Descripcin
La definicin de una base de coordenadas de usuario para un eje de rotacin externo requiere
que la mesa giratoria (o la estructura mecnica similar) del eje externo tenga un punto de
referencia marcado. Adems, es necesario calibrar la base de coordenadas del robot del TCP
y del TCP. El procedimiento de calibracin se basa en un conjunto de posicionamiento del
TCP del robot sobre el punto de referencia, mientras la mesa giratoria gira hasta distintos
ngulos. Tambin se requiere el posicionamiento del TCP del robot en la direccin Z positiva.
Para ver una definicin de puntos de un eje de rotacin, consulte la figura siguiente.
xx0500002468
El sistema de coordenadas de usuario del eje de rotacin tiene su origen en el centro de la
mesa giratoria. La direccin Z coincide con el eje de rotacin y el eje X atraviesa el punto de
referencia.
La figura siguiente muestra el sistema de coordenadas de usuario para dos posicionamientos
diferentes de la mesa giratoria (con la mesa giratoria vista desde arriba).
xx0500002469
Contina en la pgina siguiente
2 Funciones
2.18. CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
799 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CalcRotAxFrameZ.
Ejemplo 1
CONST robtarget pos1 := [...];
CONST robtarget pos2 := [...];
CONST robtarget pos3 := [...];
CONST robtarget pos4 := [...];
CONST robtarget zpos;
VAR robtarget targetlist{10};
VAR num max_err := 0;
VAR num mean_err := 0;
VAR pose resFr:=[...];
PERS tooldata tMyTool:= [...];
! Instructions for creating/ModPos pos1 - pos4 with TCP pointing
at the turntable.
MoveJ pos1, v10, fine, tMyTool;
MoveJ pos2, v10, fine, tMyTool;
MoveJ pos3, v10, fine, tMyTool;
MoveJ pos4, v10, fine, tMyTool;
!Instruction for creating/ModPos zpos with TCP pointing at a point
in positive z direction
MoveJ zpos, v10, fine, tMyTool;
! Add the targets to the array
targetlist{1}:= pos1;
targetlist{2}:= pos2;
targetlist{3}:= pos3;
targetlist{4}:= pos4;
resFr:=CalcRotAxFrameZ(targetlist, 4, zpos, max_err, mean_err);
! Update the system parameters.
IF (max_err < 1.0) AND (mean_err < 0.5) THEN
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_x",resFr.trans.x/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_y",resFr.trans.y/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_z",resFr.trans.z/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u0",resFr.rot.q1;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u1",resFr.rot.q2;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u2",resFr.rot.q3;
Continuacin
Contina en la pgina siguiente
2 Funciones
2.18. CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
3HAC16581-5 Revisin: H 800


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u3",resFr.rot.q4;
TPReadFK reg1,"Warmstart required for calibration to take
effect."
,stEmpty,stEmpty,stEmpty, stEmpty,"OK";
WarmStart;
ENDIF
Se crean cuatro posiciones, de pos1 a pos4 y se les aplica ModPos de forma que la
herramienta del robot tMyTool apunte al mismo punto de referencia del eje externo STN_1,
pero con una rotacin de eje externo diferente. La posicin, zpos, se crea o modifica con
modpos de forma que la herramienta del robot, tMyTool, est orientada en la direccin Z
positiva de acuerdo con la definicin de la direccin Z positiva de una unidad mecnica
externa de rotacin. Con la definicin en la direccin Z positiva de una unidad mecnica
externa de rotacin. Consulte Descripcin en la pgina 798. A continuacin, los puntos se
utilizan para calcular la base de coordenadas del eje externo, resFr, respecto del sistema de
coordenadas mundo. Por ltimo, se escribe la base de coordenadas en el archivo de
configuracin cuando se realiza un arranque en caliente, para aplicar el cambio.
xx0500002472
NOTA!
Definicin en la direccin Z positiva de una unidad mecnica externa de rotacin:
Haga coincidir los dedos de la mano con el eje de rotacin positivo del eje de rotacin. En
esta posicin, la direccin del pulgar define la direccin Z positiva. Consulte la figura
anterior.
Valor de retorno
Tipo de dato: pose
La base de coordenadas calculada.
Argumentos
CalcRotAxFrameZ (TargetList TargetsInList PositiveZPoint
MaxErr MeanErr)
TargetList
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas al apuntar la mesa giratoria
hacia fuera. El nmero mnimo de robtargets es 4 y el mximo es 10.
TargetsInList
Tipo de dato: num
Nmero de robtargets de una matriz.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.18. CalcRotAxFrameZ - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
801 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PositiveZPoint
Tipo de dato: robtarget
robtarget contiene la posicin definida apuntando hacia un punto en la direccin Z
positiva. Con la definicin en la direccin Z positiva de una unidad mecnica externa de
rotacin. Consulte Descripcin en la pgina 798.
MaxErr
Maximum Error
Tipo de dato: num
El error mximo estimado, en mm.
MeanErr
Mean Error
Tipo de dato: num
El error medio estimado, en mm.
Gestin de errores
Si las posiciones no tienen la relacin requerida o no se especifican con una exactitud
suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error
puede ser gestionado en el gestor de errores.
Sintaxis
CalcRotAxFrameZ(
[TargetList :=] <array {*} (IN) of robtarget> ,
[TargetsInList :=] <expression (IN) of num> ,
[PositiveZPoint :=] <expression (IN) of robtarget> ,
[MaxErr :=] <variable (VAR) of num> ,
[MeanErr :=] <variable (VAR) of num>)
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.19. CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
3HAC16581-5 Revisin: H 802


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.19. CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin
Utilizacin
CalcRotAxisFrame (Calculate Rotational Axis Frame) se utiliza para calcular el sistema de
coordenadas de usuario de una unidad mecnica basada en un eje de rotacin. Esta funcin
debe utilizarse cuando el robot maestro y el eje externo se encuentran en la misma tarea de
RAPID. Si se encuentran en tareas diferentes, se debe utilizar la funcin CalcRotAxFrameZ.
Descripcin
La definicin de una base de coordenadas de usuario para un eje de rotacin externo requiere
que la mesa giratoria (o la estructura mecnica similar) del eje externo tenga un punto de
referencia marcado. Adems, es necesario calibrar la base de coordenadas principal del robot
y el TCP. El procedimiento de calibracin se basa en un conjunto de posicionamiento del TCP
del robot sobre el punto de referencia, mientras la mesa giratoria gira hasta distintos ngulos.
La definicin de puntos de un eje de rotacin se muestra en la figura siguiente.
xx0500002468
El sistema de coordenadas de usuario del eje de rotacin tiene su origen en el centro de la
mesa giratoria. La direccin Z coincide con el eje de rotacin y el eje X atraviesa el punto de
referencia.
La figura siguiente muestra el sistema de coordenadas de usuario para dos posicionamientos
diferentes de la mesa giratoria (con la mesa giratoria vista desde arriba).
xx0500002469
Contina en la pgina siguiente
2 Funciones
2.19. CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
803 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CalcRotAxisFrame.
Ejemplo 1
CONST robtarget pos1 := [...];
CONST robtarget pos2 := [...];
CONST robtarget pos3 := [...];
CONST robtarget pos4 := [...];
VAR robtarget targetlist{10};
VAR num max_err := 0;
VAR num mean_err := 0;
VAR pose resFr:=[...];
PERS tooldata tMyTool:= [...];
! Instructions needed for creating/ModPos pos1 - pos4 with TCP
pointing at the turntable.
MoveJ pos1, v10, fine, tMyTool;
MoveJ pos2, v10, fine, tMyTool;
MoveJ pos3, v10, fine, tMyTool;
MoveJ pos4, v10, fine, tMyTool;
! Add the targets to the array
targetlist{1}:= pos1;
targetlist{2}:= pos2;
targetlist{3}:= pos3;
targetlist{4}:= pos4;
resFr:=CalcRotAxisFrame(STN_1 , targetlist, 4, max_err, mean_err);
! Update the system parameters.
IF (max_err < 1.0) AND (mean_err < 0.5) THEN
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_x",resFr.trans.x/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_y",resFr.trans.y/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_pos_z",resFr.trans.z/1000;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u0",resFr.rot.q1;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u1",resFr.rot.q2;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u2",resFr.rot.q3;
WriteCfgData "/MOC/SINGLE/STN_1",
"base_frame_orient_u3",resFr.rot.q4;
TPReadFK reg1,"Warmstart required for calibration to take
effect.",stEmpty,stEmpty,stEmpty,stEmpty,"OK";
WarmStart;
ENDIF
Continuacin
Contina en la pgina siguiente
2 Funciones
2.19. CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
3HAC16581-5 Revisin: H 804


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Se crean cuatro posiciones, de pos1 a pos4 y se les aplica ModPos de forma que la
herramienta del robot tMyTool apunte al mismo punto de referencia del eje externo STN_1,
pero con una rotacin de eje externo diferente. A continuacin, los puntos se utilizan para
calcular la base de coordenadas del eje externo, resFr, respecto del sistema de coordenadas
mundo. Por ltimo, se escribe la base de coordenadas en el archivo de configuracin cuando
se realiza un arranque en caliente, para aplicar el cambio.
Valor de retorno
Tipo de dato: pose
La base de coordenadas calculada.
Argumentos
CalcRotAxisFrame (MechUnit [\AxisNo] TargetList TargetsInList
MaxErr MeanErr)
MechUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica a calibrar.
[\AxisNo]
Tipo de dato: num
Un argumento opcional que define el nmero de eje cuya base de coordenadas debe
determinarse. Si slo existe un eje de rotacin, ste recibe el valor 1. En el caso de las
unidades mecnicas con varios ejes, el nmero del eje debe indicarse con este argumento.
TargetList
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas al apuntar la mesa giratoria
hacia fuera. El nmero mnimo de robtargets es 4 y el mximo es 10.
TargetsInList
Tipo de dato: num
Nmero de robtargets de una matriz.
MaxErr
Maximum Error
Tipo de dato: num
El error mximo estimado, en mm.
MeanErr
Mean Error
Tipo de dato: num
El error medio estimado, en mm.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.19. CalcRotAxisFrame - Calcular la base de coordenadas de un eje de rotacin
RobotWare - OS
805 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si las posiciones no tienen la relacin requerida o no se especifican con una exactitud
suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error
puede ser gestionado en el gestor de errores.
Sintaxis
CalcRotAxisFrame(
[MechUnit :=] <variable (VAR) of mecunit>
[\AxisNo := <expression (IN) of num> ],
[TargetList:=] <array {*} (IN) of robtarget> ,
[TargetsInList:=] <expression (IN) of num> ,
[MaxErr :=] <variable (VAR) of num> ,
[MeanErr :=] <variable (VAR) of num>)
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.20. CDate - Lee la fecha actual como una cadena
RobotWare-OS
3HAC16581-5 Revisin: H 806


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.20. CDate - Lee la fecha actual como una cadena
Utilizacin
CDate (Current Date) se utiliza para leer la fecha actual del sistema.
Esta funcin puede usarse para mostrar la fecha actual al operador en la pantalla del
FlexPendant o para pegar la fecha actual en un archivo de texto en el que se escribe desde el
programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CDate.
Consulte tambin en la pgina 806.
Ejemplo 1
VAR string date;
date := CDate();
La fecha actual se almacena en la variable date.
Valor de retorno
Tipo de dato: string
La fecha actual en una cadena.
El formato de fecha estndar es "ao-mes-da", por ejemplo "1998-01-29".
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin CDate.
Ejemplo 1
VAR string date;
date := CDate();
TPWrite "The current date is: "+date;
Write logfile, date;
Se escribe la fecha actual en la pantalla del FlexPendant y dentro de un archivo de texto.
Sintaxis
CDate ( )
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de tiempo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Sistema y tiempo
Cambio de hora del reloj del sistema Manual del operador - IRC5 con Flex-
Pendant, seccin Cmo cambiar la configu-
racin del FlexPendant
2 Funciones
2.21. CJ ointT - Lee los ngulos actuales de los ejes
RobotWare - OS
807 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.21. CJointT - Lee los ngulos actuales de los ejes
Utilizacin
CJointT (Current Joint Target) se utiliza para leer los ngulos actuales de los ejes del robot
y los ejes externos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CJointT.
Consulte tambin Ms ejemplos en la pgina 807.
Ejemplo 1
VAR jointtarget joints;
joints := CJointT();
Los ngulos actuales de los ejes de un robot y de los ejes externos se almacenan en joints.
Valor de retorno
Tipo de dato: jointtarget
Los ngulos actuales en grados de los ejes del robot en el lado del brazo.
Los valores actuales de los ejes externos, en mm para los ejes lineales y en grados para los
ejes de rotacin.
Los valores devueltos estn relacionados con la posicin de calibracin.
Argumentos
CJointT ([\TaskRef]|[\TaskName])
[\TaskRef]
Task Reference
Tipo de dato: taskid
La identidad de tarea de programa desde la cual debe leerse jointtarget.
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 T_ROB1 la identificacin de la tarea es T_ROB1Id.
[\TaskName]
Tipo de dato: string
El nombre de tarea de programa desde la cual debe leerse jointtarget.
Si no se especifica ninguno de los argumentos, ni \TaskRef ni \TaskName, se usa la tarea
actual.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin CJointT.
Ejemplo 1
! In task T_ROB1
VAR jointtarget joints;
joints := CJointT(\TaskRef:=T_ROB2Id);
Contina en la pgina siguiente
2 Funciones
2.21. CJ ointT - Lee los ngulos actuales de los ejes
RobotWare - OS
3HAC16581-5 Revisin: H 808


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La posicin actual de los ejes del robot y los ejes externos de la tarea T_ROB2 se almacena en
joints en la tarea T_ROB1.
Recuerde que el robot de la tarea T_ROB2 puede estar movindose al leer la posicin. Para
asegurarse de que el robot est en reposo, puede programarse un punto de paro fine en la
instruccin de movimiento precedente de la tarea T_ROB2 y usar la instruccin
WaitSyncTask para sincronizar las instrucciones de la tarea T_ROB1.
Ejemplo 2
! In task T_ROB1
VAR jointtarget joints;
joints := CJointT(\TaskName:="T_ROB2");
El mismo efecto que en el ejemplo 1 anterior.
Gestin de errores
Si el argumento \TaskRef o \TaskName especifica alguna tarea sin movimiento, la variable
de sistema ERRNO cambia a ERR_NOT_MOVETASK. El error puede ser gestionado en el gestor
de errores.
Sin embargo, no se genera ningn error si el argumento \TaskRef o \TaskName especifica
la tarea sin movimiento que ejecuta esta funcin CJointT (hace referencia a la propia tarea
sin movimiento). En este caso, la posicin se captura de la tarea de movimiento conectada.
Sintaxis
CJointT(
[\ TaskRef := <variable (VAR) of taskid>]
|[\ TaskName := <expression (IN) of string>])
Una funcin con un valor de retorno del tipo de dato jointtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de ejes jointtarget - Datos de posicin de eje en la
pgina 1125
Lectura del ngulo actual del motor ReadMotor - Lee los ngulos actuales de los
motores en la pgina 956
Continuacin
2 Funciones
2.22. ClkRead - Lee un reloj utilizado para la temporizacin
RobotWare-OS
809 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.22. ClkRead - Lee un reloj utilizado para la temporizacin
Utilizacin
ClkRead se utiliza para leer un reloj que funciona como un cronmetro para funciones de
temporizacin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin ClkRead.
Ejemplo 1
reg1:=ClkRead(clock1);
Se lee el reloj clock1 y su tiempo en segundos se almacena en la variable reg1.
Valor de retorno
Tipo de dato: num
El tiempo almacenado en el reloj, en segundos. Tiene una exactitud de 0,01 segundos.
Argumento
ClkRead (Clock)
Clock
Tipo de dato: clock
El nombre del reloj a leer.
Ejecucin de programas
El reloj puede leerse tanto cuando est parado como cuando est en marcha.
Despus de leer el reloj, es posible leerlo de nuevo, ponerlo otra vez en marcha, pararlo o
ponerlo 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
ClkRead (
[ Clock ':='] < variable (VAR) of clock > ')'
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de reloj Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Sistema y tiempo
Ms ejemplos ClkStart - Pone en marcha un reloj utilizado
para la temporizacin en la pgina 52
2 Funciones
2.23. CorrRead - Lee los offsets totales actuales
Path Offset
3HAC16581-5 Revisin: H 810


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.23. CorrRead - Lee los offsets totales actuales
Utilizacin
CorrReadse utiliza para leer todas las correcciones entregadas por todos los generadores de
correcciones conectados.
Puede usar CorrRead para:
Determinar hasta qu punto son distintas la trayectoria actual y la trayectoria original.
Tomar las acciones oportunas para reducir la diferencia.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CorrRead.
Consulte tambin Ms ejemplos en la pgina 810.
Ejemplo 1
VAR pos offset;
...
offset := CorrRead();
Los offsets actuales proporcionados por todos los generadores de correcciones conectados
estn disponibles en la variable offset.
Valor de retorno
Tipo de dato: pos
Los offsets totales absolutos proporcionados hasta el momento por todos los generadores de
correcciones conectados.
Ms ejemplos
Para ver ms ejemplos de la funcin CorrRead, consulte Instrucciones - CorrCon.
Sintaxis
CorrRead'('')'
Una funcin con un valor de retorno del tipo de dato pos.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin con un generador de
correcciones
CorrCon - Establece una conexin con un
generador de correcciones en la pgina 70
Desconexin de un generador de
correcciones
CorrDiscon - Cierra la conexin con un
generador de correcciones en la pgina 75
Escritura en un generador de correcciones CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Eliminacin de todos los generadores de
correcciones
CorrClear - Elimina todos los generadores de
correcciones en la pgina 69
Descriptor de correccin corrdescr - Descriptor de generador de correc-
ciones en la pgina 1095
2 Funciones
2.24. Cos - Calcula el valor del coseno
RobotWare - OS
811 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.24. Cos - Calcula el valor del coseno
Utilizacin
Cos (Cosine) se utiliza para calcular el valor de coseno de un valor de ngulo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Cos.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
value := Cos(angle);
value obtiene el valor de coseno de angle.
Valor de retorno
Tipo de dato: num
El valor del coseno en el rango [-1, 1] .
Argumentos
Cos (Angle)
Angle
Tipo de dato: num
El valor del ngulo, expresado en grados.
Sintaxis
Cos(
[Angle :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.25. CPos - Lee los datos de posicin (pos) actuales
RobotWare - OS
3HAC16581-5 Revisin: H 812


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.25. CPos - Lee los datos de posicin (pos) actuales
Utilizacin
CPos(Current Position) se utiliza para leer la posicin actual del robot.
Esta funcin devuelve los valores x, y, z del TCP del robot, en un dato del tipo pos. Si es
necesario leer la posicin completa del robot (robtarget), utilice en su lugar la funcin
CRobT.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CPos.
Consulte tambin Ms ejemplos en la pgina 813.
VAR pos pos1;
MoveL *, v500, fine \Inpos := inpos50, tool1;
pos1 := CPos(\Tool:=tool1 \WObj:=wobj0);
La posicin actual del TCP del robot se almacena en la variable pos1. La herramienta tool1
y el objeto de trabajo wobj0 se utilizan para calcular la posicin.
Recuerde que el robot est en reposo antes de que se lea y calcule la posicin. Esto se
consigue utilizando el punto de paro fine con la exactitud de posicin inpos50 en la
instruccin de movimiento anterior.
Valor de retorno
Tipo de dato: pos
La posicin actual (pos) del robot con x, y, z en el sistema de coordenadas ms externo,
teniendo en cuenta la herramienta especificada, el objeto de trabajo y el sistema de
coordenadas ProgDisp activo.
Argumentos
CPos ([\Tool] [\WObj])
[\Too l]
Tipo de dato: tooldata
La herramienta utilizada para el clculo de la posicin actual del robot.
Si se omite este argumento, se utiliza la herramienta activa actualmente.
[\WObj]
Work Object
Tipo de dato: wobjdata
El objeto de trabajo (sistema de coordenadas) con el que est relacionada la posicin actual
del robot devuelta por la funcin.
Si se omite este argumento, se utiliza el objeto de trabajo activo actualmente.
AVISO!
Resulta aconsejable especificar siempre los argumentos \Tool y \WObj durante la
programacin. De esta forma, la posicin devolver siempre la posicin deseada, incluso si
se ha activado otra herramienta u otro objeto de trabajo.
Contina en la pgina siguiente
2 Funciones
2.25. CPos - Lee los datos de posicin (pos) actuales
RobotWare - OS
813 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Las coordenadas devueltas representan la posicin del TCP en el sistema de coordenadas
ProgDisp.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin CPos.
VAR pos pos2;
VAR pos pos3;
VAR pos pos4;
pos2 := CPos(\Tool:=grip3 \WObj:=fixture);
...
pos3 := CPos(\Tool:=grip3 \WObj:=fixture);
pos4 := pos3-pos2;
La posicin x, y, z del robot se captura en dos puntos dentro del programa, mediante la
funcin CPos. La herramienta grip3 y el objeto de trabajo fixture se utilizan para calcular
la posicin. Se calculan las distancias x, y, z recorridas entre estas posiciones y se almacenan
dichas distancias en la variable pos4.
Sintaxis
CPos (
[\Tool := <persistent (PERS) of tooldata>]
[\WObj := <persistent (PERS) of wobjdata>] )
Una funcin con un valor de retorno del tipo de dato pos.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de posicin pos - Posiciones (slo X, Y y Z) en la pgina
1156
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Sistema de coordenadas ProgDisp PDispOn - Activa el desplazamiento de
programa en la pgina 324
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Lectura del robtarget CRobT - Lee los datos de posicin (robtarget)
actuales en la pgina 814
Continuacin
2 Funciones
2.26. CRobT - Lee los datos de posicin (robtarget) actuales
RobotWare - OS
3HAC16581-5 Revisin: H 814


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.26. CRobT - Lee los datos de posicin (robtarget) actuales
Utilizacin
CRobT(Current Robot Target) se utiliza para leer la posicin actual de los ejes del robot y los
ejes externos.
Esta funcin devuelve un valor de robtarget con la posicin (x, y, z), la orientacin (q1 ...
q4), la configuracin de los ejes del robot y la posicin de los ejes externos. Si slo es
necesario leer los valores x, y, z del TCP del robot (pos), utilice en su lugar la funcin CPos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CRobT.
Consulte tambin Ms ejemplos en la pgina 815.
Ejemplo 1
VAR robtarget p1;
MoveL *, v500, fine \Inpos := inpos50, tool1;
p1 := CRobT(\Tool:=tool1 \WObj:=wobj0);
La posicin actual de los ejes del robot y los ejes externos se almacena en p1. La herramienta
tool1 y el objeto de trabajo wobj0 se utilizan para calcular la posicin.
Recuerde que el robot est en reposo antes de que se lea y calcule la posicin. Esto se
consigue utilizando el punto de paro fine con la exactitud de posicin inpos50 en la
instruccin de movimiento anterior.
Valor de retorno
Tipo de dato: robtarget
La posicin actual de los ejes de un robot y de los ejes externos 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.
Argumentos
CRobT ([\TaskRef]|[\TaskName] [\Tool] [\WObj])
[\TaskRef]
Task Reference
Tipo de dato: taskid
La identidad de tarea de programa desde la cual debe leerse robtarget.
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 T_ROB1 la identificacin de la tarea es T_ROB1Id.
[\TaskName]
Tipo de dato: string
El nombre de tarea de programa desde la cual debe leerse robtarget.
Si no se especifica ninguno de los argumentos, ni \TaskRef ni \TaskName, se usa la tarea
actual.
Contina en la pgina siguiente
2 Funciones
2.26. CRobT - Lee los datos de posicin (robtarget) actuales
RobotWare - OS
815 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Tool]
Tipo de dato: tooldata
La variable persistente de la herramienta utilizada para calcular la posicin actual del robot.
Si se omite este argumento, se utiliza la herramienta activa actualmente.
[\WObj]
Work Object
Tipo de dato: wobjdata
La variable persistente del objeto de trabajo (sistema de coordenadas) con el que est
relacionada la posicin actual del robot devuelta por la funcin.
Si se omite este argumento, se utiliza el objeto de trabajo activo actualmente.
AVISO!
Resulta aconsejable especificar siempre los argumentos \Tool y \WObj durante la
programacin. De esta forma, la posicin devolver siempre la posicin deseada, incluso si
se ha activado otra herramienta u otro objeto de trabajo.
Ejecucin de programas
Las coordenadas devueltas representan la posicin del TCP en el sistema de coordenadas
ProgDisp. Los ejes externos se representan en el sistema de coordenadas ExtOffs.
Si uno de los argumentos \TaskRef o \TaskName se usa pero no as los argumentos Tool
y WObj, se usarn la herramienta actual y el objeto de trabajo de la tarea especfica.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin CRobT.
Ejemplo 1
VAR robtarget p2;
p2 := ORobT( CRobT(\Tool:=grip3 \WObj:=fixture) );
La posicin actual de los ejes del robot y de los ejes externos en el sistema de coordenadas
del objeto (sin ProgDisp ni ExtOffs) se almacena en p2. La herramienta grip3 y el objeto
de trabajo fixture se utilizan para calcular la posicin.
Ejemplo 2
! In task T_ROB1
VAR robtarget p3;
p3 := CRobT(\TaskRef:=T_ROB2Id \Tool:=tool1 \WObj:=wobj0);
La posicin actual de los ejes del robot y los ejes externos de la tarea T_ROB2 se almacena en
p3 en la tarea T_ROB1. La herramienta tool1 y el objeto de trabajo wobj0 se utilizan para
calcular la posicin.
Recuerde que el robot de la tarea T_ROB2 puede estar movindose al leer y calcular la
posicin. Para asegurarse de que el robot est en reposo, puede programarse un punto de paro
fine en la instruccin de movimiento precedente de la tarea T_ROB2 y usar la instruccin
WaitSyncTask para sincronizar las instrucciones de la tarea T_ROB1.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.26. CRobT - Lee los datos de posicin (robtarget) actuales
RobotWare - OS
3HAC16581-5 Revisin: H 816


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 3
! In task T_ROB1
VAR robtarget p4;
p4 := CRobT(\TaskName:="T_ROB2");
La posicin actual de los ejes del robot y los ejes externos de la tarea T_ROB2 se almacena en
p4 en la tarea T_ROB1. La herramienta actual y el objeto de trabajo de la tarea T_ROB2 se
utilizan para calcular la posicin.
Gestin de errores
Si el argumento \TaskRef o \TaskName especifica alguna tarea sin movimiento, la variable
de sistema ERRNO cambia a ERR_NOT_MOVETASK. El error puede ser gestionado en el gestor
de errores.
Sin embargo, no se genera ningn error si los argumentos \TaskRef o \TaskName
especifican la tarea sin movimiento que ejecuta esta funcin CRobT (hace referencia a la
propia tarea sin movimiento). En este caso, la posicin se captura de la tarea de movimiento
conectada.
Sintaxis
CRobT(
[\ TaskRef := <variable (VAR) of taskid>]
|[\ TaskName := <expression (IN) of string>]
[\Tool := <persistent (PERS) of tooldata>]
[\WObj := <persistent (PERS) of wobjdata>] )
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de posicin robtarget - Datos de posicin en la pgina
1172
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Sistema de coordenadas ProgDisp PDispOn - Activa el desplazamiento de
programa en la pgina 324
Sistema de coordenadas ExtOffs EOffsOn - Activa un offset de ejes externos en
la pgina 86
Lectura del pos actual (slo x, y, z) CPos - Lee los datos de posicin (pos)
actuales en la pgina 812
Continuacin
2 Funciones
2.27. CSpeedOverride - Lee el ajuste de velocidad actual
RobotWare - OS
817 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.27. CSpeedOverride - Lee el ajuste de velocidad actual
Utilizacin
CSpeedOverride se utiliza para leer el ajuste de velocidad definido por el operador desde
el FlexPendant. El valor de retorno se muestra como un porcentaje, en el que el 100%
corresponde a la velocidad programada.
En aplicaciones que utilizan la instruccin SpeedRefresh, esta funcin tambin puede
usarse para leer el valor de ajuste de velocidad actual para esta tarea de programa de
movimiento o la tarea de movimiento conectada.
Atencin! No debe confundirlo con el argumento Override de la instruccin VelSet de
RAPID.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CSpeedOverride.
Ejemplo 1
VAR num myspeed;
myspeed := CSpeedOverride();
El ajuste de velocidad actual se almacena en la variable myspeed. Por ejemplo, si el valor es
100, equivale al 100%.
Valor de retorno
Tipo de dato: num
El valor del ajuste de velocidad, como porcentaje de la velocidad programada. Ser un valor
numrico en el rango de 0 a 100.
Argumentos
CSpeedOverride ( [\CTask] )
[\CTask]
Tipo de dato: switch
Se obtiene el valor de ajuste de velocidad actual para esta tarea de programa de movimiento
o la conectada. Se utiliza junto con la instruccin SpeedRefresh.
Si no se utiliza este argumento, la funcin devuelve el ajuste de velocidad actual de todo el
sistema (todas las tareas de programa de movimiento). Esto significa el ajuste de velocidad
manual, definido en la unidad de programacin.
Sintaxis
CSpeedOverride(
[\ CTask ] )
Una funcin con un valor de retorno del tipo de dato num.
Contina en la pgina siguiente
2 Funciones
2.27. CSpeedOverride - Lee el ajuste de velocidad actual
RobotWare - OS
3HAC16581-5 Revisin: H 818


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cambio del ajuste de velocidad Manual del operador - IRC5 con FlexPendant,
seccin Programacin y testing de ciclos de
produccin - Men de configuracin rpida -
Velocidad
Actualizacin del ajuste de velocidad desde
RAPID
SpeedRefresh - El ajuste de velocidad para el
movimiento en curso en la pgina 484
Continuacin
2 Funciones
2.28. CTime - Lee la hora actual en forma de una cadena
RobotWare-OS
819 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.28. CTime - Lee la hora actual en forma de una cadena
Utilizacin
CTime se utiliza para leer la hora actual del sistema.
Esta funcin puede usarse para mostrar la hora actual al operador en la pantalla del
FlexPendant o para pegar la hora actual en un archivo de texto en el que se escribe desde el
programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CTime.
Ejemplo 1
VAR string time;
time := CTime();
La hora actual se almacena en la variable time.
Valor de retorno
Tipo de dato: string
La hora actual en una cadena.
El formato de hora estndar es "horas:minutos:segundos", por ejemplo "18:20:46".
Mas ejemplos
A continuacin aparecen ms ejemplos de la funcin CTime.
Ejemplo 1
VAR string time;
time := CTime();
TPWrite "The current time is: "+time;
Write logfile, time;
Se escribe la hora actual en la pantalla del FlexPendant y dentro de un archivo de texto.
Sintaxis
CTime ( )
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de hora y fecha Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Sistema y tiempo
Cambio de hora del reloj del sistema Manual del operador - IRC5 con Flex-
Pendant, seccin Cmo cambiar la configu-
racin del FlexPendant
2 Funciones
2.29. CTool - Lee los datos actuales de la herramienta
RobotWare - OS
3HAC16581-5 Revisin: H 820


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.29. CTool - Lee los datos actuales de la herramienta
Utilizacin
CTool (Current Tool) se utiliza para leer los datos de la herramienta actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CTool:
Ejemplo 1
PERS tooldata temp_tool:= [ TRUE, [ [0, 0, 0], [1, 0, 0 ,0] ],
[0.001, [0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0] ];
temp_tool := CTool();
El valor de la herramienta actual se almacena en la variable temp_tool.
Valor de retorno
Tipo de dato: tooldata
Esta funcin devuelve un valor de tipo tooldata que contiene el valor de la herramienta
actual, es decir, la ltima herramienta utilizada en una instruccin de movimiento.
El valor devuelto representa la posicin y la orientacin del TCP en el sistema de coordenadas
del centro de la mueca. Consulte tooldata.
Sintaxis
CTool()
Una funcin con un valor de retorno del tipo de dato tooldata.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de herramientas tooldata - Datos de herramientas en la pgina
1206
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de
coordenadas
2 Funciones
2.30. CWObj - Lee los datos del objeto de trabajo actual
RobotWare - OS
821 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.30. CWObj - Lee los datos del objeto de trabajo actual
Utilizacin
CWObj (Current Work Object) se utiliza para leer los datos del objeto de trabajo actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin CWObj.
Ejemplo 1
PERS wobjdata temp_wobj:=[FALSE, TRUE, "", [[0,0,0], [1,0,0,0]],
[[0,0,0], [1,0,0,0]]];
temp_wobj := CWObj();
El valor del objeto de trabajo actual se almacena en la variable temp_wobj.
Valor de retorno
Tipo de dato: wobjdata
Esta funcin devuelve un valor de tipo wobjdata que contiene el valor del objeto de trabajo
actual, es decir, el ltimo objeto de trabajo utilizado en una instruccin de movimiento.
El valor devuelto representa la posicin y la orientacin del objeto de trabajo en el sistema de
coordenadas mundo. Consulte wobjdata.
Sintaxis
CWObj()
Una funcin con un valor de retorno del tipo de dato wobjdata.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de objetos de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
2 Funciones
2.31. DecToHex - Convierte de decimal a hexadecimal
RobotWare - OS
3HAC16581-5 Revisin: H 822


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.31. DecToHex - Convierte de decimal a hexadecimal
Utilizacin
DecToHex se usa para convertir un nmero especificado en una cadena que admita lectura de
la base 10 a la base 16.
La cadena resultante se construye con el conjunto de caracteres [0-9,A-Z].
Esta rutina admite los nmeros del 0 al 4294967295 en decimal o FFFFFFFF en hexadecimal.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DecToHex.
Ejemplo 1
VAR string str;
str := DecToHex("99999999");
Se asigna a la variable str el valor "5F5E0FF".
Valor de retorno
Tipo de dato: string
La cadena convertida a la representacin hexadecimal a partir del nmero indicado en la
cadena del parmetro de entrada.
Argumentos
DecToHex ( Str )
Str
String
Tipo de dato: string
La cadena a convertir.
Sintaxis
DecToHex(
[ Str := ] <expression (IN) of string> ,
)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
2 Funciones
2.32. DefAccFrame - Define una base de coordenadas exacta
RobotWare - OS
823 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.32. DefAccFrame - Define una base de coordenadas exacta
Utilizacin
DefAccFrame (Define Accurate Frame) se utiliza para definir una base de coordenadas de
tres a diez posiciones originales y un nmero igual de posiciones desplazadas.
Descripcin
Es posible definir una base de coordenadas cuando se conoce un conjunto de objetivos en dos
posiciones diferentes. Por tanto, se utilizan las mismas posiciones fsicas, pero expresadas de
forma diferente.
Debe considerarse con dos enfoques diferentes:
1. Se expresan las mismas posiciones fsicas respecto de sistemas de coordenadas
diferentes. Por ejemplo, se obtienen varias posiciones de un plano de CAD, por lo que
las posiciones se expresan en el sistema de coordenadas local del CAD. A
continuacin, las mismas posiciones se expresan en el sistema de coordenadas mundo
del robot. A partir de estos dos conjuntos de posiciones, se calcula la base de
coordenadas existente entre el sistema de coordenadas de CAD y el sistema de
coordenadas mundo.
2. Existe un conjunto de posiciones relacionadas con un objeto en una posicin original.
Despus de un desplazamiento del objeto, se determinan de nuevo las posiciones
(buscadas con frecuencia). A partir de estos dos conjuntos de posiciones (posiciones
anteriores y nuevas posiciones) se calcula la base de coordenadas de desplazamiento.
Basta con tres objetivos para definir una base de coordenadas, pero deben utilizarse varios
puntos para aumentar la exactitud.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DefAccFrame.
Ejemplo 1
xx0500002179
Contina en la pgina siguiente
2 Funciones
2.32. DefAccFrame - Define una base de coordenadas exacta
RobotWare - OS
3HAC16581-5 Revisin: H 824


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
CONST robtarget p4 := [...];
CONST robtarget p5 := [...];
VAR robtarget p6 := [...];
VAR robtarget p7 := [...];
VAR robtarget p8 := [...];
VAR robtarget p9 := [...];
VAR robtarget p10 := [...];
VAR robtarget pWCS{5};
VAR robtarget pCAD{5};
VAR pose frame1;
VAR num max_err;
VAR num mean_err;
! Add positions to robtarget arrays
pCAD{1}:=p1;
...
pCAD{5}:=p5;
pWCS{1}:=p6;
...
pWCS{5}:=p10;
frame1 := DefAccFrame (pCAD, pWCS, 5, max_err, mean_err);
Se han almacenado cinco posiciones, p1- p5, relacionadas con un objeto. Las mismas
posiciones tambin se almacenan en relacin con el sistema de coordenadas mundo, como
p6-p10. A partir de estas 10 posiciones se calcula la base de coordenadas frame1 existente
entre el sistema de coordenadas del objeto y el sistema de coordenadas mundo. La base de
coordenadas ser la base de coordenadas CAD, expresada en el sistema de coordenadas
mundo. Si se intercambia el orden de entrada de las listas de objetivos, por ejemplo
DefAccFrame (pWCS, pCAD....), la base de coordenadas mundo se expresa en el sistema
de coordenadas CAD.
Valor de retorno
Tipo de dato: pose
La base de coordenadas TargetListOne calculada se expresa en el sistema de coordenadas
TargetListTwo.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.32. DefAccFrame - Define una base de coordenadas exacta
RobotWare - OS
825 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
DefAccFrame (TargetListOne TargetListTwo TargetsInList
MaxErr MeanErr)
TargetListOne
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas en el primer sistema de
coordenadas. El nmero mnimo de robtargets es 3 y el mximo es 10.
TargetListTwo
Tipo de dato: robtarget
Una matriz de robtargets que contienen las posiciones definidas en el segundo sistema de
coordenadas. El nmero mnimo de robtargets es 3 y el mximo es 10.
TargetsInList
Tipo de dato: num
Nmero de robtargets de una matriz.
MaxErr
Tipo de dato: num
El error mximo estimado, en mm.
MeanErr
Tipo de dato: num
El error medio estimado, en mm.
Gestin de errores
Si las posiciones no tienen la relacin requerida o no se especifican con una exactitud
suficiente, la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error
puede ser gestionado en el gestor de errores.
Sintaxis
DefAccFrame(
[TargetListOne:=] <array {*} (IN) of robtarget> ,
[TargetListTwo :=] <array {*} (IN) of robtarget> ,
[TargetsInList:=] <expression (IN) of num> ,
[MaxErr:=] <variable (VAR) of num> ,
[MeanErr:=] <variable (VAR) of num>)
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Clculo de una base de coordenadas a partir
de tres posiciones
DefFrame - Define una base de coordenadas
en la pgina 829
Clculo de una base de coordenadas a partir
de 6 posiciones
DefDFrame - Define una base de
coordenadas de desplazamiento en la pgina
826
Continuacin
2 Funciones
2.33. DefDFrame - Define una base de coordenadas de desplazamiento
RobotWare - OS
3HAC16581-5 Revisin: H 826


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.33. DefDFrame - Define una base de coordenadas de desplazamiento
Utilizacin
DefDFrame(Define Displacement Frame) se utiliza para calcular una base de coordenadas de
desplazamiento a partir de tres posiciones originales y tres posiciones desplazadas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DefDFrame.
Ejemplo 1
xx0500002177
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
VAR robtarget p4;
VAR robtarget p5;
VAR robtarget p6;
VAR pose frame1;
...
!Search for the new positions
SearchL sen1, p4, *, v50, tool1;
...
SearchL sen1, p5, *, v50, tool1;
...
SearchL sen1, p6, *, v50, tool1;
frame1 := DefDframe (p1, p2, p3, p4, p5, p6);
...
!Activation of the displacement defined by frame1
PDispSet frame1;
Se han almacenado tres posiciones, p1-p3, relacionadas con un objeto en una posicin
original. Despus de un desplazamiento del objeto, se buscan tres posiciones nuevas, que se
almacenan como p4-p6. La base de coordenadas de desplazamiento se calcula a partir de
estas seis posiciones. A continuacin se utiliza la base de coordenadas calculada para
desplazar todas las posiciones almacenadas en el programa.
Valor de retorno
Tipo de dato: pose
La base de coordenadas de desplazamiento.
Contina en la pgina siguiente
2 Funciones
2.33. DefDFrame - Define una base de coordenadas de desplazamiento
RobotWare - OS
827 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
DefDFrame (OldP1 OldP2 OldP3 NewP1 NewP2 NewP3)
OldP1
Tipo de dato: robtarget
La primera posicin original.
OldP2
Tipo de dato: robtarget
La segunda posicin original.
OldP3
Tipo de dato: robtarget
La tercera posicin original.
NewP1
Tipo de dato: robtarget
La primera posicin desplazada. La diferencia entre OldP1 y NewP1 define la parte de
traslacin de la base de coordenadas y debe medirse y determinarse con una gran exactitud.
NewP2
Tipo de dato: robtarget
La segunda posicin desplazada. La lnea NewP1 ... NewP2 define la rotacin de la lnea
anterior OldP1 ... OldP2.
NewP3
Tipo de dato: robtarget
La tercera posicin desplazada. Esta posicin definir la rotacin del plano. Por ejemplo,
debe estar situada en el nuevo plano formado por NewP1, NewP2 y NewP3.
Gestin de errores
Si no es posible calcular la base de coordenadas debido a la baja exactitud de las posiciones,
la variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error puede ser
gestionado en el gestor de errores.
Sintaxis
DefDFrame(
[OldP1 :=] <expression (IN) of robtarget> ,
[OldP2 :=] <expression (IN) of robtarget> ,
[OldP3 :=] <expression (IN) of robtarget> ,
[NewP1 :=] <expression (IN) of robtarget> ,
[NewP2 :=] <expression (IN) of robtarget> ,
[NewP3 :=] <expression (IN) of robtarget> )
Una funcin con un valor de retorno del tipo de dato pose.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.33. DefDFrame - Define una base de coordenadas de desplazamiento
RobotWare - OS
3HAC16581-5 Revisin: H 828


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de una base de coordenadas de
desplazamiento
PDispSet - Activa un desplazamiento de
programa a partir de una base de
coordenadas conocida en la pgina 328
Definicin manual de la base de
coordenadas de desplazamiento
Manual del operador - IRC5 con FlexPendant,
seccin Calibracin
Continuacin
2 Funciones
2.34. DefFrame - Define una base de coordenadas
RobotWare - OS
829 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.34. DefFrame - Define una base de coordenadas
Utilizacin
DefFrame (Define Frame) se utiliza para calcular una base de coordenadas a partir de tres
posiciones que la definen.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DefFrame.
Ejemplo 1
xx0500002181
Se utilizan tres posiciones, p1- p3, en relacin con el sistema de coordenadas del objeto,
para definir el nuevo sistema de coordenadas, frame1. La primera posicin, p1, define el
origen del nuevo sistema de coordenadas. La segunda posicin, p2, define la direccin del eje
x. La tercera posicin, p3, define la ubicacin del plano xy. La base de coordenadas frame1
definida puede usarse como base de coordenadas de desplazamiento, como se muestra en el
ejemplo siguiente:
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
VAR pose frame1;
...
...
frame1 := DefFrame (p1, p2, p3);
...
...
!Activation of the displacement defined by frame1
PDispSet frame1;
Valor de retorno
Tipo de dato: pose
La base de coordenadas calculada.
El clculo se realiza respecto del sistema de coordenadas del objeto activo.
Contina en la pgina siguiente
2 Funciones
2.34. DefFrame - Define una base de coordenadas
RobotWare - OS
3HAC16581-5 Revisin: H 830


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
DefFrame (NewP1 NewP2 NewP3 [\Origin])
NewP1
Tipo de dato: robtarget
La primera posicin, que definir el origen del nuevo sistema de coordenadas.
NewP2
Tipo de dato: robtarget
La segunda posicin, que definir la direccin del eje x de la nueva base de coordenadas.
NewP3
Tipo de dato: robtarget
La tercera posicin, que definir el plano xy del nuevo sistema de coordenadas. La posicin
del punto 3 estar en el lado y positivo, como se muestra en la figura anterior.
[\Origin]
Tipo de dato: num
Un argumento opcional que definir cmo se posiciona el origen del nuevo sistema de
coordenadas. El valor Origin =1 significa que el origen se sita en NewP1, es decir, el
mismo que si se omite este argumento. El valor Origin =2 significa que el origen se sita
en NewP2. Consulte la figura siguiente.
xx0500002178
El valor Origin =3 significa que el origen se sita en la lnea que va desde NewP1 a NewP2
y por tanto NewP3 se sita en el eje y. Consulte la figura siguiente.
xx0500002180
Cualquier otro valor, o la omisin de Origin, situar el origen en NewP1.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.34. DefFrame - Define una base de coordenadas
RobotWare - OS
831 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si no es posible calcular la base de coordenadas a causa de las limitaciones mencionadas, la
variable de sistema ERRNO cambia a ERR_FRAME. A continuacin, este error puede ser
gestionado en el gestor de errores.
Limitaciones
Las tres posiciones de p1 - p3 que definen la base de coordenadas deben formar un tringulo
bien definido. El tipo de tringulo mejor definido es aqul en el que todos los lados tienen la
misma longitud.
xx0500002182
Se considera que este tringulo no est bien definido si el ngulo es demasiado pequeo. El
ngulo es demasiado pequeo si se cumple la expresin siguiente:
|cos | <1 - 10
-4
El tringulo p1, p2, p3 no debe ser demasiado pequeo, es decir, las posiciones no deben estar
demasiado cercanas entre s. Las distancias existentes entre p1 - p2 y entre p1 - p3 no
deben ser inferiores a 0,1 mm.
Sintaxis
DefFrame(
[NewP1 :=] <expression (IN) of robtarget> ,
[NewP2 :=] <expression (IN) of robtarget> ,
[NewP3 :=] <expression (IN) of robtarget>
[\Origin:= <expression (IN) of num>])
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Activacin de una base de coordenadas de
desplazamiento
PDispSet - Activa un desplazamiento de
programa a partir de una base de
coordenadas conocida en la pgina 328
Continuacin
2 Funciones
2.35. Dim - Obtiene las dimensiones de una matriz
RobotWare - OS
3HAC16581-5 Revisin: H 832


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.35. Dim - Obtiene las dimensiones de una matriz
Utilizacin
Dim(Dimension) se utiliza para obtener el nmero de elementos de una matriz.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Dim.
Consulte tambin Ms ejemplos en la pgina 833.
Ejemplo 1
PROC arrmul(VAR num array{*}, num factor)
FOR index FROM 1 TO Dim(array, 1) DO
array{index} := array{index} * factor;
ENDFOR
ENDPROC
Se multiplican por un factor todos los elementos de una matriz de elementos de tipo num. Este
procedimiento acepta como entrada cualquier matriz de una sola dimensin y compuesta de
elementos de tipo num.
Valor de retorno
Tipo de dato: num
El nmero de elementos de la matriz en la dimensin especificada.
Argumentos
Dim (ArrPar DimNo)
ArrPar
Array Parameter
Tipo de dato: cualquier tipo
El nombre de la matriz.
DimNo
Dimension Number
Tipo de dato: num
La dimensin deseada de la matriz:
1 =Primera dimensin
2 =Segunda dimensin
3 =Tercera dimensin
Contina en la pgina siguiente
2 Funciones
2.35. Dim - Obtiene las dimensiones de una matriz
RobotWare - OS
833 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin Dim.
Ejemplo 1
PROC add_matrix(VAR num array1{*,*,*}, num array2{*,*,*})
IF Dim(array1,1) <> Dim(array2,1) OR Dim(array1,2) <>
Dim(array2,2) OR Dim(array1,3) <> Dim(array2,3) THEN
TPWrite "The size of the matrices are not the same";
Stop;
ELSE
FOR i1 FROM 1 TO Dim(array1, 1) DO
FOR i2 FROM 1 TO Dim(array1, 2) DO
FOR i3 FROM 1 TO Dim(array1, 3) DO
array1{i1,i2,i3} := array1{i1,i2,i3} +
array2{i1,i2,i3};
ENDFOR
ENDFOR
ENDFOR
ENDIF
RETURN;
ENDPROC
Se suman dos matrices. Si las matrices son de distinto tamao, el programa se detiene y
aparece un mensaje de error.
Este procedimiento acepta cualquier matriz tridimensional y compuesta de elementos de tipo
num.
Sintaxis
Dim (
[ArrPar:=] <reference (REF) of any type> ,
[DimNo:=] <expression (IN) of num> )
Los parmetros REF exigen que el argumento correspondiente sea una constante, una
variable o una variable persistente entera. El argumento tambin puede ser un parmetro IN,
un parmetro VAR o un parmetro PERS entero.
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Parmetros de matriz Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Declaracin de matriz Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Datos
Continuacin
2 Funciones
2.36. Distance - Distancia entre dos puntos
RobotWare - OS
3HAC16581-5 Revisin: H 834


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.36. Distance - Distancia entre dos puntos
Utilizacin
Distance se utiliza para calcular la distancia entre dos puntos del espacio.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Distance.
Ejemplo 1
xx0500002321
VAR num dist;
CONST pos p1 := [4,0,4];
CONST pos p2 := [-4,4,4];
...
dist := Distance(p1, p2);
Se calcula la distancia en el espacio existente entre los puntos p1 y p2. El resultado se asigna
a la variable dist.
Valor de retorno
Tipo de dato: num
La distancia (siempre positiva) en mm entre los puntos.
Argumentos
Distance (Point1 Point2)
Point1
Tipo de dato: pos
El primer punto descrito con el tipo de dato pos.
Point2
Tipo de dato: pos
El segundo punto descrito con el tipo de dato pos.
Contina en la pgina siguiente
2 Funciones
2.36. Distance - Distancia entre dos puntos
RobotWare - OS
835 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Clculo de la distancia existente entre dos puntos:
xx0500002322
xx0500002323
Sintaxis
Distance(
[Point1 :=] <expression (IN) of pos> ,
[Point2 :=] <expression (IN) of pos> )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Definicin de una posicin con pos pos - Posiciones (slo X, Y y Z) en la pgina
1156
Continuacin
2 Funciones
2.37. DnumToNum - Convierte dnum a num
RobotWare - OS
3HAC16581-5 Revisin: H 836


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.37. DnumToNum - Convierte dnum a num
Utilizacin
DnumToNum convierte un valor dnum a un valor num si es posible. De lo contrario, genera un
error recuperable.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la funcin DnumToNum.
Ejemplo 1
VAR num mynum:=0;
VAR dnum mydnum:=8388607;
VAR dnum testFloat:=8388609;
VAR dnum anotherdnum:=0d4294967295;
! Works OK
mynum:=DnumToNum(mydnum);
! Accept floating point value
mynum:=DnumToNum(testFloat);
! Cause error recovery error
mynum:=DnumToNum(anotherdnum \Integer);
El valor dnum 8388607 es devuelto por la funcin como el valor num 8388607.
El valor dnum 8388609 es devuelto por la funcin como el valor num 8.38861E+06.
El valor dnum 4294967295 genera el error recuperable ERR_ ARGVALERR.
Valor de retorno
Tipo de dato: num
El valor dnum de entrada puede estar en el rango de -8388607 a 8388608 y devuelve el mismo
valor como un num. Si no se utiliza el modificador \Integer, el valor dnum de entrada puede
estar en el rango de -3,40282347E+38 a 3,40282347E+38 y el valor de retorno puede
convertirse en un valor de coma flotante.
Argumentos
DnumToNum (Value [\Integer])
Value
Tipo de dato: dnum
El valor numrico a convertir.
[\Integer]
Tipo de dato: switch
Slo valores enteros
Si no se utiliza el modificador \Integer, se realiza un cambio al tipo menor incluso si el
valor pasa a ser un valor de coma flotante. Si no se utiliza, se realiza una comprobacin de si
el valor es un entero que est entre -8388607 y 8388608. Si no es as, se genera un error
recuperable.
Contina en la pgina siguiente
2 Funciones
2.37. DnumToNum - Convierte dnum a num
RobotWare - OS
837 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
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:
Sintaxis
DnumToNum
[ Value := ] < expression (IN) of dnum >
[\ Integer] ;
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Cdigo de error Descripcin
ERR_ARGVALERR Si el valor es superior a 8388608 o inferior a -8388607 o no es un
entero (si se utiliza el argumento opcional Integer)
ERR_NUM_LIMIT El valor es superior a 3,40282347E+38 o inferior a
-3,40282347E+38
ERR_INT_NOTVAL El valor no es un entero
Para obtener ms informacin sobre Consulte
Tipo de dato Dnum dnum - Valores numricos dobles en la
pgina 1100.
Tipo de dato Num num - Valores numricos en la pgina 1142.
Continuacin
2 Funciones
2.38. DotProd - Producto escalar de dos vectores pos
RobotWare - OS
3HAC16581-5 Revisin: H 838


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.38. DotProd - Producto escalar de dos vectores pos
Utilizacin
DotProd (Dot Product) se utiliza para calcular el producto escalar de dos vectores pos. La
aplicacin tpica de esta funcin es calcular la proyeccin de un vector sobre el otro o calcular
el ngulo existente entre dos vectores.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DotProd.
Ejemplo 1
xx0500002449
El producto escalar de dos vectores A y B es un escalar, lo que equivale a los productos de
las magnitudes de A y B y el coseno del ngulo que forman.
.
El producto escalar:
Es menor o igual que el producto de las magnitudes.
Puede ser un valor positivo o negativo, en funcin de si el ngulo formado por los
vectores es superior o inferior a 90 grados.
Es igual al producto de la magnitud de un vector y la proteccin del segundo vector
sobre el primero.
Es cero si los vectores son perpendiculares entre s.
Los vectores se describen con el tipo de dato pos y el producto escalar se describe con el tipo
de dato num:
VAR num dotprod;
VAR pos vector1;
VAR pos vector2;
...
...
vector1 := [1,1,1];
vector2 := [1,2,3];
dotprod := DotProd(vector1, vector2);
Valor de retorno
Tipo de dato: num
El valor del producto escalar de los dos vectores.
Contina en la pgina siguiente
2 Funciones
2.38. DotProd - Producto escalar de dos vectores pos
RobotWare - OS
839 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
DotProd (Vector1 Vector2)
Vector1
Tipo de dato: pos
El primer vector descrito con el tipo de dato pos.
Vector2
Tipo de dato: pos
El segundo vector descrito con el tipo de dato pos.
Sintaxis
DotProd(
[Vector1 :=] <expression (IN) of pos>,
[Vector2 :=] <expression (IN) of pos>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.39. DOutput - Lee el valor de una seal digital de salida
RobotWare - OS
3HAC16581-5 Revisin: H 840


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.39. DOutput - Lee el valor de una seal digital de salida
Utilizacin
DOutput se utiliza para leer el valor actual de una seal digital de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin DOutput.
Consulte tambin Ms ejemplos en la pgina 840.
Ejemplo 1
IF DOutput(do2) = 1 THEN...
Si el valor actual de la seal do2 es igual a 1, entonces ...
Valor de retorno
Tipo de dato: dionum
El valor actual de la seal (0 1).
Argumentos
DOutput (Signal)
Signal
Tipo de dato: signaldo
El nombre de la seal a leer.
Ejecucin de programas
El valor ledo depende de la configuracin de la seal. Si la seal est invertida en los
parmetros de sistema, el valor devuelto por esta funcin es lo opuesto al valor real del canal
fsico.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin DOutput.
Ejemplo 1
IF DOutput(auto_on) <> active THEN . . .
Si el valor actual de la seal de sistema auto_on es not active, entonces .... Es decir, si
el robot est en el modo de funcionamiento manual, entonces ...
NOTA!
La seal debe estar definida previamente como salida de sistema en los parmetros de
sistema.
Contina en la pgina siguiente
2 Funciones
2.39. DOutput - Lee el valor de una seal digital de salida
RobotWare - OS
841 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
DOutput (
[ Signal := ] < variable (VAR) of signaldo > )
Una funcin con un valor de retorno del tipo de dato dionum.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de una seal digital de salida SetDO - Cambia el valor de una seal digital
de salida en la pgina 448
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
2 Funciones
2.40. EulerZYX - Obtiene ngulos Euler a partir de una orientacin
RobotWare - OS
3HAC16581-5 Revisin: H 842


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.40. EulerZYX - Obtiene ngulos Euler a partir de una orientacin
Utilizacin
EulerZYX (Euler ZYX rotations) se utiliza para obtener un componente de ngulo Euler a
partir de una variable de tipo orient.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin EulerZYX.
Ejemplo 1
VAR num anglex;
VAR num angley;
VAR num anglez;
VAR pose object;
...
...
anglex := EulerZYX(\X, object.rot);
angley := EulerZYX(\Y, object.rot);
anglez := EulerZYX(\Z, object.rot);
Valor de retorno
Tipo de dato: num
El ngulo Euler correspondiente, expresado en grados, en el rango [-180, 180].
Argumentos
EulerZYX ([\X] | [\Y] | [\Z] Rotation)
[\X]
Tipo de dato: switch
Obtiene la rotacin alrededor del eje X.
[\Y]
Tipo de dato: switch
Obtiene la rotacin alrededor del eje Y.
[\Z]
Tipo de dato: switch
Obtiene la rotacin alrededor del eje Z.
Atencin!
Los argumentos \X, \Y y \Z son excluyentes entre s. Si no se especifica ninguno de estos
argumentos, se genera un error en tiempo de ejecucin.
Rotation
Tipo de dato: orient
La rotacin representada en forma de cuaternio.
Contina en la pgina siguiente
2 Funciones
2.40. EulerZYX - Obtiene ngulos Euler a partir de una orientacin
RobotWare - OS
843 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
EulerZYX(
['\'X ,] | ['\'Y ,] | ['\'Z,]
[Rotation:=] <expression (IN) of orient>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.41. EventType - Obtiene el tipo de evento actual dentro de cualquier rutina de evento
RobotWare - OS
3HAC16581-5 Revisin: H 844


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.41. EventType - Obtiene el tipo de evento actual dentro de cualquier rutina de
evento
Utilizacin
EventType puede usarse en cualquier rutina de evento y devuelve a continuacin el tipo de
evento ejecutado actualmente.
Si la llamada a EventType se realiza desde cualquier rutina de tarea de programa,
EventType devuelve siempre 0, para indicar EVENT_NONE.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin EventType.
Ejemplo 1
TEST EventType()
CASE EVENT_NONE:
! Not executing any event
CASE EVENT_POWERON:
! Executing POWER ON event
CASE EVENT_START:
! Executing START event
CASE EVENT_STOP:
! Executing STOP event
CASE EVENT_QSTOP:
! Executing QSTOP event
CASE EVENT_RESTART:
! Executing RESTART event
CASE EVENT_RESET:
! Executing RESET event
ENDTEST
Uso de la funcin EventType dentro de cualquier rutina de evento para determinar qu
eventos de sistema, si los hay, se estn ejecutando en ese momento.
Valor de retorno
Tipo de dato:event_type
El tipo de evento actual ejecutado de 1 a 6, o 0 si no se ejecuta ninguna rutina de evento.
Datos predefinidos
Pueden utilizarse las siguientes constantes simblicas predefinidas del tipo event_type
para comprobar el valor de retorno.
CONST event_type EVENT_NONE := 0;
CONST event_type EVENT_POWERON := 1;
CONST event_type EVENT_START := 2;
CONST event_type EVENT_STOP := 3;
CONST event_type EVENT_QSTOP:= 4;
CONST event_type EVENT_RESTART := 5;
CONST event_type EVENT_RESET := 6;
Contina en la pgina siguiente
2 Funciones
2.41. EventType - Obtiene el tipo de evento actual dentro de cualquier rutina de evento
RobotWare - OS
845 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
EventType( )
A function with a return value of the data type event_type.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Rutinas de evento en general Manual de referencia tcnica - Parmetros del
sistema, seccin Controller - Event Routine
Tipo de datos event_type, constantes
predefinidas
event_type - Tipo de rutina de evento en la
pgina 1112
Continuacin
2 Funciones
2.42. ExecHandler - Obtener el tipo de gestor de ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 846


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.42. ExecHandler - Obtener el tipo de gestor de ejecucin
Utilizacin
ExecHandler puede usarse para determinar si el cdigo de RAPID actual se est ejecutando
en algn gestor de rutina de programa de RAPID.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ExecHandler.
Ejemplo 1
TEST ExecHandler()
CASE HANDLER_NONE:
! Not executing in any routine handler
CASE HANDLER_BWD:
! Executing in routine BACKWARD handler
CASE HANDLER_ERR:
! Executing in routine ERROR handler
CASE HANDLER_UNDO:
! Executing in routine UNDO handler
ENDTEST
Uso de la funcin ExecHandler para determinar si el cdigo se est ejecutando dentro de
algn tipo de gestor de rutina o no.
Se devolver HANDLER_ERR incluso si la llamada es ejecutada dentro de un mtodo
secundario del gestor de errores.
Valor de retorno
Tipo de dato:handler_type
El tipo de gestor actual ejecutado de 1 a 3, 0 si no se ejecuta dentro de ningn gestor de
rutina.
Datos predefinidos
Pueden utilizarse las siguientes constantes simblicas predefinidas del tipo handler_type
para comprobar el valor de retorno.
CONST handler_type HANDLER_NONE := 0;
CONST handler_type HANDLER_BWD := 1;
CONST handler_type HANDLER_ERR := 2;
CONST handler_type HANDLER_UNDO := 3;
Sintaxis
ExecHandler( )
A function with a return value of the data type handler_type.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de gestor de ejecucin handler_type - Type of execution handler en
la pgina 1116
2 Funciones
2.43. ExecLevel - Obtener el nivel de ejecucin
RobotWare - OS
847 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.43. ExecLevel - Obtener el nivel de ejecucin
Utilizacin
ExecLevel puede usarse para determinar el nivel de ejecucin actual del cdigo de RAPID
que se est ejecutando.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ExecLevel.
Ejemplo 1
TEST ExecLevel()
CASE LEVEL_NORMAL:
! Execute on base level
CASE LEVEL_TRAP:
! Execute in TRAP routine
CASE LEVEL_SERVICE:
! Execute in service, event or system input interrupt routine
ENDTEST
Uso de la funcin ExecLevel para determinar el nivel de ejecucin actual.
Valor de retorno
Tipo de dato:exec_level
El nivel de ejecucin actual, de 0 a 2.
Datos predefinidos
Pueden utilizarse las siguientes constantes simblicas predefinidas del tipo event_level
para comprobar el valor de retorno.
CONST exec_level LEVEL_NORMAL := 0;
CONST exec_level LEVEL_TRAP := 1;
CONST exec_level LEVEL_SERVICE := 2;
Sintaxis
ExecLevel( )
A function with a return value of the data type exec_level.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de dato del nivel de ejecucin exec_level - Execution level en la pgina
1113
2 Funciones
2.44. Exp - Calcula el valor exponencial
RobotWare - OS
3HAC16581-5 Revisin: H 848


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.44. Exp - Calcula el valor exponencial
Utilizacin
Exp (Exponential) se utiliza para calcular el valor exponencial, e
x
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Exp.
Ejemplo 1
VAR num x;
VAR num value;
...
value:= Exp( x);
value obtiene el valor exponencial de x.
Valor de retorno
Tipo de dato: num
El valor exponencial, e
x
.
Argumentos
Exp (Exponent)
Exponent
Tipo de dato: num
El valor del argumento de exponente.
Sintaxis
Exp(
[Exponent :=] <expression (IN) of num>)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.45. FileSize - Obtiene el tamao de un archivo
RobotWare - OS
849 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.45. FileSize - Obtiene el tamao de un archivo
Utilizacin
FileSize se utiliza para obtener el tamao del archivo especificado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin FileSize.
Consulte tambin Ms ejemplos en la pgina 850.
Ejemplo 1
PROC listfile(string filename)
VAR num size;
size := FileSize(filename);
TPWrite filename+" size: "+NumToStr(size,0)+" Bytes";
ENDPROC
Este procedimiento imprime el nombre del archivo especificado, junto con la especificacin
de su tamao.
Valor de retorno
Tipo de dato: num
El tamao en bytes.
Argumentos
FileSize (Path)
Path
Tipo de dato: string
El nombre del archivo, especificado con una ruta completa o relativa.
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica el tamao en bytes del archivo
especificado.
Tambin es posible obtener esta misma informacin acerca de un directorio.
Contina en la pgina siguiente
2 Funciones
2.45. FileSize - Obtiene el tamao de un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 850


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen algunos ejemplos bsicos de la funcin.
Ejemplo 1
En este ejemplo se enumeran todos los archivos que tengan un tamao mayor de 1 KByte
dentro de la estructura de directorios de "HOME:", incluidos todos los subdirectorios.
PROC searchdir(string dirname, string actionproc)
VAR dir directory;
VAR string filename;
IF IsFile(dirname \Directory) THEN
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
! .. and . is the parent and resp. this directory
IF filename <> ".." AND filename <> "." THEN
searchdir dirname+"/"+filename, actionproc;
ENDIF
ENDWHILE
CloseDir directory;
ELSE
%actionproc% dirname;
ENDIF
ERROR
RAISE;
ENDPROC
PROC listfile(string filename)
IF FileSize(filename) > 1024 THEN
TPWrite filename;
ENDIF
ENDPROC
PROC main()
! Execute the listfile routine for all files found under the
! tree of HOME:
searchdir "HOME:","listfile";
ENDPROC
Este programa recorre la estructura de directorios que existe dentro de "HOME:" y con cada
archivo encontrado, ejecuta el procedimiento listfile. searchdir es una parte genrica,
que no tiene ninguna informacin sobre el inicio de la bsqueda ni sobre a qu rutina se debe
llamar con cada archivo. Utiliza IsFile para comprobar si se ha encontrado un subdirectorio
o un archivo y utiliza el mecanismo de enlazamiento en tiempo de ejecucin para llamar al
procedimiento especificado en actionproc con todos los archivos encontrados. La rutina
actionproc listfile comprueba si el archivo tiene un tamao mayor que 1 KByte.
Gestin de errores
Si el archivo no existe, la variable de sistema ERRNO cambia a ERR_FILEACC. A
continuacin, este error puede ser gestionado en el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.45. FileSize - Obtiene el tamao de un archivo
RobotWare - OS
851 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
FileSize (
[ Path ':='] < expression (IN) of string> ')'
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
Continuacin
2 Funciones
2.46. FileTime - Obtiene la informacin de hora de un archivo
RobotWare-OS
3HAC16581-5 Revisin: H 852


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.46. FileTime - Obtiene la informacin de hora de un archivo
Utilizacin
FileTime se utiliza para obtener la ltima hora de modificacin, acceso o cambio de estado
de un archivo. La hora se indica en segundos a partir de las 00:00:00 horas, hora de
Greenwich, del 1 de enero de 1970. La hora se devuelve como un valor de tipo num y
opcionalmente tambin en un valor de tipo stringdig.
Ejemplo bsico
A continuacin aparecen algunos ejemplos bsicos de la funcin FileTime.
Consulte tambin Ms ejemplos en la pgina 853.
Ejemplo 1
IF FileTime ("HOME:/mymod.mod" \ModifyTime)
> ModTime ("mymod") THEN
UnLoad "HOME:mymod.mod";
Load \Dynamic, "HOME:mymod.mod";
ENDIF
Este programa recarga un mdulo si el archivo de origen es ms reciente. Utiliza ModTime
para obtener la hora de la ltima modificacin del mdulo especificado y para compararlo con
los valores de FileTime\ModifyTime del origen. A continuacin, si el origen es ms
reciente, el programa descarga y carga de nuevo el mdulo.
Limitacin de este ejemplo: El tipo de dato num no puede manejar enteros positivos
superiores a 8388608 segundos con una representacin exacta. Para obtener una mejor
resolucin, consulte el ejemplo de la funcin StrDigCmp.
Valor de retorno
Tipo de dato: num
El tiempo, medido en segundos, desde las 00:00:00 horas, horario de Greenwich, del 1 de
enero de 1970.
Argumentos
FileTime ( Path [\ModifyTime] | [\AccessTime] | [\StatCTime]
[\StrDig])
Path
Tipo de dato: string
El archivo especificado con una ruta completa o relativa.
[\ModifyTime]
Tipo de dato: switch
ltima hora de modificacin.
[\AccessTime]
Tipo de dato: switch
Hora del ltimo acceso (lectura, ejecucin o modificacin).
Contina en la pgina siguiente
2 Funciones
2.46. FileTime - Obtiene la informacin de hora de un archivo
RobotWare-OS
853 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\StatCTime]
Tipo de dato: switch
Hora del ltimo cambio de estado (cualificacin de acceso) del archivo.
[\StrDig]
String Digit
Tipo de dato: stringdig
Para obtener la hora del archivo en una representacin de tipo stringdig.
Su uso adicional en StrDigCmp permite gestionar enteros positivos superiores a 8388608
con una representacin exacta.
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica el tiempo desde la ltima operacin
de:
Modificacin
Acceso
Cambio de estado
del archivo especificado.
Tambin es posible obtener esta misma informacin acerca de un directorio.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin FileTime.
A continuacin aparece un ejemplo completo en el que se implementa un servicio de alerta
para un mximo de 10 archivos.
LOCAL RECORD falert
string filename;
num ftime;
ENDRECORD
LOCAL VAR falert myfiles[10];
LOCAL VAR num currentpos:=0;
LOCAL VAR intnum timeint;
PROC alertInit(num freq)
currentpos:=0;
CONNECT timeint WITH mytrap;
ITimer freq,timeint;
ENDPROC
LOCAL TRAP mytrap
VAR num pos:=1;
WHILE pos <= currentpos DO
IF FileTime(myfiles{pos}.filename \ModifyTime) >
myfiles{pos}.ftime THEN
TPWrite "The file "+myfiles{pos}.filename+" is changed";
ENDIF
Continuacin
Contina en la pgina siguiente
2 Funciones
2.46. FileTime - Obtiene la informacin de hora de un archivo
RobotWare-OS
3HAC16581-5 Revisin: H 854


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
pos := pos+1;
ENDWHILE
ENDTRAP
PROC alertNew(string filename)
currentpos := currentpos+1;
IF currentpos <= 10 THEN
myfiles{currentpos}.filename := filename;
myfiles{currentpos}.ftime := FileTime (filename \ModifyTime);
ENDIF
ENDPROC
PROC alertFree()
IDelete timeint;
ENDPROC
Gestin de errores
Si el archivo no existe, la variable de sistema ERRNO cambia a ERR_FILEACC. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
FileTime (
[ Path := ] < expression (IN) of string>
[ '\'ModifyTime] |
[ '\'AccessTime] |
[ '\'StatCTime]
[ '\' StrDig := < variable (VAR) of stringdig> ] )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
ltima hora de modificacin de un mdulo
cargado
ModTime - Obtiene la hora de modificacin
del mdulo cargado en la pgina
905ModTime - Obtiene la hora de modifi-
cacin del mdulo cargado en la pgina 905
Cadena de caracteres con slo dgitos ModTime - Obtiene la hora de modificacin
del mdulo cargado en la pgina 905stringdig
- Cadena de caracteres con slo dos dgitos
en la pgina 1194
Comparar dos cadenas que slo contienen
dgitos
ModTime - Obtiene la hora de modificacin
del mdulo cargado en la pgina
905StrDigCmp - Comparar dos cadenas que
slo contienen dgitos en la pgina 1000
Continuacin
2 Funciones
2.47. FSSize - Obtiene el tamao de un sistema de archivos
RobotWare - OS
855 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.47. FSSize - Obtiene el tamao de un sistema de archivos
Utilizacin
FSSize (File System Size) se utiliza para obtener el tamao del sistema de archivos en el que
se encuentra el archivo especificado. El tamao en bytes, kilobytes o megabytes se devuelve
con el tipo num.
Ejemplo bsico
A continuacin aparecen algunos ejemplos bsicos de la funcin FSSize.
Consulte tambin Ms ejemplos en la pgina 856.
Ejemplo 1
PROC main()
VAR num totalfsyssize;
VAR num freefsyssize;
freefsyssize := FSSize("HOME:/spy.log" \Free);
totalfsyssize := FSSize("HOME:/spy.log" \Total);
TPWrite NumToStr(((totalfsyssize - freefsyssize)/
totalfsyssize)*100,0)
+" percent used";
ENDPROC
Este procedimiento imprime la cantidad de espacio del disco utilizada en el sistema de
archivos HOME (disco flash /hd0a/), en forma de un porcentaje.
Valor de retorno
Tipo de dato: num
El tamao en bytes.
Argumentos
FSSize (Name [\Total] | [\Free] [\Kbyte] [\Mbyte])
Name
Tipo de dato: string
El nombre de un archivo en el sistema de archivos, especificado con una ruta completa o
relativa.
[ \Total ]
Tipo de dato: switch
Obtiene la cantidad total de espacio del sistema de archivos.
[ \Free ]
Tipo de dato: switch
Obtiene la cantidad de espacio libre del sistema de archivos.
[ \Kbyte ]
Tipo de dato: switch
Convertir a kilobytes el nmero de bytes ledos, es decir, dividir el tamao entre 1.024.
Contina en la pgina siguiente
2 Funciones
2.47. FSSize - Obtiene el tamao de un sistema de archivos
RobotWare - OS
3HAC16581-5 Revisin: H 856


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \Mbyte ]
Tipo de dato: switch
Convertir a megabytes el nmero de bytes ledos, es decir, dividir el tamao entre 1.048.576
(1.024*1.024).
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica el tamao del sistema de archivos en
el que se encuentra el archivo especificado.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin FSSize.
Ejemplo 1
LOCAL VAR intnum timeint;
LOCAL TRAP mytrap
IF FSSize("HOME:/spy.log" \Free)/FSSize("HOME:/spy.log" \Total)
<= 0.1 THEN
TPWrite "The disk is almost full";
alertFree;
ENDIF
ENDTRAP
PROC alertInit(num freq)
CONNECT timeint WITH mytrap;
ITimer freq,timeint;
ENDPROC
PROC alertFree()
IDelete timeint;
ENDPROC
A continuacin aparece un ejemplo completo de la implementacin de un servicio de alerta
que imprime una advertencia en el FlexPendant cuando el espacio libre que queda en el
sistema de archivos "HOME:" es inferior al 10%.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor de ERROR. La variable de sistema ERRNO cambia a:
ERR_FILEACC El sistema de archivos no existe
ERR_FILESIZE El tamao sobrepasa el valor de entero mximo de un valor
num, 8388608
Continuacin
Contina en la pgina siguiente
2 Funciones
2.47. FSSize - Obtiene el tamao de un sistema de archivos
RobotWare - OS
857 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
FSSize(
[ Name := ] < expression (IN) of string>
[ \Total ] | [ \Free ]
[ \Kbyte ]
[ \Mbyte ])
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Continuacin
2 Funciones
2.48. GetMecUnitName - Obtiene el nombre de la unidad mecnica.
RobotWare - OS
3HAC16581-5 Revisin: H 858


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.48. GetMecUnitName - Obtiene el nombre de la unidad mecnica.
Utilizacin
GetMecUnitName se utiliza para obtener el nombre de una unidad mecnica usando como
argumento una de las unidades mecnicas instaladas. Esta funcin devuelve el nombre de las
unidades mecnicas en forma de string.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetMecUnitName.
Ejemplo 1
VAR string mecname;
mecname:= GetMecUnitName(T_ROB1);
mecname obtiene el valor "T_ROB1" como un valor string. Todas las unidades mecnicas
(tipo de dato mecunit), como por ejemplo T_ROB1, estn predefinidas en el sistema.
Valor de retorno
Tipo de dato: string
El valor de retorno ser el nombre de la unidad mecnica como un valor string.
Argumentos
GetMecUnitName ( MechUnit )
MechUnit
Mechanical Unit
Tipo de dato: mecunit
MechUnit acepta una de las unidades mecnicas predefinidas existentes en la configuracin.
Sintaxis
GetMecUnitName(
[ MechUnit := ] < variable (VAR) of mecunit > )
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Unidad mecnica mecunit - Unidad mecnica en la pgina 1135
2 Funciones
2.49. GetNextMechUnit - Obtener el nombre y los datos de las unidades mecnicas
RobotWare - OS
859 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.49. GetNextMechUnit - Obtener el nombre y los datos de las unidades mecnicas
Utilizacin
GetNextMechUnit (Get Next Mechanical Unit) se utiliza para obtener los nombres de las
unidades mecnicas del sistema de robot. Aparte del nombre de la unidad mecnica, es
posible obtener distintas propiedades opcionales de la unidad mecnica.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetNextMechUnit.
Consulte tambin Ms ejemplos en la pgina 860.
Ejemplo 1
VAR num listno := 0;
VAR string name := "";
TPWrite "List of mechanical units:";
WHILE GetNextMechUnit(listno, name) DO
TPWrite name;
! listno := listno + 1 is done by GetNextMechUnit
ENDWHILE
Se muestran en el FlexPendant los nombres de todas las unidades mecnicas disponibles en
el sistema.
Valor de retorno
Tipo de dato: bool
TRUE si se encuentra alguna unidad mecnica. De lo contrario, FALSE.
Argumentos
GetNextMechUnit ( ListNumber UnitName [\MecRef] [\TCPRob]
[\NoOfAxes] [\MecTaskNo] [\MotPlanNo] [\Active]
[\DriveModule] [\OKToDeact])
ListNumber
Tipo de dato: num
Este parmetro especifica qu elementos de la lista de unidades mecnicas interna del sistema
se desea obtener. En el momento del retorno, la variable es siempre incrementada por el
sistema en una unidad, para facilitar el acceso a la siguiente unidad de la lista. La primera
unidad mecnica de la lista tiene el nmero de ndice 0.
UnitName
Tipo de dato: string
El nombre de la unidad mecnica.
[\MecRef]
Tipo de dato: mecunit
La referencia del sistema a la unidad mecnica.
Contina en la pgina siguiente
2 Funciones
2.49. GetNextMechUnit - Obtener el nombre y los datos de las unidades mecnicas
RobotWare - OS
3HAC16581-5 Revisin: H 860


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\TCPRob]
Tipo de dato: bool
TRUE si la unidad mecnica es un robot de TCP. De lo contrario, FALSE.
[\NoOfAxes]
Tipo de dato: num
Nmero de ejes de la unidad mecnica. Valor entero.
[\MecTaskNo]
Tipo de dato: num
El nmero de la tarea de programa que controla a la unidad mecnica. Valor entero en el rango
1-20. Si no est controlada por ninguna tarea de programa, se devuelve -1.
Esta conexin real se define en los parmetros del sistema del dominio del controlador (en
alguna aplicacin puede ser definida en tiempo de ejecucin).
[\MotPlanNo]
Tipo de dato: num
El nmero del planificador de movimientos que controla la unidad mecnica. Valor entero en
el rango 1-6. Si no est controlada por ningn planificador de movimientos, se devuelve -1.
Esta conexin se define en los parmetros del sistema del dominio del controlador.
[\Active]
Tipo de dato: bool
TRUE si la unidad mecnica est activada. De lo contrario, FALSE.
[\DriveModule]
Tipo de dato: num
El nmero de Drive Module 1 - 4 utilizado por esta unidad mecnica.
[\OKToDeact]
Tipo de dato: bool
Devuelve TRUE si se permite la desactivacin de la unidad mecnica desde el programa de
RAPID.
Ms ejemplos
A continuacin aparecen ms ejemplos de la instruccin GetNextMechUnit.
Ejemplo 1
VAR num listno := 4;
VAR string name := "";
VAR bool found := FALSE;
found := GetNextMechUnit (listno, name);
Si se cambia found a TRUE, el nombre de la unidad mecnica con nmero 4 aparecer en la
variable name. De lo contrario, name slo contiene una cadena vaca.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.49. GetNextMechUnit - Obtener el nombre y los datos de las unidades mecnicas
RobotWare - OS
861 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
GetNextMechUnit (
[ ListNumber := ] < variable (VAR) of num> ,
[ UnitName := ] < variable (VAR) of string> ,
[ \ MecRef := < variable (VAR) of mecunit> ]
[ \ TCPRob := < variable (VAR) of bool> ]
[ \ NoOfAxes := < variable (VAR) of num> ]
[ \ MecTaskNo := < variable (VAR) of num> ]
[ \ MotPlanNo := < variable (VAR) of num> ]
[ \ Active := < variable (VAR) of bool>]
[ \ DriveModule := < variable (VAR) of num>]
[ \ OKToDeact := < variable (VAR) of bool>] ;
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Unidad mecnica mecunit - Unidad mecnica en la pgina 1135
Activacin y desactivacin de unidades
mecnicas
ActUnit - Activa una unidad mecnica en la
pgina 17
DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Caractersticas de los tipos de datos sin
valor
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
2 Funciones
2.50. GetNextSym - Obtiene el siguiente smbolo coincidente
RobotWare - OS
3HAC16581-5 Revisin: H 862


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.50. GetNextSym - Obtiene el siguiente smbolo coincidente
Utilizacin
GetNextSym (Get Next Symbol) se utiliza junto con SetDataSearch para obtener objetos
de datos del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetNextSym.
Ejemplo 1
VAR datapos block;
VAR string name;
VAR bool truevar:=TRUE;
...
SetDataSearch "bool" \Object:="my.*" \InMod:="mymod"\LocalSym;
WHILE GetNextSym(name,block) DO
SetDataVal name\Block:=block,truevar;
ENDWHILE
Esta sesin cambia a TRUE todos los objetos de datos locales de tipo bool cuyo nombre
comience con my en el mdulo mymod.
Valor de retorno
Tipo de dato: bool
TRUE si se ha obtenido un nuevo objeto. El nombre del objeto y el bloque que contiene se
devuelven a travs de los argumentos.
FALSE si no se han encontrado ms objetos coincidentes.
Argumentos
GetNextSym (Object Block [\Recursive])
Object
Tipo de dato: string
Una variable (VAR o PERS) para almacenar el nombre del objeto de datos que se obtendr.
Block
Tipo de dato: datapos
El bloque que contiene el objeto.
[ \Recursive ]
Tipo de dato: switch
Este modificador obliga a que la bsqueda a entrar en el bloque subyacente. Por ejemplo, si
la sesin ha comenzado en el nivel de tarea, tambin buscar en los mdulos y las rutinas que
se encuentran por debajo de la tarea.
Contina en la pgina siguiente
2 Funciones
2.50. GetNextSym - Obtiene el siguiente smbolo coincidente
RobotWare - OS
863 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
GetNextSym (
[ Object := ] < variable or persistent (INOUT) of string > ,
[ Block :=] <variable (VAR) of datapos>
[\Recursive ] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de un conjunto de smbolos en
una sesin de bsqueda
SetDataSearch - Definir el conjunto de
smbolos de una secuencia de bsqueda en
la pgina 441
Obtencin del valor de un objeto de datos GetDataVal - Obtiene el valor de un objeto de
datos en la pgina 108
Asignacin del valor de un objeto de datos SetDataVal - Establece el valor de un objeto
de datos en la pgina 445
Asignacin del valor de varios objetos de
datos
SetAllDataVal - Establece un valor en todos
los objetos de datos de un conjunto definido
en la pgina 437
El tipo de datos relacionado datapos datapos - Inclusin de un bloque para un
objeto de datos en la pgina 1097
Continuacin
2 Funciones
2.51. GetSysInfo - Obtener informacin acerca del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 864


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.51. GetSysInfo - Obtener informacin acerca del sistema
Utilizacin
GetSysInfo se utiliza para leer informacin acerca del sistema. Los datos disponibles son
el nmero de serie, la versin del software, el tipo de robot, la ID de controlador o la direccin
IP de red local.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetSysInfo.
Ejemplo 1
VAR string serial;
VAR string version;
VAR string rtype;
VAR string cid;
VAR string lanip;
VAR string clang;
serial := GetSysInfo(\SerialNo);
version := GetSysInfo(\SWVersion);
rtype := GetSysInfo(\RobotType);
cid := GetSysInfo(\CtrlId);
lanip := GetSysInfo(\LanIp);
clang := GetSysInfo(\CtrlLang);
El nmero de serie se almacena en la variable serial, el nmero de versin se almacena en
la variable version, el nmero de robot se almacena en la variable rtype, el nmero de ID
del controlador se almacena en la variable cid, la direccin IP de la red local se almacena en
la variable lanip y el idioma del controlador se almacena en la variable clang.
Ejemplos de cadenas devueltas:
Nmero de serie: 14-21858
Versin de software: ROBOTWARE_5.08.134
Tipo de robot: 2400/16 tipo A
ID de controlador: 44-1267
Direccin IP de red local: 192.168.8.103
Idioma: es
Valor de retorno
Tipo de dato: string
El nmero de serie, la versin del software, el tipo de robot, la ID de controlador, la direccin
IP de red local o el idioma del controlador. Para obtener ms informacin acerca de los
valores de retorno, consulte Arguments a continuacin.
Argumentos
GetSysInfo ([\SerialNo] | [\SWVersion] | [\RobotType] | [\CtrlId]
| [\LanIp] | [\CtrlLang])
Es imprescindible programar uno de los argumentos SerialNo, SWVersion, RobotType ,
CtrlId, LanIp o CtrlLang.
Contina en la pgina siguiente
2 Funciones
2.51. GetSysInfo - Obtener informacin acerca del sistema
RobotWare - OS
865 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \SerialNo ]
Serial Number
Tipo de dato: switch
Devuelve el nmero de serie.
[ \SWVersion ]
Software Version
Tipo de dato: switch
Devuelve la versin de software.
[ \RobotType ]
Tipo de dato: switch
Devuelve el tipo de robot en la tarea actual o conectada. Si la unidad mecnica no es un robot
de TCP, se devuelve "-".
[ \CtrlId ]
Controller ID
Tipo de dato: switch
Devuelve una ID de controlador. Devuelve una cadena vaca si no se ha especificado ninguna
ID de controlador. Se devuelve una cadena que contiene "VC" si esta opcin se usa en el
controlador virtual.
[ \LanIp ]
Lan Ip address
Tipo de dato: switch
Devuelve la direccin IP de red local del controlador. Se devuelve una cadena que contiene
"VC" si esta opcin se usa en el controlador virtual.
[ \CtrlLang ]
Controller Language
Tipo de dato: switch
Devuelve el idioma utilizado en el controlador.
Valor de retorno Idioma
cs Checo
zh Chino (chino simplificado, chino continental)
da Dans
nl Holands
en Ingls
fi Finlands
fr Francs
de Alemn
it Italiano
ja J apons
ko Coreano
pt Portugus (portugus de Brasil)
Continuacin
Contina en la pgina siguiente
2 Funciones
2.51. GetSysInfo - Obtener informacin acerca del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 866


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
GetSysInfo(
[\SerialNo]
| [\SWVersion]
| [\RobotType]
| [\CtrlId]
| [\LanIp]
| [\CtrlLang])
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
es Espaol
sv Sueco
Valor de retorno Idioma
Para obtener ms informacin sobre Consulte
Comprobar la identidad del sistema IsSysID - Comprobar la identidad del
sistema en la pgina 898
Continuacin
2 Funciones
2.52. GetTaskName - Obtiene el nombre y el nmero de la tarea actual
RobotWare - OS
867 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.52. GetTaskName - Obtiene el nombre y el nmero de la tarea actual
Utilizacin
GetTaskName se utiliza para obtener la identidad de la tarea de programa actual, con su
nombre y su nmero.
Desde algunas tareas sin movimiento, tambin es posible obtener el nombre y el nmero de
su tarea de movimiento conectada. En el caso de los sistemas MultiMove, el parmetro del
sistema Controller/Tasks/Use Mechanical Unit Group define la tarea de movimiento
conectada, mientras que en un sistema bsico la tarea principal siempre es la tarea de
movimiento conectada desde cualquier otra tarea.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetTaskName.
Ejemplo 1
VAR string taskname;
...
taskname := GetTaskName();
El nombre de la tarea actual se devuelve en la variable taskname.
Ejemplo 2
VAR string taskname;
VAR num taskno;
...
taskname := GetTaskName(\TaskNo:=taskno);
El nombre de la tarea actual se devuelve en la variable taskname. La identidad entera de la
tarea se almacena en la variable taskno.
Ejemplo 3
VAR string taskname;
VAR num taskno;
...
taskname := GetTaskName(\MecTaskNo:=taskno);
Si la tarea actual es una tarea sin movimiento, el nombre de la tarea de movimiento conectada
se devuelve en la variable taskname. La identidad numrica de la tarea de movimiento
conectada se almacena en la variable taskno.
Si la tarea actual controla varias unidades mecnicas, el nombre de la tarea actual se devuelve
en la variable taskname. La identidad numrica de la tarea se almacena en la variable
taskno.
Valor de retorno
Tipo de dato: string
El nombre de la tarea en la que se ejecuta la funcin, o bien el nombre de la tarea de
movimiento conectada.
Contina en la pgina siguiente
2 Funciones
2.52. GetTaskName - Obtiene el nombre y el nmero de la tarea actual
RobotWare - OS
3HAC16581-5 Revisin: H 868


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
GetTaskName ( [\TaskNo] | [\MecTaskNo] )
[\TaskNo]
Tipo de dato: num
Devuelve el nombre de la tarea actual (con la misma funcionalidad que si no se usa ninguno
de los modificadores \TaskNo ni \MecTaskNo). Obtiene tambin la identidad de la tarea
actual, representada como un valor entero. Los nmeros devueltos estarn en el rango entre
1 y 20.
[\MecTaskNo]
Tipo de dato: num
Devuelve el nombre de la tarea de movimiento conectada o el nombre de la tarea de
movimiento actual. Tambin obtiene la identidad de la tarea de movimiento conectada o
actual, representada como un valor entero. Los nmeros devueltos estarn en el rango entre
1 y 20.
Sintaxis
GetTaskName(
[ \TaskNo := ] < variable (VAR) of num >
[ \MecTaskNo:= ] < variable (VAR) of num > )
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Multitarea Manual de referencia tcnica - Descripcin
general de RAPID, seccin Descripcin
general de RAPID - Resumen sobre RAPID -
Multitarea
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Multitarea
Continuacin
2 Funciones
2.53. GetTime - Lee la hora actual como un valor numrico
RobotWare - OS
869 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.53. GetTime - Lee la hora actual como un valor numrico
Utilizacin
GetTime se utiliza para leer un componente concreto del sistema actual como un valor
numrico.
Puede usar GetTime para:
Hacer que el programa realice una accin a una hora determinada
Realizar determinadas actividades en un da laborable
No realizar determinadas actividades durante el fin de semana
Responder de una forma distinta ante los errores en funcin de la hora del da
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GetTime.
Ejemplo 1
hour := GetTime(\Hour);
La hora actual se almacena en la variable hour.
Valor de retorno
Tipo de dato: num
Uno de los cuatro componentes de hora especificados a continuacin.
Argumento
GetTime ( [\WDay] | [\Hour] | [\Min] | [\Sec] )
[\WDay]
Tipo de dato: switch
Devuelve el da de la semana. Rango: de 1 a 7 (de lunes a domingo).
[\Hour]
Tipo de dato: switch
Devuelve la hora actual. Rango: de 0 a 23.
[\Min]
Tipo de dato: switch
Devuelve el minuto actual. Rango: de 0 a 59.
[\Sec]
Tipo de dato: switch
Devuelve el segundo actual. Rango: de 0 a 59.
Es necesario especificar al menos uno de los argumentos. De lo contrario, la ejecucin del
programa se detiene y se genera un mensaje de error.
Contina en la pgina siguiente
2 Funciones
2.53. GetTime - Lee la hora actual como un valor numrico
RobotWare - OS
3HAC16581-5 Revisin: H 870


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin GetTime.
Ejemplo 1
weekday := GetTime(\WDay);
hour := GetTime(\Hour);
IF weekday < 6 AND hour >6 AND hour < 16 THEN
production;
ELSE
maintenance;
ENDIF
Si el da actual es un da laborable y la hora est entre las 7 y las 15:49 horas, el robot realiza
tareas de produccin. En cualquier otro momento, el robot se encuentra en el modo de
mantenimiento.
Sintaxis
GetTime (
[\ WDay ]
| [ \ Hour ]
| [ \ Min ]
| [ \ Sec ] )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de hora y fecha Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Sistema y tiempo
Cambio de hora del reloj del sistema Manual del operador - IRC5 con Flex-
Pendant, seccin Cmo cambiar la configu-
racin del FlexPendant
Continuacin
2 Funciones
2.54. GInputDnum - Lee el valor de una seal de entrada de grupo
RobotWare - OS
871 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.54. GInputDnum - Lee el valor de una seal de entrada de grupo
Utilizacin
GInputDnum se utiliza para leer el valor actual de un grupo de seales digitales de entrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GInputDnum.
Ejemplo 1
IF GInputDnum(gi2) = 55 THEN ...
Si el valor actual de la seal gi2 es 55, entonces ...
Ejemplo 2
IF GInputDnum(gi2) = 0d4294967295 THEN ...
Si el valor actual de la seal gi2 es 4294967295, entonces ...
Valor de retorno
Tipo de dato: dnum
El valor actual de la seal (un entero positivo).
Se leen los valores de las distintas seales del grupo, que se interpretan como nmeros
binarios sin signo. Estos nmeros binarios se convierten a continuacin a enteros.
El valor devuelto se encuentra dentro de un rango que depende del nmero de seales del
grupo.
Nmero de seales Valor permitido
1 0-1
2 0-3
3 0-7
4 0-15
5 0-31
6 0-63
7 0-127
8 0-255
9 0-511
10 0-1023
11 0-2047
12 0-4095
13 0-8191
14 0-16383
15 0-32767
16 0-65535
17 0-131071
18 0-262143
19 0-524287
20 0-1048575
21 0-2097151
Contina en la pgina siguiente
2 Funciones
2.54. GInputDnum - Lee el valor de una seal de entrada de grupo
RobotWare - OS
3HAC16581-5 Revisin: H 872


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
GInputDnum (Signal)
Signal
Tipo de dato: signalgi
El nombre del grupo de seales a leer.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
Sintaxis
GInputDnum (
[ Signal := ] < variable (VAR) of signalgi > )
Una funcin con un valor de retorno del tipo de dato dnum.
Informacin relacionada
22 0-4194303
23 0-8388607
24 0-16777215
25 0-33554431
26 0-67108863
27 0-134217727
28 0-268435455
29 0-536870911
30 0-1073741823
31 0-2147483647
32 0-4294967295
Nmero de seales Valor permitido
Cdigo de error Descripcin
ERR_NORUNUNIT No hay contacto con la unidad.
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
2 Funciones
2.55. GOutput - Lee el valor de un grupo de seales digitales de salida
RobotWare - OS
873 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.55. GOutput - Lee el valor de un grupo de seales digitales de salida
Utilizacin
GOutput se utiliza para leer el valor actual de un grupo de seales digitales de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GOutput.
Ejemplo 1
IF GOutput(go2) = 5 THEN ...
Si el valor actual de la seal go2 es 5, entonces ...
Valor de retorno
Tipo de dato: num
El valor actual de la seal (un entero positivo).
Se leen los valores de las distintas seales del grupo, que se interpretan como nmeros
binarios sin signo. Estos nmeros binarios se convierten a continuacin a enteros.
El valor devuelto se encuentra dentro de un rango que depende del nmero de seales del
grupo.
Nmero de seales Valor permitido
1 0-1
2 0-3
3 0-7
4 0-15
5 0-31
6 0-63
7 0-127
8 0-255
9 0-511
10 0-1023
11 0-2047
12 0-4095
13 0-8191
14 0-16383
15 0-32767
16 0-65535
17 0-131071
18 0-262143
19 0-524287
20 0-1048575
21 0-2097151
22 0-4194303
23 0-8388607
Contina en la pgina siguiente
2 Funciones
2.55. GOutput - Lee el valor de un grupo de seales digitales de salida
RobotWare - OS
3HAC16581-5 Revisin: H 874


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
GOutput (Signal)
Signal
Tipo de dato: signalgo
El nombre del grupo de seales a leer.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT
Se ha perdido el contacto con la unidad.
Sintaxis
GOutput (
[ Signal := ] < variable (VAR) of signalgo > )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Establecimiento de un grupo de seales de
salida
SetGO - Cambia el valor de un grupo de
seales digitales de salida en la pgina 450
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
Continuacin
2 Funciones
2.56. GOutputDnum - Lee el valor de una seal de salida de grupo
RobotWare - OS
875 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.56. GOutputDnum - Lee el valor de una seal de salida de grupo
Utilizacin
GOutputDnum se utiliza para leer el valor actual de un grupo de seales digitales de salida.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin GOutputDnum.
Ejemplo 1
IF GOutputDnum(go2) = 55 THEN ...
Si el valor actual de la seal go2 es 55, entonces ...
Ejemplo 2
IF GOutputDnum(go2) = 0d4294967295 THEN ...
Si el valor actual de la seal go2 es 4294967295, entonces ...
Valor de retorno
Tipo de dato: dnum
El valor actual de la seal (un entero positivo).
Se leen los valores de las distintas seales del grupo, que se interpretan como nmeros
binarios sin signo. Estos nmeros binarios se convierten a continuacin a enteros.
El valor devuelto se encuentra dentro de un rango que depende del nmero de seales del
grupo.
Nmero de seales Valor permitido
1 0-1
2 0-3
3 0-7
4 0-15
5 0-31
6 0-63
7 0-127
8 0-255
9 0-511
10 0-1023
11 0-2047
12 0-4095
13 0-8191
14 0-16383
15 0-32767
16 0-65535
17 0-131071
18 0-262143
19 0-524287
20 0-1048575
21 0-2097151
Contina en la pgina siguiente
2 Funciones
2.56. GOutputDnum - Lee el valor de una seal de salida de grupo
RobotWare - OS
3HAC16581-5 Revisin: H 876


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
GOutputDnum (Signal)
Signal
Tipo de dato: signalgo
El nombre del grupo de seales a leer.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
Sintaxis
GOutputDnum (
[ Signal := ] < variable (VAR) of signalgo > )
Una funcin con un valor de retorno del tipo de dato dnum.
Informacin relacionada
22 0-4194303
23 0-8388607
24 0-16777215
25 0-33554431
26 0-67108863
27 0-134217727
28 0-268435455
29 0-536870911
30 0-1073741823
31 0-2147483647
32 0-4294967295
Nmero de seales Valor permitido
Cdigo de error Descripcin
ERR_NORUNUNIT No hay contacto con la unidad
Para obtener ms informacin sobre Consulte
Establecimiento de un grupo de seales de
salida
SetGO - Cambia el valor de un grupo de
seales digitales de salida en la pgina 450 I
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
2 Funciones
2.57. HexToDec - Convierte de hexadecimal a decimal
RobotWare - OS
877 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.57. HexToDec - Convierte de hexadecimal a decimal
Utilizacin
HexToDec se usa para convertir un nmero especificado en una cadena que admita lectura de
la base 16 a la base 10.
La cadena de entrada se construye con el conjunto de caracteres [0-9,A-Z,a-z].
Esta rutina admite los nmeros del 0 al 4294967295 en decimal o FFFFFFFF en hexadecimal.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin HexToDec.
Ejemplo 1
VAR string str;
str := HexToDec("5F5E0FF");
Se asigna a la variable str el valor "99999999".
Valor de retorno
Tipo de dato: string
La cadena convertida a la representacin decimal a partir del nmero indicado en la cadena
del parmetro de entrada.
Argumentos
HexToDec ( Str )
Str
String
Tipo de dato: string
La cadena a convertir.
Sintaxis
HexToDec(
[ Str := ] <expression (IN) of string> ,
)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
2 Funciones
2.58. IndInpos - Estado de posicin de un eje independiente
Independent Axis
3HAC16581-5 Revisin: H 878


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.58. IndInpos - Estado de posicin de un eje independiente
Utilizacin
IndInpos se utiliza para comprobar si un eje independiente ha alcanzado la posicin
seleccionada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IndInpos.
Ejemplo 1
IndAMove Station_A,1\ToAbsNum:=90,20;
WaitUntil IndInpos(Station_A,1) = TRUE;
WaitTime 0.2;
Se espera hasta que el eje 1 de Station_A se encuentre en la posicin de 90 grados.
Valor de retorno
Tipo de dato: bool
La tabla describe los valores de retorno de IndInpos:
Argumentos
IndInpos ( MecUnit Axis )
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
Limitaciones
Un eje independiente ejecutado con la instruccin IndCMove devuelve siempre el valor
FALSE, incluso si la velocidad tiene el valor cero.
Se debe aadir un periodo de espera de 0,2 segundos tras la instruccin, para garantizar que
se ha alcanzado el estado correcto. Este periodo debe ser mayor en el caso de los ejes externos
que presenten un rendimiento deficiente.
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT.
Si el eje no se encuentra en el modo independiente, el valor de la variable de sistema ERRNO
cambia a ERR_AXIS_IND.
Estos errores pueden ser gestionados en el gestor de errores.
Valor de retorno Estado del eje
TRUE En posicin y con velocidad cero.
FALSE An no situado en la posicin y/o no tiene una velocidad cero.
Contina en la pgina siguiente
2 Funciones
2.58. IndInpos - Estado de posicin de un eje independiente
Independent Axis
879 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
IndInpos (
[ MecUnit:= ] < variable (VAR) of mecunit>,
[ Axis:= ] < expression (IN) of num>)
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Otras instrucciones y funciones independi-
entes
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Comprobacin del estado de velocidad de
los ejes independientes
IndInpos - Estado de velocidad de un eje inde-
pendiente en la pgina 880
Definicin de ejes independientes Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm
Continuacin
2 Funciones
2.59. IndInpos - Estado de velocidad de un eje independiente
Independent Axis
3HAC16581-5 Revisin: H 880


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.59. IndInpos - Estado de velocidad de un eje independiente
Utilizacin
IndSpeed se utiliza para comprobar si un eje independiente ha alcanzado la velocidad
seleccionada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IndSpeed.
Ejemplo 1
IndCMove Station_A, 2, 3.4;
WaitUntil IndSpeed(Station_A,2 \InSpeed) = TRUE;
WaitTime 0.2;
Se espera hasta que el eje 2 de Station_A haya alcanzado la velocidad de 3,4 grados/s.
Valor de retorno
Tipo de dato: bool
La tabla describe los valores de retorno de IndSpeed \IndSpeed:
La tabla describe los valores de retorno de IndSpeed \ZeroSpeed:
Argumentos
IndSpeed ( MecUnit Axis [ \InSpeed ] | [ \ZeroSpeed ] )
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Axis
Tipo de dato: num
El nmero del eje actual de la unidad mecnica (del 1 al 6).
[ \InSpeed ]
Tipo de dato: switch
IndSpeed devuelve el valor TRUE si el eje ha alcanzado la velocidad seleccionada, o FALSE
si no lo ha hecho.
Valor de retorno Estado del eje
TRUE Se ha alcanzado la velocidad seleccionada.
FALSE No se ha alcanzado la velocidad seleccionada.
Valor de retorno Estado del eje
TRUE Velocidad cero.
FALSE Velocidad distinta de cero
Contina en la pgina siguiente
2 Funciones
2.59. IndInpos - Estado de velocidad de un eje independiente
Independent Axis
881 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ZeroSpeed ]
Tipo de dato: switch
IndSpeed devuelve el valor TRUE si el eje tiene la velocidad cero, o FALSE si no la tiene.
Si se utiliza tanto el argumento \InSpeed como \ZeroSpeed, se muestra un mensaje de
error.
Limitacin
La funcin IndSpeed\InSpeed siempre devuelve el valor FALSE en las situaciones
siguientes:
El robot se encuentra en el modo manual a velocidad reducida.
La velocidad se reduce mediante la instruccin VelSet.
La velocidad se reduce desde la ventana de produccin.
Se debe aadir un periodo de espera de 0,2 segundos tras la instruccin, para garantizar que
se ha obtenido el estado correcto. Este periodo debe ser mayor en el caso de los ejes externos
que presenten un rendimiento deficiente.
Gestin de errores
Si el eje no est activado, la variable de sistema ERRNO cambia a ERR_AXIS_ACT.
Si el eje no se encuentra en el modo independiente, el valor de la variable de sistema ERRNO
cambia a ERR_AXIS_IND.
Estos errores pueden ser gestionados en el gestor de errores.
Sintaxis
IndSpeed (
[ MecUnit:= ] < variable (VAR) of mecunit>,
[ Axis:= ] < expression (IN) of num>
[ \ InSpeed ] | [ \ ZeroSpeed ] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Ejes independientes en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Otras instrucciones y funciones independi-
entes
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Ms ejemplos IndCMove - Movimiento independiente
continuo en la pgina 135
Comprobacin del estado de posicin de los
ejes independientes
IndInpos - Estado de posicin de un eje inde-
pendiente en la pgina 878
Definicin de ejes independientes Manual de referencia tcnica - Parmetros
del sistema, seccin Motion - Arm
Continuacin
2 Funciones
2.60. IOUnitState - Obtiene el estado actual de una unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 882


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.60. IOUnitState - Obtiene el estado actual de una unidad de E/S
Utilizacin
IOUnitState se utiliza para determinar el estado actual de una unidad de E/S. Su estado
fsico y su estado lgico definen el estado de una unidad de E/S.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin IOUnitState.
Ejemplo 1
IF (IOUnitState("UNIT1" \Phys)=IOUNIT_PHYS_STATE_RUNNING) THEN
! Possible to access some signal on the I/O unit
ELSE
! Read/Write some signal on the I/O unit result in error
ENDIF
Se realiza una comprobacin para ver si la unidad de E/S UNIT1 funciona correctamente.
Ejemplo 2
IF (IOUnitState("UNIT1" \Logic)=IOUNIT_LOG_STATE_DISABLED) THEN
! Unit is disabled by user from RAPID or FlexPendant
ELSE
! Unit is enabled.
ENDIF
Se realiza una comprobacin para ver si la unidad de E/S UNIT1 est deshabilitada.
Valor de retorno
Tipo de dato: iounit_state
El valor de retorno tiene valores diferentes en funcin de si se utilizan los argumentos
opcionales \Logic o \Phys o de si no se utiliza ningn argumento opcional.
Los estados lgicos de la unidad de E/S describen el estado cuya activacin puede solicitar el
usuario. El estado de la unidad de E/S se define en la tabla siguiente cuando se utiliza el
argumento opcional \Logic.
Valor de
retorno
Constante simblica Comentario
10 IOUNIT_LOG_STATE_DISABLED La unidad ha sido desactivada por
el usuario desde RAPID, el
FlexPendant o los parmetros del
sistema.
11 IOUNIT_LOG_STATE_ENABLED La unidad ha sido activada por el
usuario desde RAPID, el
FlexPendant o los parmetros del
sistema. Es la opcin predetermi-
nada tras el inicio.
Contina en la pgina siguiente
2 Funciones
2.60. IOUnitState - Obtiene el estado actual de una unidad de E/S
RobotWare - OS
883 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Cuando la unidad es activada por el usuario y el controlador del bus de campo intenta poner
una unidad en el estado fsico IOUNIT_PHYS_STATE_RUNNING, la unidad podra terminar en
otros estados por distintos motivos (consulte la tabla siguiente).
El estado de la unidad de E/S se define en la tabla siguiente cuando se utiliza el argumento
opcional \Phys.
-
NOTA!
Ni en RobotWare 5.08 ni en versiones anteriores es posible utilizar la instruccin
IOUnitState con los argumentos opcionales \Phys o \Logic. En RobotWare 5.09, se
recomienda usar el argumento opcional \Phys o \Logic.
El estado de la unidad de E/S se define en la tabla siguiente cuando no se utiliza ninguno de
los argumentos opcionales, \Phys ni \Logic.
1)
No es posible obtener este estado en el programa de RAPID con la versin actual de
RobotWare - OS.
Valor de
retorno
Constante simblica Comentario
20 IOUNIT_PHYS_STATE_DEACTIVATED Unidad sin funcionamiento,
desactivada por el usuario
21 IOUNIT_PHYS_STATE_RUNNING Unidad en funcionamiento
22 IOUNIT_PHYS_STATE_ERROR La unidad no funciona a causa
de algn error de tiempo de
ejecucin
23 IOUNIT_PHYS_STATE_UNCONNECTED La unidad est configurada
pero no est conectada al bus
o ste est parado.
24 IOUNIT_PHYS_STATE_UNCONFIGURED La unidad no est configurada
pero est conectada al bus.
1)
25 IOUNIT_PHYS_STATE_STARTUP La unidad est en el modo de
puesta en marcha.
1)
26 IOUNIT_PHYS_STATE_INIT La unidad ha sido creada.
1)
Valor de
retorno
Constante simblica Comentario
1 IOUNIT_RUNNING La unidad funciona correcta-
mente.
2 IOUNIT_RUNERROR La unidad no funciona a causa
de algn error de tiempo de
ejecucin
3 IOUNIT_DISABLE La unidad ha sido desactivada
por el usuario desde RAPID o
el FlexPendant.
4 IOUNIT_OTHERERR Otros errores de configuracin
o puesta en marcha
Continuacin
Contina en la pgina siguiente
2 Funciones
2.60. IOUnitState - Obtiene el estado actual de una unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 884


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
IOUnitState (UnitName [\Phys] | [\Logic])
UnitName
Tipo de dato: string
El nombre de la unidad de E/S que se desea comprobar (con el mismo nombre con el que se
configur).
[\Phys]
Fsico
Tipo de dato: switch
Si se utiliza este parmetro, se lee el estado fsico de la unidad de E/S .
[\Logic]
Lgico
Tipo de dato: switch
Si se utiliza este parmetro, se lee el estado lgico de la unidad de E/S.
Sintaxis
IOUnitState (
[ UnitName := ] < expression (IN) of string >
[ \ Phys] | [ \ Logic] )
Una funcin con un valor de retorno del tipo de dato iounit_state.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Estado de la unidad de E/S IOEnable - Activa una unidad de E/S en la
pgina 162iounit_state - Estado de la unidad
de E/S en la pgina 1124
Activar una unidad de E/S IOEnable - Activa una unidad de E/S en la
pgina 162
Desactivacin de una unidad de E/S IODisable - Desactiva una unidad de E/S en
la pgina 159
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Continuacin
2 Funciones
2.61. IsFile - Comprobar el tipo de un archivo
RobotWare - OS
885 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.61. IsFile - Comprobar el tipo de un archivo
Utilizacin
La funcin IsFile obtiene informacin acerca del archivo o directorio indicado y
comprueba si es del mismo tipo que el especificado. Si no se especifica ningn tipo, slo se
realiza una comprobacin de existencia.
El nombre del archivo se especifica en un argumento de trayectoria. No se requieren permisos
de lectura, escritura ni ejecucin para el archivo indicado, pero debe ser posible leer el
contenido de todos los directorios indicados en la ruta que conduce hasta el archivo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsFile.
Consulte tambin Ms ejemplos en la pgina 886.
Ejemplo 1
PROC printFT(string filename)
IF IsFile(filename \Directory) THEN
TPWrite filename+" is a directory";
RETURN;
ENDIF
IF IsFile(filename \Fifo) THEN
TPWrite filename+" is a fifo file";
RETURN;
ENDIF
IF IsFile(filename \RegFile) THEN
TPWrite filename+" is a regular file";
RETURN;
ENDIF
IF IsFile(filename \BlockSpec) THEN
TPWrite filename+" is a block special file";
RETURN;
ENDIF
IF IsFile(filename \CharSpec) THEN
TPWrite filename+" is a character special file";
RETURN;
ENDIF
ENDPROC
En este ejemplo se imprime en el FlexPendant el filename y el tipo del archivo
especificado.
Valor de retorno
Tipo de dato: bool
La funcin devuelve TRUE si el tipo especificado y el tipo real coinciden. De lo contrario,
devuelve FALSE. Si no se especifica ningn tipo, devuelve TRUE si el archivo existe y FALSE
si no existe.
Contina en la pgina siguiente
2 Funciones
2.61. IsFile - Comprobar el tipo de un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 886


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
IsFile (Path [\Directory] [\Fifo] [\RegFile] [\BlockSpec]
[\CharSpec])
Path
Tipo de dato: string
El archivo especificado con una ruta completa o relativa.
[ \Directory ]
Tipo de dato: switch
Indica si el archivo es un directorio.
[ \Fifo ]
Tipo de dato: switch
Indica si el archivo es un archivo fifo.
[ \RegFile ]
Tipo de dato: switch
Indica si el archivo es un archivo normal, es decir, un archivo binario o ASCII normal.
[ \BlockSpec ]
Tipo de dato: switch
Indica si el archivo es un archivo con bloques especiales.
[ \CharSpec ]
Tipo de dato: switch
Indica si el archivo es un archivo con caracteres especiales.
Ejecucin de programas
Esta funcin devuelve un valor bool que especifica si la comprobacin es cierta o no.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin IsFile.
Ejemplo 1
Este ejemplo implementa una funcin de recorrido genrico de una estructura de directorios.
PROC searchdir(string dirname, string actionproc)
VAR dir directory;
VAR string filename;
IF IsFile(dirname \Directory) THEN
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
! .. and . is the parent and resp. this directory
IF filename <> ".." AND filename <> "." THEN
searchdir dirname+"/"+filename, actionproc;
ENDIF
ENDWHILE
CloseDir directory;
Continuacin
Contina en la pgina siguiente
2 Funciones
2.61. IsFile - Comprobar el tipo de un archivo
RobotWare - OS
887 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ELSE
%actionproc% dirname;
ENDIF
ERROR
RAISE;
ENDPROC
PROC listfile(string filename)
TPWrite filename;
ENDPROC
PROC main()
! Execute the listfile routine for all files found under the
! tree of HOME:
searchdir "HOME:","listfile";
ENDPROC
Este programa recorre la estructura de directorios que existe dentro de "HOME:" y con cada
archivo encontrado, ejecuta el procedimiento listfile. searchdir es la parte genrica,
que no tiene ninguna informacin sobre el inicio de la bsqueda ni sobre a qu rutina se debe
llamar con cada archivo. Utiliza IsFile para comprobar si se ha encontrado un subdirectorio
o un archivo y utiliza el mecanismo de enlazamiento en tiempo de ejecucin para llamar al
procedimiento especificado en actionproc con todos los archivos encontrados. La rutina
actionproc debe ser un procedimiento con un parmetro de tipo string.
Gestin de errores
Si el archivo no existe y se ha especificado un tipo, la variable de sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de errores.
Limitaciones
No es posible usar esta funcin con canales serie ni buses de campo.
Si se usa con discos montados de tipo FTP o NFS, la existencia del archivo o la informacin
del tipo no siempre se actualiza. Para obtener una informacin correcta, es posible que sea
necesaria una orden explcita con la ruta de bsqueda (con la instruccin Open) antes de usar
IsFile.
Sintaxis
Isfile (
[ Path ':='] < expression (IN) of string>
[ \Directory ]
| [ \Fifo ]
| [ \RegFile ]
| [ \BlockSpec ]
|[ \CharSpec ]
)
Una funcin con un valor de retorno del tipo de dato bool.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.61. IsFile - Comprobar el tipo de un archivo
RobotWare - OS
3HAC16581-5 Revisin: H 888


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Directorio dir - Estructura de directorio de archivos en la
pgina 1099
Apertura de un directorio OpenDir - Abre un directorio en la pgina 291
Cierre de un directorio CloseDir - Cierra un directorio en la pgina 56
Lectura de un directorio ReadDir - Lee la siguiente entrada de un
directorio en la pgina 953
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Copia de un archivo CopyFile - Copia un archivo en la pgina 65
Comprobacin del tamao del archivo FileSize - Obtiene el tamao de un archivo en
la pgina 849
Comprobacin del tamao del sistema de
archivos
FSSize - Obtiene el tamao de un sistema de
archivos en la pgina 855
Continuacin
2 Funciones
2.62. IsMechUnitActive - Indica si una unidad mecnica est activa
RobotWare - OS
889 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.62. IsMechUnitActive - Indica si una unidad mecnica est activa
Utilizacin
IsMechUnitActive(Is Mechanical Unit Active) se utiliza para comprobar si una unidad
mecnica est activada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsMechUnitActive.
Ejemplo 1
IF IsMechUnitActive(SpotWeldGun) CloseGun SpotWeldGun;
Si la unidad mecnica SpotWeldGun est activada, se llama a la rutina CloseGun, que se
utiliza para cerrar la pistola.
Valor de retorno
Tipo de dato: bool
La funcin devuelve lo siguiente:
TRUE, si la unidad mecnica est activada
FALSE, si la unidad mecnica est desactivada
Argumentos
IsMechUnitActive ( MechUnit )
MechUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica.
Sintaxis
IsMechUnitActive (
[MechUnit':='] < variable (VAR) of mecunit> ,
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Activacin de unidades mecnicas ActUnit - Activa una unidad mecnica en la
pgina 17
Desactivacin de unidades mecnicas DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Unidades mecnicas mecunit - Unidad mecnica en la pgina 1135
2 Funciones
2.63. IsPers - Determina si es una variable persistente
RobotWare - OS
3HAC16581-5 Revisin: H 890


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.63. IsPers - Determina si es una variable persistente
Utilizacin
IsPers se utiliza para comprobar si un objeto de datos es una variable persistente o no.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsPers.
Ejemplo 1
PROC procedure1 (INOUT num parameter1)
IF IsVar(parameter1) THEN
! For this call reference to a variable
...
ELSEIF IsPers(parameter1) THEN
! For this call reference to a persistent variable
...
ELSE
! Should not happen
EXIT;
ENDIF
ENDPROC
El procedimiento procedure1 toma caminos diferentes en funcin de si el parmetro
recibido parameter1 es una variable o una variable persistente.
Valor de retorno
Tipo de dato: bool
TRUE si el parmetro INOUT comprobado es una variable persistente. FALSE si el parmetro
INOUT comprobado no es una variable persistente.
Argumentos
IsPers (DatObj)
DatObj ()
Data Object
Tipo de dato: cualquier tipo
El nombre formal del parmetro INOUT.
Sintaxis
IsPers(
[ DatObj := ] < var or pers (INOUT) of any type > )
Una funcin con un valor de retorno del tipo de dato bool.
Contina en la pgina siguiente
2 Funciones
2.63. IsPers - Determina si es una variable persistente
RobotWare - OS
891 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si un dato es una variable IsVar - Determina si un dato es una variable
en la pgina 899
Tipos de parmetros (modos de acceso) Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Continuacin
2 Funciones
2.64. IsStopMoveAct - Est activo el indicador de movimiento de paro
RobotWare - OS
3HAC16581-5 Revisin: H 892


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.64. IsStopMoveAct - Est activo el indicador de movimiento de paro
Utilizacin
IsStopMoveAct se usa para obtener el estado de los indicadores de movimiento de paro de
la tarea de movimiento actual o conectada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsStopMoveAct.
Ejemplo 1
stopflag2:= IsStopMoveAct(\FromNonMoveTask);
stopflag2 ser TRUE si el indicador de movimiento de paro de las tareas sin movimiento
est activado en la tarea de movimiento actual o conectada. De lo contrario, ser FALSE.
Ejemplo 2
IF IsStopMoveAct(\FromMoveTask) THEN
StartMove;
ENDIF
Si el indicador de movimiento de paro de la tarea de movimiento est activado en la tarea de
movimiento actual, ser restablecido por la instruccin StartMove.
Valor de retorno
Tipo de dato: bool
El valor de retorno ser TRUE si el indicador de movimiento de paro seleccionado est
activado. De lo contrario, el valor de retorno ser FALSE.
Argumentos
IsStopMoveAct ( [\FromMoveTask] | [\FromNonMoveTask] )
[\FromMoveTask]
Tipo de dato: switch
FromMoveTask se usa para obtener el estado del indicador de movimiento del tipo de una
tarea de movimiento privada.
Este tipo de indicador de movimiento de paro slo puede ser activado por:
La propia tarea de movimiento con la instruccin StopMove
Tras la salida del nivel RestoPath en el programa.
En la ejecucin de un gestor de errores asncrono para errores de proceso o
movimiento antes de cualquier StorePath y tras cualquier RestoPath
[\FromNonMoveTask]
Tipo de dato: switch
FromNonMoveTask se usa para obtener el estado del indicador de movimiento del tipo de
cualquier tarea sin movimiento. Este tipo de indicador de movimiento de paro slo puede ser
activado por cualquier tarea sin movimiento de las tareas de movimiento conectadas o de
todas ellas, con la instruccin StopMove.
Contina en la pgina siguiente
2 Funciones
2.64. IsStopMoveAct - Est activo el indicador de movimiento de paro
RobotWare - OS
893 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
IsStopMoveAct(
[\ FromMoveTask]
| [\ FromNonMoveTask] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Detencin del movimiento del robot StopMove - Detiene el movimiento del robot
en la pgina 523
Reanudacin del movimiento del robot StartMove - Reanuda el movimiento del robot
en la pgina 494
Continuacin
2 Funciones
2.65. IsStopStateEvent - Comprueba si se ha movido el puntero de programa
RobotWare - OS
3HAC16581-5 Revisin: H 894


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.65. IsStopStateEvent - Comprueba si se ha movido el puntero de programa
Utilizacin
IsStopStateEvent devuelve informacin acerca del movimiento del puntero de programa
(PP) de la tarea de programa actual.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsStopStateEvent.
Ejemplo 1
IF IsStopStateEvent (\PPMoved) = TRUE THEN
! PP has been moved during the last program stop
ELSE
! PP has not been moved during the last program stop
ENDIF
IF IsStopStateEvent (\PPToMain) THEN
! PP has been moved to main routine during the last program stop
ENDIF
Valor de retorno
Tipo de dato: bool
El estado de si el PP se ha movido durante el ltimo estado de paro de programa y cmo se
ha movido.
TRUE Si el PP se ha movido durante el ltimo paro.
FALSE Si el PP no se ha movido durante el ltimo paro.
Si el PP se ha movido a la rutina Main, tanto \PPMoved como \PPToMain devuelven TRUE.
Si el PP se ha movido a otra rutina, tanto \PPMoved como \PPToMain devuelven TRUE.
Si el PP se ha movido dentro de una lista de una rutina, \PPMoved devuelve TRUE y
\PPToMain devuelve FALSE.
Tras llamar a una rutina de servicio (manteniendo el contexto de ejecucin en la secuencia de
programa principal), \PPMove devuelve FALSE y \PPToMain devuelve FALSE.
Argumentos
IsStopStateEvent ([\PPMoved] | [\PPToMain])
[ \PPMoved ]
Tipo de dato: switch
Comprueba si el PP se ha movido.
[ \PPToMain ]
Tipo de dato: switch
Comprueba si el PP se ha movido a Main o a una rutina.
Limitaciones
En la mayora de los casos, esta funcin no puede usarse con la ejecucin hacia atrs o hacia
delante, porque el sistema se encuentra en el estado de paro entre un paso y el siguiente.
Contina en la pgina siguiente
2 Funciones
2.65. IsStopStateEvent - Comprueba si se ha movido el puntero de programa
RobotWare - OS
895 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
IsStopStateEvent(
[\ PPMoved] | [\ PPToMain] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Creacin de instrucciones propias Manual de referencia tcnica - Descripcin
general de RAPID, seccin - Programacin
fuera de lnea - Creacin de instrucciones
propias
Continuacin
2 Funciones
2.66. IsSyncMoveOn - Comprueba si el modo de movimiento sincronizado est activado
RobotWare - OS
3HAC16581-5 Revisin: H 896


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.66. IsSyncMoveOn - Comprueba si el modo de movimiento sincronizado est
activado
Utilizacin
IsSyncMoveOn se utiliza para comprobar si la tarea de programa actual de tipo Motion
Task tiene activado el modo de movimiento sincronizado.
Desde algunas Non Motion Task tambin es posible comprobar si la Motion Task
conectada se encuentra en el modo de movimiento sincronizado. El parmetro del sistema
Controller/Tasks/Use Mechanical Unit Group define la Motion Task conectada.
Cuando la Motion Task se est ejecutando en el nivel StorePath IsSyncMoveOn
comprueba si la tarea est en el modo sincronizado en ese nivel, independientemente del
modo sincronizado en el nivel original.
La instruccin IsSyncMoveOn suele utilizarse en un sistema MultiMove con la opcin
Coordinated Robots, pero puede usarse en cualquier sistema y con cualquier tarea de
programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsSyncMoveOn.
Ejemplo 1
Ejemplo de programa de la tarea T_ROB1
PERS tasks task_list{2} := [ ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
VAR syncident sync2;
VAR syncident sync3;
PROC main()
...
MoveL p_zone, vmax, z50, tcp1;
WaitSyncTask sync1, task_list;
MoveL p_fine, v1000, fine, tcp1;
syncmove;
...
ENDPROC
PROC syncmove()
SyncMoveOn sync2, task_list;
MoveL * \ID:=10, v100, z10, tcp1 \WOBJ:= rob2_obj;
MoveL * \ID:=20, v100, fine, tcp1 \WOBJ:= rob2_obj;
SyncMoveOff sync3;
UNDO
SyncMoveUndo;
ENDPROC
Contina en la pgina siguiente
2 Funciones
2.66. IsSyncMoveOn - Comprueba si el modo de movimiento sincronizado est activado
RobotWare - OS
897 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo de programa de la tarea BCK1
PROC main()
...
IF IsSyncMoveOn() THEN
! Connected Motion Task is in synchronized movement mode
ELSE
! Connected Motion Task is in independent mode
ENDIF
...
ENDPROC
En el momento de la ejecucin de IsSyncMoveOn en la tarea de segundo plano BCK1, se
comprueba si la tarea de movimiento conectada en ese momento se encuentra en el modo de
movimiento sincronizado.
Valor de retorno
Tipo de dato: bool
Tiene el valor TRUE si la tarea de programa conectada se encuentra en el modo de movimiento
sincronizado o, de lo contrario, tiene el valor FALSE.
Ejecucin de programas
Se comprueba si la tarea de programa actual o conectada se encuentra en el modo de
movimiento sincronizado. Cuando la MotionTask se est ejecutando en el StorePath
level, SyncMoveOn comprueba si la tarea est en el modo sincronizado en el StorePath
level, no en el nivel original.
Sintaxis
IsSyncMoveOn ( )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Definicin de movimientos independientes SyncMoveUndo - Activa los movimientos inde-
pendientes en la pgina 553
Almacenamiento de trayectoria y ejecucin
en un nuevo nivel
StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
Continuacin
2 Funciones
2.67. IsSysID - Comprobar la identidad del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 898


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.67. IsSysID - Comprobar la identidad del sistema
Utilizacin
IsSysId (System Identity) puede usarse para comprobar la identidad del sistema, mediante
le nmero de serie del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsSysId.
Ejemplo 1
IF NOT IsSysId("6400-1234") THEN
ErrWrite "System identity fault","Faulty system identity for
this program";
EXIT;
ENDIF
Este programa se ha diseado para un sistema de robot especial con el nmero de serie 6400-
1234 y no puede utilizarse con otro sistema de robot.
Valor de retorno
Tipo de dato: bool
TRUE =El nmero de serie del sistema de robot es el mismo que el especificado en la
comprobacin.
FALSE =El nmero de serie del sistema de robot no es el mismo que el especificado en la
comprobacin.
Argumentos
IsSysId ( SystemId)
SystemId
Tipo de dato: string
El nmero de serie del sistema de robot que indica la identidad del sistema.
Sintaxis
IsSysId (
[ SystemId:= ] < expression (IN) of string> )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Lectura de informacin del sistema GetSysInfo - Obtener informacin acerca
del sistema en la pgina 864
2 Funciones
2.68. IsVar - Determina si un dato es una variable
RobotWare - OS
899 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.68. IsVar - Determina si un dato es una variable
Utilizacin
IsVar se utiliza para comprobar si un objeto de datos es una variable.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin IsVar.
Ejemplo 1
PROC procedure1 (INOUT num parameter1)
IF IsVAR(parameter1) THEN
! For this call reference to a variable
...
ELSEIF IsPers(parameter1) THEN
! For this call reference to a persistent variable
...
ELSE
! Should not happen
EXIT;
ENDIF
ENDPROC
El procedimiento procedure1 toma caminos diferentes en funcin de si el parmetro
recibido parameter1 es una variable o una variable persistente.
Valor de retorno
Tipo de dato: bool
TRUE si el parmetro INOUT comprobado es una variable. FALSE si el parmetro INOUT
comprobado no es una variable.
Argumentos
IsVar (DatObj)
DatObj
Data Object
Tipo de dato: cualquier tipo
El nombre formal del parmetro INOUT.
Sintaxis
IsVar'('
[ DatObj := ] < var or pers (INOUT) of any type > )
Una funcin con un valor de retorno del tipo de dato bool.
Contina en la pgina siguiente
2 Funciones
2.68. IsVar - Determina si un dato es una variable
RobotWare - OS
3HAC16581-5 Revisin: H 900


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si un dato es una variable
persistente
IsPers - Determina si es una variable
persistente en la pgina 890
Tipos de parmetros (modos de acceso) Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Continuacin
2 Funciones
2.69. MaxRobSpeed - Velocidad mxima del robot
RobotWare - OS
901 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.69. MaxRobSpeed - Velocidad mxima del robot
Utilizacin
MaxRobSpeed (Maximum Robot Speed) devuelve la velocidad de TCP mxima del tipo de
robot utilizado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin MaxRobSpeed.
Ejemplo 1
TPWrite "Max. TCP speed in mm/s for my robot="\Num:=MaxRobSpeed();
Se escribe el mensaje Max. TCP speed in mm/s for my robot = 5000 en el
FlexPendant.
Valor de retorno
Tipo de dato: num
Devuelve la velocidad mxima del TCP en mm/seg para el tipo de robot utilizado y los
valores normales prcticos para el TCP.
Si utiliza valores de TCP extremadamente altos en la base de coordenadas de la herramienta,
debe crear sus propios datos de velocidad con una velocidad de TCP mayor que la que
devuelve MaxRobSpeed.
Sintaxis
MaxRobSpeed ( )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de velocidad speeddata - Datos de velocidad en la pgina
1182
Definicin de la velocidad mxima VelSet - Cambia la velocidad programada en
la pgina 671
2 Funciones
2.70. MirPos - Obtencin de la posicin espejo de una posicin
RobotWare - OS
3HAC16581-5 Revisin: H 902


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.70. MirPos - Obtencin de la posicin espejo de una posicin
Utilizacin
MirPos (Mirror Position) se utiliza para obtener los valores espejo de las partes de traslacin
y rotacin de una posicin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin MirPos.
CONST robtarget p1:= [...];
VAR robtarget p2;
PERS wobjdata mirror:= [...];
...
p2 := MirPos(p1, mirror);
p1 es un valor de tipo robtarget que contiene una posicin del robot y una orientacin de la
herramienta. La informacin espejo se obtiene en el plano xy de la base de coordenadas
definido por mirror, respecto del sistema de coordenadas mundo. El resultado es un nuevo
dato de tipo robtarget, que se almacena en p2.
Valor de retorno
Tipo de dato: robtarget
La nueva posicin, que es la posicin espejo de la posicin de entrada.
Argumentos
MirPos (Point MirPlane [\WObj] [\MirY])
Point
Tipo de dato: robtarget
La posicin de entrada del robot. La parte de orientacin de esta posicin define la orientacin
actual del sistema de coordenadas de la herramienta.
MirPlane
Mirror Plane
Tipo de dato: wobjdata
Los datos del objeto de trabajo que definen el plano espejo. El plano espejo es el plano xy de
la base de coordenadas del objeto definida en MirPlane. La ubicacin de la base de
coordenadas del objeto se define respecto de la base de coordenadas del usuario (tambin
definida en MirPlane) que a su vez se define respecto de la base de coordenadas mundo.
Contina en la pgina siguiente
2 Funciones
2.70. MirPos - Obtencin de la posicin espejo de una posicin
RobotWare - OS
903 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\WObj]
Work Object
Tipo de dato: wobjdata
Se definen los datos del objeto de trabajo que definen la base de coordenadas del objeto y la
base de coordenadas del usuario respecto de la posicin de entrada, Point. Si no se utiliza el
argumento, la posicin se define respecto del sistema de coordenadas mundo.
NOTA!
Si la posicin se crea con un objeto de trabajo activo, es necesario hacer referencia al objeto
en el argumento.
[\MirY]
Mirror Y
Tipo de dato: switch
Si se omite este modificador, que es el comportamiento predeterminado, se obtiene una
imagen espejo de la base de coordenadas de la herramienta en cuanto al eje x y al eje z. Si se
utiliza este modificador, se obtiene una imagen espejo de la base de coordenadas de la
herramienta en cuanto al eje y, y al eje z.
Limitaciones
No se realiza ningn reclculo de la parte de configuracin del robot que se incluye en los
datos de entrada robtarget.
Si se utiliza una base de coordenadas, la unidad coordinada debe estar dentro de la misma
tarea que el robot.
Sintaxis
MirPos'('
[ Point := ] < expression (IN) of robtarget>,
[MirPlane :=] <expression (IN) of wobjdata>,
[\WObj := <expression (IN) of wobjdata> ]
[\MirY ])
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Datos de posicin robtarget - Datos de posicin en la pgina
1172
Datos del objeto de trabajo wobjdata - Datos del objeto de trabajo en la
pgina 1223
Continuacin
2 Funciones
2.71. ModExist - Comprobar si un mdulo de programa existe
RobotWare - OS
3HAC16581-5 Revisin: H 904


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.71. ModExist - Comprobar si un mdulo de programa existe
Utilizacin
ModExist (Module Exist) se utiliza para comprobar si un mdulo determinado existe o no en
la tarea de programa.
La bsqueda se realiza en primer lugar en los mdulos cargados y, a continuacin, si no se
encuentra ninguno, en los mdulos instalados.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ModExist.
Ejemplo 1
VAR bool mod_exist;
mod_exist:=ModExist ("MyModule");
Si el mdulo MyModule existe en la tarea, la funcin devuelve TRUE. Si no es as, la funcin
devuelve FALSE.
Valor de retorno
Tipo de dato: bool
TRUE si el mdulo se encuentra, y FALSE si no se encuentra.
Argumentos
ModExist (ModuleName)
ModuleName
Tipo de dato: string
El nombre del mdulo a buscar.
Sintaxis
ModExist (
[ ModuleName := ] < expression (IN) of string > )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Bsqueda de la hora de modificacin del
mdulo cargado
ModTime - Obtiene la hora de modificacin
del mdulo cargado en la pgina 905
2 Funciones
2.72. ModTime - Obtiene la hora de modificacin del mdulo cargado
RobotWare - OS
905 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.72. ModTime - Obtiene la hora de modificacin del mdulo cargado
Utilizacin
ModTime (Modify Time) se usa para obtener la hora ms reciente de modificacin del archivo
del mdulo cargado. El mdulo se especifica con su nombre y debe encontrarse en la memoria
de tareas. La hora se indica en segundos a partir de las 00:00:00 horas, hora de Greenwich,
del 1 de enero de 1970. La hora se devuelve como un valor de tipo num y opcionalmente
tambin en un valor de tipo stringdig.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ModTime.
Consulte tambin Ms ejemplos en la pgina 906.
Ejemplo 1
MODULE mymod
VAR num mytime;
PROC printMyTime()
mytime := ModTime("mymod");
TPWrite "My time is "+NumToStr(mytime,0);
ENDPROC
ENDMODULE
Valor de retorno
Tipo de dato: num
El tiempo, medido en segundos, desde las 00:00:00 horas, horario de Greenwich, del 1 de
enero de 1970.
Argumentos
ModTime ( Object [\StrDig] )
Object
Tipo de dato: string
El nombre del mdulo.
[\StrDig]
String Digit
Tipo de dato: stringdig
Para obtener la hora de carga del mdulo en una representacin de tipo stringdig.
Su uso adicional en StrDigCmp permite gestionar enteros positivos superiores a 8388608
con una representacin exacta.
Ejecucin de programas
Esta funcin devuelve un valor numrico que especifica la hora de ltima modificacin del
archivo, antes de que fuera cargado como un mdulo de programa en el sistema.
Contina en la pgina siguiente
2 Funciones
2.72. ModTime - Obtiene la hora de modificacin del mdulo cargado
RobotWare - OS
3HAC16581-5 Revisin: H 906


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ModTime.
Ejemplo 1
IF FileTime ("HOME:/mymod.mod" \ModifyTime)
> ModTime ("mymod") THEN
UnLoad "HOME:/mymod.mod";
Load \Dynamic, "HOME:/mymod.mod";
ENDIF
Este programa recarga un mdulo si el archivo de origen es ms reciente. Utiliza ModTime
para obtener la hora de la ltima modificacin del mdulo especificado y para compararlo con
los valores de FileTime\ModifyTime del origen. A continuacin, si el origen es ms
reciente, el programa descarga y carga de nuevo el mdulo.
Limitacin de este ejemplo: El tipo de dato num no puede manejar enteros positivos
superiores a 8388608 segundos con una representacin exacta. Para obtener una mejor
resolucin, consulte el ejemplo de la funcin StrDigCmp.
Gestin de errores
Si no hay ningn mdulo con el nombre especificado en la tarea de programa, la variable de
sistema ERRNO cambia a ERR_MOD_NOT_LOADED. A continuacin, este error puede
ser gestionado en el gestor de errores.
Limitaciones
Esta funcin devuelve siempre 0 si se usa en un mdulo que est codificado o instalado de
forma compartida.
Sintaxis
ModTime (
[ Object := ] < expression (IN) of string>
[ '\' StrDig := < variable (VAR) of stringdig> ] )
A function with a return value of the data type num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin de informacin de tiempo sobre
un archivo
FileTime - Obtiene la informacin de hora de
un archivo en la pgina 852
Cadena de caracteres con slo dgitos stringdig - Cadena de caracteres con slo dos
dgitos en la pgina 1194
Comparar dos cadenas que slo contienen
dgitos
StrDigCmp - Comparar dos cadenas que slo
contienen dgitos en la pgina 1000
Continuacin
2 Funciones
2.73. MotionPlannerNo - Obtiene el nmero de planificador de movimientos conectado
RobotWare - OS
907 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.73. MotionPlannerNo - Obtiene el nmero de planificador de movimientos
conectado
Utilizacin
MotionPlannerNodevuelve el nmero de planificador de movimientos conectado. Si
ejecuta MotionPlannerNo en una tarea de movimiento, ste devuelve su nmero de
planificador. En caso contrario, si ejecuta MotionPlannerNo en una tarea sin movimiento
se devuelve el nmero de planificador de movimientos conectado acorde con la configuracin
de los parmetros del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin MotionPlannerNo.
Ejemplo 1
!Motion task T_ROB1
PERS string buffer{} := [stEmpty, stEmpty, stEmpty, stEmpty,
stEmpty, stEmpty];
VAR num motion_planner;
PROC main()
...
MoveL point, v1000, fine, tcp1;
motion_planner := MotionPlannerNo();
buffer[motion_planner] := "READY";
...
ENDPROC
!Background task BCK1
PERS string buffer{6};
VAR num motion_planner;
VAR string status;
PROC main()
...
motion_planner := MotionPlannerNo();
status := buffer[motion_planner];
...
ENDPROC
!Motion T_ROB2
PERS string buffer{6};
VAR num motion_planner;
Contina en la pgina siguiente
2 Funciones
2.73. MotionPlannerNo - Obtiene el nmero de planificador de movimientos conectado
RobotWare - OS
3HAC16581-5 Revisin: H 908


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
PROC main()
...
MoveL point, v1000, fine, tcp1;
motion_planner := MotionPlannerNo();
buffer[motion_planner] := "READY";
...
ENDPROC
!Background task BCK2
PERS string buffer{6};
VAR num motion_planner;
VAR string status;
PROC main()
...
motion_planner := MotionPlannerNo();
status := buffer[motion_planner];
...
ENDPROC
Utilice la funcin MotionPlannerNo para determinar qu nmero de planificador de
movimientos est conectado a la tarea. Puede implementarse exactamente el mismo cdigo
en todas las tareas de movimiento y las tareas en segundo plano. Despus todas las tareas en
segundo plano pueden comprobar el estado de su tarea de movimiento conectada.
Valor de retorno
Tipo de dato:num
El nombre del planificador de movimientos conectado. En las tareas sin movimiento, se
devuelve el nmero de planificador de movimientos de la unidad mecnica asociada.
El rango de valor de retorno es de 1 a 6.
Sintaxis
MotionPlannerNo( )
A function with a return value of the data type num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
Manual de referencia tcnica - Parmetros del
sistema, seccin Controller - Task
Continuacin
2 Funciones
2.74. NonMotionMode - Lee el modo de ejecucin sin movimiento
RobotWare - OS
909 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.74. NonMotionMode - Lee el modo de ejecucin sin movimiento
Utilizacin
NonMotionMode(Non-Motion Execution Mode) se usa para leer el modo de ejecucin sin
movimiento actual de la tarea del programa. El modo de ejecucin sin movimiento se
selecciona o deselecciona desde el FlexPendant, dentro de la opcin de men ABB\Panel de
control\Supervisin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin NonMotionMode.
Ejemplo 1
IF NonMotionMode() =TRUE THEN
...
ENDIF
La seccin de programa slo se ejecuta si el programa no se encuentra en el modo de
ejecucin sin movimiento.
Valor de retorno
Tipo de dato: bool
El modo sin movimiento actual, con uno de los valores definidos en la tabla siguiente.
Argumentos
NonMotionMode ( [ \Main] )
[ \Main ]
Tipo de dato: switch
Devuelve el modo de ejecucin actual para la tarea de movimiento conectada. Se utiliza en
un sistema multitarea para obtener el modo de ejecucin actual para la tarea real, si se trata
de una tarea de movimiento o una tarea de movimiento conectada, si la funcin
NonMotionMode se ejecuta en una tarea sin movimiento.
Si se omite el argumento, el valor de retorno siempre refleja el modo de ejecucin opuesto de
la tarea de programa que ejecuta la funcin NonMotionMode.
Recuerde que el modo de ejecucin est conectado al sistema y no a ninguna tarea. Esto
quiere decir que todas las tareas de un sistema obtienen el mismo valor de retorno de
NonMotionMode.
Sintaxis
NonMotionMode ( [\Main])
Una funcin con un valor de retorno del tipo de dato bool.
Valor de retorno Constante simblica Comentario
0 FALSE No se usa la ejecucin sin movimiento
1 TRUE Se usa la ejecucin sin movimiento
Contina en la pgina siguiente
2 Funciones
2.74. NonMotionMode - Lee el modo de ejecucin sin movimiento
RobotWare - OS
3HAC16581-5 Revisin: H 910


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Lectura del modo de funcionamiento OpMode - Lee el modo de funcionamiento en
la pgina 918
Continuacin
2 Funciones
2.75. NOrient - Normaliza la orientacin
RobotWare - OS
911 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.75. NOrient - Normaliza la orientacin
Utilizacin
NOrient (Normalize Orientation) se utiliza para normalizar una orientacin no normalizada
(cuaternio).
Descripcin
La orientacin debe estar normalizada, es decir, la suma de los cuadrados debe ser igual a 1:
.
Si la orientacin est ligeramente desnormalizada, es posible normalizarla. El error de
normalizacin es el valor absoluto de la suma de los cuadrados de los componentes de
orientacin. Se considera que la orientacin est ligeramente desnormalizada si el error de
normalizacin es superior a 0,00001 e inferior a 0,1. Si el error de normalizacin es superior
a 0,1, no puede utilizarse la orientacin.
.
normerr >0,1 No utilizable
normerr >0,00001 AND normerr <=0,1 Levemente no normalizada
normerr <=0,00001 Normalizada
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin NOrient.
Ejemplo 1
Tenemos una posicin ligeramente desnormalizada (0,707170, 0, 0, 0,707170).
.
VAR orient unnormorient := [0.707170, 0, 0, 0.707170];
VAR orient normorient;
...
...
normorient := NOrient(unnormorient);
La normalizacin de la orientacin (0,707170, 0, 0, 0,707170) se convierte en (0,707107, 0,
0, 0,707107).
Valor de retorno
Tipo de dato: orient
La orientacin normalizada.
Contina en la pgina siguiente
2 Funciones
2.75. NOrient - Normaliza la orientacin
RobotWare - OS
3HAC16581-5 Revisin: H 912


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
NOrient (Rotation)
Rotacin
Tipo de dato: orient
La orientacin que debe ser normalizada.
Sintaxis
NOrient(
[Rotation :=] <expression (IN) of orient>
)
Una funcin con un valor de retorno del tipo de dato orient.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.76. NumToDnum - Convierte num a dnum
RobotWare - OS
913 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.76. NumToDnum - Convierte num a dnum
Utilizacin
NumToDnum convierte un valor num en un valor dnum.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la funcin NumToDnum.
Ejemplo 1
VAR num mynum:=55;
VAR dnum mydnum:=0;
mydnum:=NumToDnum(mynum);
El valor num 55 es devuelto por la funcin como el valor dnum 55.
Valor de retorno
Tipo de dato: dnum
El valor de retorno del tipo dnum tendr el mismo valor que el valor de entrada del tipo num.
Argumentos
NumToDnum (Value)
Value
Tipo de dato: num
El valor numrico a convertir.
Sintaxis
NumToDnum
[ Value := ] < expression (IN) of num > ;
Una funcin con un valor de retorno del tipo de dato dnum.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de dato Num num - Valores numricos en la pgina 1142
Tipo de dato Dnum dnum - Valores numricos dobles en la
pgina 1100
2 Funciones
2.77. NumToStr - Convierte un valor numrico en una cadena de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 914


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.77. NumToStr - Convierte un valor numrico en una cadena de caracteres
Utilizacin
NumToStr (Numeric To String) se utiliza para convertir un valor numrico en una cadena.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin NumToStr.
Ejemplo 1
VAR string str;
str := NumToStr(0.38521,3);
Se asigna a la variable str el valor "0.385".
Ejemplo 2
reg1 := 0.38521
str := NumToStr(reg1, 2\Exp);
Se asigna a la variable str el valor "3.85E-01".
Valor de retorno
Tipo de dato: string
El valor numrico, convertido en una cadena con el nmero especificado de decimales, en
notacin cientfica si as se solicita. Si es necesario, el valor numrico se redondea. Si no se
incluye ningn decimal, se suprime el punto decimal.
Argumentos
NumToStr (Val Dec [\Exp])
Val
Value
Tipo de dato: num
El valor numrico a convertir.
Dec
Decimals
Tipo de dato: num
Nmero de decimales. El nmero de decimales no debe ser negativo ni mayor que la precisin
disponible para los valores numricos.
[\Exp]
Exponent
Tipo de dato: switch
Para usar exponente en el valor de retorno.
Contina en la pgina siguiente
2 Funciones
2.77. NumToStr - Convierte un valor numrico en una cadena de caracteres
RobotWare - OS
915 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
NumToStr(
[ Val := ] <expression (IN) of num> ,
[ Dec := ] <expression (IN) of num>
[\Exp]
)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.78. Offs - Desplaza una posicin del robot
RobotWare - OS
3HAC16581-5 Revisin: H 916


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.78. Offs - Desplaza una posicin del robot
Utilizacin
Offs se utiliza para aadir un offset en el sistema de coordenadas de objeto a una posicin
de robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Offs.
Consulte tambin Ms ejemplos en la pgina 917.
MoveL Offs(p2, 0, 0, 10), v1000, z50, tool1;
Se mueve el robot a un punto que se encuentra a 10 mm de la posicin p2 (en la direccin z).
p1 := Offs (p1, 5, 10, 15);
Se desplaza la posicin del robot p1 5 mm en la direccin x, 10 mm en la direccin y, y 15
mm en la direccin z.
Valor de retorno
Tipo de dato: robtarget
Los datos de la posicin desplazada.
Argumentos
Offs (Point XOffset YOffset ZOffset)
Point
Tipo de dato: robtarget
Los datos de posicin del desplazamiento.
XOffset
Tipo de dato: num
El desplazamiento en mm en la direccin x del sistema de coordenadas de objeto.
YOffset
Tipo de dato: num
El desplazamiento en la direccin y del sistema de coordenadas de objeto.
ZOffset
Tipo de dato: num
El desplazamiento en la direccin z del sistema de coordenadas de objeto.
Contina en la pgina siguiente
2 Funciones
2.78. Offs - Desplaza una posicin del robot
RobotWare - OS
917 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin Offs.
Ejemplo 1
PROC pallet (num row, num column, num distance, PERS tooldata tool,
PERS wobjdata wobj)
VAR robtarget palletpos:=[[0, 0, 0], [1, 0, 0, 0], [0, 0, 0, 0],
[9E9, 9E9, 9E9, 9E9, 9E9, 9E9]];
palettpos := Offs (palettpos, (row-1)*distance,
(column-1)*distance, 0);
MoveL palettpos, v100, fine, tool\WObj:=wobj;
ENDPROC
Se crea una rutina para tomar piezas de un pal. Cada pal se define como un objeto de trabajo
(consulte la figura siguiente). La pieza que debe tomarse (fila y columna) y la distancia
existente entre las partes se indican como parmetros de entrada. El aumento del ndice de fila
y columna se realiza fuera de la rutina.
La figura muestra la posicin y la orientacin del pal que se especifican mediante la
definicin de un objeto de trabajo.
xx0500002300
Sintaxis
Offs (
[Point :=] <expression (IN) of robtarget> ,
[XOffset :=] <expression (IN) of num> ,
[YOffset :=] <expression (IN) of num> ,
[ZOffset :=] <expression (IN) of num> )
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de posicin robtarget - Datos de posicin en la pgina
1172
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Continuacin
2 Funciones
2.79. OpMode - Lee el modo de funcionamiento
RobotWare - OS
3HAC16581-5 Revisin: H 918


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.79. OpMode - Lee el modo de funcionamiento
Utilizacin
OpMode(Operating Mode) se utiliza para leer el modo de funcionamiento actual del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin OpMode.
Ejemplo 1
TEST OpMode()
CASE OP_AUTO:
...
CASE OP_MAN_PROG:
...
CASE OP_MAN_TEST:
...
DEFAULT:
...
ENDTEST
Se ejecutan secciones distintas del programa en funcin del modo de funcionamiento actual.
Valor de retorno
Tipo de dato: symnum
El modo de funcionamiento actual, con uno de los valores definidos en la tabla siguiente.
Sintaxis
OpMode( )
Una funcin con un valor de retorno del tipo de dato symnum.
Informacin relacionada
Valor de
retorno
Constante
simblica
Comentario
0 OP_UNDEF Modo de funcionamiento no definido
1 OP_AUTO Modo de funcionamiento automtico
2 OP_MAN_PROG Modo de funcionamiento manual a 250 mm/seg como
mximo
3 OP_MAN_TEST Modo de funcionamiento manual a mxima velocidad,
100 %
Para obtener ms informacin sobre Consulte
Distintos modos de funcionamiento Manual del operador - IRC5 con FlexPendant
Lectura del modo de ejecucin RunMode - Obtiene el modo de ejecucin en
la pgina 979
2 Funciones
2.80. OrientZYX - Genera una orientacin a partir de ngulos Euler
RobotWare - OS
919 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.80. OrientZYX - Genera una orientacin a partir de ngulos Euler
Utilizacin
OrientZYX (Orient from Euler ZYX angles) se utiliza para generar una variable de tipo orient
a partir de ngulos Euler.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin OrientZYX.
Ejemplo 1
VAR num anglex;
VAR num angley;
VAR num anglez;
VAR pose object;
...
object.rot := OrientZYX(anglez, angley, anglex)
Valor de retorno
Tipo de dato: orient
La orientacin obtenida a partir de ngulos Euler.
Las rotaciones se realizan en el orden siguiente:
Rotacin alrededor del eje z
Rotacin alrededor del nuevo eje y
Rotacin alrededor del nuevo eje x
Argumentos
OrientZYX (ZAngle YAngle XAngle)
ZAngle
Tipo de dato: num
La rotacin, en grados, alrededor del eje Z.
YAngle
Tipo de dato: num
La rotacin, en grados, alrededor del eje Y.
XAngle
Tipo de dato: num
La rotacin, en grados, alrededor del eje X.
Las rotaciones se realizan en el orden siguiente:
Rotacin alrededor del eje z
Rotacin alrededor del nuevo eje y
Rotacin alrededor del nuevo eje x
Contina en la pgina siguiente
2 Funciones
2.80. OrientZYX - Genera una orientacin a partir de ngulos Euler
RobotWare - OS
3HAC16581-5 Revisin: H 920


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
OrientZYX(
[ZAngle:=] <expression (IN) of num> ,
[YAngle :=] <expression (IN) of num> ,
[XAngle:=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato orient.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual del operador - IRC5 con FlexPendant,
seccin Resumen sobre RAPID -
Matemticas
Continuacin
2 Funciones
2.81. ORobT - Elimina el desplazamiento de programa de una posicin
RobotWare - OS
921 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.81. ORobT - Elimina el desplazamiento de programa de una posicin
Utilizacin
ORobT (Object Robot Target) se utiliza para transformar una posicin del sistema de
coordenadas de desplazamiento de programa al sistema de coordenadas del objeto y/o
eliminar un offset de los ejes externos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ORobT.
Consulte tambin Ms ejemplos en la pgina 922.
Ejemplo 1
VAR robtarget p10;
VAR robtarget p11;
VAR num wobj_diameter;
p10 := CRobT(\Tool:=tool1 \WObj:=wobj_diameter);
p11 := ORobT(p10);
Se almacenan en p10 y p11 las posiciones actuales de los ejes del robot y de los ejes externos.
Los valores almacenados en p10 dependen del sistema de coordenadas ProgDisp/ExtOffs.
Los valores almacenados en p11 dependen del sistema de coordenadas del objeto sin ningn
desplazamiento de programa ni offset en los ejes externos.
Valor de retorno
Tipo de dato:robtarget
Los datos de posicin transformados.
Argumentos
ORobT (OrgPoint [\InPDisp] | [\InEOffs])
OrgPoint
Original Point
Tipo de dato: robtarget
El punto original que debe transformarse.
[\InPDisp]
In Program Displacement
Tipo de dato: switch
Devuelve la posicin del TCP en el sistema de coordenadas ProgDisp, es decir, slo elimina
el offset de los ejes externos.
[\InEOffs]
In External Offset
Tipo de dato: switch
Devuelve los ejes externos en el sistema de coordenadas del offset, es decir, slo elimina el
desplazamiento de programa del robot.
Contina en la pgina siguiente
2 Funciones
2.81. ORobT - Elimina el desplazamiento de programa de una posicin
RobotWare - OS
3HAC16581-5 Revisin: H 922


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin ORobT.
Ejemplo 1
p10 := ORobT(p10 \InEOffs );
La funcin ORobT eliminar cualquier desplazamiento de programa que est activo, dejando
la posicin del TCP respecto del sistema de coordenadas del objeto. Los ejes externos
permanecen en el sistema de coordenadas del offset.
Ejemplo 2
p10 := ORobT(p10 \InPDisp );
La funcin ORobT eliminar cualquier offset de los ejes externos. La posicin del TCP
permanece en el sistema de coordenadas ProgDisp.
Sintaxis
ORobT (
[ OrgPoint := ] < expression (IN) of robtarget>
[\InPDisp] | [\InEOffs])
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de desplazamientos de programa
para el robot
PDispOn - Activa el desplazamiento de
programa en la pgina 324
PDispSet - Activa un desplazamiento de
programa a partir de una base de coordenadas
conocida en la pgina 328
Definicin de un offset para los ejes
externos
EOffsOn - Activa un offset de ejes externos en
la pgina 86
EOffsSet - Activa un offset de ejes externos a
partir de valores conocidos en la pgina 88
Sistemas de coordenadas Manual del operador - IRC5 con FlexPendant,
seccin Principios de movimiento y E/S -
Sistemas de coordenadas
Continuacin
2 Funciones
2.82. ParIdPosValid - Posicin de robot vlida para la identificacin de parmetros
RobotWare - OS
923 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.82. ParIdPosValid - Posicin de robot vlida para la identificacin de parmetros
Utilizacin
ParIdPosValid (Parameter Identification Position Valid) comprueba si la posicin del
robot es vlida para la identificacin actual de parmetros, por ejemplo la identificacin de
carga de la herramienta o de la carga til.
Esta instruccin slo puede usarse en la tarea main o, si se cuenta con un sistema MultiMove,
en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ParIdPosValid.
Ejemplo 1
VAR jointtarget joints;
VAR bool valid_joints{12};
! Read the current joint angles
joints := CJointT();
! Check if valid robot position
IF ParIdPosValid (TOOL_LOAD_ID, joints, valid_joints) = TRUE THEN
! Valid position for load identification
! Continue with LoadId
...
ELSE
! Not valid position for one or several axes for load
!
! Move the robot to the output data given in variable joints
! and do ParIdPosValid once again
...
ENDIF
Se comprueba si la posicin del robot es vlida antes de realizar la identificacin de carga de
la herramienta.
Valor de retorno
Tipo de dato: bool
TRUE si la posicin del robot es vlida para la identificacin de parmetros actual.
FALSE si la posicin del robot no es vlida para la identificacin de parmetros actual.
Contina en la pgina siguiente
2 Funciones
2.82. ParIdPosValid - Posicin de robot vlida para la identificacin de parmetros
RobotWare - OS
3HAC16581-5 Revisin: H 924


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
ParIdPosValid (ParIdType Pos AxValid [\ConfAngle])
ParIdType
Tipo de dato: paridnum
Un tipo de identificacin de parmetros de los definidos en la tabla siguiente
Pos
Tipo de dato: jointtarget
La variable especifica los ngulos actuales de todos los ejes del robot y de los ejes externos.
La variable se actualiza mediante ParIdPosValid de acuerdo con la tabla siguiente.
AxValid
Tipo de dato: bool
Una variable de matriz con 12 elementos que corresponden a 6 ejes del robot y 6 ejes
externos. La variable se actualiza mediante ParIdPosValid de acuerdo con la tabla
siguiente.
Valor Constante simblica Comentario
1 TOOL_LOAD_ID Identificacin de la carga de la herramienta
2 PAY_LOAD_ID Identificacin de la carga til (consulte la instruccin
GripLoad)
3 IRBP_K Identificacin de la carga del manipulador externo
IRBP K
4 IRBP_L Identificacin de la carga del manipulador externo
IRBP L
4 IRBP_C Identificacin de la carga del manipulador externo
IRBP C
4 IRBP_C_INDEX Identificacin de la carga del manipulador externo
IRBP C_INDEX
4 IRBP_T Identificacin de la carga del manipulador externo
IRBP T
5 IRBP_R Identificacin de la carga del manipulador externo
IRBP R
6 IRBP_A Identificacin de la carga del manipulador externo
IRBP A
6 IRBP_B Identificacin de la carga del manipulador externo
IRBP B
6 IRBP_D Identificacin de la carga del manipulador externo
IRBP D
Valor de eje de entrada Valor de eje de salida
Vlido No cambia
No vlido Cambia a un valor adecuado
Valor de eje de entrada de Pos Estado de salida de AxValid
Vlido TRUE
No vlido FALSE
Continuacin
Contina en la pgina siguiente
2 Funciones
2.82. ParIdPosValid - Posicin de robot vlida para la identificacin de parmetros
RobotWare - OS
925 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \ConfAngle ]
Tipo de dato: num
El argumento de opcin para la especificacin de un ngulo de configuracin especfico +/-
grados para su uso en la identificacin de parmetros.
xx0500002493
Si no se especifica este argumento, el valor predeterminado es +90 grados.
Mn. + -30 grados. Valor ptimo +o -90 grados.
Gestin de errores
Si se produce un error, la variable de sistema ERRNO cambia a ERR_PID_RAISE_PP. A
continuacin, este error puede ser gestionado en el gestor de errores.
Sintaxis
ParIdPosValid(
[ ParIdType := ] <expression (IN) of paridnum> ,
[ Pos := ] <variable (VAR) of jointtarget> ,
[ AxValid := ] <array variable {*} (VAR) of bool>
[ \ ConfAngle := <expression (IN) of num> ] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de identificacin de parmetro paridnum - Tipo de identificacin de
parmetro en la pgina 1150
Tipo de robot vlido ParIdRobValid - Tipo de robot vlido para la
identificacin de parmetros en la pgina 926
Identificacin de carga de la herramienta o la
carga til
LoadId - Identificacin de carga de la
herramienta o la carga til en la pgina 213
Identificacin de carga de posicionadores
(IRBP)
ManLoadIdProc - Identificacin de carga de
los manipuladores IRBP en la pgina 220
Continuacin
2 Funciones
2.83. ParIdRobValid - Tipo de robot vlido para la identificacin de parmetros
RobotWare - OS
3HAC16581-5 Revisin: H 926


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.83. ParIdRobValid - Tipo de robot vlido para la identificacin de parmetros
Utilizacin
ParIdRobValid (Parameter Identification Robot Valid) comprueba si el tipo de robot o
manipulador es vlido para la identificacin actual de parmetros, por ejemplo la
identificacin de carga de la herramienta o de la carga til.
Esta instruccin slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un sistema
MultiMove, en las tareas de movimiento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ParIdRobValue.
Ejemplo 1
TEST ParIdRobValid (TOOL_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of tool in actual robot
type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of tool with
! IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of tool in actual
robot type
...
ENDTEST
Valor de retorno
Tipo de dato: paridvalidnum
Indica si la identificacin del parmetro especificado puede realizarse con el tipo de robot o
manipulador actual, con los valores definidos en la tabla siguiente.
Valor
Constante
simblica
Comentario
10 ROB_LOAD_VAL Tipo de robot o manipulador vlido para la identificacin
actual de parmetros
11 ROB_NOT_LOAD_VAL No es ningn tipo vlido para la identificacin actual de
parmetros
12 ROB_LM1_LOAD_VAL Tipo de robot vlido IRB 6400FHD para la identificacin
actual de parmetros, si la carga real es <200 kg
Contina en la pgina siguiente
2 Funciones
2.83. ParIdRobValid - Tipo de robot vlido para la identificacin de parmetros
RobotWare - OS
927 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
ParIdRobValid (ParIdType [\MechUnit] [\AxisNo])
ParIdType
Tipo de dato: paridnum
Un tipo de identificacin de parmetros de los definidos en la tabla siguiente.
[ \MechUnit ]
Mechanical Unit
Tipo de dato: mecunit
La unidad mecnica utilizada para la identificacin de carga. Slo debe especificarse en el
caso de los manipuladores externos. Si se omite este argumento, se utiliza el robot de TCP de
la tarea.
[ \AxisNo ]
Axis number
Tipo de dato: num
Dentro de la unidad mecnica, el nmero del eje que sostiene la carga que se desea identificar.
Slo debe especificarse en el caso de los manipuladores externos.
Si se utiliza el argumento \MechUnit, debe utilizarse \AxisNo. El argumento \AxisNo no
puede usarse sin \MechUnit.
Gestin de errores
Si se produce un error, la variable de sistema ERRNO cambia a ERR_PID_RAISE_PP. A
continuacin, este error puede ser gestionado en el gestor de errores.
Valor Constante simblica Comentario
1 TOOL_LOAD_ID Identificacin de la carga de la herramienta del robot
2 PAY_LOAD_ID Identificacin de la carga til del robot (consulte la
instruccin GripLoad)
3 IRBP_K Identificacin de la carga del manipulador externo
IRBP K
4 IRBP_L Identificacin de la carga del manipulador externo
IRBP L
4 IRBP_C Identificacin de la carga del manipulador externo
IRBP C
4 IRBP_C_INDEX Identificacin de la carga del manipulador externo
IRBP C_INDEX
4 IRBP_T Identificacin de la carga del manipulador externo
IRBP T
5 IRBP_R Identificacin de la carga del manipulador externo
IRBP R
6 IRBP_A Identificacin de la carga del manipulador externo
IRBP A
6 IRBP_B Identificacin de la carga del manipulador externo
IRBP B
6 IRBP_D Identificacin de la carga del manipulador externo
IRBP D
Continuacin
Contina en la pgina siguiente
2 Funciones
2.83. ParIdRobValid - Tipo de robot vlido para la identificacin de parmetros
RobotWare - OS
3HAC16581-5 Revisin: H 928


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ParIdRobValid(
[ParIdType :=] <expression (IN) of paridnum>
[\ MechUnit := <variable (VAR) of mecunit>]
[\ AxisNo := <expression (IN) of num>] )
Una funcin con un valor de retorno del tipo de dato paridvalidnum.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipo de identificacin de parmetro paridnum - Tipo de identificacin de
parmetro en la pgina 1150
Unidad mecnica a identificar mecunit - Unidad mecnica en la pgina 1135
Resultado de esta funcin paridvalidnum - Resultado de ParIdRobValid
en la pgina 1152
Posicin de robot vlida ParIdPosValid - Posicin de robot vlida para
la identificacin de parmetros en la pgina
923
Identificacin de carga de la herramienta o la
carga til del robot
LoadId - Identificacin de carga de la
herramienta o la carga til en la pgina 213
Identificacin de carga de cargas de
posicionador
ManLoadIdProc - Identificacin de carga de
los manipuladores IRBP en la pgina 220
Continuacin
2 Funciones
2.84. PathLevel - Obtiene el nivel de trayectoria actual
RobotWare - OS
929 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.84. PathLevel - Obtiene el nivel de trayectoria actual
Utilizacin
PathLevel se utiliza para obtener el nivel de trayectoria actual. Esta funcin mostrar si la
tarea se est ejecutando en el nivel original o si la trayectoria de movimiento original se ha
almacenado y se est ejecutando un nuevo movimiento temporal. Para saber ms sobre Path
Recovery consulte el Application manual - Motion functions and events.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PathLevel.
Consulte tambin Ms ejemplos en la pgina 929.
Ejemplo 1
VAR num level;
level:= PathLevel();
La variable level es 1 si se ejecut en una trayectoria de movimiento original o 2 si se
ejecut en una nueva trayectoria de movimiento temporal.
Valor de retorno
Tipo de dato: num
Hay dos valores de retorno posibles.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin PathLevel.
Ejemplo 1
...
MoveL p100, v100, z10, tool1;
StopMove;
StorePath;
p:= CRobT(\Tool:=tool1);
!New temporary movement
MoveL p1, v100, fine, tool1;
...
level:= PathLevel();
...
MoveL p, v100, fine, tool1;
RestoPath;
StartMove;
...
La variable level es 2.
Valor de
retorno
Descripcin
1 Ejecucin en una trayectoria de movimiento original.
2 Ejecucin en una trayectoria StorePath, una nueva trayectoria de movimiento
temporal.
Contina en la pgina siguiente
2 Funciones
2.84. PathLevel - Obtiene el nivel de trayectoria actual
RobotWare - OS
3HAC16581-5 Revisin: H 930


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
La opcin Path Recovery de RobotWare debe estar instalada para poder utilizar la funcin
PathLevel en el nivel de trayectoria 2
Sintaxis
PathLevel()
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Recuperacin de trayectorias. Application manual - Motion functions and
events
Almacenamiento y restauracin de trayecto-
rias.
StorePath - Almacena la trayectoria cuando se
produce una interrupcin en la pgina 530
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Detencin e inicio del movimiento. StartMove - Reanuda el movimiento del robot
en la pgina 494
StopMove - Detiene el movimiento del robot
en la pgina 523
Continuacin
2 Funciones
2.85. PathRecValidBwd - Comprueba si existe una trayectoria de retroceso vlida guardada
Path Recovery
931 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.85. PathRecValidBwd - Comprueba si existe una trayectoria de retroceso vlida
guardada
Utilizacin
PathRecValidBwd se utiliza para comprobar si la grabadora de trayectorias est activa y si
est disponible una trayectoria hacia atrs grabada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PathRecValidBwd.
Consulte tambin Ms ejemplos en la pgina 932.
Ejemplo 1
VAR bool bwd_path;
VAR pathrecid fixture_id;
bwd_path := PathRecValidBwd (\ID:=fixture_id);
La variable bwd_path tiene el valor TRUE si es posible retroceder hasta una posicin con el
identificador fixture_id. En caso negativo, bwd_path recibe el valor FALSE.
Valor de retorno
Tipo de dato: bool
El valor de retorno de la funcin puede determinarse a partir del diagrama de flujo siguiente:
xx0500002132
Contina en la pgina siguiente
2 Funciones
2.85. PathRecValidBwd - Comprueba si existe una trayectoria de retroceso vlida guardada
Path Recovery
3HAC16581-5 Revisin: H 932


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
PathRecValidBwd ([\ID])
[\ID]
Identifier
Tipo de dato: pathrecid
Una variable que especifica el nombre de la posicin de inicio de la grabacin. El tipo de dato
pathrecid es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de grabacin.
Ejecucin de programas
Antes de pedir con PathRecMoveBwd a la grabadora de trayectorias que retroceda por la
trayectoria, es posible comprobar con PathRecValidBwd si existe una trayectoria grabada
vlida.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin PathRecValidBwd.
Ejemplo 1
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
bwd_path := PathRecValidBwd (\ID := id1);
Se inicia la grabadora de trayectorias y se ejecutan dos instrucciones de movimiento.
PathRecValidBwd devuelve TRUE y la trayectoria de retroceso ser:
p2 -> p1 -> Start postion.
Ejemplo 2
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1;
PathRecStop \Clear;
bwd_path:= PathRecValidBwd (\ID := id1);
Se inicia la grabadora de trayectorias y se ejecutan dos instrucciones de movimiento. A
continuacin, se detiene y vaca la grabadora de trayectorias. PathRecValidBwd devuelve
FALSE.
Ejemplo 3
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
PathRecStart id2;
MoveL p2, vmax, z50, tool1;
bwd_path := PathRecValidBwd ();
Se inicia la grabadora de trayectorias y se ejecuta una instruccin de movimiento. A
continuacin, se inicia un identificador de trayectoria adicional, seguido de una instruccin
de movimiento. PathRecValidBwd devuelve TRUE y la trayectoria de retroceso ser:
p2 -> p1.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.85. PathRecValidBwd - Comprueba si existe una trayectoria de retroceso vlida guardada
Path Recovery
933 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 4
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
WaitSyncTask sync101, tasklist_r1o1;
MoveL p2, vmax, z50, tool1;
bwd_path1 := PathRecValidBwd ();
bwd_path2 := PathRecValidBwd (\ID := id1);
La ejecucin del programa anterior dar lugar a que la variable booleana bwd_path1 reciba
el valor TRUE, dado que existe una trayectoria de retroceso vlida hacia WaitSyncTask. La
variable booleana WaitSyncTask recibe el valor FALSE dado que no es posible retroceder
ms arriba de una sentencia WaitSyncTask.
Sintaxis
PathRecValidBwd (
[\ ID := < variable (VAR) of pathrecid >] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identificadores de grabadora de trayectorias pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Inicio y detencin de la grabadora de trayec-
torias
PathRecStart - Inicia la grabadora de trayecto-
rias en la pgina 314
PathRecStop - Detiene la grabadora de trayec-
torias en la pgina 317
Reproduccin de la grabacin de trayecto-
rias hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Comprobacin de si existe una trayectoria
vlida hacia delante
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayecto-
rias hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Continuacin
2 Funciones
2.86. PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida guardada
Path Recovery
3HAC16581-5 Revisin: H 934


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.86. PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida
guardada
Utilizacin
PathRecValidFwd se utiliza para comprobar si la grabadora de trayectorias puede usarse
para avanzar. La posibilidad de avanzar con la grabadora de trayectorias implica que se debe
haber solicitado previamente el movimiento hacia atrs a la grabadora de trayectorias.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PathRecValidFwd.
Consulte tambin Ms ejemplos en la pgina 935.
Ejemplo 1
VAR bool fwd_path;
VAR pathrecid fixture_id;
fwd_path:= PathRecValidFwd (\ID:=fixture_id);
La variable fwd_path tiene el valor TRUE si es posible avanzar hasta una posicin con el
identificador fixture_id. En caso negativo, fwd_path recibe el valor FALSE.
Valor de retorno
Tipo de dato: bool
El valor de retorno de PathRecValidFwdsin el valor especificado en \ID es:
TRUE si:
La grabadora de trayectorias ha movido el robot hacia atrs, usando
PathRecMoveBwd.
El robot no se ha alejado de la trayectoria ejecutada por PathRecMoveBwd.
FALSE si:
No se cumplen las condiciones indicadas anteriormente.
El valor de retorno de PathRecValidFwd con el valor especificado en \ID es:
TRUE si:
La grabadora de trayectorias ha movido el robot hacia atrs, usando
PathRecMoveBwd.
El robot no se ha alejado de la trayectoria ejecutada por PathRecMoveBwd.
La \ID especificada fue entregada durante el movimiento de retroceso.
FALSE si:
No se cumplen las condiciones indicadas anteriormente.
Contina en la pgina siguiente
2 Funciones
2.86. PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida guardada
Path Recovery
935 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
PathRecValidFwd ([\ID])
[\ID]
Identifier
Tipo de dato: pathrecid
Una variable que especifica el nombre de la posicin de inicio de la grabacin. El tipo de dato
pathrecid es de un tipo sin valor y slo se utiliza como un identificador para asignar un
nombre a la posicin de grabacin.
Ejecucin de programas
Despus de pedir con PathRecMoveBwd a la grabadora de trayectorias que retroceda, es
posible comprobar si existe una trayectoria vlida grabada sobre la que mover el robot. Si se
omite el identificador \ID, PathRevValidFwd indica si es posible avanzar hasta la posicin
en la que se inici el movimiento de retroceso.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin PathRecValidFwd.
Ejemplo 1
VAR pathrecid id1;
VAR pathrecid id2;
VAR pathrecid id3;
PathRecStart id1;
MoveL p1, vmax, z50, tool1;
PathRecStart id2;
MoveL p2, vmax, z50, tool1;
PathRecStart id3;
!See figures 1 and 8 in tbe following table.
MoveL p3, vmax, z50, tool1;
ERROR
StorePath;
IF PathRecValidBwd(\ID:=id3) THEN
!See figure 2 in the following table.
PathRecMoveBwd \ID:=id3;
! Do some other operation
ENDIF
IF PathRecValidBwd(\ID:=id2) THEN
!See figure 3 in the following table.
PathRecMoveBwd \ID:=id2;
! Do some other operation
ENDIF
Continuacin
Contina en la pgina siguiente
2 Funciones
2.86. PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida guardada
Path Recovery
3HAC16581-5 Revisin: H 936


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
!See figure 4 in the following table.
PathRecMoveBwd;
! Do final service action
IF PathRecValidFwd(\ID:=id2) THEN
!See figure 5 in the following table.
PathRecMoveFwd \ID:=id2;
! Do some other operation
ENDIF
IF PathRecValidFwd(\ID:=id3) THEN
!See figure 6 in the following table.
PathRecMoveFwd \ID:=id3;
! Do some other operation
ENDIF
!See figure 7 in the following table.
PathRecMoveFwd;
RestoPath;
StartMove;
RETRY;
1
xx0500002121
2
xx0500002124
3
xx0500002126
4
xx0500002127
5
xx0500002128
Continuacin
Contina en la pgina siguiente
2 Funciones
2.86. PathRecValidFwd - Comprueba si existe una trayectoria de avance vlida guardada
Path Recovery
937 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En el ejemplo anterior, se inicia la grabadora de trayectorias y se aaden identificadores en
tres ubicaciones distintas a lo largo de la trayectoria ejecutada. La imagen anterior contiene
referencias al cdigo de ejemplo y describe cmo se mover el robot si se produce un error
durante la ejecucin hacia delante hasta el punto p3. PathRecValidBwd y
PathRecValidFwd se utilizan respectivamente, dado que no es posible avanzar para
determinar en qu punto del programa se ha producido un error posible.
Sintaxis
PathRecValidFwd (
[\ ID:= < variable (VAR) of pathrecid >] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
6
xx0500002129
7
xx0500002138
8
xx0500002131
Para obtener ms informacin sobre Consulte
Identificadores de grabadora de trayecto-
rias
pathrecid - Identificador de grabadora de
trayectorias en la pgina 1154
Inicio y detencin de la grabadora de trayec-
torias
PathRecStart - Inicia la grabadora de trayecto-
rias en la pgina 314
PathRecStop - Detiene la grabadora de trayec-
torias en la pgina 317
Comprobacin de si existe una trayectoria
de retroceso vlida
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en la
pgina 931
Reproduccin de la grabacin de trayecto-
rias hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Reproduccin de la grabacin de trayecto-
rias hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Movimiento en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S
Continuacin
2 Funciones
2.87. PFRestart - Comprueba si se ha interrumpido una trayectoria despus de un fallo de alimentacin
RobotWare - OS
3HAC16581-5 Revisin: H 938


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.87. PFRestart - Comprueba si se ha interrumpido una trayectoria despus de un
fallo de alimentacin
Utilizacin
PFRestart (Power Failure Restart) se utiliza para comprobar si la trayectoria fue
interrumpida como consecuencia de la cada de alimentacin Si es as, es posible que sea
necesario realizar algunas acciones especficas. La funcin comprueba la trayectoria en el
nivel actual, el nivel de base y el nivel de interrupciones.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PFRestart.
Ejemplo 1
IF PFRestart() = TRUE THEN
Se comprueba si existe una trayectoria interrumpida en el nivel actual. Si es as, la funcin
devuelve TRUE.
Valor de retorno
Tipo de dato:bool
TRUE si existe una trayectoria interrumpida en el nivel de trayectoria especificado. De lo
contrario, devuelve FALSE.
Argumentos
PFRestart ([\Base] | [\Irpt])
[ \Base ]
Base Level
Tipo de dato: switch
Devuelve TRUE si existe una trayectoria interrumpida en el nivel de base.
[ \Irpt ]
Interrupt Level
Tipo de dato: switch
Devuelve TRUE si existe una trayectoria interrumpida en el nivel StorePath.
Si no se indica ningn argumento, la funcin devuelve TRUE si existe una trayectoria
interrumpida en el nivel actual.
Sintaxis
PFRestart(
[\Base] | [\Irpt])
Una funcin con un valor de retorno del tipo de dato bool.
2 Funciones
2.88. PoseInv - Invierte los datos de pose
RobotWare - OS
939 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.88. PoseInv - Invierte los datos de pose
Utilizacin
PoseInv (Pose Invert) calcula la transformacin inversa de una pose.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PoseInv.
Ejemplo 1
xx0500002443
Pose1 representa el sistema de coordenadas 1 relacionado con el sistema de coordenadas 0.
La transformacin que indica el sistema de coordenadas 0 relacionado con el sistema de
coordenadas 1 se obtiene mediante la transformacin inversa, almacenada en pose2.
VAR pose pose1;
VAR pose pose2;
...
pose2 := PoseInv(pose1);
Valor de retorno
Tipo de dato: pose
El valor de la pose inversa.
Argumentos
PoseInv (Pose)
Pose
Tipo de dato: pose
La pose a invertir.
Sintaxis
PoseInv(
[Pose :=] <expression (IN) of pose>
)
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID
2 Funciones
2.89. PoseMult - Multiplica datos de pose
RobotWare - OS
3HAC16581-5 Revisin: H 940


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.89. PoseMult - Multiplica datos de pose
Utilizacin
PoseMult (Pose Multiply) se utiliza para calcular el producto de dos transformaciones de
pose. Una aplicacin tpica es calcular una nueva pose como resultado de un desplazamiento
que acta sobre una pose original.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PoseMult.
Ejemplo 1
xx0500002444
pose1 representa el sistema de coordenadas 1 relacionado con el sistema de coordenadas 0.
pose2 representa el sistema de coordenadas 2 relacionado con el sistema de coordenadas 1.
La transformacin que indica pose3, el sistema de coordenadas 2 relacionado con el sistema
de coordenadas 0, se obtiene mediante el producto de las dos transformaciones:
VAR pose pose1;
VAR pose pose2;
VAR pose pose3;
...
pose3 := PoseMult(pose1, pose2);
Valor de retorno
Tipo de dato: pose
El valor del producto de dos poses.
Argumentos
PoseMult (Pose1 Pose2)
Pose1
Tipo de dato: pose
La primera pose.
Pose2
Tipo de dato: pose
La segunda pose.
Contina en la pgina siguiente
2 Funciones
2.89. PoseMult - Multiplica datos de pose
RobotWare - OS
941 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
PoseMult(
[Pose1 :=] <expression (IN) of pose>,
[Pose2 :=] <expression (IN) of pose>
)
Una funcin con un valor de retorno del tipo de dato pose.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.90. PoseVect - Aplica una transformacin a un vector
RobotWare - OS
3HAC16581-5 Revisin: H 942


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.90. PoseVect - Aplica una transformacin a un vector
Utilizacin
PoseVect (vector de pose) se utiliza para calcular el producto de una pose y un vector. Se
suele utilizar para calcular un vector como resultado del efecto de un desplazamiento o de un
vector original.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PoseVect.
Ejemplo 1
xx0500002445
pose1 representa el sistema de coordenadas 1 relacionado con el sistema de coordenadas 0.
pos1 es un vector relacionado con sistema de coordenadas 1. El vector correspondiente
relacionado con el sistema de coordenadas 0 se obtiene mediante el producto;
VAR pose pose1;
VAR pos pos1;
VAR pos pos2;
...
...
pos2:= PoseVect(pose1, pos1);
Valor de retorno
Tipo de dato: pos
El valor del producto de la pose y el valor pos original.
Argumentos
PoseVect (Pose Pos)
Pose
Tipo de dato: pose
La transformacin a aplicar.
Pos
Tipo de dato: pos
El valor pos a transformar.
Contina en la pgina siguiente
2 Funciones
2.90. PoseVect - Aplica una transformacin a un vector
RobotWare - OS
943 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
PoseVect(
[Pose :=] <expression (IN) of pose>,
[Pos :=] <expression (IN) of pos>
)
Una funcin con un valor de retorno del tipo de dato pos.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
2 Funciones
2.91. Pow - Calcula el resultado de elevar un valor a una potencia
RobotWare - OS
3HAC16581-5 Revisin: H 944


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.91. Pow - Calcula el resultado de elevar un valor a una potencia
Utilizacin
Pow (Power) se utiliza para calcular el valor exponencial en cualquier base.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Pow.
Ejemplo 1
VAR num x;
VAR num y
VAR num reg1;
...
reg1:= Pow(x, y);
Se asigna a reg1 el valor x
y
.
Valor de retorno
Tipo de dato: num
El valor de la Base elevado a la potencia del exponente, es decir base
exponente
.
Argumentos
Pow (Base Exponent)
Base
Tipo de dato: num
El valor del argumento usado como base.
Exponent
Tipo de dato: num
El valor del argumento de exponente.
Limitaciones
La ejecucin de la funcin x
y
genera un error en los casos siguientes:
Si x <0 e y no es un entero;
Si x =0 e y 0.
Sintaxis
Pow(
[Base :=] <expression (IN) of num>,
[Exponent :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID
2 Funciones
2.92. PPMovedInManMode - Comprobar si el puntero de programa se ha movido en el modo manual.
RobotWare - OS
945 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.92. PPMovedInManMode - Comprobar si el puntero de programa se ha movido en
el modo manual.
Utilizacin
PPMovedInManMode devuelve TRUE si el usuario ha movido el puntero de programa
mientras el controlador se encuentra en el modo manual, es decir, si la llave de operador est
en las posiciones de manual a velocidad reducida o manual a mxima velocidad. El estado del
puntero de programa movido se pone a cero cuando se sita la llave de Auto a Man o cuando
se usa la instruccin ResetPPMoved.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin PPMovedInManMode.
Ejemplo 1
IF PPMovedInManMode() THEN
WarnUserOfPPMovement;
DoJob;
ELSE
DoJob;
ENDIF
Valor de retorno
Tipo de dato: bool
TRUE si el puntero de programa ha sido movido por el usuario en el modo manual.
Ejecucin de programas
Comprobar si el puntero de programa de la tarea de programa actual ha sido movido en el
modo manual.
Sintaxis
PPMovedInManMode()
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobar si el puntero de programa se ha
movido
IsStopStateEvent - Comprueba si se ha
movido el puntero de programa en la pgina
894
Restablecer el estado del puntero de
programa movido en el modo manual
ResetPPMoved - Restablecer el estado del
puntero de programa movido en el modo
manual. en la pgina 368
2 Funciones
2.93. Present - Comprueba si se est usando un parmetro opcional
RobotWare - OS
3HAC16581-5 Revisin: H 946


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.93. Present - Comprueba si se est usando un parmetro opcional
Utilizacin
Present se utiliza para comprobar si se ha utilizado un argumento opcional al llamar a una
rutina.
Los parmetros opcionales no pueden usarse si no se especificaron al llamar a la rutina. Esta
funcin puede usarse para comprobar si se ha especificado un parmetro, con la finalidad de
evitar la aparicin de errores.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Present.
Consulte tambin Ms ejemplos en la pgina 947.
Ejemplo 1
PROC feeder (\switch on | \switch off)
IF Present (on) Set do1;
IF Present (off) Reset do1;
ENDPROC
La salida do1, que controla un transportador, se activa o desactiva en funcin del argumento
utilizado al llamar a la rutina.
Valor de retorno
Tipo de dato: bool
TRUE =Se ha definido el valor de parmetro o el modificador al llamar a la rutina.
FALSE =No se ha definido el valor del parmetro o el modificador.
Argumentos
Present (OptPar)
OptPar
Optional Parameter
Tipo de dato: cualquier tipo
El nombre del parmetro opcional cuya presencia se desea comprobar.
Contina en la pgina siguiente
2 Funciones
2.93. Present - Comprueba si se est usando un parmetro opcional
RobotWare - OS
947 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin Present.
Ejemplo 1
PROC glue (\switch on, num glueflow, robtarget topoint, speeddata
speed, zonedata zone, PERS tooldata tool, \PERS wobjdata
wobj)
IF Present (on) PulseDO glue_on;
SetAO gluesignal, glueflow;
IF Present (wobj) THEN
MoveL topoint, speed, zone, tool \WObj=wobj;
ELSE
MoveL topoint, speed, zone, tool;
ENDIF
ENDPROC
Se crea una rutina de aplicacin de adhesivo Si se especifica el argumento \on al llamar a la
rutina, se genera un pulso en la seal glue_on. A continuacin, el robot activa la seal
analgica de salida gluesignal, que controla la pistola de adhesivo y la mueve hasta la
posicin final. Dado que el parmetro wobj es opcional, se utilizan instrucciones MoveL
diferentes en funcin de si se utiliza o no este argumento.
Sintaxis
Present (
[OptPar':='] <reference (REF) of any type> ')'
En este caso, el parmetro REF requiere el nombre del parmetro opcional.
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Parmetros de rutinas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Continuacin
2 Funciones
2.94. ProgMemFree - Obtiene el tamao de memoria libre del programa
RobotWare - OS
3HAC16581-5 Revisin: H 948


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.94. ProgMemFree - Obtiene el tamao de memoria libre del programa
Utilizacin
ProgMemFree (Program Memory Free) se usa para obtener el tamao libre de la memoria de
programas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ProgMemFree.
Ejemplo 1
FUNC num module_size(string file_path)
VAR num pgmfree_before;
VAR num pgmfree_after;
pgmfree_before:=ProgMemFree();
Load \Dynamic, file_path;
pgmfree_after:=ProgMemFree();
Unload file_path;
RETURN (pgmfree_before-pgmfree_after);
ENDFUNC
Se utiliza ProgMemFree en una funcin que devuelve el valor de cunta memoria se reserva
para un mdulo en la memoria de programas.
Valor de retorno
Tipo de dato: num
El tamao del espacio libre de la memoria de programas, en bytes.
Sintaxis
ProgMemFree( )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Carga de un mdulo de programa Load - Carga un mdulo de programa durante
la ejecucin en la pgina 209
Descarga de un mdulo de programa UnLoad - Descarga un mdulo de programa
durante la ejecucin en la pgina 664
2 Funciones
2.95. RawBytesLen - Obtiene la longitud de un dato de tipo rawbytes
RobotWare - OS
949 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.95. RawBytesLen - Obtiene la longitud de un dato de tipo rawbytes
Utilizacin
RawBytesLen se utiliza para obtener la longitud actual de los bytes vlidos de una variable
de tipo rawbytes.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin RawBytesLen.
Ejemplo 1
VAR rawbytes from_raw_data;
VAR rawbytes to_raw_data;
VAR num integer := 8
VAR num float := 13.4;
ClearRawBytes from_raw_data;
PackRawBytes integer, from_raw_data, 1 \IntX := INT;
PackRawBytes float, from_raw_data, (RawBytesLen(from_raw_data)+1)
\Float4;
C opyRawBytes from_raw_data, 1, to_raw_data, 3;
En este ejemplo, la variable from_raw_data del tipo rawbytes es borrada en primer lugar.
Es decir, todos sus bytes cambian a 0 (el valor predeterminado tras la declaracin). A
continuacin el valor del entero se almacena en los primeros 2 bytes y, con ayuda de la
funcin RawBytesLen, el valor de float se almacena en los 4 bytes siguientes (comenzando
por el nmero de ndice 3).
Despus de guardar un dato en from_raw_data, el contenido (6 bytes) se copia a
to_raw_data, empezando por la posicin 3.
Valor de retorno
Tipo de dato: num
La longitud actual de los bytes vlidos de una variable de tipo rawbytes; en el rango de 0 a
1.024.
En general, la longitud actual de los bytes vlidos de una variable rawbytes es actualizada por
el sistema al ltimo byte escrito en la estructura de la variable rawbytes.
Para obtener ms detalles, consulte el tipo de dato rawbytes, la instruccin
ClearRawBytes, CopyRawBytes, PackDNHeader, PackRawBytes y ReadRawBytes.
Argumentos
RawBytesLen (RawData)
RawData
Tipo de dato: rawbytes
RawData es el contenedor de datos cuya longitud actual de bytes vlidos se desea obtener.
Ejecucin de programas
Durante la ejecucin del programa, se devuelve la longitud actual de bytes vlidos.
Contina en la pgina siguiente
2 Funciones
2.95. RawBytesLen - Obtiene la longitud de un dato de tipo rawbytes
RobotWare - OS
3HAC16581-5 Revisin: H 950


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
RawBytesLen (
[RawData := ] < variable (VAR) of rawbytes> )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos rawbytes rawbytes - Datos sin formato en la pgina
1161
Borrado del contenido de un dato rawbytes ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato rawbytes CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un
encabezado de DeviceNet en datos
rawbytes en la pgina 293
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un
dato de tipo rawbytes en la pgina 296
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Continuacin
2 Funciones
2.96. ReadBin - Lee un byte de un archivo o un canal serie
RobotWare - OS
951 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.96. ReadBin - Lee un byte de un archivo o un canal serie
Utilizacin
ReadBin (Read Binary) se utiliza para leer un byte (8 bits) de un archivo o un canal serie.
Esta funcin es compatible con archivos o canales serie de tipo binario y alfanumrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadBin.
Consulte tambin Ms ejemplos en la pgina 952.
Ejemplo 1
VAR num character;
VAR iodev inchannel;
...
Open "com2:", inchannel\Bin;
character := ReadBin(inchannel);
Se lee un byte del canal serie binario inchannel.
Valor de retorno
Tipo de dato: num
Un byte (8 bits) se lee de un archivo o un canal serie especificado. Este byte se convierte en
el valor numrico positivo correspondiente y se devuelve con el tipo de dato num. Si un
archivo est vaco (se ha alcanzado el fin del archivo), se devuelve EOF_BIN (el nmero -1).
Argumentos
ReadBin (IODevice [\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
[\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. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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
La ejecucin del programa espera hasta que se pueda leer un byte (8 bits) del archivo o del
canal serie.
Contina en la pgina siguiente
2 Funciones
2.96. ReadBin - Lee un byte de un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 952


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ReadBin.
Ejemplo 1
VAR num bindata;
VAR iodev file;
Open "HOME:/myfile.bin", file \Read \Bin;
bindata := ReadBin(file);
WHILE bindata <> EOF_BIN DO
TPWrite ByteToStr(bindata\Char);
bindata := ReadBin(file);
ENDWHILE
Se lee el contenido del archivo binario myfile.bin desde el principio hasta el fin y se muestran
los datos binarios recibidos (un carcter cada vez) en el FlexPendant, tras convertirlos en
caracteres.
Limitaciones
Esta funcin slo puede usarse con archivos y canales serie que hayan sido abiertos con un
acceso de lectura (\Read en el caso de los archivos alfanumricos, \Bin o \Append \Bin
en el caso de los archivos binarios).
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.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos
La constante EOF_BIN puede usarse para detener la lectura al final del archivo.
CONST num EOF_BIN := -1;
Sintaxis
ReadBin(
[IODevice :=] <variable (VAR) of iodev>
[\Time:= <expression (IN) of num>])
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie o archivos
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Conversin de un byte en una cadena de
caracteres
ByteToStr - Convierte un byte en un dato de
cadena de caracteres en la pgina 790
Continuacin
2 Funciones
2.97. ReadDir - Lee la siguiente entrada de un directorio
RobotWare - OS
953 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.97. ReadDir - Lee la siguiente entrada de un directorio
Utilizacin
ReadDir se utiliza para obtener el nombre del siguiente archivo o subdirectorio existente
dentro de un directorio abierto previamente con la instruccin OpenDir.
Siempre y cuando la funcin devuelva TRUE, pueden existir ms archivos o subdirectorios a
obtener.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadDir.
Consulte tambin Ms ejemplos en la pgina 954.
Ejemplo 1
PROC lsdir(string dirname)
VAR dir directory;
VAR string filename;
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
TPWrite filename;
ENDWHILE
CloseDir directory;
ENDPROC
Este ejemplo imprime los nombres de todos los archivos o subdirectorios que se encuentran
dentro del directorio especificado.
Valor de retorno
Tipo de dato: bool
La funcin devuelve TRUE si ha obtenido un nombre. De lo contrario, devuelve FALSE.
Argumentos
ReadDir (Dev FileName)
Dev
Tipo de dato: dir
Una variable que hace referencia a un directorio y capturada con la instruccin OpenDir.
FileName
Tipo de dato: string
El nombre del archivo o subdirectorio obtenido.
Ejecucin de programas
La funcin devuelve un valor booleano que especifica si la obtencin de un nombre fue o no
correcta.
Contina en la pgina siguiente
2 Funciones
2.97. ReadDir - Lee la siguiente entrada de un directorio
RobotWare - OS
3HAC16581-5 Revisin: H 954


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ReadDir.
Ejemplo 1
Este ejemplo implementa una funcin de recorrido genrico de una estructura de directorios.
PROC searchdir(string dirname, string actionproc)
VAR dir directory;
VAR string filename;
IF IsFile(dirname \Directory) THEN
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
! .. and . is the parent and resp. this directory
IF filename <> ".." AND filename <> "." THEN
searchdir dirname+"/"+filename, actionproc;
ENDIF
ENDWHILE
CloseDir directory;
ELSE
%actionproc% dirname;
ENDIF
ERROR
RAISE;
ENDPROC
PROC listfile(string filename)
TPWrite filename;
ENDPROC
PROC main()
! Execute the listfile routine for all files found under the
! tree in HOME:
searchdir "HOME:","listfile";
ENDPROC
Este programa recorre la estructura de directorios que existe dentro de "HOME:" y con cada
archivo encontrado, ejecuta el procedimiento listfile. searchdir es la parte genrica,
que no tiene ninguna informacin sobre el inicio de la bsqueda ni sobre a qu rutina se debe
llamar con cada archivo. Utiliza IsFile para comprobar si se ha encontrado un subdirectorio
o un archivo y utiliza el mecanismo de enlazamiento en tiempo de ejecucin para llamar al
procedimiento especificado en actionproc con todos los archivos encontrados. La rutina
actionproc debe ser un procedimiento con un parmetro de tipo string.
Gestin de errores
Si el directorio no se ha abierto (consulte OpenDir), la variable del sistema ERRNO cambia a
ERR_FILEACC. A continuacin, este error puede ser gestionado en el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.97. ReadDir - Lee la siguiente entrada de un directorio
RobotWare - OS
955 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ReadDir (
[ Dev:= ] < variable (VAR) of dir>,
[ FileName:= ] < var or pers (INOUT) of string>)
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Directorio dir - Estructura de directorio de archivos en la
pgina 1099
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Apertura de un directorio OpenDir - Abre un directorio en la pgina 291
Cierre de un directorio CloseDir - Cierra un directorio en la pgina 56
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Continuacin
2 Funciones
2.98. ReadMotor - Lee los ngulos actuales de los motores
RobotWare - OS
3HAC16581-5 Revisin: H 956


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.98. ReadMotor - Lee los ngulos actuales de los motores
Utilizacin
ReadMotor se utiliza para leer los ngulos actuales de los distintos motores de los ejes del
robot y de los ejes externos. La aplicacin principal de esta funcin es la realizacin de
procedimientos de calibracin del robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadMotor.
Consulte tambin Ms ejemplos en la pgina 956.
VAR num motor_angle2;
motor_angle2 := ReadMotor(2);
El ngulo actual del motor del segundo eje del robot se almacena en motor_angle2.
Valor de retorno
Tipo de dato: num
El ngulo actual del motor del eje indicado en radianes, ya sea un eje del robot o un eje
externo.
Argumentos
ReadMotor [\MecUnit ] Axis
MecUnit
Mechanical Unit
Tipo de dato: mecunit
El nombre de la unidad mecnica cuyos valores de eje se desea comprobar. Si se omite este
argumento, se obtiene el valor de un eje del robot conectado.
Axis
Tipo de dato: num
El nmero del eje cuyo valor se desea obtener (de 1 a 6).
Ejecucin de programas
El ngulo de motor devuelto representa la posicin actual del motor en radianes sin ningn
offset de calibracin. El valor no depende de ninguna posicin fija del robot, slo de la
posicin cero interna del resolver, es decir, normalmente la posicin cero del resolver ms
cercana a la posicin de calibracin (la diferencia existente entre la posicin cero del resolver
y la posicin de calibracin es el valor del offset de calibracin). Este valor representa el
movimiento completo de cada eje, si bien puede ser de varios giros.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ReadMotor.
Ejemplo 1
VAR num motor_angle3;
motor_angle3 := ReadMotor(\MecUnit:=ROB_1, 3);
El ngulo de motor actual del tercer eje del robot ROB_1 se almacena en motor_angle3.
Contina en la pgina siguiente
2 Funciones
2.98. ReadMotor - Lee los ngulos actuales de los motores
RobotWare - OS
957 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
ReadMotor'('
[\MecUnit := < variable (VAR) of mecunit>,]
[Axis := ] < expression (IN) of num> )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Lectura del ngulo actual del eje CJointT - Lee los ngulos actuales de los ejes
en la pgina 807
Continuacin
2 Funciones
2.99. ReadNum - Lee un nmero de un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 958


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.99. ReadNum - Lee un nmero de un archivo o un canal serie
Utilizacin
ReadNum (Read Numeric) se utiliza para leer un nmero de un archivo o un canal serie
alfanumrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadNum.
Consulte tambin Ms ejemplos en la pgina 959.
Ejemplo 1
VAR iodev infile;
...
Open "HOME:/file.doc", infile\Read;
reg1 := ReadNum(infile);
Se asigna a reg1 un nmero ledo del archivo file.doc.
Valor de retorno
Tipo de dato: num
El valor numrico ledo de un archivo o un canal serie especificado. Si el archivo est vaco
(se ha alcanzado el fin del archivo), se devuelve el nmero EOF_NUM (9.998E36).
Argumentos
ReadNum (IODevice [\Delim] [\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
[\Delim]
Delimiters
Tipo de dato: string
Una cadena que contiene los delimitadores que deben utilizarse para interpretar las lneas del
archivo o del canal serie. De forma predeterminada (sin \Delim), el archivo se lee una lnea
cada vez y el nico delimitador que se tiene en cuenta es el carcter de salto de lnea (\0A).
Cuando se utiliza el argumento \Delim, cualquier carcter del argumento de cadena
especificado se utilizar para determinar qu parte de la lnea es significativa.
Cuando se utiliza el argumento \Delim, el sistema de control aade siempre los caracteres
de retorno de carro (\0D) y salto de lnea (\0A) a los delimitadores especificados por el
usuario.
Para especificar caracteres no alfanumricos, utilice \xx, donde xx es la representacin
hexadecimal del cdigo ASCII del carcter (por ejemplo: TAB se especifica mediante \09).
Contina en la pgina siguiente
2 Funciones
2.99. ReadNum - Lee un nmero de un archivo o un canal serie
RobotWare - OS
959 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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 notificar en
el programa de RAPID al poner en marcha el programa.
Ejecucin de programas
A partir de la posicin actual del archivo, la funcin lee y desecha cualquier delimitador de
encabezado. Un delimitador de encabezado que se usa sin el argumento \Delim es el carcter
de salto de lnea. Los delimitadores de encabezado con el argumento \Delim son cualquier
carcter del argumento \Delim ms los caracteres de retorno de carro y salto de lnea. Por
tanto, se lee todo lo que se encuentre hasta el siguiente carcter delimitador e incluyndolo
(el delimitador se desecha posteriormente), pero no ms de 80 caracteres. Si la parte
significativa tiene ms de 80 caracteres, el resto de los caracteres se leen en la siguiente
operacin de lectura.
A continuacin, la cadena leda se convierte en un valor numrico. Por ejemplo, ." 234.4 " se
convierte en el valor numrico 234,4.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ReadNum.
reg1 := ReadNum(infile\Delim:="\09");
IF reg1 > EOF_NUM THEN
TPWrite "The file is empty";
...
Lee un nmero en una lnea en la que los nmeros estn separados por caracteres TAB
("\09") o SPACE (" "). Antes de usar el nmero ledo del archivo, se realiza una
comprobacin para asegurarse de que el archivo no est vaco.
Limitaciones
La funcin slo puede usarse con archivos alfanumricos que hayan sido abiertos para
lectura.
Gestin de errores
Si se produce un error de acceso durante la lectura, la variable de sistema ERRNO cambia a
ERR_FILEACC.
Si se intenta leer un dato no numrico, la variable de sistema ERRNO cambia a ERR_RCVDATA.
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.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.99. ReadNum - Lee un nmero de un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 960


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos predefinidos
La constante EOF_NUM puede usarse para detener la lectura al final del archivo.
CONST num EOF_NUM := 9.998E36;
Sintaxis
ReadNum (
[IODevice :=]<variable (VAR) of iodev>
[\Delim:=<expression (IN) of string>]
[\Time:=<expression (IN) of num>])
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie o archivos
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
2 Funciones
2.100. ReadStr - Lee una cadena de caracteres de un archivo o un canal serie
RobotWare - OS
961 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.100. ReadStr - Lee una cadena de caracteres de un archivo o un canal serie
Utilizacin
ReadStr (Read String) se utiliza para leer una cadena de un archivo o un canal serie
alfanumrico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadStr.
Consulte tambin Ms ejemplos en la pgina 962.
Ejemplo 1
VAR string text;
VAR iodev infile;
...
Open "HOME:/file.doc", infile\Read;
text := ReadStr(infile);
Se asigna a text una cadena leda del archivo file.doc.
Valor de retorno
Tipo de dato: string
La cadena de caracteres leda del archivo o canal serie especificado. Si el archivo est vaco
(se ha alcanzado el fin del archivo), se devuelve la cadena de caracteres "EOF".
Argumentos
ReadStr (IODevice [\Delim] [\RemoveCR] [\DiscardHeaders]
[\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del archivo o del canal serie que debe leerse.
[\Delim]
Delimiters
Tipo de dato: string
Una cadena que contiene los delimitadores que deben utilizarse para interpretar las lneas del
archivo o del canal serie. De forma predeterminada, el archivo se lee una lnea cada vez y el
nico delimitador que se tiene en cuenta es el carcter de salto de lnea (\0A). Cuando se
utiliza el argumento \Delim, cualquier carcter del argumento de cadena especificado,
adems del carcter predeterminado de salto de lnea, se utilizar para determinar qu parte
de la lnea es significativa.
Para especificar caracteres no alfanumricos, utilice \xx, donde xx es la representacin
hexadecimal del cdigo ASCII del carcter (por ejemplo: TAB se especifica con \09).
[\RemoveCR]
Tipo de dato: switch
Un modificador utilizado para eliminar el retorno de carro final al leer archivos de PC. En los
archivos de PC, los cambios de lnea se especifican mediante un retorno de carro y un salto
de lnea (CRLF). Al leer una lnea en este tipo de archivos, el carcter de retorno de carro se
Contina en la pgina siguiente
2 Funciones
2.100. ReadStr - Lee una cadena de caracteres de un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 962


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
lee de forma predeterminada en la cadena de retorno. Cuando se utiliza este argumento, el
carcter de retorno de carro se lee del archivo pero no se incluye en la cadena de caracteres
devuelta.
[\DiscardHeaders]
Tipo de dato: switch
Este argumento especifica si los delimitadores de encabezado (especificados en \Delim ms
el salto de lnea predeterminado) deben ser omitidos o no antes de transferir los datos a la
cadena de caracteres de retorno. De forma predeterminada, si el primer carcter de la posicin
actual del archivo es un delimitador, se lee pero no se transfiere a la cadena de caracteres de
retorno, se detiene la interpretacin de la lnea y el valor devuelto ser una cadena de
caracteres vaca. Si se utiliza este argumento, todos los delimitadores incluidos en la lnea se
leern del archivo pero se desechan y no se realizar el retorno hasta que la cadena de
caracteres devuelta contenga los datos a partir del primer carcter de la lnea que no sea un
delimitador.
[\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. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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
A partir de la posicin actual del archivo, si se utiliza el argumento \DiscardHeaders, la
funcin lee y desecha cualquier delimitador de encabezado (caracteres de salto de lnea y
cualquier carcter especificado en el argumento \Delim). En todos los casos, lee todo hasta
el siguiente carcter delimitador, pero no ms de 80 caracteres. Si la parte significativa tiene
ms de 80 caracteres, el resto de los caracteres se leen en la siguiente operacin de lectura. El
delimitador que causa la detencin de la interpretacin se lee del archivo pero no se transfiere
a la cadena devuelta. Si el ltimo carcter de la cadena es un carcter de retorno de carro y se
utiliza el argumento \RemoveCR, este carcter se elimina de la cadena.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin ReadStr.
Ejemplo 1
text := ReadStr(infile);
IF text = EOF THEN
TPWrite "The file is empty";
...
Antes de usar la cadena de caracteres leda del archivo, se realiza una comprobacin para
asegurarse de que el archivo no est vaco.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.100. ReadStr - Lee una cadena de caracteres de un archivo o un canal serie
RobotWare - OS
963 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
Por ejemplo, veamos un archivo que contiene:
<LF><SPACE><TAB>Hello<SPACE><SPACE>World<CR><LF>
text := ReadStr(infile);
text ser una cadena vaca: el primer carcter del archivo es el delimitador predeterminado
<LF>.
text := ReadStr(infile\DiscardHeaders);
text contendr <SPACE><TAB>Hello<SPACE><SPACE>World<CR>: el primer carcter del
archivo, el delimitador predeterminado <LF>, se desecha.
text := ReadStr(infile\RemoveCR\DiscardHeaders);
text contendr <SPACE><TAB>Hello<SPACE><SPACE>World:. El primer carcter del
archivo, el delimitador predeterminado <LF>, se desecha. El carcter de retorno de carro final
se elimina.
text := ReadStr(infile\Delim:=" \09"\RemoveCR\DiscardHeaders);
text contendr "Hello": los primeros caracteres del archivo que coincidan con el delimitador
predeterminado <LF> o con el conjunto de caracteres definido por \Delim (espacio y
tabulador) se desechan. Se transfieren los datos existentes hasta el primer delimitador ledo
del archivo, aunque ste ltimo no se transfiere a la cadena. Una nueva ejecucin de la misma
sentencia devuelve "World".
Ejemplo 3
Por ejemplo, veamos un archivo que contiene:
<CR><LF>Hello<CR><LF>
text := ReadStr(infile);
text contendr el carcter <CR> (\0d): los caracteres <CR> y <LF> se leen del archivo, pero
slo se transfiere <CR> a la cadena. Una nueva ejecucin de la misma sentencia devuelve
"Hello\0d".
text := ReadStr(infile\RemoveCR);
text ser una cadena vaca: los caracteres <CR> y <LF> se leen del archivo;<CR> se
transfiere pero se elimina de la cadena. Una nueva ejecucin de la misma sentencia devuelve
"Hello".
text := ReadStr(infile\Delim:="\0d");
text ser una cadena vaca: <CR> se lee del archivo pero no se transfiere a la cadena
devuelta. Una nueva ejecucin de la misma instruccin devuelve de nuevo una cadena vaca:
<LF> se lee del archivo pero no se transfiere a la cadena devuelta.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.100. ReadStr - Lee una cadena de caracteres de un archivo o un canal serie
RobotWare - OS
3HAC16581-5 Revisin: H 964


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
text := ReadStr(infile\Delim:="\0d"\DiscardHeaders);
text contendr "Hello". una nueva ejecucin de la misma instruccin devuelve "EOF"
(final del archivo).
Limitaciones
La funcin slo puede usarse con archivos o canales serie que se han abierto para lectura en
modo alfanumrico.
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.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos
La constante EOF puede usarse para comprobar si el archivo estaba vaco al intentar leer del
archivo o para detener la lectura al final del archivo.
CONST string EOF := "EOF";
Sintaxis
ReadStr (
[IODevice :=] <variable (VAR) of iodev>
[\Delim :=<expression (IN) of string>]
[\RemoveCR]
[\DiscardHeaders]
[\Time:= <expression (IN) of num>])
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con canales
serie o archivos
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Continuacin
2 Funciones
2.101. ReadStrBin - Lee una cadena de un canal serie o un archivo binario
RobotWare - OS
965 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.101. ReadStrBin - Lee una cadena de un canal serie o un archivo binario
Utilizacin
ReadStrBin (Read String Binary) se utiliza para leer una cadena de un canal serie o un
archivo binario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadStrBin.
Ejemplo 1
VAR iodev channel2;
VAR string text;
...
Open "com2:", channel2 \Bin;
text := ReadStrBin (channel2, 10);
text := ReadStrBin(infile,20);
IF text = EOF THEN
Se asigna a text una cadena de texto de 10 caracteres leda del canal serie al que se hace
referencia con channel2.
Antes de usar la cadena de caracteres leda del archivo, se realiza una comprobacin para
asegurarse de que el archivo no est vaco.
Valor de retorno
Tipo de dato: string
La cadena de texto leda del canal serie o el archivo especificado. Si el archivo est vaco (se
ha alcanzado el fin del archivo), se devuelve la cadena de caracteres "EOF".
Argumentos
ReadStrBin (IODevice NoOfChars [\Time])
IODevice
Tipo de dato: iodev
El nombre (la referencia) del canal serie o el archivo binario del que se desea leer.
NoOfChars
Number of Characters
Tipo de dato: num
El nmero de caracteres a leer del canal serie o del archivo binario.
Contina en la pgina siguiente
2 Funciones
2.101. ReadStrBin - Lee una cadena de un canal serie o un archivo binario
RobotWare - OS
3HAC16581-5 Revisin: H 966


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\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. Para esperar
ininterrumpidamente, utilice la constante predefinida WAIT_MAX.
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
La funcin lee el nmero especificado de caracteres del canal serie o del archivo binario.
Limitaciones
La funcin slo puede usarse con canales serie o archivos que hayan sido abiertos para lectura
en modo binario.
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.
A continuacin, estos errores pueden ser gestionados en el gestor de errores.
Datos predefinidos
La constante EOF puede usarse para comprobar si el archivo estaba vaco al intentar leer del
archivo o para detener la lectura al final del archivo.
CONST string EOF := "EOF";
Sintaxis
ReadStrBin (
[IODevice :=] <variable (VAR) of iodev>,
[NoOfChars :=] <expression (IN) of num>
[\Time := <expression (IN) of num>])
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura y otras operaciones con archivos o
canales serie
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Escritura de cadenas binarias WriteStrBin - Escribe una cadena de
caracteres en un canal serie binario en la
pgina 732
Continuacin
2 Funciones
2.102. ReadVar - Lee una variable de un dispositivo
Sensor Interface
967 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.102. ReadVar - Lee una variable de un dispositivo
Utilizacin
ReadVar se utiliza para leer una variable de un dispositivo que est conectado a la interfaz
de sensores serie.
La interfaz de sensores se comunica con los sensores a travs de canales serie, utilizando el
protocolo de transporte RTP1.
ste es un ejemplo de configuracin de un canal de sensor.
COM_PHY_CHANNEL:
Name COM1:
Connector COM1
Baudrate 19200
COM_TRP:
Name sen1:
Type RTP1
PhyChannel COM1
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ReadVar.
Ejemplo 1
CONST num XCoord := 8;
CONST num YCoord := 9;
CONST num ZCoord := 10;
VAR pos SensorPos;
! Connect to the sensor device "sen1:" (defined in sio.cfg).
SenDevice "sen1:";
! Read a cartesian position from the sensor.
SensorPos.x := ReadVar ("sen1:", XCoord);
SensorPos.y := ReadVar ("sen1:", YCoord);
SensorPos.z := ReadVar ("sen1:", ZCoord);
Argumentos
ReadVar (device, VarNo, [ \TaskName ])
device
Tipo de dato: string
El nombre del dispositivo de E/S configurado en sio.cfg para el sensor utilizado.
VarNo
Tipo de dato: num
El argumento VarNo se utiliza para seleccionar la variable que se desea leer.
Contina en la pgina siguiente
2 Funciones
2.102. ReadVar - Lee una variable de un dispositivo
Sensor Interface
3HAC16581-5 Revisin: H 968


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \TaskName ]
Tipo de dato: string
El argumento TaskName hace posible el acceso a dispositivos de otras tareas de RAPID.
Gestin de fallos
Sintaxis
ReadVar
[ device := ] < expression(IN) of string>,
[ VarNo := ] < expression (IN) of num > ,
[ \ TaskName := < expression (IN) of string > ] ;
A function with a return value of the data type num.
Informacin relacionada
Constante de error (valor de ERRNO) Descripcin
SEN_NO_MEAS Fallo de medicin
SEN_NOREADY Sensor incapaz de gestionar el comando
SEN_GENERRO Error general del sensor
SEN_BUSY Sensor ocupado
SEN_UNKNOWN Sensor desconocido
SEN_EXALARM Error de sensor externo
SEN_CAALARM Error de sensor interno
SEN_TEMP Error de temperatura del sensor
SEN_VALUE Valor de comunicacin no vlido
SEN_CAMCHECK Fallo de comprobacin de sensor
SEN_TIMEOUT Error de comunicacin
Para obtener ms informacin sobre Consulte
Establecimiento de una conexin a un
dispositivo de sensor
SenDevice - Establece una conexin a un
dispositivo de sensor en la pgina 433
Escritura de una variable de sensor WriteVar - Escribe una variable en la pgina
734
Escritura de un bloque de datos de sensor WriteBlock - Escribe un bloque de datos en un
dispositivo en la pgina 724
Lectura de un bloque de datos de sensor ReadBlock - Lee un bloque de datos de un
dispositivo en la pgina 350
Configuracin de la comunicacin del sensor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Communication
Continuacin
2 Funciones
2.103. RelTool - Hace un desplazamiento respecto de la herramienta
RobotWare - OS
969 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.103. RelTool - Hace un desplazamiento respecto de la herramienta
Utilizacin
RelTool (Relative Tool) se utiliza para aadir un desplazamiento y/o una rotacin, expresada
en el sistema de coordenadas de la herramienta activa, a una posicin del robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RelTool.
Ejemplo 1
MoveL RelTool (p1, 0, 0, 100), v100, fine, tool1;
Se mueve el robot a una posicin que se encuentra a 100 mm de p1 en la direccin de la
herramienta.
Ejemplo 2
MoveL RelTool (p1, 0, 0, 0 \Rz:= 25), v100, fine, tool1;
Se gira la herramienta 25 alrededor de su eje z.
Valor de retorno
Tipo de dato: robtarget
La nueva posicin, con la adicin de un desplazamiento y/o una rotacin, si la hay, respecto
de la herramienta activa.
Argumentos
RelTool (Point Dx Dy Dz [\Rx] [\Ry] [\Rz])
Point
Tipo de dato: robtarget
La posicin de entrada del robot. La parte de orientacin de esta posicin define la orientacin
actual del sistema de coordenadas de la herramienta.
Dx
Tipo de dato: num
El desplazamiento en mm en la direccin x del sistema de coordenadas de la herramienta.
Dy
Tipo de dato: num
El desplazamiento en mm en la direccin y del sistema de coordenadas de la herramienta.
Dz
Tipo de dato: num
El desplazamiento en mm en la direccin z del sistema de coordenadas de la herramienta.
[\Rx]
Tipo de dato: num
La rotacin en grados alrededor del eje x del sistema de coordenadas de la herramienta.
Contina en la pgina siguiente
2 Funciones
2.103. RelTool - Hace un desplazamiento respecto de la herramienta
RobotWare - OS
3HAC16581-5 Revisin: H 970


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Ry]
Tipo de dato: num
La rotacin en grados alrededor del eje y del sistema de coordenadas de la herramienta.
[\Rz]
Tipo de dato: num
La rotacin en grados alrededor del eje z del sistema de coordenadas de la herramienta.
Si se especifican dos o tres rotaciones al mismo tiempo, stas se realizan primero alrededor
del eje x, a continuacin alrededor del nuevo eje y, y a continuacin alrededor del nuevo eje z.
Sintaxis
RelTool(
[ Point := ] < expression (IN) of robtarget>,
[Dx :=] <expression (IN) of num>,
[Dy :=] <expression (IN) of num>,
[Dz :=] <expression (IN) of num>
[\Rx := <expression (IN) of num> ]
[\Ry := <expression (IN) of num> ]
[\Rz := <expression (IN) of num> ])
Una funcin con un valor de retorno del tipo de dato robtarget.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de posicin robtarget - Datos de posicin en la pgina
1172
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Continuacin
2 Funciones
2.104. RemainingRetries - Reintentos restantes an pendientes
RobotWare - OS
971 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.104. RemainingRetries - Reintentos restantes an pendientes
Utilizacin
RemainingRetries se usa para determinar cuntos RETRY quedan por hacer en el gestor de
errores del programa. El nmero mximo de reintentos se define en la configuracin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RemainingRetries.
Ejemplo 1
...
ERROR
IF RemainingRetries() > 0 THEN
RETRY;
ELSE
TRYNEXT;
ENDIF
...
Este programa reintentar la instruccin, a pesar de error, hasta alcanzar el nmero mximo
de reintentos y a continuacin intentar la instruccin siguiente.
Valor de retorno
Tipo de dato: num
El valor de retorno indica cuntos reintentos quedan por hacer del nmero total de reintentos.
Sintaxis
RemainingRetries()
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Gestores de errores Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Recuperacin en caso de error
Reanudacin de la ejecucin despus de un
error
RETRY - Reanuda la ejecucin despus de
un error en la pgina 372
Configuracin del nmero mximo de
reintentos
Manual de referencia tcnica - Parmetros
del sistema, seccin System misc
Restablece el nmero de reintentos contado ResetRetryCount - Restablece el nmero de
reintentos en la pgina 369
2 Funciones
2.105. RMQGetSlotName - Obtener el nombre de un cliente de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 972


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.105. RMQGetSlotName - Obtener el nombre de un cliente de RMQ
Utilizacin
RMQGetSlotName (RAPID Mesasage Queue Get Slot Name) se utiliza para obtener el
nombre de ranura de un RMQ cliente de Robot Application Builder a partir de una identidad
de ranura determinada, es decir, desde un rmqslot determinado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RMQGetSlotName.
Ejemplo 1
VAR rmqslot slot;
VAR string client_name;
RMQFindSlot slot, "RMQ_T_ROB1";
...
client_name := RMQGetSlotName(slot);
TPWrite "Name of the client: " + client_name;
Este ejemplo ilustra cmo obtener el nombre de un cliente utilizando la identidad del cliente.
Valor de retorno
Tipo de dato: string
Se devuelve el nombre del cliente. Puede tratarse de un nombre de RMQ o del nombre de un
cliente de Robot Application Builder que utiliza la funcionalidad de RMQ.
Argumentos
RMQGetSlotName (Slot)
Slot
Tipo de dato: rmqslot
El nmero de ranura de identidad del cliente cuyo nombre se desea encontrar.
Ejecucin de programas
La instruccin RMQGetSlotName se usa para encontrar el nombre del cliente que tiene el
nmero de identidad especificado en el argumento Slot. El cliente puede ser otro RMQ, o
bien un cliente de Robot Application Builder.
Gestin de errores
Pueden generarse los errores recuperables siguientes. Los errores pueden ser gestionados en
un gestor ERROR. La variable de sistema ERRNO cambia a:
ERR_RMQ_INVALID La ranura de destino no ha sido conectada o la ranura de
destino ya no est disponible. Si no hay conexin, debe
realizarse una llamada a RMQFindSlot. Si no est disponible,
el motivo es que un cliente remoto se ha desconectado del con-
trolador.
Contina en la pgina siguiente
2 Funciones
2.105. RMQGetSlotName - Obtener el nombre de un cliente de RMQ
FlexPendant Interface, PC Interface, or Multitasking
973 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
RMQGetSlotName(
[ Slot := ] < variable (VAR) of rmqslot >)
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
RMQ Slot rmqslot - Nmero de identidad de un cliente
de RMQ en la pgina 1170
Continuacin
2 Funciones
2.106. RobName - Obtiene el nombre del robot del TCP
RobotWare - OS
3HAC16581-5 Revisin: H 974


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.106. RobName - Obtiene el nombre del robot del TCP
Utilizacin
RobName (Robot Name) se utiliza para obtener el nombre del robot de TCP desde una tarea
de programa. Si la tarea no controla ningn robot de TCP, esta funcin devuelve una cadena
vaca.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RobName.
Consulte tambin Ms ejemplos en la pgina 974.
Ejemplo 1
VAR string my_robot;
...
my_robot := RobName();
IF my_robot="" THEN
TPWrite "This task does not control any TCP robot";
ELSE
TPWrite "This task controls TCP robot with name "+ my_robot;
ENDIF
Se escribe en el FlexPendant el nombre del robot de TCP controlado desde esta tarea de
programa. Si no se controla ningn robot de TCP, se indica que la tarea no controla ningn
robot.
Valor de retorno
Tipo de dato: string
El nombre de unidad mecnica del robot de TCP controlado desde esta tarea de programa.
Devuelve una cadena vaca si no se est controlando ningn robot de TCP.
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la instruccin RobName.
Ejemplo 1
VAR string my_robot;
...
IF TaskRunRob() THEN
my_robot := RobName();
TPWrite "This task controls robot with name "+ my_robot;
ENDIF
Si esta tarea de programa controla algn robot de TCP, se escribe en el FlexPendant el nombre
del robot de TCP.
Sintaxis
RobName ()
Una funcin con un valor de retorno del tipo de dato string.
Contina en la pgina siguiente
2 Funciones
2.106. RobName - Obtiene el nombre del robot del TCP
RobotWare - OS
975 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si la tarea controla algn
robot de TCP
TaskRunRob - Comprueba si una tarea
controla algn robot en la pgina 1024
Comprobacin de si la tarea controla alguna
unidad mecnica
TaskRunMec - Comprueba si una tarea
controla alguna unidad mecnica en la pgina
1023
Obtencin del nombre de las unidades
mecnicas del sistema
GetNextMechUnit - Obtener el nombre y los
datos de las unidades mecnicas en la pgina
859
Funciones para cadenas de caracteres Manual de referencia tcnica - Instrucciones,
funciones y tipos de datos de RAPID, seccin
Resumen sobre RAPID - Funciones de
cadena
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Continuacin
2 Funciones
2.107. RobOS - Comprueba si el programa se est ejecutando en RC o VC
RobotWare - OS
3HAC16581-5 Revisin: H 976


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.107. RobOS - Comprueba si el programa se est ejecutando en RC o VC
Utilizacin
RobOS (Robot Operating System) puede usarse para comprobar si la ejecucin se realiza en
Robot Controller RC o en Virtual Controller VC.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RobOS.
Ejemplo 1
IF RobOS() THEN
! Execution statements in RC
ELSE
! Execution statements in VC
ENDIF
Valor de retorno
Tipo de dato: bool
TRUE si la ejecucin se est realizando en el controlador de robot RC. De lo contrario, FALSE.
Sintaxis
RobOS ()
Una funcin con un valor de retorno del tipo de dato bool.
2 Funciones
2.108. Round - Redondea un valor numrico
RobotWare - OS
977 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.108. Round - Redondea un valor numrico
Utilizacin
Round se utiliza para redondear un valor numrico con un nmero determinado de decimales
o a un valor entero.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Round.
Ejemplo 1
VAR num val;
val := Round(0.38521\Dec:=3);
The variable val is given the value 0.385.
Ejemplo 2
val := Round(0.38521\Dec:=1);
Se asigna a la variable val el valor 0,4.
Ejemplo 3
val := Round(0.38521);
Se asigna a la variable val el valor 0.
Valor de retorno
Tipo de dato: num
El valor numrico redondeado con el nmero especificado de decimales.
Argumentos
Round ( Val [\Dec])
Val
Value
Tipo de dato: num
El valor numrico a redondear.
[\Dec]
Decimals
Tipo de dato: num
Nmero de decimales.
Si el nmero de decimales especificado es 0 o se omite el argumento, el valor se redondea a
un entero.
El nmero de decimales no debe ser negativo ni mayor que la precisin disponible para los
valores numricos.
Contina en la pgina siguiente
2 Funciones
2.108. Round - Redondea un valor numrico
RobotWare - OS
3HAC16581-5 Revisin: H 978


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
Round(
[ Val := ] <expression (IN) of num>
[ \Dec := <expression (IN) of num> ]
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Truncacin de un valor Trunc - Trunca un valor numrico en la pgina
1039
Continuacin
2 Funciones
2.109. RunMode - Obtiene el modo de ejecucin
RobotWare - OS
979 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.109. RunMode - Obtiene el modo de ejecucin
Utilizacin
RunMode(Running Mode) se usa para leer el modo de ejecucin actual de la tarea del
programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin RunMode.
Ejemplo 1
IF RunMode() = RUN_CONT_CYCLE THEN
...
ENDIF
La seccin de programa slo se ejecuta para un funcionamiento continuado o cclico.
Valor de retorno
Tipo de dato: symnum
El modo de ejecucin actual, con uno de los valores definidos como se describe en la tabla
siguiente.
Argumentos
RunMode ( [ \Main] )
[ \Main ]
Tipo de dato: switch
Devuelve el modo actual de la tarea si sta es una tarea de movimiento. Si se usa en una tarea
sin movimiento, devuelve el modo actual de la tarea de movimiento a la que est conectada
la tarea sin movimiento.
Si se omite el argumento, el valor de retorno siempre refleja el modo de ejecucin opuesto de
la tarea de programa que ejecuta la funcin RunMode.
Sintaxis
RunMode ( [\Main] )
Una funcin con un valor de retorno del tipo de dato symnum.
Valor de
retorno
Constante
simblica
Comentario
0 RUN_UNDEF Modo de ejecucin no definido
1 RUN_CONT_CYCLE Modo de ejecucin continuo o en modo ciclo
2 RUN_INSTR_FWD Modo de ejecucin de avance de instrucciones
3 RUN_INSTR_BWD Modo de ejecucin hacia atrs
4 RUN_SIM Modo de ejecucin simulado. An no publicado.
5 RUN_STEP_MOVE Instrucciones de movimiento en ejecucin hacia
delante e instrucciones lgicas en modo de ejecucin
continuo
Contina en la pgina siguiente
2 Funciones
2.109. RunMode - Obtiene el modo de ejecucin
RobotWare - OS
3HAC16581-5 Revisin: H 980


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Lectura del modo de funcionamiento OpMode - Lee el modo de funcionamiento en
la pgina 918
Continuacin
2 Funciones
2.110. Sin - Calcula el valor del seno
RobotWare - OS
981 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.110. Sin - Calcula el valor del seno
Utilizacin
Sin(Sine) se utiliza para calcular el valor de seno de un valor de ngulo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Sin.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
value := Sin(angle);
value obtiene el valor de seno de angle.
Valor de retorno
Tipo de dato: num
El valor del seno en el rango [-1, 1].
Argumentos
Sin (Angle)
Angle
Tipo de dato: num
El valor del ngulo, expresado en grados.
Sintaxis
Sin(
[Angle:=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.111. SocketGetStatus - Obtiene el estado actual de un zcalo
Socket Messaging
3HAC16581-5 Revisin: H 982


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.111. SocketGetStatus - Obtiene el estado actual de un zcalo
Utilizacin
SocketGetStatus devuelve el estado actual de un zcalo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin SocketGetStatus.
Consulte tambin Ms ejemplos en la pgina 983.
Ejemplo 1
VAR socketdev socket1;
VAR socketstatus state;
...
SocketCreate socket1;
state := SocketGetStatus( socket1 );
El estado de zcalo SOCKET_CREATED se almacena en la variable state.
Valor de retorno
Tipo de dato: socketstatus
El estado actual del zcalo.
Slo es posible usar constantes simblicas predefinidas del tipo socketstatus para
comprobar el estado.
Argumentos
SocketGetStatus( Socket )
Socket
Tipo de dato: socketdev
La variable de zcalo cuyo estado se desea averiguar.
Ejecucin de programas
Esta funcin devuelve uno de los estados de zcalo predefinidos siguientes:
SOCKET_CREATED, SOCKET_CONNECTED, SOCKET_BOUND, SOCKET_LISTENING o
SOCKET_CLOSED.
Contina en la pgina siguiente
2 Funciones
2.111. SocketGetStatus - Obtiene el estado actual de un zcalo
Socket Messaging
983 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin SocketGetStatus.
VAR socketstatus status;
VAR socketdev my_socket;
...
SocketCreate my_socket;
SocketConnect my_socket, "192.168.0.1", 1025;
! A lot of RAPID code
status := SocketGetStatus( my_socket );
! Comprobar qu instruccin fue ejecutada en ltimo lugar, no el
estado del
! zcalo
IF status = SOCKET_CREATED THEN
TPWrite "Instruction SocketCreate has been executed";
ELSEIF status = SOCKET_CLOSED THEN
TPWrite "Instruction SocketClose has been executed";
ELSEIF status = SOCKET_BOUND THEN
TPWrite "Instruction SocketBind has been executed";
ELSEIF status = SOCKET_LISTENING THEN
TPWrite "Instruction SocketListen or SocketAccept has been
executed";
ELSEIF status = SOCKET_CONNECTED THEN
TPWrite "Instruction SocketConnect, SocketReceive or SocketSend
has been executed";
ELSE
TPWrite "Unknown socket status";
ENDIF
Se crea un zcalo cliente, que se conecta a un ordenador remoto. Antes de que el zcalo se
utilice en una instruccin SocketSend, se comprueba el estado del zcalo para verificar que
an est conectado.
Limitaciones
El estado de un zcalo slo puede ser cambiado mediante la ejecucin de una instruccin de
zcalo de RAPID. Por ejemplo, si se conecta el zcalo pero la conexin se interrumpe, este
hecho no ser indicado por la funcin SocketGetStatus. En su lugar, se devolver un error
cuando se utiliza el zcalo en una instruccin SocketSend o SocketReceive.
Sintaxis
SocketGetStatus (
[ Socket := ] < variable (VAR) of socketdev > )
Una funcin con un valor de retorno del tipo de dato socketstatus.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.111. SocketGetStatus - Obtiene el estado actual de un zcalo
Socket Messaging
3HAC16581-5 Revisin: H 984


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Conexin a un ordenador remoto (slo
cliente)
SocketConnect - Establece una conexin a
un ordenador remoto en la pgina 465
Envo de datos a un ordenador remoto SocketSend - Enva datos a un ordenador
remoto en la pgina 477
Recepcin de datos desde un ordenador
remoto
SocketReceive - Recibe datos de un
ordenador remoto en la pgina 472
Cierre del zcalo SocketClose - Cierra un zcalo en la pgina
463
Enlazamiento de un zcalo (slo servidor) SocketBind - Enlaza un zcalo a mi direccin
IP y puerto en la pgina 461
Cmo permanecer a la escucha de
conexiones (slo servidor)
SocketListen - Permanece a la escucha de
conexiones entrantes en la pgina 470
Aceptacin de conexiones (slo servidor) SocketAccept - Acepta una conexin entrante
en la pgina 458
Continuacin
2 Funciones
2.112. Sqrt - Calcula el valor de la raz cuadrada
RobotWare - OS
985 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.112. Sqrt - Calcula el valor de la raz cuadrada
Utilizacin
Sqrt (Square root) se utiliza para calcular la raz cuadrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Sqrt.
Ejemplo 1
VAR num x_value;
VAR num y_value;
...
...
y_value := Sqrt( x_value);
y-value obtiene el valor de la raz cuadrada de x_value, es decir (x_value).
Valor de retorno
Tipo de dato: num
El valor de la raz cuadrada ().
Argumentos
Sqrt (Value)
Value
Tipo de dato: num
El valor del argumento de la raz cuadrada, es decir value.
Value debe ser 0.
Limitaciones
La ejecucin de la funcin Sqrt(x) genera un error si x <0.
Sintaxis
Sqrt(
[Value:=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
2 Funciones
2.113. STCalcForce - Calcula fuerza de la punta de una herramienta servo
Servo tool control
3HAC16581-5 Revisin: H 986


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.113. STCalcForce - Calcula fuerza de la punta de una herramienta servo
Utilizacin
STCalcForce se utiliza para calcular la fuerza de la punta de una herramienta servo. Por
ejemplo, esta funcin se utiliza para determinar la fuerza de punta mxima permitida con una
herramienta servo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin STCalcForce.
Ejemplo 1
VAR num tip_force;
tip_force := STCalcForce(gun1, 7);
Se calcula la fuerza de la punta con un par motor deseado de 7 Nm.
Valor de retorno
Tipo de dato: num
La fuerza de punta calculada [N].
Argumentos
STCalcForce (ToolName MotorTorque)
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
MotorTorque
Tipo de dato: num
El par motor deseado [Nm].
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
El error puede ser gestionado en un gestor de errores de RAPID.
Sintaxis
STCalcForce
[ ToolName := ] < expression (IN) of string > ,
[ MotorTorque := ] < expression (IN) of num > ;
A function with a return value of the data type num.
Contina en la pgina siguiente
2 Funciones
2.113. STCalcForce - Calcula fuerza de la punta de una herramienta servo
Servo tool control
987 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Cierre de una herramienta servo STClose - Cierra una herramienta servo en la
pgina 504
Clculo del par motor STCalcTorque - Calcula el par motor de una
herramienta servo en la pgina 988
Continuacin
2 Funciones
2.114. STCalcTorque - Calcula el par motor de una herramienta servo
Servo tool control
3HAC16581-5 Revisin: H 988


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.114. STCalcTorque - Calcula el par motor de una herramienta servo
Utilizacin
STCalcTorque se utiliza para calcular el par motor de una herramienta servo. Por ejemplo,
esta funcin se utiliza cuando se realiza una calibracin de la fuerza.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin STCalcTorque.
Ejemplo 1
VAR num curr_motortorque;
curr_motortorque := STCalcTorque( gun1, 1000);
Se calcula el par motor con una fuerza de la punta deseada de 1000 Nm.
Valor de retorno
Tipo de dato: num
El par motor calculado [Nm].
Argumentos
STCalcTorque (ToolName TipForce)
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
TipForce
Tipo de dato: num
La fuerza de punta deseada [N].
Gestin de errores
Si el nombre especificado para la herramienta servo no corresponde a una herramienta servo
configurada, la variable de sistema ERRNO cambia a ERR_NO_SGUN.
El error puede ser gestionado en un gestor de errores de RAPID.
Sintaxis
STCalcTorque
[ ToolName := ] < expression (IN) of string > ,
[ TipForce := ] < expression (IN) of num > ;
Una funcin con un valor de retorno del tipo de dato num.
Contina en la pgina siguiente
2 Funciones
2.114. STCalcTorque - Calcula el par motor de una herramienta servo
Servo tool control
989 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Cierre de una herramienta servo STClose - Cierra una herramienta servo en la
pgina 504
Clculo de la fuerza de la punta STCalcForce - Calcula fuerza de la punta de
una herramienta servo en la pgina 986
Continuacin
2 Funciones
2.115. STIsCalib - Compruebe si una herramienta servo est calibrada
Servo Tool Control
3HAC16581-5 Revisin: H 990


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.115. STIsCalib - Compruebe si una herramienta servo est calibrada
Utilizacin
STIsCalib se utiliza para comprobar si una herramienta servo est calibrada, es decir,
comprobar si las puntas de la pistola estn calibradas o sincronizadas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin STIsCalib.
Ejemplo 1
IF STIsCalib(gun1\sguninit) THEN
...
ELSE
!Start the gun calibration
STCalib gun1\TipChg;
ENDIF
Ejemplo 2
IF STIsCalib(gun1\sgunsynch) THEN
...
ELSE
!Start the gun calibration to synchronize the gun position with
the revolution counter
STCalib gun1\ToolChg;
ENDIF
Valor de retorno
Tipo de dato: bool
TRUE si la herramienta comprobada est calibrada, es decir, que la distancia entre las puntas
de la herramienta est calibrada, o si la herramienta comprobada est sincronizada, es decir,
que la posicin de las puntas de la herramienta est sincronizada con el cuentarrevoluciones
de la herramienta.
FALSE si la herramienta comprobada no est calibrada ni sincronizada.
Argumentos
STIsCalib(ToolName [ \sguninit ] | [ \sgunsynch ])
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
[ \sguninit ]
Tipo de dato: switch
Este argumento se utiliza para comprobar si la posicin de la pistola est inicializada y
calibrada.
Contina en la pgina siguiente
2 Funciones
2.115. STIsCalib - Compruebe si una herramienta servo est calibrada
Servo Tool Control
991 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[ \sgunsynch]
Tipo de dato: switch
Este argumento se utiliza para comprobar si la posicin est sincronizada con el
cuentarrevoluciones.
Sintaxis
STIsCalib(
[ ToolName := ] < expression (IN) of string >
[ \sguninit ] | [ \sgunsynch ] )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin de una herramienta servo STCalib - Calibra una herramienta servo en
la pgina 500
Continuacin
2 Funciones
2.116. STIsClosed - Comprueba si una herramienta servo est cerrada
Servo Tool Control
3HAC16581-5 Revisin: H 992


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.116. STIsClosed - Comprueba si una herramienta servo est cerrada
Utilizacin
STIsClosed se utiliza para comprobar si una herramienta servo est cerrada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STIsClosed.
Ejemplo 1
IF STIsClosed(gun1) THEN
!Start the weld process
Set weld_start;
ELSE
...
ENDIF
Comprobar si la pistola est cerrada.
Ejemplo 2
STClose "sgun", 1000, 3 \Conc;
WHILE NOT(STIsClosed("sgun"\RetThickness:=thickness)) DO
WaitTime 0.1;
ENDWHILE
IF thickness > max_thickness THEN...
Se empieza a cerrar la pistola con el nombre sgun. Se contina inmediatamente con la
siguiente instruccin, en la que el programa espera a que se cierre la pistola. Se lee el valor
de grosor conseguido cuando la instruccin STIsClosed haya devuelto TRUE.
Ejemplo 3
Ejemplos de combinaciones no vlidas
STClose "sgun", 1000, 3 \RetThickness:=thickness \Conc;
WHILE NOT(STIsClosed("sgun"\RetThickness:=thickness_2)) DO;
...
Se cierra la pistola. El parmetro thickness no incluye ningn valor vlido ya que se utiliza el
modificador \Conc. Espere a que se cierre la pistola. Cuando la pistola se cierra y
STIsClosed devuelve TRUE, el parmetro thickness_2 incluir un valor vlido ya que el
modificador \Conc se utiliz para STClose.
STClose "sgun", 1000, 3 \RetThickness:=thickness;
WHILE NOT(STIsClosed("sgun"\RetThickness:=thickness_2)) DO;
...
Se cierra la pistola. El parmetro thickness incluir un valor vlido cuando la pistola se haya
cerrado, dado que el modificador \Conc no se utiliza. El parmetro thickness_2 no incluir
ningn valor vlido, dado que el modificador \Conc no se utiliz en la instruccin STClose.
Contina en la pgina siguiente
2 Funciones
2.116. STIsClosed - Comprueba si una herramienta servo est cerrada
Servo Tool Control
993 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: bool
TRUE si la herramienta comprobada est cerrada, es decir, si se consigue la fuerza de punta
deseada.
FALSE si la herramienta comprobada no est cerrada.
Argumentos
STIsClosed (ToolName)
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
[\RetThickness]
Tipo de dato: num
El grosor conseguido [mm].
ATENCIN! Slo es vlido si \Conc se ha utilizado en la instruccin STClose precedente.
Sintaxis
STIsClosed(
[ ToolName := ] < expression (IN) of string > )
[\ RetThickness := < variable or persistent (INOUT) of num
> ]
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Cierre de una herramienta servo STClose - Cierra una herramienta servo en la
pgina 504
Comprobacin de si una herramienta servo
est abierta
STIsOpen - Comprueba si una herramienta
servo est abierta en la pgina 995
Continuacin
2 Funciones
2.117. STIsIndGun - Comprueba si una herramienta servo se encuentra en el modo independiente
Servo Tool Control
3HAC16581-5 Revisin: H 994


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.117. STIsIndGun - Comprueba si una herramienta servo se encuentra en el modo
independiente
Utilizacin
STIsIndGun se utiliza para comprobar si una herramienta servo se encuentra en el modo
independiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin STIsIndGun.
Ejemplo 1
IF STIsIndGun(gun1) THEN
Start the gun calibration
STCalib gun1\???????;
ELSE
...
ENDIF
Valor de retorno
Tipo de dato: bool
TRUE si la herramienta comprobada se encuentra en el modo independiente, es decir, puede
moverse de forma independiente de los movimientos del robot.
FALSE si la herramienta comprobada no est en el modo independiente.
Argumentos
STIsIndGun(ToolName)
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
Sintaxis
STIsIndGun(
[ ToolName := ] < expression (IN) of string > )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Calibracin de una herramienta servo STCalib - Calibra una herramienta servo en
la pgina 500
Cambiar la pistola al modo independiente STIndGun - Pone la pistola en el modo inde-
pendiente en la pgina 509
Restablecer el modo independiente de la
pistola
STIndGunReset - Restablece el modo inde-
pendiente de la pistola en la pgina 511
2 Funciones
2.118. STIsOpen - Comprueba si una herramienta servo est abierta
Servo Tool Control
995 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.118. STIsOpen - Comprueba si una herramienta servo est abierta
Utilizacin
STIsOpen se utiliza para comprobar si una herramienta servo est abierta.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin STIsOpen.
Ejemplo 1
IF STIsOpen(gun1) THEN
!Start the motion
MoveL ...
ELSE
...
ENDIF
Comprobar si la pistola est abierta.
Ejemplo 2
STCalib "sgun" \TipWear \Conc;
WHILE NOT(STIsOpen("sgun") \RetTipWear:=tipwear
\RetPosAdj:=posadj) DO;
WaitTime 0.1;
ENDWHILE
IF tipwear >20...
IF posadj >25...
Realizar una calibracin de desgaste de puntas. Espere hasta que la pistola sgun est abierta.
Lea los valores de desgaste de la punta y el ajuste posicional.
Ejemplo 3
Ejemplos de combinaciones no vlidas
STCalib "sgun" \TipWear \RetTipWear:=tipwear_1 \Conc;
WHILE NOT(STIsOpen("sgun") \RetTipWear:=tipwear_2) DO;
WaitTime 0.1;
ENDWHILE
Iniciar una calibracin de desgaste de puntas. El parmetro tipwear_1 no incluye ningn
valor vlido ya que se utiliza el modificador \Conc. Cuando la calibracin est preparada y
STIsOpen devuelve TRUE, el parmetro tipwear_2 contendr un valor vlido.
STCalib "sgun" \TipWear \RetTipWear:=tipwear_1;
WHILE NOT(STIsOpen("sgun") \RetTipWear:=tipwear_2) DO;
WaitTime 0.1;
ENDWHILE
Contina en la pgina siguiente
2 Funciones
2.118. STIsOpen - Comprueba si una herramienta servo est abierta
Servo Tool Control
3HAC16581-5 Revisin: H 996


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Realizar una calibracin de desgaste de puntas. El parmetro tipwear_1 incluye un valor
vlido ya que no se utiliza el modificador \Conc. Cuando STIsOpen devuelve TRUE, el
parmetro tipwear_2 no contiene ningn valor vlido dado que el modificador \Conc no se
utiliz en STCalib.
Valor de retorno
Tipo de dato: bool
TRUE si la herramienta comprobada est abierta, es decir, si el brazo de la herramienta se
encuentra en la posicin abierta programada.
FALSE si la herramienta comprobada no est abierta.
Argumentos
STIsOpen (ToolName)
ToolName
Tipo de dato: string
El nombre de la unidad mecnica.
[\RetTipWear]
Tipo de dato: num
El desgaste de puntas detectado [en mm].
NOTA! Slo es vlido si se ha usado \Conc en una instruccin STCalib precedente y si
STIsOpen devuelve TRUE.
[\RetPosAdj]
Tipo de dato: num
El ajuste de posicin desde la ltima calibracin [mm].
NOTA! Slo es vlido si se ha usado \Conc en una instruccin STCalib precedente y si
STIsOpen devuelve TRUE.
Sintaxis
STIsOpen(
[ ToolName := ] < expression (IN) of string > )
[ \RetTipWear := < variable or persistent(INOUT) of num >
];
[ \RetPosAdj := < variable or persistent(INOUT) of num > ]
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de una herramienta servo STOpen - Abre una herramienta servo en la
pgina 521
Cierre de una herramienta servo STClose - Cierra una herramienta servo en
la pgina 504
Comprobacin de si una herramienta servo
est cerrada
STIsClosed - Comprueba si una herramienta
servo est cerrada en la pgina 992
Continuacin
2 Funciones
2.119. StrDigCalc - Operaciones aritmticas con el tipo de dato stringdig
RobotWare - OS
997 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.119. StrDigCalc - Operaciones aritmticas con el tipo de dato stringdig
Utilizacin
StrDigCalc se utiliza para realizar operaciones aritmticas (+, -, *, /, %) con dos cadenas
de dgitos positivos, de la misma forma en que se realizan las operaciones aritmticas
numricas con valores enteros positivos.
Esta funcin permite gestionar enteros positivos superiores a 8.388.608 con una
representacin exacta.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrDigCalc.
Consulte tambin Ms ejemplos en la pgina 390.
Ejemplo 1
res := StrDigCalc(str1, OpAdd, str2);
Se asigna a res el resultado de la operacin de suma de los valores representados por las
cadenas digitales str1 y str2.
Valor de retorno
Tipo de dato: stringdig
stringdig se utiliza para representar enteros positivos grandes en una cadena, usando
nicamente dgitos.
Este tipo de dato ha sido introducido dado que el tipo de dato num no es capaz de manejar
enteros positivos superiores a 8.388.608 con una representacin exacta.
Argumentos
StrDigCalc (StrDig1 Operation StrDig2)
StrDig1
String Digit 1
Tipo de dato: stringdig
Una cadena que representa un valor entero positivo.
Operation
Arithmetic operator
Tipo de dato: opcalc
Define la operacin aritmtica a realizar con las dos cadenas de dgitos. Es posible usar las
operaciones aritmticas siguientes del tipo de dato opcalc; OpAdd, OpSub, OpMult,
OpDiv y OpMod.
StrDig2
String Digit 2
Tipo de dato: stringdig
Una cadena que representa un valor entero positivo.
Contina en la pgina siguiente
2 Funciones
2.119. StrDigCalc - Operaciones aritmticas con el tipo de dato stringdig
RobotWare - OS
3HAC16581-5 Revisin: H 998


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Esta funcin permite:
Comprobar que slo haya dgitos del 0 al 9 en StrDig1 y StrDig2
Convertir las dos cadenas de dgitos a long integers
Realizar una operacin aritmtica con los dos long integers
Convertir el resultado de long integer a stringdig
Ms ejemplos
A continuacin aparecen ms ejemplos de cmo usar la funcin StrDigCalc.
Ejemplo 1
res := StrDigCalc(str1, OpSub, str2);
Se asigna a res el resultado de la operacin de resta de los valores representados por las
cadenas digitales str1 y str2.
Ejemplo 2
res := StrDigCalc(str1, OpMult, str2);
Se asigna a res el resultado de la operacin de multiplicacin de los valores representados
por las cadenas digitales str1 y str2.
Ejemplo 3
res := StrDigCalc(str1, OpDiv, str2);
Se asigna a res el resultado de la operacin de divisin de los valores representados por las
cadenas digitales str1 y str2.
Ejemplo 4
res := StrDigCalc(str1, OpMod, str2);
Se asigna a res el resultado de la operacin de mdulo de los valores representados por las
cadenas digitales str1 y str2.
Gestin de errores
Los errores siguientes pueden ser gestionados en un gestor de errores de RAPID.
Limitaciones
StrDigCalc slo acepta cadenas que contengan nicamente dgitos (caracteres del 0 al 9).
La existencia de cualquier otro carcter en stringdig da lugar a un error.
Esta funcin slo puede manejar enteros positivos hasta 4.294.967.295.
Cdigo de error Descripcin
ERR_INT_NOTVAL Valores de entrada no slo con dgitos o mdulo entre cero
ERR_INT_MAXVAL Valor de entrada superior a 4294967295
ERR_CALC_OVERFLOW Resultado dentro del rango 0...4.294.967.295
ERR_CALC_NEG Resta negativa, es decir StrDig2 >StrDig1
ERR_CALC_DIVZERO Divisin entre cero
Continuacin
Contina en la pgina siguiente
2 Funciones
2.119. StrDigCalc - Operaciones aritmticas con el tipo de dato stringdig
RobotWare - OS
999 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
StrDigCalc(
[ StrDig1 := ] < expression (IN) of stringdig > ,
[ Operation := ] < expression (IN) of opcalc > ,
[ StrDig2 := ] < expression (IN) of stringdig > )
Una funcin con un valor de retorno del tipo de dato stringdig.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cadenas de caracteres con slo dgitos. stringdig - Cadena de caracteres con slo
dos dgitos en la pgina 1194
Operadores aritmticos. opcalc - Arithmetic Operator en la pgina
1144
Continuacin
2 Funciones
2.120. StrDigCmp - Comparar dos cadenas que slo contienen dgitos
RobotWare - OS
3HAC16581-5 Revisin: H 1000


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.120. StrDigCmp - Comparar dos cadenas que slo contienen dgitos
Utilizacin
StrDigCmp se utiliza para comparar dos cadenas de dgitos positivos, de la misma forma en
que se comparan numricamente dos enteros positivos.
Esta funcin permite gestionar enteros positivos superiores a 8.388.608 con una
representacin exacta.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrDigCmp.
Ejemplo 1
VAR stringdig digits1 := "1234";
VAR stringdig digits2 := "1256";
VAR bool is_equal;
is_equal := StrDigCmp(digits1, EQ, digits2);
La variable is_equal cambia a FALSE, porque el valor numrico 1234 no es igual a 1256.
Ejemplo 2
CONST string file_path := "...";
CONST string mod_name := "...";
VAR num num_file_time:
VAR stringdig dig_file_time;
VAR num num_mod_time;
VAR stringdig dig_mod_time;
...
num_file_time := FileTime(file_path, \ModifyTime,
\StrDig:=dig_file_time);
num_mod_time := ModTime(mod_name,\StrDig:=dig_mod_time);
IF StrDigCmp(dig_file_time, GT, dig_mod_time) THEN
! Load the new program module
ENDIF
Tanto FileTime como ModTime devuelven el nmero de segundos desde 00:00:00 GMT
jan 1 1970, que no pueden representarse con una representacin exacta en una variable de
tipo num. Debido a esta limitacin, se usan la funcin StrDigCmp y el tipo de dato
stringdig.
En la variable dig_file_time se almacena la hora de modificacin del archivo de mdulo
del disco. En la variable dig_mod_time se almacena la hora de ltima modificacin del
archivo del mismo mdulo, antes de que fuera cargado en la memoria de programas del
controlador. Se comparan las dos cadenas de dgitos y se muestra que el mdulo del disco es
ms reciente, de forma que debera ser cargado en la memoria de programas.
Valor de retorno
Tipo de dato: bool
TRUE si se cumple la condicin indicada. FALSE en caso contrario.
Contina en la pgina siguiente
2 Funciones
2.120. StrDigCmp - Comparar dos cadenas que slo contienen dgitos
RobotWare - OS
1001 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Argumentos
StrDigCmp (StrDig1 Relation StrDig2)
StrDig1
String Digit 1
Tipo de dato: stringdig
La primera cadena a comparar numricamente, slo con dgitos.
Relation
Tipo de dato: opnum
Define cmo comparar las dos cadenas de dgitos. Es posible usar las constantes predefinidas
del tipo de dato opnum LT, LTEQ, EQ, NOTEQ, GTEQ o bien GT.
StrDig2
String Digit 2
Tipo de dato: stringdig
La segunda cadena a comparar numricamente, slo con dgitos.
Ejecucin de programas
Esta funcin permite:
Comprobar que slo se usen dgitos del 0 al 9 en StrDig1 y StrDig2
Convertir las dos cadenas de dgitos a long integers
Comparar numricamente los dos long integers
Gestin de errores
Los errores siguientes pueden ser gestionados en un gestor de errores de RAPID.
Limitaciones
StrDigCmp slo acepta cadenas que contengan nicamente dgitos (caracteres del 0 al 9). La
existencia de cualquier otro carcter en stringdig da lugar a un error.
Esta funcin slo puede manejar enteros positivos hasta 4.294.967.295.
Sintaxis
StrDigCmp(
[ StrDig1 := ] < expression (IN) of stringdig > ,
[ Relation := ] < expression (IN) of opnum > ,
[ StrDig2 := ] < expression (IN) of stringdig > )
Una funcin con un valor de retorno del tipo de dato bool.
Cdigo de error Descripcin
ERR_INT_NOTVAL Valores de entrada no slo dgitos
ERR_INT_MAXVAL Valor superior a 4294967295
Continuacin
Contina en la pgina siguiente
2 Funciones
2.120. StrDigCmp - Comparar dos cadenas que slo contienen dgitos
RobotWare - OS
3HAC16581-5 Revisin: H 1002


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cadena de caracteres con slo dgitos stringdig - Cadena de caracteres con slo
dos dgitos en la pgina 1194
Operadores de comparacin opnum - Operador de comparacin en la
pgina 1145
Informacin de hora de archivo FileTime - Obtiene la informacin de hora de
un archivo en la pgina 852
Hora de modificacin de archivo del mdulo
cargado
ModTime - Obtiene la hora de modificacin
del mdulo cargado en la pgina 905
Continuacin
2 Funciones
2.121. StrFind - Busca un carcter en una cadena de caracteres
RobotWare - OS
1003 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.121. StrFind - Busca un carcter en una cadena de caracteres
Utilizacin
StrFind (String Find) se utiliza para buscar en una cadena, a partir de una posicin
especificada, un carcter que se encuentra dentro de un conjunto determinado de caracteres.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrFind.
Ejemplo 1
VAR num found;
found := StrFind("Robotics",1,"aeiou");
Se asigna a la variable found el valor 2.
found := StrFind("Robotics",1,"aeiou"\NotInSet);
Se asigna a la variable found el valor 1.
found := StrFind("IRB 6400",1,STR_DIGIT);
Se asigna a la variable found el valor 5.
found := StrFind("IRB 6400",1,STR_WHITE);
Se asigna a la variable found el valor 4.
Valor de retorno
Tipo de dato: num
La posicin de carcter del primer carcter, ya sea en o despus de la posicin especificada,
que pertenece al conjunto especificado. Si no se encuentra ninguno de los caracteres
especificados, se devuelve la longitud de la cadena de caracteres +1.
Argumentos
StrFind (Str ChPos Set [\NotInSet])
Str
String
Tipo de dato: string
La cadena en la que se desea buscar.
ChPos
Character Position
Tipo de dato: num
La posicin del carcter inicial. Si la posicin est fuera de la cadena de caracteres, se genera
un error de tiempo de ejecucin.
Set
Tipo de dato: string
El conjunto de caracteres que se desea comprobar. Consulte tambin Datos predefinidos en
la pgina 1004.
Contina en la pgina siguiente
2 Funciones
2.121. StrFind - Busca un carcter en una cadena de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 1004


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\NotInSet]
Tipo de dato: switch
Buscar un carcter que no se encuentra en el conjunto de caracteres presente en Set.
Sintaxis
StrFind(
[ Str := ] <expression (IN) of string> ,
[ ChPos := ] <expression (IN) of num> ,
[ Set := ] <expression (IN) of string>
[\NotInSet ]
)
Una funcin con un valor de retorno del tipo de dato num.
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que pueden
usarse junto con las funciones para cadenas de caracteres.
Informacin relacionada
Nombre Conjunto de caracteres
STR_DIGIT <digit>::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
STR_UPPER <upper case letter>::=
A | B | C | D | E | F | G | H | I | J
| K | L | M | N | O | P | Q | R | S | T
| U | V | W | X | Y | Z | | | |
| | | | | | | | | |
| | | 1)| | | | | | |
| | | | | 2) | 3)
STR_LOWER <lower case letter>::=
a | b | c | d | e | f | g | h | i | j
| k | l | m | n | o | p | q | r | s | t
| u | v | w | x | y | z | | | |
| | | | | | | | | |
| | | 1) | | | | | | |
| | | | | 2) | 3) | | -
STR_WHITE <blank character>::=
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.122. StrLen - Obtiene la longitud de una cadena
RobotWare - OS
1005 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.122. StrLen - Obtiene la longitud de una cadena
Utilizacin
StrLen (String Length) se utiliza para obtener la longitud actual de la cadena.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrLen.
Ejemplo 1
VAR num len;
len := StrLen("Robotics");
Se asigna a la variable len el valor 8.
Valor de retorno
Tipo de dato: num
El nmero de caracteres de la cadena (>=0).
Argumentos
StrLen (Str)
Str
String
Tipo de dato: string
La cadena de caracteres cuyo nmero de caracteres se desea contar.
Sintaxis
StrLen(
[ Str := ] <expression (IN) of string> )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Instrucciones,
funciones y tipos de datos de RAPID, seccin
Resumen sobre RAPID - Funciones de
cadena
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Instrucciones,
funciones y tipos de datos de RAPID, seccin
Caractersticas bsicas - Elementos bsicos
2 Funciones
2.123. StrMap - Mapea una cadena de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 1006


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.123. StrMap - Mapea una cadena de caracteres
Utilizacin
StrMap (String Mapping) se utiliza para crear una copia de una cadena en la que todos los
caracteres se convierten acorde con una especificacin de mapeo especificada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrMap.
Ejemplo 1
VAR string str;
str := StrMap("Robotics","aeiou","AEIOU");
Se asigna a la variable str el valor "RObOtIcs".
Ejemplo 2
str := StrMap("Robotics",STR_LOWER, STR_UPPER);
Se asigna a la variable str el valor "ROBOTICS".
Valor de retorno
Tipo de dato: string
La cadena de caracteres creada mediante la conversin de los caracteres de la cadena
especificada, de la forma indicada por las cadenas de origen y destino. Cada carcter de la
cadena especificada que se encuentre en la cadena de origen se reemplaza con el carcter de
la posicin correspondiente de la cadena de destino. Los caracteres para los que no se haya
especificado ningn mapeo se copian sin cambios a la cadena resultante.
Argumentos
StrMap ( Str FromMap ToMap)
Str
String
Tipo de dato: string
La cadena a convertir.
FromMap
Tipo de dato: string
Parte de ndice del mapeo. Consulte tambin Datos predefinidos en la pgina 1007.
ToMap
Tipo de dato: string
Parte de valor del mapeo. Consulte tambin Datos predefinidos en la pgina 1007.
Sintaxis
StrMap(
[ Str := ] <expression (IN) of string> ,
[ FromMap:= ] <expression (IN) of string> ,
[ ToMap:= ] <expression (IN) of string>
)
Contina en la pgina siguiente
2 Funciones
2.123. StrMap - Mapea una cadena de caracteres
RobotWare - OS
1007 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Una funcin con un valor de retorno del tipo de dato string.
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que pueden
usarse junto con las funciones para cadenas de caracteres.
Informacin relacionada
Nombre Conjunto de caracteres
STR_DIGIT <digit>::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
STR_UPPER <upper case letter>::=
A | B | C | D | E | F | G | H | I | J
| K | L | M | N | O | P | Q | R | S | T
| U | V | W | X | Y | Z | | | |
| | | | | | | | | |
| | | 1)| | | | | | |
| | | | | 2) | 3)
STR_LOWER <lower case letter>::=
a | b | c | d | e | f | g | h | i | j
| k | l | m | n | o | p | q | r | s | t
| u | v | w | x | y | z | | | |
| | | | | | | | | |
| | | 1) | | | | | | |
| | | | | 2) | 3) | | -
STR_WHITE <blank character>::=
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.124. StrMatch - Busca un patrn dentro de una cadena de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 1008


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.124. StrMatch - Busca un patrn dentro de una cadena de caracteres
Utilizacin
StrMatch (String Match) se utiliza para buscar un patrn determinado dentro de otra cadena,
a partir de una posicin especificada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrMatch.
Ejemplo 1
VAR num found;
found := StrMatch("Robotics",1,"bo");
Se asigna a la variable found el valor 3.
Valor de retorno
Tipo de dato: num
La posicin de carcter de la primera subcadena, en o despus de la posicin especificada,
que es igual a la cadena de patrn especificada. Si no se encuentra la subcadena, se devuelve
la longitud de la cadena +1.
Argumentos
StrMatch (Str ChPos Pattern)
Str
String
Tipo de dato: string
La cadena en la que se desea buscar.
ChPos
Character Position
Tipo de dato: num
La posicin del carcter inicial. Si la posicin est fuera de la cadena de caracteres, se genera
un error de tiempo de ejecucin.
Pattern
Tipo de dato: string
La cadena de caracteres de patrn que se desea buscar.
Sintaxis
StrMatch(
[ Str := ] <expression (IN) of string>,
[ ChPos := ] <expression (IN) of num> ,
[ Pattern:= ] <expression (IN) of string>
)
Una funcin con un valor de retorno del tipo de dato num.
Contina en la pgina siguiente
2 Funciones
2.124. StrMatch - Busca un patrn dentro de una cadena de caracteres
RobotWare - OS
1009 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.125. StrMemb - Comprueba si un carcter pertenece a un conjunto
RobotWare - OS
3HAC16581-5 Revisin: H 1010


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.125. StrMemb - Comprueba si un carcter pertenece a un conjunto
Utilizacin
StrMemb (String Member) se utiliza para comprobar si un carcter concreto de una cadena
pertenece a un conjunto determinado de caracteres.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrMemb.
Ejemplo 1
VAR bool memb;
memb := StrMemb("Robotics",2,"aeiou");
Se asigna a la variable memb el valor TRUE, ya que o forma parte del conjunto "aeiou".
memb := StrMemb("Robotics",3,"aeiou");
Se asigna a la variable memb el valor FALSE, ya que b no forma parte del conjunto "aeiou".
memb := StrMemb("S-721 68 VSTERS",3,STR_DIGIT);
Se asigna a la variable memb el valor TRUE, ya que 7 forma parte del conjunto STR_DIGIT.
Valor de retorno
Tipo de dato: bool
TRUE si el carcter de la posicin especificada de la cadena especificada se encuentra dentro
del conjunto de caracteres especificado.
Argumentos
StrMemb (Str ChPos Set)
Str
String
Tipo de dato: string
La cadena que se desea comprobar.
ChPos
Character Position
Tipo de dato: num
La posicin del carcter que se desea comprobar. Si la posicin est fuera de la cadena de
caracteres, se genera un error de tiempo de ejecucin.
Set
Tipo de dato: string
El conjunto de caracteres que se desea comprobar.
Sintaxis
StrMemb'('
[ Str := ] <expression (IN) of string> ,
[ ChPos := ] <expression (IN) of num> ,
[ Set := ] <expression (IN) of string>
)
Contina en la pgina siguiente
2 Funciones
2.125. StrMemb - Comprueba si un carcter pertenece a un conjunto
RobotWare - OS
1011 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Una funcin con un valor de retorno del tipo de dato bool.
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que pueden
usarse junto con las funciones para cadenas de caracteres.
Informacin relacionada
Nombre Conjunto de caracteres
STR_DIGIT <digit>::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
STR_UPPER <upper case letter>::=
A | B | C | D | E | F | G | H | I | J
| K | L | M | N | O | P | Q | R | S | T
| U | V | W | X | Y | Z | | | |
| | | 1)| | | | | | |
| | | | | 2) | 3)
STR_LOWER <lower case letter>::=
a | b | c | d | e | f | g | h | i | j
| k | l | m | n | o | p | q | r | s | t
| u | v | w | x | y | z | | | |
| | | | | | | | | |
| | | 1) | | | | | | |
| | | | | 2) | 3) | | -
STR_WHITE <blank character>::=
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.126. StrOrder - Comprueba si dos cadenas de caracteres estn ordenadas
RobotWare - OS
3HAC16581-5 Revisin: H 1012


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.126. StrOrder - Comprueba si dos cadenas de caracteres estn ordenadas
Utilizacin
StrOrder (String Order) compara dos cadenas (carcter a carcter) y devuelve un valor
booleano para indicar si las dos cadenas estn en el mismo orden de acuerdo con la secuencia
de orden de caracteres especificada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrOrder.
Ejemplo 1
VAR bool le;
le := StrOrder("FIRST","SECOND",STR_UPPER);
Se asigna a la variable le el valor TRUE, porque "F" va antes de "S" en la secuencia de
clasificacin de caracteres STR_UPPER.
Ejemplo 2
VAR bool le;
le := StrOrder("FIRST","FIRSTB",STR_UPPER);
Se asigna a la variable le el valor TRUE, porque Str2 "FIRSTB" contiene un carcter
adicional en la secuencia de orden de caracteres (ningn carcter comparado con "B").
Ejemplo 3
VAR bool le;
le := StrOrder("FIRSTB","FIRST",STR_UPPER);
Se asigna a la variable le el valor FALSE, porque Str1 "FIRSTB" contiene un carcter
adicional en la secuencia de orden de caracteres ("B" comparado con ningn carcter).
Valor de retorno
Tipo de dato: bool
TRUE si la primera cadena va antes de la segunda cadena (Str1 <=Str2) cuando se utiliza
la clasificacin de caracteres especificada.
Se supone que los caracteres que no estn incluidos en el orden definido siguen a los
caracteres presentes.
Argumentos
StrOrder ( Str1 Str2 Order)
Str1
String 1
Tipo de dato: string
El primer valor de cadena.
Contina en la pgina siguiente
2 Funciones
2.126. StrOrder - Comprueba si dos cadenas de caracteres estn ordenadas
RobotWare - OS
1013 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Str2
String 2
Tipo de dato: string
El segundo valor de cadena.
Order
Tipo de dato: string
Una secuencia de caracteres que define el orden. Consulte tambin Datos predefinidos en la
pgina 1013.
Sintaxis
StrOrder(
[ Str1 := ] <expression (IN) of string> ,
[ Str2 := ] <expression (IN) of string> ,
[ Order := ] <expression (IN) of string>
)
Una funcin con un valor de retorno del tipo de dato bool.
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que pueden
usarse junto con las funciones para cadenas de caracteres.
Nombre Conjunto de caracteres
STR_DIGIT <digit>::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
STR_UPPER <upper case letter>::=
A | B | C | D | E | F | G | H | I | J
| K | L | M | N | O | P | Q | R | S | T
| U | V | W | X | Y | Z | | | |
| | | | | | | | | |
| | | 1)| | | | | | |
| | | | | 2) | 3)
STR_LOWER <lower case letter>::=
a | b | c | d | e | f | g | h | i | j
| k | l | m | n | o | p | q | r | s | t
| u | v | w | x | y | z | | | |
| | | | | | | | | |
| | | 1) | | | | | | |
| | | | | 2) | 3) | | -
STR_WHITE <blank character>::=
Continuacin
Contina en la pgina siguiente
2 Funciones
2.126. StrOrder - Comprueba si dos cadenas de caracteres estn ordenadas
RobotWare - OS
3HAC16581-5 Revisin: H 1014


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.127. StrPart - Busca una parte de una cadena
RobotWare - OS
1015 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.127. StrPart - Busca una parte de una cadena
Utilizacin
StrPart (String Part) se utiliza para encontrar una parte de una cadena y obtenerla como una
cadena nueva.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrPart.
Ejemplo 1
VAR string part;
part := StrPart("Robotics",1,5);
Se asigna a la variable part el valor "Robot".
Valor de retorno
Tipo de dato: string
La subcadena de la cadena especificada, que tiene la longitud especificada y comienza en la
posicin de carcter especificada.
Argumentos
StrPart (Str ChPos Len)
Str
String
Tipo de dato: string
La cadena en la que se desea buscar una parte.
ChPos
Character Position
La posicin del carcter inicial. Si la posicin est fuera de la cadena de caracteres, se genera
un error de tiempo de ejecucin.
Len
Length (Longitud)
Tipo de dato: num
La longitud de la cadena parcial. Si la longitud es negativa o es superior a la longitud de la
cadena, o si la subcadena est (parcialmente) fuera de la cadena, se genera un error de tiempo
de ejecucin.
Sintaxis
StrPart'('
[ Str := ] <expression (IN) of string> ,
[ ChPos := ] <expression (IN) of num> ,
[ Len := ] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato string.
Contina en la pgina siguiente
2 Funciones
2.127. StrPart - Busca una parte de una cadena
RobotWare - OS
3HAC16581-5 Revisin: H 1016


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.128. StrToByte - Convierte una cadena en un byte
RobotWare - OS
1017 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.128. StrToByte - Convierte una cadena en un byte
Utilizacin
StrToByte(String To Byte) se utiliza para convertir un dato del tipo string con un formato de
dato de byte en un dato del tipo byte.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrToByte.
Ejemplo 1
VAR string con_data_buffer{5} := ["10", "AE", "176", "00001010",
"A"];
VAR byte data_buffer{5};
data_buffer{1} := StrToByte(con_data_buffer{1});
El contenido del componente de matriz data_buffer{} ser 10 en representacin decimal
despus de la funcin StrToByte ....
data_buffer{2} := StrToByte(con_data_buffer{2}\Hex);
El contenido del componente de matriz data_buffer{} ser 174 en representacin decimal
despus de la funcin StrToByte ....
data_buffer{3} := StrToByte(con_data_buffer{3}\Okt);
El contenido del componente de matriz data_buffer{} ser 126 en representacin decimal
despus de la funcin StrToByte ....
data_buffer{4} := StrToByte(con_data_buffer{4}\Bin);
El contenido del componente de matriz data_buffer{} ser 10 en representacin decimal
despus de la funcin StrToByte ....
data_buffer{5} := StrToByte(con_data_buffer{5}\Char);
El contenido del componente de matriz data_buffer{} ser 65 en representacin decimal
despus de la funcin StrToByte ....
Valor de retorno
Tipo de dato: byte
El resultado de la operacin de conversin en representacin decimal.
Argumentos
StrToByte (ConStr [\Hex] | [\Okt] | [\Bin] | [\Char])
ConStr
Convert String
Tipo de dato: string
Los datos de cadena a convertir.
Si se omite el argumento modificador opcional, la cadena de caracteres se convierten al
formato decimal (Dec).
Contina en la pgina siguiente
2 Funciones
2.128. StrToByte - Convierte una cadena en un byte
RobotWare - OS
3HAC16581-5 Revisin: H 1018


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Hex]
Hexadecimal
Tipo de dato: switch
La cadena de caracteres se convierte al formato hexadecimal.
[\Okt]
Octal
Tipo de dato: switch
La cadena de caracteres se convierte al formato octal.
[\Bin]
Binary
Tipo de dato: switch
La cadena de caracteres se convierte al formato binary.
[\Char]
Character
Tipo de dato: switch
La cadena de caracteres se convierte al formato de carcter ASCII.
Limitaciones
En funcin del formato de la cadena que se desea convertir, se aplica el dato de cadena
siguiente:
Es posible utilizar cdigos de carcter de RAPID (por ejemplo "\07" para el carcter de
control BEL) como argumentos de ConStr.
Sintaxis
StrToByte'('
[ConStr':='] <expression (IN) of string>
[\ Hex ] | [\ Okt] | [\ Bin] | [\ Char]
)
Una funcin con un valor de retorno del tipo de dato byte.
Formato Longitud de cadena Rango
Dec .....: 0 - 9 3 "0" - "255"
Hex .....: 0 - 9, 'a'-'f', 'A'- 'F' 2 "0" - "FF"
Oct ......: 0 - 7 3 "0" - "377"
Bin ......: 0 - 1 8 "0" - "11111111"
Char ....: Cualquier carcter ASCII 1 Un carcter ASCII
Continuacin
Contina en la pgina siguiente
2 Funciones
2.128. StrToByte - Convierte una cadena en un byte
RobotWare - OS
1019 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conversin de un byte en una cadena de
caracteres
ByteToStr - Convierte un byte en un dato de
cadena de caracteres en la pgina 790
Otras funciones de bits (byte) Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas - Funciones de bits
Otras funciones de cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Continuacin
2 Funciones
2.129. StrToVal - Convierte una cadena de caracteres en un valor
RobotWare - OS
3HAC16581-5 Revisin: H 1020


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.129. StrToVal - Convierte una cadena de caracteres en un valor
Utilizacin
StrToVal (String To Value) se utiliza para convertir una cadena en un valor de cualquier tipo
de dato.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin StrToVal.
Consulte tambin Ms ejemplos en la pgina 1021.
Ejemplo 1
VAR bool ok;
VAR num nval;
ok := StrToVal("3.85",nval);
Se asigna a la variable ok el valor TRUE y se asigna a nval el valor 3,85.
Valor de retorno
Tipo de dato: bool
TRUE si la conversin solicitada tiene xito y FALSE si no es as.
Argumentos
StrToVal ( Str Val )
Str
String
Tipo de dato: string
Un valor de cadena que contiene datos literales con un formato que corresponde al tipo de
dato utilizado en el argumento Val. El formato vlido es el de los agregados literales de
RAPID.
Val
Value
Tipo de dato: ANYTYPE
El nombre de la variable o de la variable persistente de cualquier tipo para el almacenamiento
del resultado de la conversin.
Puede usar todos los tipos de datos de valor con estructura atmica o de registro, componente
de registro, matriz o elemento de matriz. El dato permanece sin cambios si la conversin
solicitada ha fallado debido a que el formato no se corresponde con el dato utilizado en el
argumento Str.
Contina en la pgina siguiente
2 Funciones
2.129. StrToVal - Convierte una cadena de caracteres en un valor
RobotWare - OS
1021 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin StrToVal.
Ejemplo 1
VAR string str15 := "[600, 500, 225.3]";
VAR bool ok;
VAR pos pos15;
ok := StrToVal(str15,pos15);
Se asigna a la variable ok el valor TRUE y se asigna a la variable pos15 el valor especificado
en la cadena str15.
Sintaxis
StrToVal(
[ Str := ] <expression (IN) of string> ,
[ Val := ] <var or pers (INOUT) of ANYTYPE>
)
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.130. Tan - Calcula el valor de tangente
RobotWare - OS
3HAC16581-5 Revisin: H 1022


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.130. Tan - Calcula el valor de tangente
Utilizacin
Tan (Tangent) se utiliza para calcular el valor de tangente desde un valor de ngulo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin.
Ejemplo 1
VAR num angle;
VAR num value;
...
...
value := Tan(angle);
value obtiene el valor de tangente de angle.
Valor de retorno
Tipo de dato: num
El valor de la tangente.
Argumentos
Tan (Angle)
Angle
Tipo de dato: num
El valor del ngulo, expresado en grados.
Sintaxis
Tan(
[Angle :=] <expression (IN) of num>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Arco tangente con un valor devuelto en el
rango [-180, 180]
ATan2 - Calcula el valor de arco tangente 2
en la pgina 775
2 Funciones
2.131. TaskRunMec - Comprueba si una tarea controla alguna unidad mecnica
RobotWare - OS
1023 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.131. TaskRunMec - Comprueba si una tarea controla alguna unidad mecnica
Utilizacin
TaskRunMec se utiliza para comprobar si la tarea de programa controla cualquier unidad
mecnica (robot con TCP o manipulador sin TCP).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TaskRunMec.
Ejemplo 1
VAR bool flag;
...
flag := TaskRunMec( );
Si la tarea actual controla cualquier unidad mecnica, flag tendr el valor TRUE. De lo
contrario, tendr el valor FALSE.
Valor de retorno
Tipo de dato: bool
Si la tarea actual controla cualquier unidad mecnica, el valor de retorno ser TRUE. De lo
contrario, ser FALSE.
Ejecucin de programas
Se comprueba si la tarea de programa actual controla alguna unidad mecnica.
Sintaxis
TaskRunMec( )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si la tarea controla algn
robot
TaskRunRob - Comprueba si una tarea
controla algn robot en la pgina 1024
Activacin y desactivacin de unidades
mecnicas
ActUnit - Activa una unidad mecnica en la
pgina 17
DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Configuracin de unidades mecnicas Manual de referencia tcnica - Parmetros
del sistema
2 Funciones
2.132. TaskRunRob - Comprueba si una tarea controla algn robot
RobotWare - OS
3HAC16581-5 Revisin: H 1024


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.132. TaskRunRob - Comprueba si una tarea controla algn robot
Utilizacin
TaskRunRob se utiliza para comprobar si la tarea de programa controla cualquier robot (una
unidad mecnica con TCP).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TaskRunRob.
Ejemplo 1
VAR bool flag;
...
flag := TaskRunRob( );
Si la tarea actual controla algn robot, flag tendr el valor TRUE. De lo contrario, tendr el
valor FALSE.
Valor de retorno
Tipo de dato: bool
Si la tarea actual controla algn robot, el valor de retorno ser TRUE. De lo contrario, ser
FALSE.
Ejecucin de programas
Se comprueba si la tarea de programa actual controla algn robot.
Sintaxis
TaskRunRob ( )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si la tarea controla alguna
unidad mecnica
TaskRunMec - Comprueba si una tarea
controla alguna unidad mecnica en la
pgina 1023
Activacin y desactivacin de unidades
mecnicas
ActUnit - Activa una unidad mecnica en la
pgina 17
DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Configuracin de unidades mecnicas Manual de referencia tcnica - Parmetros
del sistema
2 Funciones
2.133. TasksInSync - Devuelve el nmero de tareas sincronizadas
RobotWare - OS
1025 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.133. TasksInSync - Devuelve el nmero de tareas sincronizadas
Utilizacin
TasksInSync se utiliza para obtener el nmero de tareas sincronizadas.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico de la funcin TasksInSync.
Ejemplo 1
VAR tasks tasksInSyncList{6};
...
PROC main ()
VAR num noOfSynchTasks;
...
noOfSynchTasks:= TasksInSync (tasksInSyncList);
TPWrite "No of synchronized tasks = "\Num:=noOfSynchTasks;
ENDPROC
Se asigna a la variable noOfSynchTasks el nmero de tareas sincronizadas y
tasksInSyncList contendr los nombres de las tareas sincronizadas. En este ejemplo, la
lista de tareas es una variable pero tambin puede ser una variable persistente.
Valor de retorno
Tipo de dato: num
El nmero de tareas sincronizadas.
Argumentos
TaskInSync (TaskList)
TaskList
Tipo de dato: tasks
Un argumento inout que, en una lista de tareas (una matriz), presentar el nombre (string)
de las tareas de programas que estn sincronizadas. La lista de tareas puede ser del tipo VAR
o PERS.
Ejecucin de programas
La funcin devuelve el nmero de tareas sincronizadas del sistema. Los nombres de las tareas
sincronizadas se presentan en el argumento inout TaskList. En los casos en los que no hay
ninguna tarea sincronizada, la lista slo contendr cadenas vacas.
Limitaciones
En la actualidad slo se admite un nico grupo sincronizado, de forma que TasksInSync
devuelve el nmero de tareas que estn sincronizadas dentro de ese grupo.
Contina en la pgina siguiente
2 Funciones
2.133. TasksInSync - Devuelve el nmero de tareas sincronizadas
RobotWare - OS
3HAC16581-5 Revisin: H 1026


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TasksInSync
[ TaskList := ] < var or pers array {*} (INOUT) of tasks> ,
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
tasks - Tareas de programa de RAPID en la
pgina 1203SyncMoveOn - Inicia los
movimientos sincronizados coordinados en
la pgina 542
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Continuacin
2 Funciones
2.134. TestAndSet - Comprueba una variable y la establece si no est establecida
RobotWare - OS
1027 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.134. TestAndSet - Comprueba una variable y la establece si no est establecida
Utilizacin
TestAndSet puede usarse junto con un objeto de datos normal del tipo bool, como
semforo binario, para obtener el derecho exclusivo de acceso a reas concretas del cdigo
de RAPID o a recursos del sistema. Esta funcin podra utilizarse tanto entre tareas de
programa diferentes y niveles de ejecucin diferentes (rutinas TRAP o de eventos) como
dentro de una misma tarea de programa.
A continuacin se enumeran algunos de los recursos que pueden necesitar proteccin de
acceso al mismo tiempo:
Uso de algunas rutinas de RAPID que presentan problemas de funcionamiento cuando
se ejecutan en paralelo
Uso del FlexPendant - Registro del operador
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TestAndSet.
Consulte tambin Ms ejemplos en la pgina 1028.
Ejemplo 1
MAIN program task:
PERS bool tproutine_inuse := FALSE;
...
WaitUntil TestAndSet(tproutine_inuse);
TPWrite "First line from MAIN";
TPWrite "Second line from MAIN";
TPWrite "Third line from MAIN";
tproutine_inuse := FALSE;
BACK1 program task:
PERS bool tproutine_inuse := FALSE;
...
WaitUntil TestAndSet(tproutine_inuse);
TPWrite "First line from BACK1";
TPWrite" Second line from BACK1";
TPWrite "Third line from BACK1";
tproutine_inuse := FALSE;
Para evitar mezclar las lneas en el registro del operador, una de MAIN y una de BACK1, el uso
de la funcin TestAndSet garantiza que las tres lneas de cada tarea no se separen.
Si la tarea de programa MAIN activa el semforo TestAndSet(tproutine_inuse) en
primer lugar, la tarea de programa BACK1 debe esperar hasta que la tarea de programa MAIN
libere el semforo.
Contina en la pgina siguiente
2 Funciones
2.134. TestAndSet - Comprueba una variable y la establece si no est establecida
RobotWare - OS
3HAC16581-5 Revisin: H 1028


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: bool
TRUE si el semforo ha sido activado por la tarea actual (la tarea que ejecuta la funcin
TestAndSet). De lo contrario, FALSE.
Argumentos
TestAndSet Object
Object
Tipo de dato: bool
Objeto de datos definido por el usuario para usarlo como semforo.- El objeto de datos puede
ser una variable VAR o una variable persistente PERS. Si se utilizan funciones TestAndSet
entre tareas de programa diferentes, el objeto debe ser una variable persistente PERS o una
variable instalada VAR (objetos compartidos entre tareas).
Ejecucin de programas
Esta funcin comprueba en un paso indivisible si el usuario ha establecido el valor de la
variable y, si no es as, lo establece y devuelve TRUE. De lo contrario, devuelve FALSE.
IF Object = FALSE THEN
Object := TRUE;
RETURN TRUE;
ELSE
RETURN FALSE;
ENDIF
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin TestAndSet.
Ejemplo 1
LOCAL VAR bool doit_inuse := FALSE;
...
PROC doit(...)
WaitUntil TestAndSet (doit_inuse);
...
doit_inuse := FALSE;
ENDPROC
Si se instala, incorpora y comparte un mdulo, es posible utilizar una variable de mdulo local
para la proteccin del acceso desde distintas tareas de programa al mismo tiempo.
NOTA!
En este caso con los mdulos incorporados instalados y cuando se utiliza la variable
persistente como objeto de semforo: si la ejecucin del programa se detiene en la rutina
doit y el puntero de programa se traslada a main, la variable doit_inuse no se
restablecer. Para evitarlo, devuelva la variable doit_inuse a FALSE en la rutina de evento
START.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.134. TestAndSet - Comprueba una variable y la establece si no est establecida
RobotWare - OS
1029 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
TestAndSet (
[ Object := ] < variable or persistent (INOUT) of bool> )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Esperar hasta que la variable se desactiva y
se activa de nuevo (tipo de espera con
control de interrupcin)
WaitTestAndSet - Espera a que se desactive
una variable y la activa a continuacin en la
pgina 698
Continuacin
2 Funciones
2.135. TestDI - Se comprueba si una entrada digital est activada
RobotWare - OS
3HAC16581-5 Revisin: H 1030


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.135. TestDI - Se comprueba si una entrada digital est activada
Utilizacin
TestDI se usa para comprobar si una entrada digital est activada.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TestDI.
Ejemplo 1
IF TestDI (di2) THEN . . .
Si el valor actual de la seal di2 es 1, . . .
IF NOT TestDI (di2) THEN . . .
Si el valor actual de la seal di2 es 0, . . .
WaitUntil TestDI(di1) AND TestDI(di2);
La ejecucin del programa contina slo cuando tanto la entrada di1 como la entrada di2
estn activadas.
Valor de retorno
Tipo de dato: bool
TRUE =El valor actual de la seal es 1.
FALSE =El valor actual de la seal es 0.
Argumentos
TestDI (Signal)
Signal
Tipo de dato: signaldi
El nombre de la seal a comprobar.
Sintaxis
TestDI (
[ Signal':='] < variable (VAR) of signaldi > ')'
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Lectura del valor de una seal digital de
entrada
signalxx - Seales digitales y analgicas en la
pgina 1178
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
2 Funciones
2.136. TestSignRead - Obtiene el valor de una seal de test
RobotWare - OS
1031 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.136. TestSignRead - Obtiene el valor de una seal de test
Utilizacin
TestSignRead se utiliza para leer el valor actual de una seal de test.
Esta funcin devuelve el valor momentneo o el valor medio de los ltimos muestreos, en
funcin de la especificacin de canal utilizada en la instruccin TestSignDefine.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TestSignRead.
Consulte tambin Ms ejemplos en la pgina 1032.
Ejemplo 1
CONST num speed_channel:=1;
VAR num speed_value;
...
TestSignDefine speed_channel, speed, orbit, 1, 0;
...
! During some movements with orbits axis 1
speed_value := TestSignRead(speed_channel);
...
TestSignReset;
Se asigna a speed_value el valor medio de los ltimos 8 muestreos generados cada 0,5
mseg de la seal de test speed en el canal speed_channel definido como canal 1. El canal
speed_channel mide la velocidad de axis 1 en la unidad mecnica orbit.
Valor de retorno
Tipo de dato: num
El valor numrico en unidades SI del lado de motor del canal especificado, acorde con la
definicin de la instruccin TestSignDefine.
Argumentos
TestSignRead (Channel)
Channel
Tipo de dato: num
El nmero de canal, de 1 a 12, de la seal de test a leer. Este mismo nmero debe usarse en
la instruccin de definicin TestSignDefine.
Ejecucin de programas
Devuelve el valor momentneo o el valor medio de los ltimos muestreos, en funcin de la
especificacin de canal utilizada en la instruccin TestSignDefine.
Para ms informacin sobre las seales de test predefinidas con unidades SI vlidas para los
ejes de manipuladores externos, consulte el tipo de dato testsignal.
Contina en la pgina siguiente
2 Funciones
2.136. TestSignRead - Obtiene el valor de una seal de test
RobotWare - OS
3HAC16581-5 Revisin: H 1032


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen algunos ejemplos bsicos de la funcin TestSignRead.
Ejemplo 1
CONST num torque_channel:=2;
VAR num torque_value;
VAR intnum timer_int;
CONST jointtarget psync := [...];
...
CONNECT timer_int WITH TorqueTrap;
ITimer \Single, 0.05, timer_int;
TestSignDefine torque_channel, torque_ref, IRBP_K, 2, 0.001;
...
MoveAbsJ psync \NoEOffs, v5, fine, tool0;
...
IDelete timer_int;
TestSignReset;
TRAP TorqueTrap
IF (TestSignRead(torque_channel) > 6) THEN
TPWrite "Torque pos = " + ValToStr(CJointT());
Stop;
ELSE
IDelete timer_int;
CONNECT timer_int WITH TorqueTrap;
ITimer \Single, 0.05, timer_int;
ENDIF
ENDTRAP
Cuando la referencia de par del manipulador IRBP_K y el eje 2 es por primera vez mayor que
6 Nm en el lado del motor durante el movimiento lento hacia la posicin psync, la posicin
de ejes se muestra en el FlexPendant.
Sintaxis
TestSignRead(
[ Channel :=] <expression (IN) of num>)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de una seal de test TestSignDefine - Define una seal de prueba
en la pgina 559
Puesta a cero de seales de prueba TestSignReset - Restablece todas las defini-
ciones de seales de prueba en la pgina 561
Continuacin
2 Funciones
2.137. TextGet - Obtener un texto de las tablas de textos del sistema
RobotWare - OS
1033 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.137. TextGet - Obtener un texto de las tablas de textos del sistema
Utilizacin
TextGet se utiliza para obtener una cadena de texto de las tablas de textos del sistema.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TextGet.
Ejemplo 1
VAR string text1;
...
text1 := TextGet(14, 5);
Se asigna a la variable text1 el texto almacenado en el recurso de textos 14 y el nmero de
ndice 5.
Valor de retorno
Tipo de dato: string
El texto especificado, tomado de las tablas de textos del sistema.
Argumentos
TextGet ( Table Index )
Table
Tipo de dato: num
El nmero de la tabla de textos (entero positivo).
Index
Tipo de dato: num
El nmero de ndice (entero positivo) dentro de la tabla de textos.
Gestin de errores
Si la tabla o ndice no es vlido y no puede obtenerse ninguna cadena de texto de las tablas
de texto del sistema, la variable de sistema ERRNO cambia a ERR_TXTNOEXIST. La ejecucin
contina en el gestor de errores.
Sintaxis
TextGet (
[ Table := ] < expression (IN) of num > ,
[ Index := ] < expression (IN) of num> )
Una funcin con un valor de retorno del tipo de dato string.
Contina en la pgina siguiente
2 Funciones
2.137. TextGet - Obtener un texto de las tablas de textos del sistema
RobotWare - OS
3HAC16581-5 Revisin: H 1034


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin de un nmero de tabla de textos TextTabGet - Obtiene el nmero de una tabla
de textos en la pgina 1037
Instalacin de una tabla de textos TextTabInstall - Instalacin de una tabla de
textos en la pgina 562
Formato de archivos de texto Technical reference manual - RAPID kernel,
seccin RAPID Kernel reference manual -
Text files
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.138. TextTabFreeToUse - Comprueba si una tabla de textos est libre para su uso
RobotWare - OS
1035 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.138. TextTabFreeToUse - Comprueba si una tabla de textos est libre para su uso
Utilizacin
TextTabFreeToUse debe utilizarse para comprobar si un nombre de tabla de textos (una
cadena de recursos de texto) puede utilizarse libremente (que no est instalada en el sistema),
es decir, si es posible instalar la tabla de textos en el sistema o no.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TextTabFreeToUse.
Ejemplo 1
! System Module with Event Routine to be executed at event
! POWER ON, RESET or START
PROC install_text()
IF TextTabFreeToUse("text_table_name") THEN
TextTabInstall "HOME:/text_file.eng";
ENDIF
ENDPROC
La primera vez que se ejecuta la rutina de evento install_text, la funcin
TextTabFreeToUse devuelve TRUE y el archivo de texto text_file.eng se instala en el
sistema. A continuacin, es posible obtener con RAPID las cadenas de texto instaladas en el
sistema, con ayuda de las funciones TextTabGet y TextGet.
La prxima vez que se ejecuta la rutina de evento install_text, la funcin
TextTabFreeToUse devuelve FALSE FALSE y la instalacin no se repite.
Valor de retorno
Tipo de dato: bool
Esta funcin devuelve lo siguiente:
TRUE, si la tabla de textos no est an instalada en el sistema.
FALSE, si la tabla de textos est ya instalada en el sistema.
Argumentos
TextTabFreeToUse ( TableName )
TableName
Tipo de dato: string
El nombre de la tabla de textos (una cadena con 80 caracteres como mximo). Consulte
<text_resource>:: en el Manual de referencia de RAPID - Kernel de RAPID, seccin
Archivos de texto. La cadena text_resource es el nombre de la tabla de textos.
Contina en la pgina siguiente
2 Funciones
2.138. TextTabFreeToUse - Comprueba si una tabla de textos est libre para su uso
RobotWare - OS
3HAC16581-5 Revisin: H 1036


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Limitaciones de la instalacin de tablas de textos (recursos de texto) en el sistema:
No es posible instalar una misma tabla de textos ms de una vez en el sistema.
No es posible desinstalar (liberar) una sola tabla de textos del sistema. La nica forma
de desinstalar tablas de textos del sistema es realizar un arranque en fro del sistema.
De esta forma, se desinstalan todas las tablas de textos (tanto las del sistema como las
definidas por el usuario).
Sintaxis
TextTabFreeToUse(
[ TableName:= ] < expression (IN) of string > )
Una funcin con un valor de retorno del tipo de dato bool
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instalacin de una tabla de textos TextTabInstall - Instalacin de una tabla de
textos en la pgina 562
Formato de archivos de texto Technical reference manual - RAPID kernel,
seccin RAPID Kernel reference manual -
Text files
Obtencin de un nmero de tabla de textos TextTabGet - Obtiene el nmero de una tabla
de textos en la pgina 1037
Obtencin de textos de las tablas de textos
del sistema
TextGet - Obtener un texto de las tablas de
textos del sistema en la pgina 1033
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Continuacin
2 Funciones
2.139. TextTabGet - Obtiene el nmero de una tabla de textos
RobotWare - OS
1037 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.139. TextTabGet - Obtiene el nmero de una tabla de textos
Utilizacin
TextTabGet se utiliza para obtener en tiempo de ejecucin el nmero de tabla de textos de
una tabla de textos definida por el usuario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin TextTabGet.
Una nueva tabla de textos llamada deburr_part1 para los textos definidos por el usuario.
La nueva tabla de textos tiene el nombre de archivo deburr.eng.
#deburr.esp - Archivo para descripcin de textos de USUARIO deburr_part1 en espaol
#
#DESCRIPTION:
#Archivo de textos de usuario para el desarrollo de RAPID
#
deburr_part1::
0:
RAPID S4: Tabla de textos de usuario para quitar las rebabas de la pieza 1
1:
La pieza 1 no est en posicin.
2:
Identidad de la pieza en la que se trabaja: XYZ
3:
Error de pieza en la lnea 1
#
#Fin del archivo
Ejemplo 1
VAR num text_res_no;
...
text_res_no := TextTabGet("deburr_part1");
Se asigna a la variable text_res_no el nmero de tabla de texto de la tabla de texto definida
deburr_part1.
Ejemplo 2
ErrWrite TextGet(text_res_no, 1), TextGet(text_res_no, 2);
Se almacena un mensaje en el registro del robot. Tambin se muestra en la pantalla del
FlexPendant. Los mensajes se toman de la tabla de textos deburr_part1:
La pieza 1 no est en posicin.
Identidad de la pieza en la que se trabaja: XYZ
Contina en la pgina siguiente
2 Funciones
2.139. TextTabGet - Obtiene el nmero de una tabla de textos
RobotWare - OS
3HAC16581-5 Revisin: H 1038


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: num
El nmero de la tabla de textos definida.
Argumentos
TextTabGet ( TableName )
TableName
Tipo de dato: string
El nombre de la tabla de texto.
Sintaxis
TextTabGet (
[ TableName = ] < expression (IN) of string > ;)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin de textos de las tablas de textos
del sistema
TextGet - Obtener un texto de las tablas de
textos del sistema en la pgina 1033
Instalacin de una tabla de textos TextTabInstall - Instalacin de una tabla de
textos en la pgina 562
Formato de archivos de texto Technical reference manual - RAPID kernel,
seccin RAPID Kernel reference manual -
Text files
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.140. Trunc - Trunca un valor numrico
RobotWare - OS
1039 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.140. Trunc - Trunca un valor numrico
Utilizacin
Trunc (Truncate) se utiliza para truncar un valor numrico hasta un nmero especificado de
decimales o a un valor entero.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin Trunc.
Ejemplo 1
VAR num val;
val := Trunc(0.38521\Dec:=3);
Se asigna a la variable val el valor 0.385.
Ejemplo 2
reg1 := 0.38521
val := Trunc(reg1\Dec:=1);
Se asigna a la variable val el valor 0.3.
Ejemplo 3
val := Trunc(0.38521);
Se asigna a la variable val el valor 0.
Valor de retorno
Tipo de dato: num
El valor numrico truncado con el nmero especificado de decimales.
Argumentos
Trunc ( Val [\Dec] )
Val
Value
Tipo de dato: num
El valor numrico a truncar.
[\Dec]
Decimals
Tipo de dato: num
Nmero de decimales.
Si el nmero de decimales especificado es 0 o se omite el argumento, el valor se trunca a un
entero.
El nmero de decimales no debe ser negativo ni mayor que la precisin disponible para los
valores numricos.
Contina en la pgina siguiente
2 Funciones
2.140. Trunc - Trunca un valor numrico
RobotWare - OS
3HAC16581-5 Revisin: H 1040


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
Trunc(
[ Val := ] <expression (IN) of num>
[ \Dec := <expression (IN) of num> ]
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Redondeo de un valor Round - Redondea un valor numrico en la
pgina 977
Continuacin
2 Funciones
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
RobotWare-OS
1041 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
Utilizacin
UIAlphaEntry (User Interaction Alpha Entry) se usa para introducir una cadena desde un
dispositivo de usuario disponible, como el FlexPendant. Tras la escritura de la informacin
de salida, la cadena especificada por el usuario es transferida al programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin UIAlpaEntry.
Consulte Ms ejemplos en la pgina 1044.
Ejemplo 1
VAR string answer;
...
answer := UIAlphaEntry(
\Header:= "Ttulo de UIAlphaEntry",
\Message:= "Qu procedimiento desea ejecutar?"
\Icon:=iconInfo
\InitString:= "default_proc");
%answer%;
xx0500002437
Se muestra en la pantalla del FlexPendant el cuadro de mensaje alfanumrico anterior, con
icono, ttulo, mensaje y cadena inicial. El usuario edita la cadena inicial o escribe una nueva
cadena con el teclado alfanumrico admitido. La ejecucin del programa espera hasta que se
presione OK. A continuacin, la cadena escrita se devuelve en la variable answer. A
continuacin, el programa llama al procedimiento especificado para su enlazamiento en
tiempo de ejecucin.
Contina en la pgina siguiente
2 Funciones
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
RobotWare-OS
3HAC16581-5 Revisin: H 1042


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: string
Esta funcin devuelve la cadena introducida.
Si la funcin es interrumpida por BreakFlag:
- Si se especifica el parmetro \InitString, se devuelve esta cadena.
- Si no se especifica el parmetro \InitString, se devuelve una cadena vaca "".
Si la funcin se interrumpe desde el gestor de ERROR, no se devuelve ningn valor de retorno
en absoluto.
Argumentos
UIAlphaEntry ([\Header][\Message]|[\MsgArray]
[\Wrap][\Icon][\InitString]
[\MaxTime][\DIBreak][\DOBreak][\BreakFlag])
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de mensaje. Mximo 40
caracteres.
[\Message]
Tipo de dato: string
Una lnea de texto a escribir en la pantalla. Mximo 55 caracteres.
[\MsgArray]
Message Array
Tipo de dato: string
Several text lines from an array to be written on the display.
Slo es posible usar uno de los parmetros, \Message o \MsgArray, en cada momento.
El espacio mximo del diseo es de 9 lneas de 55 caracteres cada una.
[\Wrap]
Tipo de dato: switch
Si se selecciona, todas las cadenas especificadas en el argumento \MsgArray se concatenan
para formar una cadena con un solo espacio entre las distintas cadenas individuales y
distribuida en el nmero mnimo posible de lneas.
De forma predeterminada, cada una de las cadenas del argumento \MsgArray aparece en una
lnea separada en la pantalla.
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Only one of the predefined icons of type icondata can be used.
Consulte Datos predefinidos en la pgina 1044.
De forma predeterminada, no se usa ningn icono.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
RobotWare-OS
1043 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\InitString]
Tipo de dato:string
Una cadena inicial que debe mostrarse de forma predeterminada en el cuadro de introduccin
de texto.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se presiona el botn OK 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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_DOBREAK puede usarse para comprobar si
esto ha ocurrido.
[\BreakFlag]
Tipo de dato: errnum
Una variable (cambiada a 0 por el sistema antes de su uso) que contiene el cdigo de error si
se utilizan \MaxTime, \DIBreak or \DOBreak. Las constantes ERR_TP_MAXTIME,
ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar el motivo. Si se
omite esta variable opcional, se ejecuta el gestor de errores.
Ejecucin de programas
El cuadro de mensaje alfanumrico, con su teclado alfanumrico, icono, ttulo, lneas de
mensaje y cadena inicial se muestra de acuerdo con los argumentos del programa. La
ejecucin del programa espera hasta que el usuario edite la cadena o cree una nueva y
presione OK o hasta que el cuadro de mensaje sea interrumpido por un tiempo lmite o una
accin de seal. La cadena introducida y el motivo de la interrupcin se devuelven al
programa.
El nuevo cuadro de mensaje del nivel de rutina TRAP toma el foco del cuadro de mensaje del
nivel bsico.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
RobotWare-OS
3HAC16581-5 Revisin: H 1044


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin UIAlphaEntry.
Ejemplo 1
VAR errnum err_var;
VAR string answer;
VAR string logfile;
...
answer := UIAlphaEntry (\Header:= "Nombre de archivo de registro:"
\Message:= "Qu nombre desea para el archivo de registro a
crear?" \Icon:=iconInfo
\InitString:= "signal.log" \MaxTime:=60
\DIBreak:=di5\BreakFlag:=err_var);
TEST err_var
CASE ERR_TP_MAXTIME:
CASE ERR_TP_DIBREAK:
! No operator answer
logfile:="signal.log";
CASE 0:
! Operator answer
logfile := answer;
DEFAULT:
! Not such case defined
ENDTEST
Se muestra el cuadro de mensaje y el operador puede introducir una cadena y presionar OK.
El cuadro de mensaje tambin puede ser interrumpido con un tiempo lmite o una interrupcin
con una seal digital de entrada. Es posible determinar el motivo desde el programa y tomar
las acciones adecuadas.
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.141. UIAlphaEntry - Introduccin alfanumrica del usuario
RobotWare-OS
1045 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Si se activa la salida digital (parmetro \DOBreak)) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el gestor
de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la instruccin, la
variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la ejecucin contina en el
gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite MaxTime si
UIAlphaEntry se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar
lugar a un comportamiento impredecible del rendimiento del sistema, por ejemplo la
ralentizacin de la respuesta del FlexPendant.
Sintaxis
UIAlphaEntry(
[\Header:= <expression (IN) of string>]
[\ Message:= <expression (IN) of string>]
| [\MsgArray:=<array {*} (IN) of string>]
[\Wrap]
[\Icon:= <expression (IN) of icondata>]
[\InitString:=<expression (IN) of string>]
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag := <var or pers (INOUT) of errnum>])
Una funcin con un valor de retorno del tipo de dato string.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos en
la pgina 1117
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario de
tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con el
usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario en
la pgina 1067
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
Llamada a procedimiento con enlazamiento
en tiempo de ejecucin
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas - Llamada a procedimiento
Continuacin
2 Funciones
2.142. UIClientExist - Existe cliente de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1046


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.142. UIClientExist - Existe cliente de usuario
Utilizacin
UIClientExist (User Interaction Client Exist) se usa para comprobar si hay algn
dispositivo de usuario, por ejemplo el FlexPendant conectado al controlador.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin UIClientExist.
Ejemplo 1
IF UIClientExist() THEN
! Possible to get answer from the operator
! The TPReadFK and UIMsgBox ... can be used
ELSE
! Not possible to communicate with any operator
ENDIF
Se comprueba si es posible obtener alguna respuesta del operador del sistema.
Valor de retorno
Tipo de dato: bool
Devuelve TRUE si hay un FlexPendant conectado al sistema. De lo contrario, devuelve
FALSE.
Limitaciones
UIClientExist devuelve TRUE durante un intervalo de hasta 16 segundos. A continuacin,
el FlexPendant es retirado. Tras ese intervalo, UIClientExist devuelve FALSE (es decir, a
partir del momento en el que se detecta que se ha perdido la conexin con el FlexPendant).
Se usa la misma limitacin al volver a conectar el FlexPendant.
Sintaxis
UIClientExist( )
Una funcin con un valor de retorno del tipo de dato bool.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con el
usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario
en la pgina 1067
Introduccin alfanumrica de interaccin con
el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
1047 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.143. UIListView - Vista de lista de usuario
Utilizacin
UIListView (User Interaction List View) se utiliza para definir listas de mens con textos e
iconos opcionales (an no publicado) en el dispositivo de usuario disponible, como el
FlexPendant. El men tiene dos estilos diferentes: uno con botones de validacin y otro que
reacciona instantneamente a la seleccin del usuario.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin UIListView.
Consulte tambin Ms ejemplos en la pgina 1051.
Ejemplo 1
CONST listitem list{3} := [ ["","Item 1"], ["","Item 2"],
["","Item 3"] ];
VAR num list_item;
VAR btnres button_answer;
...
list_item := UIListView (
\Result:=button_answer
\Header:="UIListView Header",
list
\Buttons:=btnOKCancel
\Icon:=iconInfo
\DefaultIndex:=1);
IF button_answer = resOK THEN
IF list_item = 1 THEN
! Do item1
ELSEIF list_item = 2 THEN
! Ejecutar el elemento 2
ELSE
! Ejecutar el elemento item3
ENDIF
ELSE
! User has select Cancel
ENDIF
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1048


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
xx0500002416
Se muestra en la pantalla del FlexPendant la lista de mens especificada anteriormente, con
ttulo, men con los elementos de Item 1 ... Item 3 y los botones. La ejecucin espera
hasta que se presiona OK o Cancelar. Tanto la seleccin en la lista como el botn presionado
se transfieren al programa.
Valor de retorno
Tipo de dato: num
Esta funcin devuelve el elemento seleccionado por el usuario en el men y correspondiente
al ndice de la matriz especificada en el parmetro ListItems.
Si la funcin es interrumpida por \BreakFlag:
Si se especifica el parmetro \DefaultIndex, se devuelve este nmero de ndice.
Si no se especifica el parmetro \DefaultIndex, se devuelve 0.
Si la funcin se interrumpe desde el gestor de ERROR, no se devuelve ningn valor de retorno
en absoluto.
Argumentos
UIListView ( [\Result] [\Header] ListItems [\Buttons] |
[\BtnArray] [\Icon] [\DefaultIndex ] [\MaxTime]
[\DIBreak] [\DOBreak] [\BreakFlag])
[\Result]
Tipo de dato: btnres
El valor numrico del botn seleccionado en el cuadro de men de lista.
Si se usa el argumento \Buttons, se devuelven constantes simblicas del tipo btnres. Si se
usa el argumento \BtnArray, se devuelve el ndice de matriz correspondiente.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
1049 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El argumento \Result con el valor da lugar a 0 si no se cumple ninguna de las condiciones
siguientes:
No se utiliza ninguno de los parmetros \Buttons o \BtnArray.
Se utiliza el argumento \Buttons:=btnNone.
Si la funcin es interrumpida por \BreakFlag o el gestor de ERROR
Consulte Datos predefinidos en la pgina 1051.
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de men de lista. Mximo
40 caracteres.
ListItem
Tipo de dato: listitem
Una matriz con uno o varios elementos de men de lista para su visualizacin y compuestos
de:
Componente image de tipo string:
La ruta, incluido el nombre de archivo, de la imagen de icono a mostrar (no
implementado en esta versin de software).
Utilice una cadena vaca "" o la constante stEmpty si no desea mostrar ningn icono.
Componente text de tipo string:
El texto de la lnea de men a mostrar.
Mximo de 75 caracteres por cada elemento del men de lista.
[\Buttons]
Tipo de dato: buttondata
Define los pulsadores que se desea mostrar. Slo puede mostrarse una de las combinaciones
de botones predefinidas del tipo buttondata. Consulte Datos predefinidos en la pgina 1051.
[\BtnArray]
Button Array
Tipo de dato: string
Definicin propia de pulsadores almacenada en una matriz de cadenas. Esta funcin devuelve
el ndice de matriz cuando se selecciona la cadena correspondiente.
Slo es posible usar uno de los parmetros, \Buttons o \BtnArray, en cada momento. Si
no se usa ninguno de los parmetros \Buttons o \BtnArray o el argumento
\Buttons:=btnNone, la lista de men reacciona instantneamente ante la seleccin por
parte del usuario.
Como mximo, es posible utilizar 5 botones de 42 caracteres cada uno.
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Slo puede usarse uno de los iconos predefinidos de tipo
icondata.
De forma predeterminada, no se usa ningn icono. Consulte Datos predefinidos en la pgina
1051.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1050


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\DefaultIndex]
Tipo de dato: num
La seleccin predeterminada del usuario en el men de lista y correspondiente al ndice de la
matriz especificada en el parmetro ListItems.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se presiona este botn o no selecciona ninguna opcin 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se presiona
ningn botn o no se selecciona ninguna opcin antes de que la seal cambie 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.
[\DOBreak] ()
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se presiona
ningn botn o no se selecciona ninguna opcin antes de que la seal cambie 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_DOBREAK
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, \DIBreak o
\DOBreak. Las constantes ERR_TP_MAXTIME, ERR_TP_DIBREAK y ERR_TP_DOBREAK
pueden usarse para seleccionar el motivo. Si se omite esta variable opcional, se ejecuta el
gestor de errores.
Ejecucin de programas
Se muestra una lista de men con icono, ttulo, elementos de lista y un elemento
predeterminado, de acuerdo con los argumentos del programa. La ejecucin del programa
espera hasta que el operador haya seleccionado una opcin o hasta que la lista de men sea
interrumpida por un tiempo lmite o una accin de seal. El elemento de lista seleccionado y
el motivo de la interrupcin se devuelven al programa.
La nueva lista de men del nivel de rutina TRAP toma el foco de la lista de men del nivel
bsico.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
1051 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
!Buttons:
CONST buttondata btnNone := -1;
CONST buttondata btnOK := 0;
CONST buttondata btnAbrtRtryIgn := 1;
CONST buttondata btnOKCancel := 2;
CONST buttondata btnRetryCancel := 3;
CONST buttondata btnYesNo := 4;
CONST buttondata btnYesNoCancel := 5;
!Results:
CONST btnres resUnkwn := 0;
CONST btnres resOK := 1;
CONST btnres resAbort := 2;
CONST btnres resRetry := 3;
CONST btnres resIgnore := 4;
CONST btnres resCancel := 5;
CONST btnres resYes := 6;
CONST btnres resNo := 7;
Ms ejemplos
A continuacin aparecen algunos ejemplos bsicos de la funcin UIListView.
Ejemplo 1
CONST listitem list{2} := [ ["","Calibrate tool1"], ["","Calibrate
tool2"] ];
VAR num list_item;
VAR errnum err_var;
...
list_item := UIListView
( \Header:="Select tool ?",
list \Icon:=iconInfo
\MaxTime:=60
\DIBreak:=di5
\BreakFlag:=err_var);
TEST err_var
CASE ERR_TP_MAXTIME:
CASE ERR_TP_DIBREAK:
! No operator answer
Continuacin
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1052


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
CASE 0:
! Operator answer
IF list_item =1 THEN
! Calibrate tool1
ELSEIF list_item=2 THEN
! Calibrate tool2
ENDIF
DEFAULT:
! Not such case defined
ENDTEST
Se muestra el cuadro de mensaje y el operador puede seleccionar un elemento de la lista. El
cuadro de mensaje tambin puede ser interrumpido con un tiempo lmite o una interrupcin
con una seal digital de entrada. Es posible determinar el motivo desde el programa y tomar
las acciones adecuadas.
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Si se activa la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el
gestor de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la
instruccin, la variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la
ejecucin contina en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
UIListView se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar
a un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentizacin
de la respuesta del FlexPendant.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.143. UIListView - Vista de lista de usuario
RobotWare - OS
1053 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
UIListView (
[[\Result := <var or pers (INOUT) of btnres>]
[\Header := <expression (IN) of string>] ,]
[ListItems =] <array {*} (IN) of listitem>
[\Buttons := <expression (IN) of buttondata>]
| [\BtnArray :=<array {*} (IN) of string>]
['\'Icon ':='<expression (IN) of icondata>]
[\DefaultIndex :=<expression (IN) of num>]
[\MaxTime := <expression (IN) of num>]
[\DIBreak := <variable (VAR) of signaldi>]
[\DOBreak := <variable (VAR) of signaldo>]
[\BreakFlag := <var or pers (INOUT) of errnum>])
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos
en la pgina 1117
Datos de pulsador buttondata - Datos de pulsador en la pgina
1085
Datos de resultado de pulsador btnres - Datos de resultado de pulsador en la
pgina 1082
Estructura de datos de elementos de lista listitem - Estructura de datos de elementos
de lista en la pgina 1127
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con el
usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario
en la pgina 1067
Introduccin alfanumrica de interaccin con
el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
Continuacin
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
3HAC16581-5 Revisin: H 1054


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
Utilizacin
UIMessageBox (User Interaction Message Box) se usa para comunicarse con el usuario del
sistema de robot a travs de un dispositivo de usuario disponible, como el FlexPendant. Tras
la escritura de la informacin de salida, la seleccin de pulsadores mostrados creada por el
usuario se devuelve al programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin UIMessageBox.
Consulte tambin Ms ejemplos en la pgina 1059.
Ejemplo 1
VAR btnres answer;
CONST string my_message{}:= ["Lnea de mensaje 1","Lnea de
mensaje 2",
"Lnea de mensaje 3","Lnea de mensaje 4","Lnea de mensaje 5"];
CONST string my_buttons{}:=["OK","Omitir"];
...
answer:= UIMessageBox (
\Header:="Ttulo de UIMessageBox Header"
\MsgArray:=my_message
\BtnArray:=my_buttons
\Icon:=iconInfo);
IF answer = 1 THEN
! Operator selection OK
ELSEIF answer = 2 THEN
! Operator selection Skip
ELSE
! No such case defined
ENDIF
xx0500002409
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
1055 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Se muestra en la pantalla del FlexPendant el cuadro de mensaje anterior, con icono, ttulo,
mensaje y pulsadores definidos por el usuario. La ejecucin espera hasta que se presiona OK
u Omitir. En otras palabras, se asigna a answer el valor 1 (OK) 2 (Omitir) en funcin de
cul de los botones se presione (ndice de matriz correspondiente).
NOTA!
Las lneas de Message Line 1 a Message Line 5 se muestran en las lneas separadas de
la 1 a la 5 (el modificador \Wrap no se utiliza).
Valor de retorno
Tipo de dato: btnres
El valor numrico del botn seleccionado en el cuadro de mensaje.
Si se usa el argumento \Buttons, se devuelven constantes simblicas del tipo btnres.
Si se usa el argumento \BtnArray, se devuelve el ndice de matriz correspondiente.
Si la funcin es interrumpida por \BreakFlag o \Buttons:=btnNone:
Si se especifica el parmetro \DefaultBtn, se devuelve este nmero de ndice.
Si no se especifica el parmetro \DefaultBtn, se devuelve resUnkwn igual a 0.
Si la funcin se interrumpe desde el gestor de ERROR, no tiene ningn valor de retorno en
absoluto.
Argumentos
UIMessageBox ( [\Header] [\Message] | [\MsgArray]
[\Wrap] [\Buttons] | [\BtnArray] [\DefaultBtn]
[\Icon] [\Image] [\MaxTime] [\DIBreak] [\DOBreak]
[\BreakFlag] )
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de mensaje. Mximo 40
caracteres.
[\Message]
Tipo de dato: string
Una lnea de texto a escribir en la pantalla. Mximo 55 caracteres.
[\MsgArray]
Message Array
Tipo de dato: string
Several text lines from an array to be written on the display.
Slo es posible usar uno de los parmetros, \Message o \MsgArray, en cada momento.
El espacio mximo del diseo es de 11 lneas de 55 caracteres cada una.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
3HAC16581-5 Revisin: H 1056


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\Wrap]
Tipo de dato: switch
Si se selecciona, todas las cadenas especificadas en el argumento \MsgArray se concatenan
para formar una cadena con un solo espacio entre las distintas cadenas individuales y
distribuida en el nmero mnimo posible de lneas.
De forma predeterminada, cada una de las cadenas del argumento \MsgArray aparece en una
lnea separada en la pantalla.
[\Buttons]
Tipo de dato: buttondata
Defines the push buttons to be displayed. Only one of the predefined buttons combination of
type buttondata can be used. Consulte Datos predefinidos en la pgina 1058.
De forma predeterminada, el sistema muestra el botn OK.
[\BtnArray]
Button Array
Tipo de dato: string
Definicin propia de pulsadores almacenada en una matriz de cadenas. Esta funcin devuelve
el ndice de matriz cuando se selecciona la cadena correspondiente.
Slo es posible usar uno de los parmetros, \Buttons o \BtnArray, en cada momento.
Como mximo, es posible utilizar 5 botones de 42 caracteres cada uno.
[\DefaultBtn]
Default Button
Tipo de dato: btnres
Permite especificar un valor que debe ser devuelto si el cuadro de mensaje es interrumpido
por \MaxTime,\DIBreak o \DOBreak. Es posible especificar la constante simblica
predefinida del tipo btnres o cualquier valor definido por el usuario. Consulte Datos
predefinidos en la pgina 1058.
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Slo puede usarse uno de los iconos predefinidos de tipo
icondata. Consulte Datos predefinidos en la pgina 1058.
De forma predeterminada, no se usa ningn icono.
[\Image]
Tipo de dato: string
El nombre de la imagen que debe utilizarse. Para iniciar sus propias imgenes, las imgenes
deben estar situadas en el directorio HOME: del sistema activo o directamente en el sistema
activo.
La recomendacin es situar los archivos en el directorio HOME: de forma que se incluyan en
las operaciones de copia de seguridad y restauracin.
Se requiere un arranque en caliente, tras lo cual el FlexPendant carga las imgenes.
Una exigencia del sistema es que se use la opcin de RobotWare FlexPendant Interface.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
1057 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La imagen a mostrar puede tener 185 pxeles de anchura y 300 pxeles de altura. Si la imagen
tiene un tamao mayor, slo se muestran 185 * 300 pxeles de la imagen a partir de su parte
superior izquierda.
No es posible especificar ningn valor exacto en cuanto al tamao que una imagen puede
tener o el nmero de imgenes que es posible cargar en el FlexPendant. Depende del tamao
de los dems archivos cargados en el FlexPendant. La ejecucin de los programas contina
simplemente si se usa una imagen que no est cargada en el FlexPendant.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se selecciona ningn botn 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se
selecciona ningn botn 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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se selecciona
ningn botn 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_DOBREAK puede usarse para comprobar si
esto ha ocurrido.
[\BreakFlag]
Tipo de dato: errnum
Una variable (cambiada a 0 por el sistema antes de su uso) que contiene el cdigo de error si
se utilizan \MaxTime, \DIBreak o \DOBreak Las constantes ERR_TP_MAXTIME,
ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar el motivo. Si se
omite esta variable opcional, se ejecuta el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
3HAC16581-5 Revisin: H 1058


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Se muestra un cuadro de mensaje con icono, ttulo, lneas de mensaje, imgenes y botones,
de acuerdo con los argumentos del programa. La ejecucin del programa espera hasta que el
usuario seleccione un botn o que el cuadro de mensaje sea interrumpido por un tiempo lmite
o una accin de seal. La opcin seleccionada por el usuario y el motivo de la interrupcin se
devuelven al programa.
El nuevo cuadro de mensaje del nivel de rutina TRAP toma el foco del cuadro de mensaje del
nivel bsico.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
!Buttons:
CONST buttondata btnNone := -1;
CONST buttondata btnOK := 0;
CONST buttondata btnAbrtRtryIgn := 1;
CONST buttondata btnOKCancel := 2;
CONST buttondata btnRetryCancel := 3;
CONST buttondata btnYesNo := 4;
CONST buttondata btnYesNoCancel := 5;
!Results:
CONST btnres resUnkwn := 0;
CONST btnres resOK := 1;
CONST btnres resAbort := 2;
CONST btnres resRetry := 3;
CONST btnres resIgnore := 4;
CONST btnres resCancel := 5;
CONST btnres resYes := 6;
CONST btnres resNo := 7;
Continuacin
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
1059 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin UIMessageBox.
Ejemplo 1
VAR errnum err_var;
VAR btnres answer;
...
answer := UIMessageBox (\Header:= "Cycle step 3"
\Message:="Continue with the calibration ?"
\Buttons:=btnOKCancel
\DefaultBtn:=resCancel \Icon:=iconInfo \MaxTime:=60
\DIBreak:=di5
\BreakFlag:=err_var);
IF answer = resOK THEN
! OK from the operator
ELSE
! Cancel from the operator or operation break
TEST err_var
CASE ERR_TP_MAXTIME:
! Time out
CASE ERR_TP_DIBREAK:
! Input signal break
DEFAULT:
! Not such case defined
ENDTEST
ENDIF
Se muestra el cuadro de mensaje y el operador puede responder OK o Cancelar. El cuadro de
mensaje tambin puede ser interrumpido con un tiempo lmite o una interrupcin con una
seal digital de entrada. Es posible determinar el motivo desde el programa.
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Si se activa la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el
gestor de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la
instruccin, la variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la
ejecucin contina en el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.144. UIMessageBox - Cuadro de mensaje de usuario de tipo avanzado
RobotWare - OS
3HAC16581-5 Revisin: H 1060


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
UIMessageBox se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar
lugar a un comportamiento impredecible del rendimiento del sistema, por ejemplo la
ralentizacin de la respuesta del FlexPendant.
Sintaxis
UIMessageBox(
[\Header:= <expression (IN) of string>]
[\Message:= <expression (IN) of string>]
| [\MsgArray:=<array {*} (IN) of string>]
[\Wrap]
[\Buttons= <expression (IN) of buttondata>]
| [\BtnArray:=<array {*}(IN) of string>]
[\DefaultBtn:=<expression (IN) of btnres>]
[\Icon:=<expression (IN) of icondata>]
[\Image:=<expression (IN) of string>]
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>] )
Una funcin con un valor de retorno del tipo de dato btnres.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos en
la pgina 1117
Datos de pulsador buttondata - Datos de pulsador en la pgina
1085
Datos de resultado de pulsador btnres - Datos de resultado de pulsador en la
pgina 1082
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario de
tipo bsico en la pgina 653
Introduccin de nmero de interaccin con el
usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario en
la pgina 1067
Introduccin alfanumrica de interaccin con
el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
FlexPendant Interface Especificaciones del producto, software de
controlador IRC5, RobotWare 5.0, seccin
Comunicacin - FlexPendant Interface
Continuacin
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
1061 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.145. UINumEntry - Introduccin de nmero de usuario
Utilizacin
UINumEntry (User Interaction Number Entry) se usa para introducir un valor numrico
desde un dispositivo de usuario disponible, como el FlexPendant. Tras la escritura de la
informacin de salida, el valor numrico especificado por el usuario es comprobado,
autorizado y transferido de nuevo al programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin UINumEntry.
Consulte tambin Ms ejemplos en la pgina 1064.
Ejemplo 1
VAR num answer;
...
answer := UINumEntry(
\Header:="UINumEntry Header"
\Message:="How many units should be produced?"
\Icon:=iconInfo
\InitValue:=5
\MinValue:=1
\MaxValue:=10
\AsInteger);
FOR i FROM 1 TO answer DO
produce_part;
ENDFOR
xx0500002412
Se muestra en la pantalla del FlexPendant el cuadro de mensaje numrico anterior, con icono,
encabezado, mensaje y valores inicial, mximo y mnimo. El cuadro de mensaje comprueba
que el operador seleccione un entero perteneciente al rango de valores. La ejecucin del
programa espera hasta que se presione OK. A continuacin, se devuelve el valor numrico
seleccionado. A continuacin, la rutina produce_part se repite el nmero de veces
especificado a travs del FlexPendant.
Contina en la pgina siguiente
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1062


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: num
Esta funcin devuelve el valor numrico introducido.
Si la funcin es interrumpida por \BreakFlag:
Si se especifica el parmetro \InitValue, se devuelve este valor.
Si no se especifica el parmetro \InitValue, se devuelve el valor 0.
Si la funcin se interrumpe desde el gestor de ERROR, no tiene ningn valor de retorno en
absoluto.
Argumentos
UINumEntry ( [\Header] [\Message] | [\MsgArray]
[\Wrap] [\Icon] [\InitValue] [\MinValue] [\MaxValue]
[\AsInteger] [\MaxTime] [\DIBreak] [\DOBreak]
\BreakFlag] )
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de mensaje. Mximo 40
caracteres.
[\Message]
Tipo de dato: string
Una lnea de texto a escribir en la pantalla. Mximo 40 caracteres.
[\MsgArray]
Message Array
Tipo de dato: string
Several text lines from an array to be written on the display.
Slo es posible usar uno de los parmetros, \Message o \MsgArray, en cada momento.
El espacio mximo del diseo es de 9 lneas de 40 caracteres cada una.
[\Wrap]
Tipo de dato: switch
Si se selecciona, todas las cadenas especificadas en el argumento \MsgArray se concatenan
para formar una cadena con un solo espacio entre las distintas cadenas individuales y
distribuida en el nmero mnimo posible de lneas.
De forma predeterminada, cada una de las cadenas del argumento \MsgArray aparece en una
lnea separada en la pantalla.
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Slo puede usarse uno de los iconos predefinidos de tipo
icondata. Consulte Datos predefinidos en la pgina 1064.
De forma predeterminada, no se usa ningn icono.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
1063 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
[\InitValue]
Tipo de dato: num
El valor inicial que se muestra en el cuadro de introduccin.
[\MinValue]
Tipo de dato: num
El valor mnimo del valor de retorno.
[\MaxValue]
Tipo de dato: num
El valor mximo del valor de retorno.
[\AsInteger]
Tipo de dato: switch
Elimina el punto decimal del teclado numrico para garantizar que el valor devuelto sea un
entero.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se presiona el botn OK 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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_DOBREAK puede usarse para comprobar si
esto ha ocurrido.
[\BreakFlag]
Tipo de dato: errnum
Una variable (cambiada a 0 por el sistema antes de su uso) que contiene el cdigo de error si
se utilizan \MaxTime, \DIBreak o \DOBreak. Las constantes ERR_TP_MAXTIME,
ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar el motivo. Si se
omite esta variable opcional, se ejecuta el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1064


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Se muestra el cuadro de mensaje numrico, con teclado numrico, icono, encabezado, lneas
de mensaje y valores inicial, mximo y mnimo, de acuerdo con los argumentos del programa.
La ejecucin del programa espera hasta que el usuario haya introducido un valor numrico
autorizado y presione OK o hasta que el cuadro de mensaje sea interrumpido por un tiempo
lmite o una accin de seal. El valor numrico introducido y el motivo de la interrupcin se
devuelven al programa.
El nuevo cuadro de mensaje del nivel de rutina TRAP toma el foco del cuadro de mensaje del
nivel bsico.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin UINumEntry.
Ejemplo 1
VAR errnum err_var;
VAR num answer;
VAR num distance;
...
answer := UINumEntry (\Header:= "BWD move on path"
\Message:="Enter the path overlap ?" \Icon:=iconInfo
\InitValue:=5 \MinValue:=0 \MaxValue:=10
\MaxTime:=60 \DIBreak:=di5 \BreakFlag:=err_var);
TEST err_var
CASE ERR_TP_MAXTIME:
CASE ERR_TP_DIBREAK:
! No operator answer distance := 5;
CASE 0
! Operator answer
distance := answer;
DEFAULT:
! Not such case defined
ENDTEST
Se muestra el cuadro de mensaje y el operador puede introducir un valor numrico y presionar
OK. El cuadro de mensaje tambin puede ser interrumpido con un tiempo lmite o una
interrupcin con una seal digital de entrada. Es posible determinar el motivo desde el
programa y tomar las acciones adecuadas.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
1065 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Si se activa la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el
gestor de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la
instruccin, la variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la
ejecucin contina en el gestor de errores.
Si no se especifica el valor inicial (parmetro \InitValue) dentro del rango que va
desde el valor mnimo al mximo (parmetros \MinValue y \MaxValue), la variable
de sistema ERRNO cambia a ERR_UI_INITVALUE y la ejecucin contina en el gestor
de errores.
Si el valor mnimo (parmetro \MinValue) es mayor que el valor mximo (parmetro
\MaxValue), la variable de sistema ERRNO cambia a ERR_UI_MAXMIN y la ejecucin
contina en el gestor de errores.
Si el valor inicial (parmetro \InitValue) no es un entero como se especifica en el
parmetro \AsInteger, la variable de sistema ERRNO cambia a ERR_UI_NOTINT y
la ejecucin prosigue en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
UINumEntry se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar
a un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentizacin
de la respuesta del FlexPendant.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.145. UINumEntry - Introduccin de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1066


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
UINumEntry(
[\Header:= <expression (IN) of string>]
[Message:= <expression (IN) of string> ]
| [\MsgArray:=<array {*} (IN) of string>]
[\Wrap]
[\Icon:= <expression (IN) of icondata>]
[\InitValue:=<expression (IN) of num>]
[\MinValue:=<expression (IN) of num>]
[\MaxValue:=<expression (IN) of num>]
[\AsInteger]
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>] )
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos
en la pgina 1117
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario
en la pgina 1067
Introduccin alfanumrica de interaccin con
el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
Continuacin
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
1067 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.146. UINumTune - Ajuste de nmero de usuario
Utilizacin
UINumTune (User Interaction Number Tune) se usa para ajustar un valor numrico desde un
dispositivo de usuario disponible, como el FlexPendant. Tras la escritura de la informacin
de salida, el valor numrico ajustado por el usuario es comprobado, autorizado y transferido
de nuevo al programa.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin UINumTune.
Consulte tambin Ms ejemplos en la pgina 1070.
Ejemplo 1
VAR num flow;
...
flow := UINumTune(
\Header:="UINumTune Header"
\Message:="Tune the flow?"
\Icon:=iconInfo,
2.5,
0.1
\MinValue:=1.5
\MaxValue:=3.5);
xx0500002414
Se muestra en la pantalla del FlexPendant el cuadro de mensaje de ajuste numrico anterior
con icono, encabezado, mensaje y valores inicial, de incremento, mximo y mnimo. El
cuadro de mensaje comprueba que el operador ajuste el valor de flujo flow con pasos de 0,1,
empezando con el valor inicial 2,5 y dentro del rango de valores de 1,5 a 3,5. La ejecucin
del programa espera hasta que se presione OK. A continuacin, se devuelve el valor numrico
seleccionado, que se almacena en la variable flow.
Contina en la pgina siguiente
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1068


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Valor de retorno
Tipo de dato: num
Esta funcin devuelve el valor numrico ajustado.
Si la funcin es interrumpida por \BreakFlag, se devuelve el valor InitValue
especificado.
Si la funcin se interrumpe desde el gestor de ERROR, no se devuelve ningn valor de retorno
en absoluto.
Argumentos
UINumTune ( [\Header] [\Message] | [\MsgArray] [\Wrap]
[\Icon] InitValue Increment [\MinValue] [\MaxValue]
[\MaxTime] [\DIBreak] [\DOBreak] [\BreakFlag] )
[\Header]
Tipo de dato: string
El texto de ttulo que debe escribirse en la parte superior del cuadro de mensaje. Mximo 40
caracteres.
[\Message]
Tipo de dato: string
Una lnea de texto a escribir en la pantalla. Mximo 42 caracteres.
[\MsgArray]
Message Array
Tipo de dato: string
Several text lines from an array to be written on the display.
Slo es posible usar uno de los parmetros, \Message o \MsgArray, en cada momento.
El espacio mximo del diseo es de 11 lneas de 42 caracteres cada una.
[\Wrap]
Tipo de dato: switch
Si se selecciona, todas las cadenas especificadas en el argumento \MsgArray se concatenan
para formar una cadena con un solo espacio entre las distintas cadenas individuales y
distribuida en el nmero mnimo posible de lneas.
De forma predeterminada, cada una de las cadenas del argumento \MsgArray aparece en una
lnea separada en la pantalla.
[\Icon]
Tipo de dato: icondata
Define el icono a mostrar. Only one of the predefined icons of type icondata can be used.
Consulte Datos predefinidos en la pgina 1070.
De forma predeterminada, no se usa ningn icono.
InitValue
Initial Value
Tipo de dato: num
El valor inicial que se muestra en el cuadro de introduccin.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
1069 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Increment
Tipo de dato: num
Este parmetro especifica en qu cantidad debe cambiar el valor al presionar los botones de
ms o menos.
[\MinValue]
Tipo de dato: num
El valor mnimo del valor de retorno.
[\MaxValue]
Tipo de dato: num
El valor mximo del valor de retorno.
[\MaxTime]
Tipo de dato: num
El periodo mximo, en segundos, que debe esperar el programa para continuar con la
ejecucin. Si no se presiona el botn OK 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]
Digital Input Break
Tipo de dato: signaldi
La seal digital de entrada que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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.
[\DOBreak]
Digital Output Break
Tipo de dato: signaldo
La seal digital de salida que puede interrumpir el dilogo con el operador. Si no se presiona
el botn OK antes de que la seal cambie 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_DOBREAK puede usarse para comprobar si
esto ha ocurrido.
[\BreakFlag]
Tipo de dato: errnum
Una variable (cambiada a 0 por el sistema antes de su uso) que contiene el cdigo de error si
se utilizan \MaxTime, \DIBreak o \DOBreak. Las constantes ERR_TP_MAXTIME,
ERR_TP_DIBREAK y ERR_TP_DOBREAK pueden usarse para seleccionar el motivo. Si se
omite esta variable opcional, se ejecuta el gestor de errores.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1070


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Se muestra el cuadro de mensaje de ajuste numrico con botones de ajuste +/-, icono,
encabezado, lneas de mensaje y valores inicial, de incremento, mximo y mnimo, de
acuerdo con los argumentos del programa. La ejecucin del programa espera hasta que el
usuario haya ajustado el valor numrico y presione OK o hasta que el cuadro de mensaje sea
interrumpido por un tiempo lmite o una accin de seal. El valor numrico introducido y el
motivo de la interrupcin se devuelven al programa.
El nuevo cuadro de mensaje del nivel de rutina TRAP toma el foco del cuadro de mensaje del
nivel bsico.
Datos predefinidos
!Icons:
CONST icondata iconNone := 0;
CONST icondata iconInfo := 1;
CONST icondata iconWarning := 2;
CONST icondata iconError := 3;
Ms ejemplos
A continuacin aparecen ms ejemplos de la funcin UINumTune.
Ejemplo 1
VAR errnum err_var;
VAR num tune_answer;
VAR num distance;
...
tune_answer := UINumTune (\Header:=" BWD move on path"
\Message:="Enter the path overlap ?" \Icon:=iconInfo,
5, 1 \MinValue:=0 \MaxValue:=10
\MaxTime:=60 \DIBreak:=di5 \BreakFlag:=err_var);
TEST err_var
CASE ERR_TP_MAXTIME:
CASE ERR_TP_DIBREAK:
! No operator answer
distance := 5;
CASE 0:
! Operator answer
distance := tune_answer;
DEFAULT:
! Not such case defined
ENDTEST
Se muestra el cuadro de ajuste de mensaje y el operador puede ajustar el valor numrico y
presionar OK. El cuadro de mensaje tambin puede ser interrumpido con un tiempo lmite o
una interrupcin con una seal digital de entrada. Es posible determinar el motivo desde el
programa y tomar las acciones adecuadas.
Continuacin
Contina en la pgina siguiente
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
1071 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Gestin de errores
Si no se usa el parmetro \BreakFlag, estas situaciones pueden ser gestionadas en el gestor
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.
Si se activa la salida digital (parmetro \DOBreak) antes de la accin del operador, la
variable de sistema ERRNO cambia a ERR_TP_DOBREAK y la ejecucin contina en el
gestor de errores.
Esta situacin slo puede ser gestionada desde el gestor de errores.
Si no hay ningn cliente, por ejemplo un FlexPendant, que se encargue de la
instruccin, la variable de sistema ERRNO cambia a ERR_TP_NO_CLIENT y la
ejecucin contina en el gestor de errores.
Si no se especifica el valor inicial (parmetro \InitValue) dentro del rango que va
desde el valor mnimo al mximo (parmetros \MinValue y \MaxValue), la variable
de sistema ERRNO cambia a ERR_UI_INITVALUE y la ejecucin contina en el gestor
de errores.
Si el valor mnimo (parmetro \MinValue) es mayor que el valor mximo (parmetro
\MaxValue), la variable de sistema ERRNO cambia a ERR_UI_MAXMIN y la ejecucin
contina en el gestor de errores.
Limitaciones
Evite usar un valor demasiado pequeo para el parmetro de tiempo lmite \MaxTime si
UINumTune se ejecuta frecuentemente, por ejemplo en un bucle. Si lo hace, puede dar lugar
a un comportamiento impredecible del rendimiento del sistema, por ejemplo la ralentizacin
de la respuesta del FlexPendant.
Sintaxis
UINumTune(
[\Header:= <expression (IN) of string>]
[\Message:= <expression (IN) of string> ]
| [\MsgArray:=<array {*} (IN) of string>]
[\Wrap]
[\Icon:= <expression (IN) of icondata>] ,]
[InitValue:= ] <expression (IN) of num> ,
[Increment:= ] <expression (IN) of num>
[\MinValue:=<expression (IN) of num>]
[\MaxValue:=<expression(IN) of num>]
[\MaxTime:= <expression (IN) of num>]
[\DIBreak:= <variable (VAR) of signaldi>]
[\DOBreak:= <variable (VAR) of signaldo>]
[\BreakFlag:= <var or pers (INOUT) of errnum>] )
Continuacin
Contina en la pgina siguiente
2 Funciones
2.146. UINumTune - Ajuste de nmero de usuario
RobotWare - OS
3HAC16581-5 Revisin: H 1072


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de visualizacin de iconos icondata - Datos de visualizacin de iconos
en la pgina 1117
Cuadro de mensaje de interaccin con el
usuario de tipo bsico
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario de tipo avanzado
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con el
usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Introduccin alfanumrica de interaccin con
el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Sistema conectado al FlexPendant, etc. UIClientExist - Existe cliente de usuario en la
pgina 1046
Continuacin
2 Funciones
2.147. ValidIO - Seal de E/S vlida para su uso
RobotWare - OS
1073 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.147. ValidIO - Seal de E/S vlida para su uso
Utilizacin
ValidIO se utiliza para comprobar si la seal de E/S especificada puede utilizarse sin ningn
error en este momento.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ValidIO.
Ejemplo 1
IF ValidIO(mydosignal) SetDO mydosignal, 1;
Cambiar la seal de salida digital mydosignal a 1 si su unidad de E/S est en
funcionamiento.
Valor de retorno
Tipo de dato: bool
Devuelve TRUE si la seal es vlida y la unidad de E/S de la seal est en funcionamiento. De
lo contrario, devuelve FALSE.
Argumentos
ValidIO (Signal)
Signal
Tipo de dato: signalxx
El nombre de la seal. Debe ser del tipo signaldo, signaldi, signalgo, signalgi,
signalao o signalai.
Ejecucin de programas
Comportamiento de la ejecucin:
Comprobar si la seal de E/S es vlida.
Comprobar si la unidad de E/S de la seal est en funcionamiento.
No se genera ningn mensaje de error.
Sintaxis
ValidIO (
[Signal :=] <variable (VAR) of anytype>
)
Una funcin con un valor de retorno del tipo de dato bool.
Contina en la pgina siguiente
2 Funciones
2.147. ValidIO - Seal de E/S vlida para su uso
RobotWare - OS
3HAC16581-5 Revisin: H 1074


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Definir una seal de E/S con un nombre de
alias
AliasIO - Define una seal de E/S con un
nombre de alias en la pgina 20
Continuacin
2 Funciones
2.148. ValToStr - Convierte un valor en una cadena
RobotWare - OS
1075 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.148. ValToStr - Convierte un valor en una cadena
Utilizacin
ValToStr (Value To String) se utiliza para convertir un valor de cualquier tipo de dato en una
cadena.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin ValToStr.
Ejemplo 1
VAR string str;
VAR pos p := [100,200,300];
str := ValToStr(p);
Se asigna a la variable str el valor "[100,200,300]".
Ejemplo 2
str := ValToStr(TRUE);
Se asigna a la variable str el valor "TRUE".
Ejemplo 3
str := ValToStr(1.234567);
Se asigna a la variable str el valor "1.23457".
Valor de retorno
Tipo de dato: string
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.
Si la cadena resultante es demasiado larga, se genera un error de tiempo de ejecucin.
Argumentos
ValToStr ( Val )
Val
Value
Tipo de dato: ANYTYPE
Un valor de cualquier tipo de dato. Puede usar todos los tipos de datos de valor con estructura
atmica o de registro, componente de registro, matriz o elemento de matriz.
Sintaxis
ValToStr(
[ Val := ] <expression (IN) of ANYTYPE>
)
Una funcin con un valor de retorno del tipo de dato string.
Contina en la pgina siguiente
2 Funciones
2.148. ValToStr - Convierte un valor en una cadena
RobotWare - OS
3HAC16581-5 Revisin: H 1076


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Funciones para cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones para cadenas de
caracteres
Definicin de cadena de caracteres string - Cadenas de caracteres en la pgina
1192
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Continuacin
2 Funciones
2.149. VectMagn - Magnitud de un vector pos
RobotWare - OS
1077 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
2.149. VectMagn - Magnitud de un vector pos
Utilizacin
VectMagn (Vector Magnitude) se utiliza para calcular la magnitud de un vector pos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la funcin VectMagn.
Ejemplo 1
xx0500002446
Un vector A puede escribirse como la suma de sus componentes en las tres direcciones
ortogonales:
.
La magnitud de A es:
.
El vector se describe mediante el tipo de dato pos y la magnitud mediante el tipo de dato num:
VAR num magnitude;
VAR pos vector;
...
vector := [1,1,1];
magnitude := VectMagn(vector);
Valor de retorno
Tipo de dato: num
La magnitud del vector (tipo de dato pos).
Argumentos
VectMagn (Vector)
Vector
Tipo de dato: pos
El vector descrito mediante el tipo de dato pos.
Contina en la pgina siguiente
2 Funciones
2.149. VectMagn - Magnitud de un vector pos
RobotWare - OS
3HAC16581-5 Revisin: H 1078


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Sintaxis
VectMagn(
[Vector :=] <expression (IN) of pos>
)
Una funcin con un valor de retorno del tipo de dato num.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones y funciones matemticas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Matemticas
Continuacin
3 Tipos de datos
3.1. aiotrigg - Condicin de disparo con E/S analgica
RobotWare - OS
1079 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3 Tipos de datos
3.1. aiotrigg - Condicin de disparo con E/S analgica
Utilizacin
aiotrigg (Analog I/O Trigger) se utiliza para definir la condicin que genera una
interrupcin para una seal de entrada o salida analgica.
Descripcin
Los datos de tipo aiotrigg definen la forma en que se usarn un umbral mximo y un
umbral mnimo para determinar si el valor lgico de una seal analgica cumple las
condiciones para generar una interrupcin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato aiotrigg.
Ejemplo 1
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.
Datos predefinidos
Se han predefinido las constantes simblicas siguientes del tipo de dato aiotrigg. Puede
usarlas para especificar unas condiciones para las instrucciones ISignalAI y ISignalAO.
Caractersticas
aiotrigg es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Valor
Constante
simblica
Comentario
1 AIO_ABOVE_HIGH La seal genera interrupciones si se encuentra por encima
del valor mximo especificado
2 AIO_BELOW_HIGH La seal genera interrupciones si se encuentra por debajo
del valor mximo especificado
3 AIO_ABOVE_LOW La seal genera interrupciones si se encuentra por encima
del valor mnimo especificado
4 AIO_BELOW_LOW La seal genera interrupciones si se encuentra por debajo
del valor mnimo especificado
5 AIO_BETWEEN La seal genera interrupciones si se encuentra entre los
valores mnimo y mximo especificados
6 AIO_OUTSIDE La seal genera interrupciones si se encuentra por debajo
del valor mnimo especificado o por encima del valor
mximo especificado
7 AIO_ALWAYS La seal siempre genera interrupciones
Contina en la pgina siguiente
3 Tipos de datos
3.1. aiotrigg - Condicin de disparo con E/S analgica
RobotWare - OS
3HAC16581-5 Revisin: H 1080


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Interrupcin a partir de una seal analgica
de entrada
ISignalAI - Interrupciones a partir de una
seal analgica de entrada en la pgina 171
Interrupcin a partir de una seal analgica
de salida
ISignalAO - Interrupciones a partir de una
seal analgica de salida en la pgina 182
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.2. bool - Valores lgicos
RobotWare - OS
1081 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.2. bool - Valores lgicos
Utilizacin
bool se utiliza con valores lgicos (verdadero/falso).
Descripcin
El valor de un dato de tipo bool puede ser TRUE (verdadero) o FALSE (falso).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato bool.
Ejemplo 1
flag1 := TRUE;
Se asigna al flag el valor TRUE (verdadero).
Ejemplo 2
VAR bool highvalue;
VAR num reg1;
...
highvalue := reg1 > 100;
highvalue recibe el valor TRUE si reg1 es mayor que 100; de lo contrario, se asigna FALSE.
Ejemplo 3
IF highvalue Set do1;
La seal do1 se activa si highvalue es TRUE.
Ejemplo 4
highvalue := reg1 > 100;
mediumvalue := reg1 > 20 AND NOT highvalue;
Se asigna a mediumvalue el valor TRUE si reg1 est entre 20 y 100.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Expresiones lgicas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Operaciones con valores lgicos Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
3 Tipos de datos
3.3. btnres - Datos de resultado de pulsador
RobotWare - OS
3HAC16581-5 Revisin: H 1082


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.3. btnres - Datos de resultado de pulsador
Utilizacin
btnres (button result) se usa para representar la seleccin de usuario del pulsador en un
dispositivo de usuario, por ejemplo el FlexPendant.
Descripcin
Las constantes de btnres se han diseado para su uso al comprobar el valor de resultado de
la instruccin UIMsgBox y el valor de retorno desde las funciones UIMessageBox y
UIListView.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato btnres.
Ejemplo 1
VAR btnres answer;
UIMsgBox "More ?" \Buttons:=btnYesNo \Result:= answer;
IF answer= resYes THEN
...
ELSEIF answer =ResNo THEN
...
ENDIF
La enumeracin de botn estndar btnYesNo generar un pulsador S y un pulsador No en
la interfaz de usuario. La seleccin del usuario se almacenar en la variable answer.
Datos predefinidos
Se han predefinido en el sistema las constantes siguientes del tipo de dato btnres.
Es posible trabajar con botones definidos por el usuario que responden a las funciones
UIMessageBox y UIListView.
Caractersticas
btnres es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Valor Constantes Respuesta de botn
0 resUnkwn Resultado desconocido
1 resOK Aceptar
2 resAbort Anular
3 resRetry Reintentar
4 resIgnore Omitir
5 resCancel Cancelar
6 resYes S
7 resNo No
Contina en la pgina siguiente
3 Tipos de datos
3.3. btnres - Datos de resultado de pulsador
RobotWare - OS
1083 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cuadro de mensaje de interaccin con el
usuario
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Datos de botn de tipo de dato de alias buttondata - Datos de pulsador en la pgina
1085
Continuacin
3 Tipos de datos
3.4. busstate - Estado de bus de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 1084


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.4. busstate - Estado de bus de E/S
Utilizacin
busstate se utiliza para representar el estado momentneo de un bus de E/S.
Descripcin
Las constantes de busstate se han diseado para usarlas al comprobar el valor de retorno
de la instruccin IOBusState.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico del tipo de dato busstate.
Ejemplo 1
VAR busstate bstate;
IOBusState "IBS", bstate \Phys;
TEST bstate
CASE IOBUS_PHYS_STATE_RUNNING:
! Possible to access some signal on the IBS bus
DEFAULT:
! Actions for not up and running IBS bus
ENDTEST
Datos predefinidos
Las constantes simblicas predefinidas del tipo de dato busstate pueden verse en la
instruccin IOBusState.
Caractersticas
busstate es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin del estado actual de un bus de E/S IOBusState - Obtener el estado actual de un
bus de E/S en la pgina 156
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
3 Tipos de datos
3.5. buttondata - Datos de pulsador
RobotWare - OS
1085 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.5. buttondata - Datos de pulsador
Utilizacin
buttondata se usa para representar una combinacin de pulsadores estndar para su
visualizacin en un dispositivo de usuario, por ejemplo en el FlexPendant.
Descripcin
Las constantes buttondata se utilizan para representar los pulsadores de respuesta en la
instruccin UIMsgBox y las funciones UIMessageBox y UIListView.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato buttondata.
Ejemplo 1
VAR btnres answer;
UIMsgBox "More ?" \Buttons:=btnYesNo \Result:= answer;
IF answer= resYes THEN
...
ELSE
...
ENDIF
La enumeracin de botn estndar btnYesNo generar un pulsador S y un pulsador No.
Datos predefinidos
Se han predefinido en el sistema las constantes siguientes del tipo de dato buttondata.
Es posible mostrar botones definidos por el usuario con las funciones UIMessageBox y
UIListView.
Caractersticas
buttondata es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Valor Constantes Botn mostrado
- 1 btnNone Ningn botn
0 btnOK Aceptar
1 btnAbrtRtryIgn Anular, Reintentar y Omitir
2 btnOKCancel Aceptar y Cancelar
3 btnRetryCancel Reintentar y Cancelar
4 btnYesNo S y No
5 btnYesNoCancel S, No y Cancelar
Contina en la pgina siguiente
3 Tipos de datos
3.5. buttondata - Datos de pulsador
RobotWare - OS
3HAC16581-5 Revisin: H 1086


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Cuadro de mensaje de interaccin con el
usuario
UIMsgBox - Cuadro de mensaje de usuario
de tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Resultado de botn de tipo de dato de alias btnres - Datos de resultado de pulsador en la
pgina 1082
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.6. byte - Valores enteros de 0 a 255
RobotWare - OS
1087 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.6. byte - Valores enteros de 0 a 255
Utilizacin
byte se utiliza con valores decimales (de 0 a 255), acorde con el rango que permite un byte.
Este tipo de dato se utiliza junto con instrucciones y funciones dedicadas a la manipulacin
de bits y la conversin.
Descripcin
Los datos de tipo byte representan valores de byte enteros.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato byte.
Ejemplo 1
VAR byte data1 := 130;
Definicin de una variable data1 con el valor decimal 130.
Ejemplo 2
CONST num parity_bit := 8;
VAR byte data1 := 130;
BitClear data1, parity_bit;
El bit nmero 8 (parity_bit) de la variable data1 cambia a 0, con lo que el contenido de
la variable data1 cambia de 130 a 2 (en su valor decimal).
Gestin de errores
Si un argumento de tipo byte tiene un valor que queda fuera del rango de 0 a 255, se genera
un error al ejecutar el programa.
Caractersticas
byte es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Funciones de bits Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Funciones de bits
3 Tipos de datos
3.7. clock - Medicin de tiempo
RobotWare - OS
3HAC16581-5 Revisin: H 1088


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.7. clock - Medicin de tiempo
Utilizacin
Clock se utiliza para medir tiempo. Una variable clock funciona como un cronmetro que se
usa para temporizaciones.
Descripcin
Los datos de tipo clock almacenan una medicin de tiempo en segundos y tienen una
exactitud de 0,01 segundos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato clock.
Ejemplo 1
VAR clock myclock;
ClkReset myclock;
Se declara y pone a cero el reloj myclock,. Antes de usar ClkReset, ClkStart, ClkStop
y ClkRead, es necesario declarar una variable de tipo clock en el programa.
Limitaciones
El tiempo mximo que puede almacenar una variable de tipo clock es de aproximadamente
49 das (4.294.967 segundos). Las instrucciones ClkStart, ClkStop y ClkRead informan
de los desbordamientos del reloj en el caso poco probable de que se produzcan.
Las variables clock deben declararse como variables VAR, no como variables persistent.
Caractersticas
clock es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de instrucciones de hora y fecha Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Sistema y tiempo
Caractersticas de los tipos de datos sin
valores
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
1089 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.8. confdata - Datos de configuracin del robot
Utilizacin
confdata se utiliza para definir las configuraciones de ejes del robot.
Descripcin
Todas las posiciones del robot se definen y almacenan mediante coordenadas rectangulares.
A la hora de calcular las posiciones correspondientes de los ejes, existen con frecuencia dos
o ms soluciones posibles. Esto significa que el robot puede alcanzar la misma posicin, es
decir, situar la herramienta en la misma posicin y con la misma orientacin, a partir de
distintas posiciones o configuraciones de los ejes del robot.
Algunos tipos de robots utilizan mtodos numricos iterativos para determinar las posiciones
de los ejes. En estos casos, los parmetros de configuracin puede usarse para definir valores
de eje iniciales adecuados que puede usar el proceso iterativo.
Para denotar de forma inequvoca una de estas configuraciones posibles, la configuracin del
robot se especifica mediante cuatro valores de eje. En el caso de un eje de rotacin, el valor
define el cuadrante actual para el eje del robot. Los cuadrantes tienen los nmeros 0, 1, 2, etc.
(tambin pueden tener un nmero negativo). El nmero de cuadrante est conectado al ngulo
actual del eje. Para cada eje, el cuadrante 0 es el primer cuarto de revolucin, de 0 a 90, en
sentido positivo a partir de la posicin cero. El cuadrante 1 es el siguiente cuarto de
revolucin, de 90 a 180, y as en adelante. El cuadrante -1 es el cuarto de revolucin de 0 a
(-90), etc. (consulte la figura siguiente).
La figura muestra los cuadrantes de configuracin para el eje 6.
xx0500002398
En el caso de un eje lineal, el valor define el intervalo en metros del eje del robot. Para cada
eje, el valor 0 significa una posicin entre 0 y 1 metro y 1 significa una posicin entre 1 y 2
metros. En el caso de los valores negativos, -1 significa una posicin entre -1 y 0 metros, etc.
(consulte la figura siguiente).
La figura siguiente muestra los valores de configuracin para los ejes lineales.
xx0500002399
Contina en la pgina siguiente
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
3HAC16581-5 Revisin: H 1090


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos de configuracin para los robots IRB 140, 6600, 6650, 7600
Existen tres singularidades dentro del rea de trabajo del robot (consulte Manual de
referencia de RAPID - Descripcin general de RAPID, seccin Principios de movimiento y
E/S - Singularidades).
cf1 es el nmero de cuadrante del eje 1.
cf4 es el nmero de cuadrante del eje 4.
cf6 es el nmero de cuadrante del eje 6.
cfx se utiliza para seleccionar una de las ocho configuraciones posibles del robot, numeradas
de 0 a 7. En la tabla siguiente se indican estas configuraciones en cuanto a cmo se posiciona
el robot respecto de las tres singularidades.
En las imgenes siguientes se muestran ejemplos de cmo se consiguen la misma posicin y
la misma orientacin de la herramienta con las ocho configuraciones siguientes.
En la figura siguiente se muestra un ejemplo de las configuraciones de robot 0 y 1. Observe
los distintos signos del ngulo del eje 5.
xx0500002400
cfx
Centro de mueca
respecto del eje 1
Centro de mueca respecto
del brazo interior
ngulo del eje 5
0 Delante de Delante de Positivo
1 Delante de Delante de Negativo
2 Delante de Detrs Positivo
3 Delante de Detrs Negativo
4 Detrs Delante de Positivo
5 Detrs Delante de Negativo
6 Detrs Detrs Positivo
7 Detrs Detrs Negativo
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
1091 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En la figura siguiente se muestra un ejemplo de las configuraciones de robot 2 y 3. Observe
los distintos signos del ngulo del eje 5.
xx0500002401
En la figura siguiente se muestra un ejemplo de las configuraciones de robot 4 y 5. Observe
los distintos signos del ngulo del eje 5.
xx0500002402
En la figura siguiente se muestra un ejemplo de las configuraciones de robot 6 y 7. Observe
los distintos signos del ngulo del eje 5.
xx0500002403
Datos de configuracin para el robot IRB 340
Slo se utiliza el parmetro de configuracin cf4.
Datos de configuracin para los robots IRB 260, 660
Slo se utiliza el parmetro de configuracin cf6.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
3HAC16581-5 Revisin: H 1092


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos de configuracin para los robots IRB 1400, 2400, 3400, 4400, 6400
Slo se utilizan los parmetros de configuracin cf1, cf4 y cf6.
Datos de configuracin para el robot IRB 5400
Se utilizan los cuatro parmetros de configuracin. Se utilizan cf1, cf4, cf6 para los ejes 1,
4 y 6 respectivamente y cfx para el eje 5.
Datos de configuracin para los robots IRB 5404, 5406
Estos robots tienen dos ejes de rotacin (brazos 1 y 2) y un eje lineal (brazo 3).
cf1 se utiliza para el eje de rotacin 1
cfx se utiliza para el eje de rotacin 2
No se utilizan cf4 ni cf6
Datos de configuracin para los robots IRB 5413, 5414, 5423
Estos robots tienen dos ejes lineales (brazos 1 y 2) y uno o dos ejes de rotacin (brazos 4 y 5)
(el brazo 3 est bloqueado).
cf1 se utiliza para el eje lineal 1
cfx se utiliza para el eje lineal 2
cf4 se utiliza para el eje de rotacin 4
cf6 no se utiliza
Datos de configuracin para el robot IRB 840
Este robot tiene tres ejes lineales (brazos 1, 2 y 3) y un eje de rotacin (brazo 4).
cf1 se utiliza para el eje lineal 1
cfx se utiliza para el eje lineal 2
cf4 se utiliza para el eje de rotacin 4
cf6 no se utiliza
Debido a que la estructura del robot es principalmente lineal, el uso de un valor correcto de
los parmetros de configuracin c1, cx tiene menos importancia.
Componentes
cf1
Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 1, expresado como un nmero entero positivo o negativo.
Eje lineal:
El intervalo actual en metros del eje 1, expresado como un nmero entero positivo o negativo.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
1093 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
cf4
Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 4, expresado como un nmero entero positivo o negativo.
Eje lineal:
El intervalo actual en metros del eje 4, expresado como un nmero entero positivo o negativo.
cf6
Tipo de dato: num
Eje de rotacin:
El cuadrante actual del eje 6, expresado como un nmero entero positivo o negativo.
Eje lineal:
El intervalo actual en metros del eje 6, expresado como un nmero entero positivo o negativo.
cfx
Tipo de dato: num
Eje de rotacin:
En el robot IRB140, la configuracin actual del robot, expresada como un entero de 0 a 7.
En el caso del robot IRB 5400, el cuadrante actual del eje 5, expresado como un nmero
entero positivo o negativo.
En otros robots, el cuadrante actual del eje 2, expresado como un nmero entero positivo o
negativo.
Eje lineal:
El intervalo actual en metros del eje 2, expresado como un nmero entero positivo o negativo.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato confdata.
Ejemplo 1
VAR confdata conf15 := [1, -1, 0, 0]
Una configuracin de robot conf15 para el tipo de robot IRB 5400 se define de la forma
siguiente:
La configuracin del eje 1 del robot es el cuadrante 1, es decir, de 90 a 180.
La configuracin del eje 4 del robot es el cuadrante -1, es decir, de -0 a (-90).
La configuracin del eje 6 del robot es el cuadrante 0, es decir, de 0 a 90.
La configuracin del eje 5 del robot es el cuadrante 0, es decir, de 0 a 90.
Estructura
< dataobject ofconfdata>
< cf1 of num >
< cf4 of num >
< cf6 of num >
< cfx of num >
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.8. confdata - Datos de configuracin del robot
RobotWare - OS
3HAC16581-5 Revisin: H 1094


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Manejo de datos de configuracin Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Configuracin del robot
Datos de posicin robtarget - Datos de posicin en la pgina 1172
Continuacin
3 Tipos de datos
3.9. corrdescr - Descriptor de generador de correcciones
Path Offset
1095 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.9. corrdescr - Descriptor de generador de correcciones
Utilizacin
corrdescr (Correction generator descriptor) se utiliza desde los generadores de
correcciones. Un generador de correcciones aade offsets geomtricos al sistema de
coordenadas de la trayectoria.
Descripcin
Los datos de tipo corrdescr contienen una referencia a un generador de correcciones.
La conexin a un generador de correcciones se realiza mediante la instruccin CorrCon y el
descriptor (la referencia al generador de correcciones) puede usarse para generar offsets
geomtricos en el sistema de coordenadas de la trayectoria, con ayuda de la instruccin
CorrWrite.
Los offsets proporcionados anteriormente pueden ser eliminados mediante la desconexin de
un generador de correcciones con la instruccin CorrDiscon. Es posible eliminar todos los
generadores de correcciones conectados, mediante la instruccin CorrClear.
La funcin CorrRead devuelve la suma de todos los offsets suministrados hasta ese
momento (incluye todos los generadores de correcciones que estn conectados).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato corrdescr.
Ejemplo 1
VAR corrdescr id;
VAR pos offset;
...
CorrCon id;
offset := [1, 2 ,3];
CorrWrite id, offset;
La conexin al generador de correcciones se realiza con la instruccin CorrCon. Se hace
referencia a l con el descriptor id. A continuacin, la entrega de los offsets al generador de
correcciones (con la referencia id) se realiza con la instruccin CorrWrite.
Caractersticas
corrdescr es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Conexin con un generador de correcciones CorrCon - Establece una conexin con un
generador de correcciones en la pgina 70
Desconexin de un generador de correc-
ciones
CorrDiscon - Cierra la conexin con un
generador de correcciones en la pgina 75
Escritura en un generador de correcciones CorrWrite - Escribe en un generador de cor-
recciones en la pgina 76
Lectura de los offsets totales actuales CorrRead - Lee los offsets totales actuales
en la pgina 810
Contina en la pgina siguiente
3 Tipos de datos
3.9. corrdescr - Descriptor de generador de correcciones
Path Offset
3HAC16581-5 Revisin: H 1096


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Eliminacin de todos los generadores de cor-
recciones
CorrClear - Elimina todos los generadores de
correcciones en la pgina 69
Caractersticas de los tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Para obtener ms informacin sobre Consulte
Continuacin
3 Tipos de datos
3.10. datapos - Inclusin de un bloque para un objeto de datos
RobotWare - OS
1097 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.10. datapos - Inclusin de un bloque para un objeto de datos
Utilizacin
datapos es el bloque de inclusin de un objeto de datos (dato interno del sistema)
recuperados con la funcin GetNextSym.
Descripcin
Los datos del tipo datapos contienen informacin acerca de dnde est definido un objeto
determinado dentro del sistema Se utilizan con las instrucciones GetDataVal y
SetDataVal.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato datapos.
Ejemplo 1
VAR datapos block;
VAR string name;
VAR bool truevar:=TRUE;
...
SetDataSearch "bool" \ Object:="my.*" \InMod:="mymod"\LocalSym;
WHILE GetNextSym(name,block) DO
SetDataVal name\Block:=block,truevar;
ENDWHILE
Esta sesin cambia a TRUE todos los objetos de datos locales de tipo bool cuyo nombre
comience con my en el mdulo mymod.
Caractersticas
datapos es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Definicin de un conjunto de smbolos en
una sesin de bsqueda
SetDataSearch - Definir el conjunto de
smbolos de una secuencia de bsqueda en la
pgina 441
Obtencin del siguiente smbolo coincidente GetNextSym - Obtiene el siguiente smbolo
coincidente en la pgina 862
Obtencin del valor de un objeto de datos GetDataVal - Obtiene el valor de un objeto de
datos en la pgina 108
Asignacin del valor de un objeto de datos SetDataVal - Establece el valor de un objeto
de datos en la pgina 445
Asignacin del valor de varios objetos SetAllDataVal - Establece un valor en todos
los objetos de datos de un conjunto definido
en la pgina 437
3 Tipos de datos
3.11. dionum - Valores digitales (0 - 1)
RobotWare - OS
3HAC16581-5 Revisin: H 1098


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.11. dionum - Valores digitales (0 - 1)
Utilizacin
dionum(digital input output numeric) se utiliza para valores digitales (0 1).
Este tipo de dato se utiliza junto con instrucciones y funciones dedicadas a la gestin de
seales digitales de entrada o salida.
Descripcin
Los datos del tipo dionum representan los valores digitales 0 1.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato dionum.
Ejemplo 1
CONST dionum close := 1;
SetDO grip1, close;
Definicin de la constante close con el valor 1. La seal grip1 cambia al valor close, es
decir 1.
Datos predefinidos
Las constantes high, low, y edge estn predefinidas en el mdulo de sistema base.sys:
CONST dionum low:=0;
CONST dionum high:=1;
CONST dionum edge:=2;
Las constantes low y high se han diseado para instrucciones de E/S.
Edge puede usarse junto con las instrucciones de interrupciones ISignalDI y ISignalDO.
Caractersticas
dionum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de instrucciones de entrada y
salida
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.12. dir - Estructura de directorio de archivos
RobotWare - OS
1099 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.12. dir - Estructura de directorio de archivos
Utilizacin
dir (directory) se utiliza para recorrer estructuras de directorios.
Descripcin
Los datos del tipo dir contienen una referencia a un directorio de un disco o una red. Pueden
conectarse al directorio fsico mediante la instruccin OpenDir y utilizarse a continuacin
para operaciones de lectura y escritura.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato dir.
Ejemplo 1
PROC lsdir(string dirname)
VAR dir directory;
VAR string filename;
OpenDir directory, dirname;
WHILE ReadDir(directory, filename) DO
TPWrite filename;
ENDWHILE
CloseDir directory;
ENDPROC
Este ejemplo imprime los nombres de todos los archivos o subdirectorios que se encuentran
dentro del directorio especificado.
Caractersticas
dir es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Apertura de un directorio OpenDir - Abre un directorio en la pgina 291
Creacin de un directorio MakeDir - Crea un nuevo directorio en la
pgina 219
Lectura de un directorio ReadDir - Lee la siguiente entrada de un
directorio en la pgina 953
Cierre de un directorio CloseDir - Cierra un directorio en la pgina 56
Eliminacin de un directorio RemoveDir - Elimina un directorio en la
pgina 362
Eliminacin de un archivo RemoveFile - Elimina un archivo en la pgina
364
Cambio del nombre de un archivo RenameFile - Cambia el nombre de un
archivo en la pgina 365
Comprobacin del tipo del archivo IsFile - Comprobar el tipo de un archivo en la
pgina 885
3 Tipos de datos
3.13. dnum - Valores numricos dobles
RobotWare - OS
3HAC16581-5 Revisin: H 1100


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.13. dnum - Valores numricos dobles
Utilizacin
dnum se utiliza para valores numricos, por ejemplo contadores. Es capaz de contener valores
enteros mayores que num pero sus caractersticas y funciones son las mismas que las de num.
Descripcin
El valor del tipo de dato dnum puede ser:
Un entero, por ejemplo -5
Un nmero con decimales, por ejemplo 3,45
Tambin puede escribirse de forma exponencial, por ejemplo 2E3 (=2*10^3 =2.000), 2,5E-
2 (=0,025).
Los enteros entre -4503599627370496-4503599627370496 y +4503599627370496 se
almacenan siempre como enteros exactos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato dnum.
Ejemplo 1
! Integer value
VAR dnum x1 := 0d1000000;
! Floating point value
VAR dnum x2 := 1000000;
! Add 1000000 to 1000000, integer calculation
x1 := x1 + 0d1000000;
! Add 1000000 to 1000000, floating-point calculation
x2 := x2 + 1000000;
Ejemplo 2
VAR dnum hex;
Var dnum bin;
VAR dnum oct;
! Hexadecimal representation of decimal value 4294967295
hex := 0xFFFFFFFF;
! Binary representation of decimal value 255
bin := 0b11111111;
! Octal representation of decimal value 255
oct := 0o377;
Ejemplo 3
a := 10 DIV 3;
b := 10 MOD 3;
Divisin entera en la que se asigna un entero a (=3) y se asigna a b el resto (=1).
Limitaciones
Los valores literales entre -8388607 y 8388608 asignados a una variable dnum se almacenan
siempre como enteros exactos. Para hacer que los valores literales mayores se interpreten
como valores enteros, utilice los prefijos 0d, 0b, 0o y 0x. Por ejemplo, los valores de
Contina en la pgina siguiente
3 Tipos de datos
3.13. dnum - Valores numricos dobles
RobotWare - OS
1101 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
-0d4503599627370496 a 0d4503599627370496 asignados a una variable dnum se almacenan
como enteros exactos. Sin el prefijo, los valores que estn fuera del rango de -8388607 a
8388608 se interpretan como valores de coma flotante.
Si un valor literal que ha sido interpretado como un valor num es asignado o usado como un
valor dnum, es convertido automticamente a dnum. Si un valor literal que ha sido
interpretado como un valor dnum es utilizado como un valor num, se genera un error de
enlace.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Valores numricos con el tipo de datos num num - Valores numricos en la pgina 1142
Expresiones numricas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Programacin
bsica en RAPID
Operaciones con valores numricos Manual de referencia tcnica - Descripcin
general de RAPID, seccin Programacin
bsica en RAPID
Continuacin
3 Tipos de datos
3.14. errdomain - Dominio de error
RobotWare - OS
3HAC16581-5 Revisin: H 1102


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.14. errdomain - Dominio de error
Utilizacin
errdomain (error domain) se utiliza para especificar un dominio de error.
Descripcin
Los datos de tipo errdomain representan el dominio en el que se ha registrado un error, una
advertencia o un cambio de estado.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato errdomain.
Ejemplo 1
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
del error se almacenan en las variables adecuadas.
Datos predefinidos
Puede usar las constantes predefinidas siguientes para especificar un dominio de error.
Caractersticas
errdomain es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Nombre Dominio del error Valor
COMMON_ERR Todos los dominios de error y de cambios de estado 0
OP_STATE Cambio de estado operativo 1
SYSTEM_ERR Errores de sistema 2
HARDWARE_ERR Errores de hardware 3
PROGRAM_ERR Errores de programa 4
MOTION_ERR Errores de movimiento 5
OPERATOR_ERR Errores de operador. Obsoleto, ya no se usa. 6
IO_COM_ERR Errores de E/S y comunicacin 7
USER_DEF_ERR Errores definidos por el usuario (elevados por RAPID) 8
OPTION_PROD_ERR Errores de productos opcionales. Obsoleto, ya no se usa. 9
PROCESS_ERR Errores de proceso 11
CFG_ERR Error de configuracin 12
Contina en la pgina siguiente
3 Tipos de datos
3.14. errdomain - Dominio de error
RobotWare - OS
1103 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Solicitud de una interrupcin para errores IError - Solicita una interrupcin para errores
en la pgina 124
Nmeros de errores Manual del operador - Solucin de problemas
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
3HAC16581-5 Revisin: H 1104


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.15. errnum - Nmero de error
Utilizacin
errnum se utiliza para describir todos los errores recuperables (no fatales) que se producen
durante la ejecucin del programa, como por ejemplo, la divisin por cero.
Descripcin
Si el robot detecta un error durante la ejecucin del programa, es posible resolverlo con el
gestor de errores de la rutina. Algunos ejemplos de estos errores es la existencia de valores
demasiado altos y la divisin por cero. Por tanto, se asignan valores diferentes a la variable
de sistema ERRNO, del tipo type errnum, en funcin de la naturaleza de un error. El gestor de
errores puede ser capaz de corregir un error leyendo el contenido de esta variable, tras lo cual
la ejecucin del programa puede continuar de la forma adecuada.
Los errores tambin pueden crearse desde el propio programa mediante la instruccin RAISE.
Este tipo concreto de error puede detectarse en el gestor de errores mediante la especificacin
de un nmero de error (de 0 a 90 o reservado mediante la instruccin BookErrNo) como
argumento de RAISE.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato errnum.
Ejemplo 1
reg1 := reg2 / reg3;
...
ERROR
IF ERRNO = ERR_DIVZERO THEN
reg3 := 1;
RETRY;
ENDIF
Si reg3 = 0, el robot detecta un error cuando se realiza la divisin. Sin embargo, es posible
detectar y corregir el error mediante la asignacin del valor 1 a reg3. A continuacin, puede
realizarse de nuevo la divisin y proseguir con la ejecucin del programa.
Ejemplo 2
CONST errnum machine_error := 1;
...
IF di1=0 RAISE machine_error;
...
ERROR
IF ERRNO=machine_error RAISE;
Se produce un error en una mquina (lo cual se detecta a travs de la seal de entrada di1).
Se salta al gestor de errores de la rutina que, a su vez, llama al gestor de errores de la rutina
desde la que se llam a la rutina actual, que es posiblemente el lugar en el que se puede
resolver el error. La constante machine_error se utiliza para informar al gestor de errores
de qu tipo exacto de error se trata.
Contina en la pgina siguiente
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
1105 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Datos predefinidos
Puede usar la variable de sistema ERRNO para obtener el ltimo error que se ha producido.
Existen varias constantes predefinidas que puede usar para determinar qu tipo de error se ha
producido.
Nombre Causa del error
ERR_ACC_TOO_LOW Se ha especificado una aceleracin o deceleracin
demasiado baja en las instrucciones PathAccLim o
WorldAccLim
ERR_ALIASIO_DEF FromSignal no est definido en la configuracin de E/S
ni ToSignal est declarado en el programa de RAPID ni
definido en la configuracin de E/S. Instruccin AliasIO
ERR_ALIASIO_TYPE Los tipos de seales de los argumentos FromSignal y
ToSignal no son el nombre de la seal (signalx).
Instruccin AliasIO.
ERR_ALRDYCNT La variable de interrupcin ya est vinculada a una rutina
TRAP
ERR_ALRDY_MOVING El robot ya est en movimiento cuando se ejecuta una
instruccin StartMove o StartMoveRetry
ERR_AO_LIM El valor de la seal analgica ScaleLag est fuera de
lmites en TriggIO, TriggEquip o TriggSpeed
ERR_ARGDUPCND Existe ms de un argumento condicional para el mismo
parmetro
ERR_ARGNAME El argumento es una expresin, no presente o de switch
al ejecutar ArgName
ERR_ARGNOTPER El argumento no es una referencia a una variable
persistente
ERR_ARGNOTVAR El argumento no es una referencia a una variable
ERR_ARGVALERR Error de valor de argumento
ERR_AXIS_ACT Eje no activo
ERR_AXIS_IND Eje no independiente
ERR_AXIS_MOVING Eje en movimiento
ERR_AXIS_PAR El eje indicado como parmetro de las instrucciones
TestSign y SetCurrRef no es correcto
ERR_BUSSTATE Se ejecuta IOEnable y el bus se encuentra en el estado
de error o entra en el estado de error antes de que la
unidad se active.
ERR_BWDLIMIT Lmite StepBwdPath
ERR_CALC_NEG Error de clculo negativo de StrDig
ERR_CALC_OVERFLOW Desbordamiento de clculo de StrDig
ERR_CALC_DIVZERO Divisin entre cero de StrDig
ERR_CALLIO_INTER Si una peticin IOEnable o IODisable es interrumpida
por otra peticin a la misma unidad.
ERR_CALLPROC Error en una llamada a un procedimiento (no es un pro-
cedimiento) en tiempo de ejecucin (con enlazamiento en
tiempo de ejecucin)
ERR_CFG_INTERNAL No se permite leer un parmetro interno - ReadCfgData
ERR_CFG_ILLTYPE Error de coincidencia de tipos en ReadCfgData,
WriteCfgData
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
3HAC16581-5 Revisin: H 1106


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERR_CFG_LIMIT Lmite de datos - WriteCfgData
ERR_CFG_NOTFND No encontrado en ReadCfgData, WriteCfgData
ERR_CFG_OUTOFBOUNDS Si ListNo tiene el valor -1 en la entrada o mayor que el
nmero de instancias disponibles - ReadCfgData,
WriteCfgData
ERR_CNTNOTVAR El objetivo de CONNECT no es una referencia a una
variable
ERR_CNV_NOT_ACT El transportador no est activado
ERR_CNV_CONNECT La instruccin WaitWobj ya est activa
ERR_CNV_DROPPED El objeto que estaba esperando la instruccin WaitWobj
ha sido desechado.
ERR_COMM_EXT Error de comunicacin con el sistema externo.
ERR_COMM_INIT_FAILED No se pudo inicializar la interfaz de comunicacin.
ERR_DATA_RECV Los datos recibidos del sistema remoto son incorrectos.
ERR_DEV_MAXTIME Se alcanz el tiempo lmite al ejecutar una instruccin
ReadBin, ReadNum o ReadStr
ERR_DIPLAG_LIM Valor de DipLag demasiado grande en la instruccin
TriggSpeed conectada al valor actual de TriggL/
TriggC/TriggJ
ERR_DIVZERO Divisin entre cero
ERR_EXECPHR Se ha intentado ejecutar una instruccin con un marcador
de sustitucin
ERR_FILEACC El acceso a un archivo se realiza de forma incorrecta
ERR_FILEEXIST El archivo ya existe
ERR_FILEOPEN No es posible abrir un archivo
ERR_FILNOTFND Archivo no encontrado.
ERR_FNCNORET Sin valor de retorno
ERR_FRAME Imposible calcular la nueva base de coordenadas
ERR_ILLDIM Dimensiones de matriz incorrectas
ERR_ILLQUAT Se ha intentado usar un valor no vlido de orientacin
(cuaternio)
ERR_ILLRAISE Nmero de error de RAISE fuera de rango
ERR_INOISSAFE Si se intenta desactivar temporalmente una interrupcin
segura con ISleep.
ERR_INOMAX No hay ms nmeros de interrupcin disponibles
ERR_INT_NOTVAL Entero no vlido, valor decimal
ERR_INT_MAXVAL Entero no vlido, valor demasiado grande o demasiado
pequeo
ERR_INVDIM Dimensiones diferentes
ERR_IODISABLE Se alcanz el tiempo lmite al ejecutar IODisable
ERR_IOENABLE Se alcanz el tiempo lmite al ejecutar IOEnable
ERR_IOERROR Error de E/S al ejecutar la instruccin Save
ERR_LINKREF Error de referencia en la tarea de programa
ERR_LOADED El mdulo de programa ya est cargado
ERR_LOADID_FATAL Slo para uso interno de LoadId
ERR_LOADID_RETRY Slo para uso interno de LoadId
Nombre Causa del error
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
1107 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERR_LOADNO_INUSE La sesin de carga se est utilizando en StartLoad
ERR_LOADNO_NOUSE La sesin de carga se est utilizando en CancelLoad
ERR_MAXINTVAL Valor entero demasiado alto
ERR_MODULE Nombre de mdulo incorrecto en la instruccin Save y
EraseModule
ERR_MOD_NOTLOADED Mdulo no cargado ni instalado desde ModTime
ERR_NAME_INVALID Si el nombre de la unidad no existe o si la unidad no
puede ser desactivada
ERR_NORUNUNIT Si se ha perdido el contacto con la unidad
ERR_NOTARR El dato no es una matriz.
ERR_NOTEQDIM La dimensin de la matriz utilizada al llamar a la rutina no
coincide con sus parmetros
ERR_NOTINTVAL No es un valor entero
ERR_NOTPRES Se utiliza un parmetro, a pesar de que no se utiliz el
argumento correspondiente en la llamada a la rutina
ERR_NOTSAVED El mdulo ha cambiado desde que fue cargado en el
sistema
ERR_NOT_MOVETASK Especifica que una tarea es una tarea sin movimiento
ERR_NUM_LIMIT El valor no es un entero y/o no est en el rango de -
8388607 a +8388608
ERR_OUTOFBND El ndice de la matriz est fuera de los lmites permitidos
ERR_OVERFLOW Desbordamiento de reloj
ERR_PATH Falta la ruta de destino en la instruccin Save
ERR_PATHDIST Distancia de recuperacin excesiva para la instruccin
StartMove o StartMoveRetry
ERR_PATH_STOP Detencin del movimiento a causa de un error de proceso
ERR_PID_MOVESTOP Slo para uso interno de LoadId
ERR_PID_RAISE_PP Error en ParIdRobValid o ParIdPosValid
ERR_PRGMEMFULL Memoria de programas llena
ERR_PROCSIGNAL_OFF La seal de proceso est desactivada
ERR_PROGSTOP El robot ya est en el estado de programa parado cuando
se ejecuta una instruccin StartMove o
StartMoveRetry
ERR_RANYBIN_CHK Error de suma de comprobacin detectado en la transfer-
encia de datos con la instruccin ReadAnyBin
ERR_RANYBIN_EOF Se ha detectado el final del archivo antes de que la
instruccin ReadAnyBin lea todos los caracteres
previstos
ERR_RCVDATA Se ha intentado leer un dato no numrico con ReadNum
ERR_REFUNKDAT Referencia al objeto de datos completo desconocido
ERR_REFUNKFUN Referencia a la funcin desconocida
ERR_REFUNKPRC Referencia a un procedimiento desconocido en el
momento del enlazado o en tiempo de ejecucin
(enlazamiento en tiempo de ejecucin)
ERR_REFUNKTRP Referencia a rutina TRAP desconocida
Nombre Causa del error
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
3HAC16581-5 Revisin: H 1108


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ERR_RMQ_DIM Dimensiones incorrectas: las dimensiones de los datos
indicados no son iguales a las dimensiones de los datos
del mensaje.
ERR_RMQ_FULL Cola de mensajes de destino llena.
ERR_RMQ_INVALID Ranura de destino perdida o no vlida.
ERR_RMQ_INVMSG Mensaje no vlido, probablemente enviado desde un
cliente distinto de una tarea de RAPID.
ERR_RMQ_MSGSIZE Tamao de mensaje excesivo. Reduzca el tamao del
mensaje.
ERR_RMQ_NAME El nombre de ranura indicado no es vlido o no se
encuentra.
ERR_RMQ_NOMSG No hay ningn mensaje en la cola, probablemente como
resultado de una cada de alimentacin.
ERR_RMQ_TIMEOUT Se ha alcanzado el tiempo lmite esperando una
respuesta en RMQSendWait.
ERR_RMQ_VALUE La sintaxis del valor no coincide con el tipo de dato.
ERR_ROBLIMIT El eje est fuera del rea de trabajo o ha excedido los
lmites de al menos un eje acoplado
ERR_SC_WRITE Error de envo a un ordenador externo
ERR_SIGSUPSEARCH La seal ya tiene un valor positivo al comienzo del
proceso de bsqueda
ERR_STARTMOVE El robot ya est en el estado en espera cuando se ejecuta
una instruccin StartMove o StartMoveRetry
ERR_SOCK_CLOSED El zcalo est cerrado o no est creado
ERR_SOCK_TIMEOUT La conexin no fue establecida antes de alcanzar el
tiempo lmite.
ERR_SPEED_REFRESH_LIM Redefinicin fuera de lmites en SpeedRefresh
ERR_STRTOOLNG La cadena es demasiado larga
ERR_SYM_ACCESS Error de acceso de lectura o escritura del smbolo
ERR_SYNCMOVEOFF Tiempo lmite de SyncMoveOff
ERR_SYNCMOVEON Tiempo lmite de SyncMoveOn
ERR_SYNTAX Error de sintaxis en el mdulo cargado
ERR_TASKNAME El nombre de tarea no se encuentra en el sistema
ERR_TP_DIBREAK Una instruccin de lectura de FlexPendant fue interrump-
ida por una entrada digital
ERR_TP_DOBREAK Una instruccin de lectura de FlexPendant fue interrump-
ida por una salida digital
ERR_TP_MAXTIME Tiempo lmite al ejecutar una instruccin de lectura desde
FlexPendant
ERR_TP_NO_CLIENT No hay ningn cliente para interactuar al utilizar una
instruccin de lectura desde FlexPendant
ERR_TRUSTLEVEL No se permite desactivar la unidad de E/S
ERR_TXTNOEXIST Tabla o ndice incorrecto en la funcin TextGet
ERR_UI_INITVALUE Error de valor inicial en la funcin UINumEntry
ERR_UI_MAXMIN El valor mnimo es mayor que el valor mximo en la
funcin UINumEntry
Nombre Causa del error
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.15. errnum - Nmero de error
RobotWare - OS
1109 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Caractersticas
errnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
ERR_UI_NOTINT El valor no es un entero al especificar que debe utilizarse
un entero al utilizar UINumEntry
ERR_UISHOW_FATAL Otro error distinto de ERR_UISHOW_FATAL en la
instruccin UIShow
ERR_UISHOW_FULL No queda espacio en el FlexPendant para otra aplicacin
al utilizar la instruccin UIShow
ERR_UNIT_PAR El parmetro Mech_unit de TestSignDefine es
incorrecto
ERR_UNKINO Nmero de interrupcin desconocido
ERR_UNKPROC Referencia incorrecta a la sesin de carga de una
instruccin WaitLoad
ERR_UNLOAD Error de descarga en una instruccin UnLoad o
WaitLoad
ERR_WAITSYNCTASK Tiempo lmite agotado en WaitSyncTask
ERR_WAIT_MAXTIME Se alcanz el tiempo lmite al ejecutar una instruccin
WaitDI o WaitUntil
ERR_WHLSEARCH No hay ningn paro de bsqueda
ERR_WOBJ_MOVING La unidad mecnica que contiene el objeto de trabajo
est moviendo CalcJointT
Nombre Causa del error
Para obtener ms informacin sobre Consulte
Recuperacin en caso de error Manual de referencia tcnica - Descripcin
general de RAPID
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID
Continuacin
3 Tipos de datos
3.16. errstr - Cadena de error
RobotWare - OS
3HAC16581-5 Revisin: H 1110


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.16. errstr - Cadena de error
Utilizacin
errstr se utiliza para escribir un texto en mensajes de error.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato errstr.
Ejemplo 1
VAR errstr arg:= "This is an example";
ErrLog 5100, \W, ERRSTR_TASK, ERRSTR_CONTEXT, arg, ERRSTR_EMPTY,
ERRSTR_UNUSED;
Datos predefinidos
Caractersticas
errstr es un tipo de dato de alias de string y por tanto hereda sus caractersticas.
Informacin relacionada
Nombre Descripcin
ERRSTR_EMPTY El argumento est vaco
ERRSTR_UNUSED El argumento no se utiliza.
ERRSTR_TASK Nombre de la tarea actual
ERRSTR_CONTEXT Contexto
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.17. errtype - Tipo de error
RobotWare - OS
1111 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.17. errtype - Tipo de error
Utilizacin
errtype (error type) se utiliza para especificar un tipo de error.
Descripcin
Los datos de tipo errtype representan el tipo (cambio de estado, advertencia, error) de un
mensaje de error.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato errtype.
Ejemplo 1
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
del error se almacenan en las variables adecuadas.
Datos predefinidos
Puede usar las constantes predefinidas siguientes para especificar un tipo de error.
Caractersticas
errtype es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Nombre Tipo de error Valor
TYPE_ALL Cualquier tipo de error (cambio de estado, advertencia, error) 0
TYPE_STATE Cambio de estado (mensaje operativo) 1
TYPE_WARN Advertencia (por ejemplo un error recuperable de RAPID) 2
TYPE_ERR Error 3
Para obtener ms informacin sobre Consulte
Solicitud de una interrupcin para errores IError - Solicita una interrupcin para errores
en la pgina 124
Nmeros de errores Manual del operador - Solucin de problemas
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.18. event_type - Tipo de rutina de evento
RobotWare - OS
3HAC16581-5 Revisin: H 1112


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.18. event_type - Tipo de rutina de evento
Utilizacin
event_typese utiliza para representar el tipo de la rutina de evento actual con una constante
simblica
Descripcin
Con la funcin EventType, es posible comprobar si el cdigo de RAPID real se ejecuta o no
a causa de algn evento de sistema especfico.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato event_type.
Ejemplo 1
VAR event_type my_type;
...
my_type := EventType( );
El tipo de rutina de evento que se ejecuta se almacenar en la variable my_type.
Datos predefinidos
Las siguientes constantes de tipo event_type estn predefinidas:
Caractersticas
event_type es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante de RAPID Valor Tipo de evento ejecutado
EVENT_NONE 0 No se ejecuta ningn evento
EVENT_POWERON 1 Evento POWER_ON
EVENT_START 2 Evento START
EVENT_STOP 3 Evento STOP
EVENT_QSTOP 4 Evento QSTOP
EVENT_RESTART 5 Evento RESTART
EVENT_RESET 6 Evento RESET
Para obtener ms informacin sobre Consulte
Rutinas de evento en general Manual de referencia tcnica - Parmetros del
sistema, seccin Controller - Event Routine
Obtener tipo de evento EventType - Obtiene el tipo de evento actual
dentro de cualquier rutina de evento en la
pgina 844
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.19. exec_level - Execution level
RobotWare - OS
1113 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.19. exec_level - Execution level
Utilizacin
exec_level se utiliza para especificar el nivel de ejecucin del programa.
Descripcin
La funcin ExecLevel permite obtener el nivel de ejecucin actual del cdigo de RAPID que
se est ejecutando en ese momento.
Datos predefinidos
Se han predefinido las constantes siguientes del tipo exec_level:
1) Con LEVEL_SERVICE, significa una rutina de evento, una rutina de servicio (incluidas las
llamadas a rutinas) y una rutina de interrupcin a partir de una seal de entrada del sistema.
Caractersticas
exec_level es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante de RAPID Valor Nivel de ejecucin
LEVEL_NORMAL 0 Ejecutar en el nivel bsico
LEVEL_TRAP 1 Execute in TRAP routine
LEVEL_SERVICE 2 Execute in service routine 1)
Para obtener ms informacin sobre Consulte
Obtener el nivel de ejecucin actual ExecLevel - Obtener el nivel de ejecucin en
la pgina 847
3 Tipos de datos
3.20. extjoint - Posicin de los ejes externos
RobotWare - OS
3HAC16581-5 Revisin: H 1114


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.20. extjoint - Posicin de los ejes externos
Utilizacin
extjoint se utiliza para definir las posiciones de eje de los ejes externos, los posicionadores
o los manipuladores de piezas de trabajo.
Descripcin
El robot puede controlar hasta seis ejes externos adems de los seis ejes internos, es decir, un
total de doce ejes. Los seis ejes externos tienen una denominacin de tipo lgico: a, b, c, d, e,
f. Estos ejes lgicos pueden conectarse a un eje fsico y, en este caso, la conexin se define
en los parmetros de sistema.
Se utilizan datos de tipo extjoint para almacenar los valores de las posiciones de cada uno
de los ejes lgicos del a al f.
Para cada eje lgico conectado a un eje fsico, la posicin se define de la forma siguiente:
Para los ejes de rotacin, la posicin se define como la rotacin en grados de la
posicin de calibracin.
Para los ejes lineales: la posicin se define como la distancia en mm existente respecto
de la posicin de calibracin.
Si un eje lgico no est conectado a uno fsico, se utiliza el valor 9E9 como valor de posicin,
para indicar que el eje no est conectado. En el momento de la ejecucin, se comprueban los
datos de posicin de los distintos ejes y se comprueba si est conectado el eje
correspondiente. Si el valor de posicin almacenado no cumple con la conexin actual del eje,
se aplica lo siguiente:
Si la posicin no est definida en los datos de posicin (su valor es 9E9), el valor no
se tendr en cuenta si el eje est conectado pero no activado. Sin embargo, si el eje est
activado, se genera un error.
Si la posicin est definida en los datos de posicin, a pesar de que el eje no est
conectado, el valor no se tendr en cuenta.
No se realiza ningn movimiento pero tampoco se genera ningn error en el caso de los ejes
que tengan datos de posicin vlidos pero que no estn activados.
Si se utiliza un offset del eje externo (instruccin EOffsOn o EOffsSet), las posiciones se
especifican en el sistema de coordenadas ExtOffs.
Si algn eje externo est funcionando en el modo independiente y el robot y sus ejes externos
deben realizar algn nuevo movimiento, los datos de posicin del eje externo en el modo
independiente no deben ser 9E9 sino algn valor arbitrario (no utilizado por el sistema).
Contina en la pgina siguiente
3 Tipos de datos
3.20. extjoint - Posicin de los ejes externos
RobotWare - OS
1115 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Componentes
eax_a
external axis a
Tipo de dato: num
La posicin del eje externo lgico a, expresada en grados o mm (en funcin del tipo de eje).
...
eax_f
external axis f
Tipo de dato: num
La posicin del eje externo lgico f, expresada en grados o mm (en funcin del tipo de eje).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos de la instruccin extjoint.
Ejemplo 1
VAR extjoint axpos10 := [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ;
La posicin de un posicionador externo axpos10, se define de la forma siguiente:
Se cambia a 11 la posicin del eje externo lgico "a", expresada en grados o mm (en
funcin del tipo de eje).
Se cambia a 12,3 la posicin del eje externo lgico "b", expresada en grados o mm
(en funcin del tipo de eje).
Los ejes de c a f permanecen sin definir.
Estructura
< dataobject ofextjoint>
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de posicin robtarget - Datos de posicin en la pgina
1172
jointtarget - Datos de posicin de eje en la
pgina 1125
Sistema de coordenadas ExtOffs EOffsOn - Activa un offset de ejes externos en
la pgina 86
Continuacin
3 Tipos de datos
3.21. handler_type - Type of execution handler
RobotWare - OS
3HAC16581-5 Revisin: H 1116


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.21. handler_type - Type of execution handler
Utilizacin
handler_type se utiliza para especificar el tipo de gestor de ejecucin de la rutina de
programa de RAPID.
Descripcin
Con la funcin ExecHandler, es posible comprobar si el cdigo de RAPID en s se ejecuta
en algn gestor de ejecucin de la rutina de programa de RAPID.
Ejemplos bsicos
A continuacin aparece un ejemplo bsico del tipo de dato handler_type.
Ejemplo 1
VAR handler_type my_type;
...
my_type := ExecHandler( );
El tipo de gestor de ejecucin en el que se encuentra el cdigo se almacena en la variable
my_type.
Datos predefinidos
Las siguientes constantes de tipo handler_type estn predefinidas:
Caractersticas
handler_type es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante de RAPID Valor Tipo de gestor de ejecucin
HANDLER_NONE 0 No se ejecuta en ningn gestor
HANDLER_BWD 1 Executed in BACKWARD handler
HANDLER_ERR 2 Executed in ERROR handler
HANDLER_UNDO 3 Executed in UNDO handler
Para obtener ms informacin sobre Consulte
Obtener el tipo de gestor de ejecucin ExecHandler - Obtener el tipo de gestor de
ejecucin en la pgina 846
3 Tipos de datos
3.22. icondata - Datos de visualizacin de iconos
RobotWare - OS
1117 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.22. icondata - Datos de visualizacin de iconos
Utilizacin
icondata se usa para representar los iconos estndar del dispositivo de usuario, por ejemplo
del FlexPendant.
Descripcin
Una constante de enumeracin icondata puede ser entregada al argumento Icon de la
instruccin UIMsgBox y las funciones UIMessageBox, UINumEntry, UINumTune,
UIAlphaEntry y UIListView.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato icondata.
Ejemplo 1
VAR btnres answer;
UIMsgBox "More ?" \Buttons:=btnYesNo \Icon:=iconInfo \Result:=
answer;
IF answer= resYes THEN
...
ELSEIF answer =ResNo THEN
...
ENDIF
La constante de enumeracin de botn estndar iconInfo mostrar un icono de informacin
en el encabezado del cuadro de mensaje de la interfaz de usuario.
Datos predefinidos
Se han predefinido en el sistema las constantes siguientes del tipo de dato icondata.
Caractersticas
icondata es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Valor Constante Icono
0 iconNone Ningn icono
1 iconInfo Icono de informacin
2 iconWarning Icono de aviso
3 iconError Icono de error
Para obtener ms informacin sobre Consulte
Cuadro de mensaje de interaccin con el
usuario
UIMsgBox - Cuadro de mensaje de usuario de
tipo bsico en la pgina 653
Cuadro de mensaje de interaccin con el
usuario
UIMessageBox - Cuadro de mensaje de
usuario de tipo avanzado en la pgina 1054
Introduccin de nmero de interaccin con
el usuario
UINumEntry - Introduccin de nmero de
usuario en la pgina 1061
Contina en la pgina siguiente
3 Tipos de datos
3.22. icondata - Datos de visualizacin de iconos
RobotWare - OS
3HAC16581-5 Revisin: H 1118


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ajuste de nmero de interaccin con el
usuario
UINumTune - Ajuste de nmero de usuario en
la pgina 1067
Introduccin alfanumrica de interaccin
con el usuario
UIAlphaEntry - Introduccin alfanumrica del
usuario en la pgina 1041
Vista de lista de interaccin con el usuario UIListView - Vista de lista de usuario en la
pgina 1047
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Para obtener ms informacin sobre Consulte
Continuacin
3 Tipos de datos
3.23. identno - Identidad para las instrucciones de movimiento
MultiMove - Coordinated Robots
1119 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.23. identno - Identidad para las instrucciones de movimiento
Utilizacin
identno (Identity Number) se utiliza para controlar la sincronizacin de dos o ms
movimientos sincronizados y coordinados entre s.
El tipo de dato identno slo puede usarse en un sistema MultiMove que tenga la opcin
Coordinated Robots y slo en las tareas de programa definidas como tareas de movimiento.
Descripcin
Las instrucciones de movimiento de un sistema MultiMove deben programarse con el
parmetro \ID del tipo de dato identno si se trata de un movimiento sincronizado y adems
\ID no se permite en ningn otro caso.
El nmero de \ID especificado debe ser el mismo en todas las tareas de programa que
cooperan entre s. El nmero de ID constituye una garanta de que los movimientos no se
mezclen en tiempo de ejecucin.
En el modo sincronizado coordinado, debe existir la misma cantidad de instrucciones de
movimiento ejecutadas en todas las tareas de programa. El parmetro opcional \ID del tipo
de dato identno se utiliza para comprobar que las instrucciones de movimiento asociadas se
ejecuten en paralelo antes del inicio de los movimientos. El nmero de \ID debe ser el mismo
en todas las instrucciones de movimiento que se ejecuten en paralelo.
El usuario no tiene que declarar ninguna variable del tipo identno, pero puede usar
directamente un nmero en las instrucciones (consulte Ejemplos bsicos).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato identno.
Ejemplo 1
PERS tasks task_list{2} := [["T_ROB1"],["T_ROB2"]];
VAR syncident sync1;
VAR syncident sync2;
PROC proc1()
...
SyncMoveOn sync1, task_list;
MoveL *\ID:=10,v100,z50,mytool;
MoveL *\ID:=20,v100,fine,mytool;
SyncMoveOff sync2;
...
ENDPROC
Caractersticas
identno es un tipo de dato de alias de num y por tanto hereda sus propiedades.
Contina en la pgina siguiente
3 Tipos de datos
3.23. identno - Identidad para las instrucciones de movimiento
MultiMove - Coordinated Robots
3HAC16581-5 Revisin: H 1120


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Continuacin
3 Tipos de datos
3.24. intnum - Identidad de interrupcin
RobotWare - OS
1121 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.24. intnum - Identidad de interrupcin
Utilizacin
intnum (interrupt numeric) se usa para identificar una interrupcin.
Descripcin
Cuando se conecta una variable de tipo intnum a una rutina TRAP, recibe un valor especfico
que identifica a la interrupcin. A continuacin, la variable se utiliza en todas las operaciones
realizadas con la interrupcin, por ejemplo, al pedir o desactivar una interrupcin.
Es posible conectar ms de una identidad de interrupcin a una misma rutina TRAP. Por tanto,
la variable de sistema INTNO puede usarse en las rutinas TRAP para determinar el tipo de
interrupcin que tiene lugar.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato intnum.
Ejemplo 1
VAR intnum feeder_error;
...
CONNECT feeder_error WITH correct_feeder;
ISignalDI di1, 1, feeder_error;
Se genera una interrupcin cuando la entrada di1 cambia de valor a 1. Cuando esto ocurre, se
hace una llamada a la rutina TRAP correct_feeder.
Ejemplo 2
VAR intnum feeder1_error;
VAR intnum feeder2_error;
...
PROC init_interrupt();
...
CONNECT feeder1_error WITH correct_feeder;
ISignalDI di1, 1, feeder1_error;
CONNECT feeder2_error WITH correct_feeder;
ISignalDI di2, 1, feeder2_error;
...
ENDPROC
...
TRAP correct_feeder
IF INTNO=feeder1_error THEN
...
ELSE
...
ENDIF
...
ENDTRAP
Se genera una interrupcin cuando una de las entradas, di1 o di2, cambia de valor a 1. En
este caso, se realiza una llamada a la rutina TRAP correct_feeder. La variable de sistema
INTNO se utiliza en la rutina TRAP para determinar qu tipo de interrupcin se ha producido.
Contina en la pgina siguiente
3 Tipos de datos
3.24. intnum - Identidad de interrupcin
RobotWare - OS
3HAC16581-5 Revisin: H 1122


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
El nmero mximo de variables activas del tipo intnum que pueden existir en un momento
determinado (entre CONNECT y IDelete) est limitado a 70. El nmero mximo de
interrupciones que puede albergar la cola de ejecucin de rutinas TRAP en un momento
determinado est limitado a 30.
Caractersticas
Intnum es un tipo de dato de alias de num y por tanto hereda sus propiedades.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Tipos de datos de alias Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Conexin de interrupciones CONNECT - Conecta una interrupcin a una
rutina TRAP en la pgina 63
Continuacin
3 Tipos de datos
3.25. iodev - Canales serie y archivos
RobotWare - OS
1123 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.25. iodev - Canales serie y archivos
Utilizacin
iodev(I/O device) se utiliza para canales serie, como impresoras y archivos.
Descripcin
Los datos de tipo iodev contienen una referencia a un archivo o a un canal serie. Pueden
conectarse a la unidad fsica mediante la instruccin Open y utilizarse a continuacin para
operaciones de lectura y escritura.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato iodev.
Ejemplo 1
VAR iodev file;
...
Open "HOME:/LOGDIR/INFILE.DOC", file\Read;
input := ReadNum(file);
Se abre el archivo INFILE.DOC para lectura. Al leer del archivo, se utiliza file como
referencia en lugar del nombre del archivo.
Caractersticas
iodev es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin a travs de canales serie Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Configuracin de canales serie Manual de referencia tcnica - Parmetros del
sistema
Caractersticas de los tipos de datos sin
valor
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.26. iounit_state - Estado de la unidad de E/S
RobotWare - OS
3HAC16581-5 Revisin: H 1124


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.26. iounit_state - Estado de la unidad de E/S
Utilizacin
iounit_state se utiliza para representar el estado momentneo de una unidad de E/S.
Descripcin
Las constantes de iounit_state se han diseado para usarlas al comprobar el valor de
retorno de la funcin IOUnitState.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato iounit_state.
Ejemplo 1
IF (IOUnitState ("UNIT1" \Phys) = IOUNIT_PHYS_STATE_RUNNING) THEN
! Possible to access some signal on the I/O unit
ELSE
! Read/Write some signal on the I/O unit result in error
ENDIF
Se comprueba si la unidad de E/S UNIT1 funciona correctamente.
Datos predefinidos
Las constantes simblicas predefinidas del tipo de dato iounit_state pueden encontrarse
en la funcin IOUnitState.
Caractersticas
iounit_state es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin del estado actual de una unidad
de E/S
IOUnitState - Obtiene el estado actual de una
unidad de E/S en la pgina 882
Instrucciones de entrada/salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros del
sistema
3 Tipos de datos
3.27. jointtarget - Datos de posicin de eje
RobotWare - OS
1125 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.27. jointtarget - Datos de posicin de eje
Utilizacin
jointtarget se utiliza para definir la posicin a la que se movern los ejes del robot y los
ejes externos al ejecutar una instruccin MoveAbsJ.
Descripcin
jointtarget define las posiciones individuales de los distintos ejes, tanto de los del robot
como de los externos.
Componentes
robax
robot axes
Tipo de dato: robjoint
Posiciones de eje de los ejes del robot, en grados.
La posicin del eje se define como la rotacin en grados del eje (brazo) correspondiente en
sentido positivo o negativo a partir de la posicin de calibracin del eje.
extax
external axes
Tipo de dato: extjoint
La posicin de los ejes externos.
La posicin se define de la forma siguiente para cada eje independiente (eax_a, eax_b
... eax_f):
Para los ejes de rotacin, la posicin se define como la rotacin en grados de la
posicin de calibracin.
Para los ejes lineales, la posicin se define como la distancia en mm existente respecto
de la posicin de calibracin.
Los ejes externos eax_a ... son ejes lgicos. La relacin existente entre el nmero lgico
del eje y el nmero fsico del eje se define en los parmetros del sistema.
El valor 9E9 se utiliza para definir los ejes que no estn conectados. Si los ejes definidos en
los datos de posicin son distintos de los ejes que estn conectados realmente en el momento
de la ejecucin del programa, ocurre lo siguiente:
Si la posicin no est definida en los datos de posicin (su valor es 9E9), el valor no
se tendr en cuenta si el eje est conectado pero no activado. Sin embargo, si el eje est
activado, se genera un error.
Si la posicin est definida en los datos de posicin, a pesar de que el eje no est
conectado, el valor no se tiene en cuenta.
No se realiza ningn movimiento pero tampoco se genera ningn error en el caso de los ejes
que tengan datos de posicin vlidos pero que no estn activados.
Si algn eje externo est funcionando en el modo independiente y el robot y sus ejes externos
deben realizar algn nuevo movimiento, los datos de posicin del eje externo en el modo
independiente no deben ser 9E9 sino algn valor arbitrario (no utilizado por el sistema).
Contina en la pgina siguiente
3 Tipos de datos
3.27. jointtarget - Datos de posicin de eje
RobotWare - OS
3HAC16581-5 Revisin: H 1126


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato jointtarget.
Ejemplo 1
CONST jointtarget calib_pos := [ [ 0, 0, 0, 0, 0, 0], [ 0, 9E9,
9E9, 9E9, 9E9, 9E9] ];
En el caso del sistema IRB2400, la posicin de calibracin normal se define en calib_pos
con el tipo de dato jointtarget. La posicin 0 (grados o mm) de calibracin normal se
define tambin para el eje externo lgico a. Los ejes externos del b al f permanecen sin definir.
Estructura
< dataobject of jointtarget >
< robax of robjoint >
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Desplazamiento hacia una posicin de ejes MoveAbsJ - Mueve el robot a una posicin
de ejes absoluta en la pgina 231
MoveExtJ - Mueve una o varias unidades
mecnicas sin TCP en la pgina 252
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Configuracin de ejes externos Application manual - Additional axes and
stand alone controller
Continuacin
3 Tipos de datos
3.28. listitem - Estructura de datos de elementos de lista
RobotWare - OS
1127 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.28. listitem - Estructura de datos de elementos de lista
Utilizacin
listitem se utiliza para definir lneas de men que contienen texto con pequeos iconos
opcionales en el dispositivo de usuario, por ejemplo el FlexPendant.
Descripcin
Los datos del tipo listitem permiten al usuario definir lneas de men para la funcin
UIListView.
Ejemplo bsico
A continuacin aparecen algunos ejemplos bsicos del tipo de dato listitem.
Ejemplo 1
CONST listitem list {3}:=[[stEmpty, "Item1"], [stEmpty, "Item2"],
[stEmpty, "Item3"]];
Una lista de men con Item1....Item3 para su uso en la funcin UIListView.
Componentes
El tipo de dato contiene los componentes siguientes:
image
Tipo de dato: string
La ruta, incluido el nombre de archivo, de la imagen de icono a mostrar (no implementado en
esta versin de software).
Utilice una cadena vaca "" o stEmpty si no desea mostrar ningn icono.
text
Tipo de dato: string
El texto de la lnea de men a mostrar.
Estructura
<dataobject of listitem>
<image of string>
<text of string>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Interaccin con el usuario con ListView UIListView - Vista de lista de usuario en la
pgina 1047
3 Tipos de datos
3.29. loaddata - Datos de carga
RobotWare - OS
3HAC16581-5 Revisin: H 1128


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.29. loaddata - Datos de carga
Utilizacin
loaddata se utiliza para describir las cargas fijadas a la interfaz mecnica del robot (la brida
de montaje del robot).
Los datos de carga suelen definir la carga til (la carga de la pinza se define con la instruccin
GripLoad) del robot, es decir, la carga sostenida por la pinza del robot. La carga de la
herramienta se especifica en los datos de la herramienta (tooldata) que incluyen los datos
de carga.
Descripcin
Se utilizan cargas especificadas para configurar un modelo de la dinmica del robot, de forma
que sus movimientos puedan controlarse de la mejor forma posible.
AVISO!
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 superior a la carga real:
El robot no funcionar a su capacidad mxima
Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
Riesgo de sobrecarga de la estructura mecnica
Si el valor de los datos de carga especificados es inferior a la carga real:
Riesgo de sobrecarga de la estructura mecnica
Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
La carga til se conecta y desconecta mediante la instruccin GripLoad.
Componentes
mass
Tipo de dato: num
El peso de la carga en kilos.
cog
center of gravity
Tipo de dato: pos
El centro de gravedad de la carga de la herramienta, para la definicin del sistema de
coordenadas de carga de la herramienta. Si se utiliza una herramienta estacionaria, se trata del
centro de gravedad de la herramienta que sostiene el objeto de trabajo.
El centro de gravedad de la carga til, para la definicin del sistema de coordenadas de la
carga til. Si se utiliza una herramienta estacionaria, se utiliza el sistema de coordenadas del
objeto.
Contina en la pgina siguiente
3 Tipos de datos
3.29. loaddata - Datos de carga
RobotWare - OS
1129 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
aom
axes of moment
Tipo de dato: orient
Carga de la herramienta
La orientacin del sistema de coordenadas de la carga de la herramienta, definida por los ejes
de inercia principales de la carga de la herramienta. Expresado en el sistema de coordenadas
de la mueca como cuaternios (q1, q2, q3, q4). Si se utiliza una herramienta estacionaria,
se trata de los ejes de inercia principales de la herramienta que sostiene el objeto de trabajo.
Carga til
La figura muestra la restriccin de la reorientacin de los sistemas de coordenadas de la carga
de la herramienta y de la carga til.
xx0500002370
La orientacin del sistema de coordenadas de la carga til, definida por los ejes de inercia
principales de la carga til. Expresado en el sistema de coordenadas de la herramienta como
cuaternios (q1, q2, q3, q4). Si se utiliza una herramienta estacionaria, se utiliza el sistema de
coordenadas del objeto.
La figura muestra el centro de gravedad y los ejes de inercia de la carga til.
xx0500002371
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.29. loaddata - Datos de carga
RobotWare - OS
3HAC16581-5 Revisin: H 1130


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ix
inertia x
Tipo de dato: num
El momento de inercia de la carga alrededor del eje x del sistema de coordenadas de la carga
de la herramienta o de la carga til, en kgm
2
.
La definicin correcta de los momentos de inercia permitir una utilizacin ptima del
planificador de trayectorias y un mejor control de los ejes. Esto puede resultar especialmente
importante a la hora de manejar grandes planchas de metal, etc. Todos los momentos de
inercia ix, iy e iz iguales a 0 kgm
2
implican una masa puntual.
Normalmente, slo es necesario definir momentos de inercia cuando la distancia existente
entre la brida de montaje y el centro de gravedad es menor que el tamao de la carga (consulte
la figura siguiente).
La figura muestra que normalmente es necesario definir el momento de inercia cuando la
distancia es menor que el tamao de la carga.
xx0500002372
iy
inertia y
Tipo de dato: num
El momento de inercia de la carga alrededor del eje y, expresado en kgm
2
.
Para obtener ms informacin, consulte ix.
iz
inertia z
Tipo de dato: num
El momento de inercia de la carga alrededor del eje z, expresado en kgm
2
.
Para obtener ms informacin, consulte ix.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato loaddata.
Ejemplo 1
PERS loaddata piece1 := [ 5, [50, 0, 50], [1, 0, 0, 0], 0, 0, 0];
La carga til de la primera figura de la seccin Carga til en la pgina 1129 se describe a
partir de los valores siguientes:
Peso 5 kg.
El centro de gravedad es x =x =50, y =0 y z =50 mm en el sistema de coordenadas
de la herramienta.
La carga til es una masa puntual.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.29. loaddata - Datos de carga
RobotWare - OS
1131 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
Set gripper;
WaitTime 0.3;
GripLoad piece1;
Conexin de la carga til, piece1, especificada en el momento en que el robot sujeta la carga
piece1.
Ejemplo 3
Reset gripper;
WaitTime 0.3;
GripLoad load0;
Desconexin de la carga til, especificada en el momento en que el robot suelta una carga til.
Limitaciones
La carga til slo debe definirse mediante variables persistentes (PERS) y no desde dentro de
una rutina. De esta forma, los valores se guardan al guardar el programa y se recuperan al
cargarlo.
Los argumentos de tipo loaddata de la instruccin GripLoad deben ser slo del tipo
persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos
La carga load0 define una carga til cuya masa es igual a 0 kg, es decir, ninguna carga. Esta
carga se utiliza como argumento en la instruccin GripLoad para desconectar una carga til.
La carga load0 est siempre disponible desde el programa, pero no puede ser modificada
(est almacenada en el mdulo de sistema BASE).
PERS loaddata load0 := [ 0.001, [0, 0, 0.001], [1, 0, 0, 0],0, 0
,0 ];
Estructura
< dataobjectof loaddata >
< mass of num >
< cog of pos >
< x of num >
< y of num >
< z of num >
< aom of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< ix of num >
< iy of num >
< iz of num >
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.29. loaddata - Datos de carga
RobotWare - OS
3HAC16581-5 Revisin: H 1132


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Definicin de cargas de herramienta tooldata - Datos de herramientas en la pgina
1206
Activacin de una carga til GripLoad - Define la carga til del robot en la
pgina 117
Continuacin
3 Tipos de datos
3.30. loadidnum - Tipo de identificacin de la carga
RobotWare - OS
1133 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.30. loadidnum - Tipo de identificacin de la carga
Utilizacin
loadidnum se utiliza para representar un entero con una constante simblica.
Descripcin
Las constantes loadidnum se han diseado para ser usadas durante la identificacin de
cargas de herramientas o cargas tiles, como argumentos de la instruccin LoadId. Consulte
el ejemplo siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato loadidnum.
Ejemplo 1
LoadId TOOL_LOAD_ID, MASS_WITH_AX3, gun1;
Identificacin de la carga de la herramienta gun1 con identificacin de la masa con los
movimientos del eje 3 del robot, a travs del uso de la constante MASS_WITH_AX3 del tipo de
dato loadidnum.
Datos predefinidos
Se han predefinido las constantes simblicas siguientes para el tipo de dato loadidnum.
Puede usarlas como argumentos de la instruccin LoadId.
Caractersticas
loadidnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Valor
Constante
simblica
Comentario
1 MASS_KNOWN Masa conocida de la herramienta o de la carga til
respectivamente.
2 MASS_WITH_AX3 Masa de la herramienta o de la carga til desconocida. La
identificacin de la masa se realiza con los movimientos
del eje 3.
Para obtener ms informacin sobre Consulte
Identificacin de carga de un programa
predefinido
Manual del operador - IRC5 con FlexPendant,
seccin Programacin y testing - Rutinas de
servicio - LoadIdentify, rutina de servicio de
identificacin de cargas
Tipo de robot vlido ParIdRobValid - Tipo de robot vlido para la
identificacin de parmetros en la pgina 926
Posicin de robot vlida ParIdPosValid - Posicin de robot vlida para
la identificacin de parmetros en la pgina
923
Identificacin de cargas con un ejemplo
completo
LoadId - Identificacin de carga de la
herramienta o la carga til en la pgina 213
3 Tipos de datos
3.31. loadsession - Programar una sesin de carga
RobotWare - OS
3HAC16581-5 Revisin: H 1134


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.31. loadsession - Programar una sesin de carga
Utilizacin
loadsession se utiliza para definir distintas sesiones de carga de mdulos de programa de
RAPID.
Descripcin
Los datos de tipo loadsession se utilizan en las instrucciones StartLoad y WaitLoad
para identificar la sesin de carga. loadsession slo contiene una referencia a la sesin de
carga.
Caractersticas
loadsession es un tipo de dato sin valor y no puede usarse en operaciones basadas en
valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Carga de mdulos de programa durante la
ejecucin
StartLoad - Carga un mdulo de programa
durante la ejecucin en la pgina 490
WaitLoad - Conecta el mdulo cargado a la
tarea en la pgina 687
Caractersticas de los tipos de datos sin
valor
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.32. mecunit - Unidad mecnica
RobotWare - OS
1135 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.32. mecunit - Unidad mecnica
Utilizacin
mecunit se utiliza para definir las distintas unidades mecnicas que pueden controlarse y
utilizarse desde el programa.
Los nombres de las unidades mecnicas se definen en los parmetros del sistema y, por tanto,
no debe definirlos en el programa.
Descripcin
Los datos del tipo mecunit slo contienen una referencia a la unidad mecnica.
Limitaciones
No debe definir los datos de tipo mecunit en el programa. Sin embargo, si lo hace, aparecer
un mensaje de error tan pronto como se ejecute la instruccin o funcin que hace referencia
a este dato mecunit. Sin embargo, s es posible utilizarlos como parmetros al declarar una
rutina.
Datos predefinidos
Todas las unidades mecnicas definidas en los parmetros del sistema estn predefinidas en
cada tarea de programa. Sin embargo, slo las unidades mecnicas controladas por la tarea de
programa actual (definida en los parmetros de sistema Controller/Task/Use Mechanical Unit
Group), pueden usarse para realizar cualquier operacin de control.
Adems, la variable predefinida ROB_ID del tipo de dato mecunit est disponible en cada
tarea de programa. Si la tarea de programa actual controla un robot, la variable de alias
ROB_ID contiene una referencia a uno de los robots de ROB_1 a ROB_6, que puede usarse
para controlar el funcionamiento del robot. La variable ROB_ID no es vlida si la tarea de
programa actual no controla ningn robot.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato mecunit.
Ejemplo 1
IF TaskRunRob() THEN
IndReset ROB_ID, 6;
ENDIF
Si la tarea de programa actual controla un robot, restablece el eje 6 del robot.
Caractersticas
mecunit es un tipo de dato sin valor. Esto significa que los datos de este tipo no son
compatibles con operaciones basadas en valores.
Contina en la pgina siguiente
3 Tipos de datos
3.32. mecunit - Unidad mecnica
RobotWare - OS
3HAC16581-5 Revisin: H 1136


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comprobacin de si la tarea controla algn
robot
TaskRunRob - Comprueba si una tarea
controla algn robot en la pgina 1024
Comprobacin de si la tarea controla alguna
unidad mecnica
TaskRunMec - Comprueba si una tarea
controla alguna unidad mecnica en la
pgina 1023
Obtencin del nombre de las unidades
mecnicas del sistema
GetNextMechUnit - Obtener el nombre y los
datos de las unidades mecnicas en la
pgina 859
Activacin y desactivacin de unidades
mecnicas
ActUnit - Activa una unidad mecnica en la
pgina 17
DeactUnit - Desactiva una unidad mecnica
en la pgina 78
Configuracin de unidades mecnicas Manual de referencia tcnica - Parmetros
del sistema
Caractersticas de los tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.33. motsetdata - Datos de parmetros de movimiento
RobotWare - OS
1137 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.33. motsetdata - Datos de parmetros de movimiento
Utilizacin
motsetdata se utiliza para definir un conjunto de parmetros de movimiento que afectan a
todas las instrucciones de posicionamiento del programa:
Velocidad mxima y ajuste de velocidad
Datos de aceleracin
Comportamiento cerca de puntos singulares
Gestin de distintas configuraciones de robot
Ajuste de la resolucin de las trayectorias
Supervisin del movimiento
Limitacin de la aceleracin y deceleracin
Reorientacin de la herramienta durante trayectorias circulares
Normalmente no es necesario utilizar este tipo de dato dado que estos valores slo pueden
establecerse con las instrucciones VelSet, AccSet, SingArea, ConfJ,
ConfL,PathResol,MotionSup, PathAccLim, CirPathMode y WorldAccLim.
Los valores actuales de estos parmetros de movimiento estn disponibles a travs de la
variable de sistema C_MOTSET.
Descripcin
Los parmetros de movimiento actuales (almacenados en la variable de sistema C_MOTSET)
afectan a todos los movimientos.
Componentes
vel.oride
Tipo de dato: veldata/num
Velocidad como porcentaje de la velocidad programada.
vel.max
Tipo de dato: veldata/num
Velocidad mxima en mm/seg.
acc.acc
Tipo de dato: accdata/num
Aceleracin y deceleracin como porcentaje de los valores normales.
acc.ramp
Tipo de dato: accdata/num
La proporcin en que la aceleracin y deceleracin aumentan como porcentaje de los valores
normales.
Contina en la pgina siguiente
3 Tipos de datos
3.33. motsetdata - Datos de parmetros de movimiento
RobotWare - OS
3HAC16581-5 Revisin: H 1138


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
sing.wrist
Tipo de dato: singdata/bool
La orientacin hasta la cual se permite que la herramienta se desve levemente, para prevenir
una singularidad de mueca.
sing.arm
Tipo de dato: singdata/bool
La orientacin hasta la cual se permite que la herramienta se desve levemente, para prevenir
una singularidad de brazo (no implementada).
sing.base
Tipo de dato: singdata/bool
La orientacin de la que no debe desviarse la herramienta.
conf.jsup
Tipo de dato: confsupdata/bool
La supervisin de la configuracin de los ejes est activa durante el movimiento de los ejes.
conf.lsup
Tipo de dato: confsupdata/bool
La supervisin de la configuracin de los ejes est activa durante el movimiento lineal y
circular.
conf.ax1
Tipo de dato: confsupdata/num
Desviacin mxima permitida en grados para el eje 1 (no se utiliza en esta versin).
conf.ax4
Tipo de dato: confsupdata/num
Desviacin mxima permitida en grados para el eje 4 (no se utiliza en esta versin).
conf.ax6
Tipo de dato: confsupdata/num
Desviacin mxima permitida en grados para el eje 6 (no se utiliza en esta versin).
pathresol
Tipo de dato:num
El ajuste actual como porcentaje de la resolucin de trayectoria configurada.
motionsup
Tipo de dato: bool
Conmutar el estado de la funcin de supervisin de movimientos de RAPID (TRUE =On y
FALSE =Off).
tunevalue
Tipo de dato: num
Ajuste actual de RAPID como porcentaje del valor de ajuste configurado para la funcin de
supervisin de movimientos.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.33. motsetdata - Datos de parmetros de movimiento
RobotWare - OS
1139 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
acclim
Tipo de dato: bool
Limitacin de aceleracin de la herramienta a lo largo de la trayectoria. (TRUE =con
limitacin y FALSE =sin limitacin).
accmax
Tipo de dato: num
Limitacin de aceleracin del TCP en m/s
2
. Si acclim tiene el valor FALSE, el valor es
siempre -1.
decellim
Tipo de dato: bool
Limitacin de deceleracin de la herramienta a lo largo de la trayectoria. (TRUE =con
limitacin y FALSE =sin limitacin).
decelmax
Tipo de dato: num
Limitacin de deceleracin del TCP en m/s
2
. Si decellim tiene el valor FALSE, el valor es
siempre -1.
cirpathreori
Tipo de dato: num
Reorientacin de la herramienta durante trayectorias circulares:
0 =Mtodo estndar con interpolacin en la base de coordenadas de la trayectoria
1 =Mtodo modificado con interpolacin en la base de coordenadas del objeto
2 =Mtodo modificado con orientacin programada de la herramienta en CirPoint
worldacclim
Tipo de dato: bool
Limitacin de aceleracin en el sistema de coordenadas mundo. (TRUE =con limitacin y
FALSE =sin limitacin).
worldaccmax
Tipo de dato: num
Limitacin de aceleracin en el sistema de coordenadas mundo en m/s
2
. Si worldacclim
tiene el valor FALSE, el valor es siempre -1.
Limitaciones
Slo y slo uno de los componentes sing.wrist, sing.arm o sing.base puede tener un
valor igual a TRUE.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.33. motsetdata - Datos de parmetros de movimiento
RobotWare - OS
3HAC16581-5 Revisin: H 1140


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato motsetdata.
Ejemplo 1
IF C_MOTSET.vel.oride > 50 THEN
...
ELSE
...
ENDIF
Se ejecutan partes distintas del programa en funcin del ajuste de velocidad actual.
Datos predefinidos
C_MOTSET describe los parmetros de movimiento actuales del robot y est siempre
disponible desde el programa. Por otro lado, C_MOTSET slo puede modificarse mediante un
conjunto de instrucciones, no mediante asignacin.
Los valores predeterminados siguientes para los parmetros de movimiento se establecen:
En los arranques en fro.
Cuando se carga un nuevo programa.
Cuando se inicia la ejecucin del programa desde el principio
VAR motsetdata C_MOTSET := [
[ 100, 500 ], -> veldata
[ 100, 100 ], -> accdata
[ FALSE, FALSE, TRUE ], -> singdata
[ TRUE, TRUE, 30, 45, 90 ] -> confsupdata
100, -> path resolution
TRUE, -> motionsup
100, -> tunevalue
FALSE, -> acclim
-1, -> accmax
FALSE, -> decellim
-1, -> decelmax
0, -> cirpathreori
FALSE, -> worldacclim
-1], -> worldaccmax
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.33. motsetdata - Datos de parmetros de movimiento
RobotWare - OS
1141 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Estructura
<dataobject of motsetdata>
<vel of veldata> ->Affected by instruction VelSet
<oride of num>
<max of num>
<acc of accdata> ->Affected by instruction AccSet
<acc of num>
<ramp of num>
<sing of singdata> ->Affected by instruction SingArea
<wrist of bool>
<arm of bool>
<base of bool>
<conf of confsupdata> ->Affected by instructions ConfJ and ConfL
<jsup of bool>
<lsup of bool>
<ax1 of num>
<ax4 of num>
<ax6 of num>
<pathresol of num> ->Affected by instruction PathResol
<motionsup of bool> ->Affected by instruction MotionSup
<tunevalue of num> ->Affected by instruction MotionSup
<acclim of bool> ->Affected by instruction PathAccLim
<accmax of num> ->Affected by instruction PathAccLim
<decellim of bool> ->Affected by instruction PathAccLim
<decelmax of num> ->Affected by instruction PathAccLim
<cirpathreori of num> ->Affected by instruction CirPathMode
<worldacclim of bool> ->Affected by instruction WorldAccLim
<worldaccmax of num> ->Affected by instruction WorldAccLim
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones para el establecimiento de
parmetros de movimiento
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Parmetros de movimiento
Continuacin
3 Tipos de datos
3.34. num - Valores numricos
RobotWare - OS
3HAC16581-5 Revisin: H 1142


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.34. num - Valores numricos
Utilizacin
Num se utiliza con valores numricos, como por ejemplo, contadores.
Descripcin
El valor del tipo de dato num puede ser:
Un entero, por ejemplo -5
Un nmero con decimales, por ejemplo 3,45
Tambin puede escribirse de forma exponencial, por ejemplo 2E3 (=2*10^3 =2.000), 2,5E-
2 (=0,025).
Los enteros entre -8388607 y +8388608 se almacenan siempre como enteros exactos.
Los nmeros con decimales son slo nmeros aproximados y, por tanto, no deben utilizarse
en comparaciones de tipo igual a ni distinto de. En el caso de las divisiones y las operaciones
que utilizan nmeros con decimales, el resultado tambin ser un nmero con decimales, es
decir, no un entero exacto. Por ejemplo:
a := 10;
b := 5;
IF a/b=2 THEN
...
Dado que el resultado de a/b no es un entero, esta condicin no tiene por qu cumplirse
necesariamente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato num.
Ejemplo 1
VAR num reg1;
...
reg1 := 3;
Se asigna a reg1 el valor 3.
Ejemplo 2
a := 10 DIV 3;
b := 10 MOD 3;
Divisin entera en la que se asigna un entero a (=3) y se asigna a b el resto (=1).
Datos predefinidos
Hay algunos datos predefinidos en el sistema. Por ejemplo, la constante pi () se define en el
mdulo del sistema BASE.
CONST num pi :=3.1415926;
Contina en la pgina siguiente
3 Tipos de datos
3.34. num - Valores numricos
RobotWare - OS
1143 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los valores literales entre -8388607 y 8388608 asignados a una variable num se almacenan
siempre como enteros exactos.
Si un valor literal que ha sido interpretado como un valor num es asignado o usado como un
valor dnum, es convertido automticamente a dnum. Si un valor literal que ha sido
interpretado como un valor dnum es utilizado como un valor num, se genera un error de
enlace.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Valores numricos con el tipo de datos dnum dnum - Valores numricos dobles en la pgina
1100
Expresiones numricas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Programacin
bsica en RAPID - Expresiones
Operaciones con valores numricos Manual de referencia tcnica - Descripcin
general de RAPID, seccin Programacin
bsica en RAPID - Expresiones
Continuacin
3 Tipos de datos
3.35. opcalc - Arithmetic Operator
RobotWare - OS
3HAC16581-5 Revisin: H 1144


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.35. opcalc - Arithmetic Operator
Utilizacin
opcalc se utiliza para representar un operador aritmtico en argumentos entregados a las
funciones o instrucciones de RAPID.
Descripcin
El uso previsto de las constantes opcalc es decir el tipo de operacin aritmtica.
Ejemplos
A continuacin aparece un ejemplo de uso del tipo de dato opcalc.
Ejemplo 1
res := StrDigCalc(str1, OpAdd, str2);
Se asigna a res el resultado de la operacin de suma de los valores representados por las
cadenas str1 y str2. OpAdd es del tipo de dato opcalc.
Datos predefinidos
Se han predefinido las constantes simblicas siguientes para el tipo de dato opcalc. Puede
usarlas para definir el tipo de operacin aritmtica utilizado, por ejemplo en la funcin
StrDigCalc.
Caractersticas
opcalc es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante Valor Comentario
OpAdd 1 Suma (+)
OpSub 2 Resta (-)
OpMult 3 Multiplicacin (*)
OpDiv 4 Divisin (/)
OpMod 5 Mdulo (%l)
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Operaciones aritmticas con cadenas
digitales.
StrDigCalc - Operaciones aritmticas con el
tipo de dato stringdig en la pgina 997
3 Tipos de datos
3.36. opnum - Operador de comparacin
RobotWare - OS
1145 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.36. opnum - Operador de comparacin
Utilizacin
opnum se utiliza para representar un operador de comparacin en argumentos entregados a
las funciones o instrucciones de RAPID.
Descripcin
La constante opnum se ha diseado para definir el tipo de comparacin al comprobar valores
en las instrucciones genricas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato opnum.
Ejemplo 1
TriggCheckIO checkgrip, 100, airok, EQ, 1, intno1;
Datos predefinidos
Se han predefinido las constantes simblicas siguientes para el tipo de dato opnum. Puede
usarlas para definir el tipo de comparacin utilizado, por ejemplo en la instruccin
TriggCheckIO.
Caractersticas
opnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Valor Constante simblica Comentario
1 LT Menor que
2 LTEQ Menor que o igual a
3 EQ Igual a
4 NOTEQ Distinto de
5 GTEQ Mayor que o igual a
6 GT Mayor que
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Definicin de una comprobacin de E/S en
una posicin fija
TriggCheckIO - Define una comprobacin de
E/S en una posicin fija en la pgina 583
3 Tipos de datos
3.37. orient - Orientacin
RobotWare - OS
3HAC16581-5 Revisin: H 1146


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.37. orient - Orientacin
Utilizacin
orient se utiliza para orientaciones (por ejemplo la orientacin de una herramienta) y
rotaciones (por ejemplo la rotacin de un sistema de coordenadas).
Descripcin
La orientacin se describe en forma de un cuaternio compuesto por cuatro elementos: q1, q2,
q3 y q4. Para obtener ms informacin acerca de cmo calcular estos elementos, consulte la
informacin siguiente.
Componentes
El tipo de dato orient contiene los componentes siguientes:
q1
Tipo de dato: num
Cuaternio 1.
q2
Tipo de dato: num
Cuaternio 2.
q3
Tipo de dato: num
Cuaternio 3.
q4
Tipo de dato: num
Cuaternio 4.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato orient.
Ejemplo 1
VAR orient orient1;
.
orient1 := [1, 0, 0, 0];
Se asigna a la orientacin orient1 el valor q1=1, q2-q4=0. Esto equivale a ninguna rotacin.
Limitaciones
La orientacin debe estar normalizada, es decir, la suma de los cuadrados debe ser igual a 1:
.
Contina en la pgina siguiente
3 Tipos de datos
3.37. orient - Orientacin
RobotWare - OS
1147 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Qu es un cuaternio?
La orientacin de un sistema de coordenadas (por ejemplo el de una herramienta) puede
describirse mediante una matriz de rotacin que describe la direccin de los ejes del sistema
de coordenadas respecto de un sistema de referencia (consulte la figura siguiente).
xx0500002376
Los ejes del sistema de coordenadas girado (x, y, z) son vectores que pueden expresarse en el
sistema de coordenadas de referencia de la forma siguiente:
x =(x1, x2, x3)
y =(y1, y2, y3)
z =(z1, z2, z3)
Esto significa que el componente x del vector x del sistema de coordenadas de referencia ser
x1, el componente y ser x2, etc.
Estos tres vectores pueden reunirse en una matriz (una matriz de rotacin) en la que cada uno
de los vectores compone una de las columnas:
.
Un cuaternio es slo una forma ms concisa de referirse a esta matriz de rotacin. Los
cuaternios se calculan partiendo de los elementos de la matriz de rotacin:
.
.
sign q2 =sign (y 3-z 2)
.
sign q3 =sign (z 1-x 3)
.
sign q4 =sign (x 2-y 1)
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.37. orient - Orientacin
RobotWare - OS
3HAC16581-5 Revisin: H 1148


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 1
Una herramienta se orienta de forma que su eje Z apunta directamente hacia delante (en la
misma direccin que el eje X del sistema de coordenadas de la base). El eje Y de la
herramienta se corresponde con el eje Y del sistema de coordenadas de la base (consulte la
figura siguiente). Cmo se define la orientacin de la herramienta en los datos de posicin
(robtarget)?
La orientacin de la herramienta en una posicin programada suele estar relacionada con el
sistema de coordenadas del objeto de trabajo utilizado. En este ejemplo no se utiliza ningn
objeto de trabajo y el sistema de coordenadas de la base es igual al sistema de coordenadas
mundo. Por tanto, la orientacin est relacionada con el sistema de coordenadas de la base.
xx0500002377
En este caso, los ejes estarn relacionados de la forma siguiente:
x =-z =(0, 0, -1)
y =y =(0, 1, 0)
z =x =(1, 0, 0)
Esto corresponde a la matriz de rotacin siguiente:
.
La matriz de rotacin proporciona el cuaternio correspondiente:
.
.
.
sign q3 =sign (1+1) =+
.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.37. orient - Orientacin
RobotWare - OS
1149 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplo 2
La direccin de la herramienta gira 30 alrededor de los ejes X' y Z' respecto del sistema de
coordenadas de la mueca (consulte la figura siguiente). Cmo se define la orientacin de la
herramienta en los datos de la herramienta?.
xx0500002378
En este caso, los ejes estarn relacionados de la forma siguiente:
x'=(cos30, 0, -sin30)
x =(0, 1, 0)
x'=(sin30, 0, cos30)
Esto corresponde a la matriz de rotacin siguiente:
.
La matriz de rotacin proporciona el cuaternio correspondiente:
Estructura
< dataobject of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
Informacin relacionada
.
.
.
sign q3 =sign (sin30+sin30) =+
.
Para obtener ms informacin sobre Consulte
Operaciones con orientaciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Continuacin
3 Tipos de datos
3.38. paridnum - Tipo de identificacin de parmetro
RobotWare - OS
3HAC16581-5 Revisin: H 1150


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.38. paridnum - Tipo de identificacin de parmetro
Utilizacin
paridnum se utiliza para representar un entero con una constante simblica.
Descripcin
Las constantes paridnum se han diseado para ser usadas en la identificacin de parmetros,
por ejemplo, identificaciones de carga de herramientas y cargas tiles o de la carga de un
manipulador externo. Consulte el ejemplo siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato paridnum.
Ejemplo 1
TEST ParIdRobValid (TOOL_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of tool in actual robot type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of tool with
! IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of tool in actual robot
type
...
ENDTEST
Se utiliza la constante predefinida TOOL_LOAD_ID del tipo de dato paridnum.
Datos predefinidos
Se han predefinido las constantes simblicas siguientes del tipo de dato paridnum para su
uso como argumentos en las instrucciones siguientes ParIdRobValid, ParIdPosValid,
LoadId y ManLoadIdProc.
Valor Constante simblica Comentario
1 TOOL_LOAD_ID Identificacin de la carga de la herramienta
2 PAY_LOAD_ID Identificacin de la carga til (consulte la instruccin
GripLoad)
3 IRBP_K Identificacin de la carga del manipulador externo
IRBP K
4 IRBP_L Identificacin de la carga del manipulador externo
IRBP L
4 IRBP_C Identificacin de la carga del manipulador externo
IRBP C
4 IRBP_C_INDEX Identificacin de la carga del manipulador externo
IRBP C_INDEX
4 IRBP_T Identificacin de la carga del manipulador externo
IRBP T
Contina en la pgina siguiente
3 Tipos de datos
3.38. paridnum - Tipo de identificacin de parmetro
RobotWare - OS
1151 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
NOTA!
Slo TOOL_LOAD_ID y PAY_LOAD_ID pueden usarse en los programas de RAPID definidos
por el usuario para la identificacin de cargas de la herramienta o la carga til del robot.
Caractersticas
paridnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
5 IRBP_R Identificacin de la carga del manipulador externo
IRBP R
6 IRBP_A Identificacin de la carga del manipulador externo
IRBP A
6 IRBP_B Identificacin de la carga del manipulador externo
IRBP B
6 IRBP_D Identificacin de la carga del manipulador externo
IRBP D
Valor Constante simblica Comentario
Para obtener ms informacin sobre Consulte
Programa predefinido Load Identify Manual del operador - IRC5 con Flex-
Pendant, seccin Programacin y testing -
Rutinas de servicio - LoadIdentify, rutina de
servicio de identificacin de cargas
Tipo de robot vlido ParIdRobValid - Tipo de robot vlido para la
identificacin de parmetros en la pgina
926
Posicin de robot vlida ParIdPosValid - Posicin de robot vlida para
la identificacin de parmetros en la pgina
923
Identificacin de cargas con un ejemplo
completo
LoadId - Identificacin de carga de la
herramienta o la carga til en la pgina 213
Identificacin de carga de manipuladores
externos
ManLoadIdProc - Identificacin de carga de
los manipuladores IRBP en la pgina 220
Continuacin
3 Tipos de datos
3.39. paridvalidnum - Resultado de ParIdRobValid
RobotWare - OS
3HAC16581-5 Revisin: H 1152


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.39. paridvalidnum - Resultado de ParIdRobValid
Utilizacin
paridvalidnum se utiliza para representar un entero con una constante simblica.
Descripcin
Las constantes paridvalidnum se han diseado para ser usadas en la identificacin de
parmetros, por ejemplo identificaciones de carga de herramientas y cargas tiles, a la hora
de comprobar el valor de retorno de la funcin ParIdRobValid. Consulte el ejemplo
siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato paridvalidnum.
TEST ParIdRobValid (PAY_LOAD_ID)
CASE ROB_LOAD_VAL:
! Possible to do load identification of payload in actual robot
! type
...
CASE ROB_LM1_LOAD_VAL:
! Only possible to do load identification of payload
! with IRB 6400FHD if actual load < 200 kg
...
CASE ROB_NOT_LOAD_VAL:
! Not possible to do load identification of payload
! in actual robot type
...
ENDTEST
Se utilizan las constantes predefinidas ROB_LOAD_VAL, ROB_LM1_LOAD_VAL y
ROB_NOT_LOAD_VAL del tipo de dato paridvalidnum.
Datos predefinidos
Se han definido las constantes simblicas siguientes del tipo de dato paridvalidnum. Puede
usarlas a la hora de comprobar el valor de retorno de la funcin ParIdRobValid.
Caractersticas
paridvalidnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Valor Constante simblica Comentario
10 ROB_LOAD_VAL Tipo de robot vlido para la identificacin actual
de parmetros
11 ROB_NOT_LOAD_VAL No es ningn tipo de robot vlido para la identifi-
cacin actual de parmetros
12 ROB_LM1_LOAD_VAL Tipo de robot vlido IRB 6400FHD para la identi-
ficacin actual de parmetros, si la carga real es
<200 kg
Contina en la pgina siguiente
3 Tipos de datos
3.39. paridvalidnum - Resultado de ParIdRobValid
RobotWare - OS
1153 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Programa predefinido Load Identify Manual del operador - IRC5 con Flex-
Pendant, seccin Programacin y testing -
Rutinas de servicio - LoadIdentify, rutina de
servicio de identificacin de cargas
Tipo de robot vlido ParIdRobValid - Tipo de robot vlido para la
identificacin de parmetros en la pgina 926
Posicin de robot vlida ParIdPosValid - Posicin de robot vlida para
la identificacin de parmetros en la pgina
923
Identificacin de cargas con un ejemplo
completo
LoadId - Identificacin de carga de la
herramienta o la carga til en la pgina 213
Continuacin
3 Tipos de datos
3.40. pathrecid - Identificador de grabadora de trayectorias
Path Recovery
3HAC16581-5 Revisin: H 1154


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.40. pathrecid - Identificador de grabadora de trayectorias
Utilizacin
pathrecid se utiliza para identificar un punto de ruptura para la grabadora de trayectorias.
Descripcin
La grabadora de trayectorias es una funcin del sistema que permite grabar la trayectoria
ejecutada por el robot. Los datos de tipo pathrecid pueden ser vinculados a una ubicacin
de trayectoria determinada mediante la instruccin PathRecStart. A continuacin, el
usuario puede solicitar a la grabadora que realice un movimiento de vuelta hasta el
identificador de la trayectoria, mediante la instruccin PathRecMoveBwd.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato pathrecid.
Ejemplo 1
VAR pathrecid start_id;
CONST robtarget p1 := [...];
CONST robtarget p2 := [...];
CONST robtarget p3 := [...];
PathRecStart start_id;
MoveL p1, vmax, z50, tool1;
MoveL p2, vmax, z50, tool1
MoveL p3, vmax, z50, tool1;
IF(PathRecValidBwd (\ID := start_id)) THEN
StorePath;
PathRecMoveBwd \ID:=start_id;
...
ENDIF
xx0500002090
En el ejemplo anterior, se inicia la grabadora de trayectorias y se marca el punto inicial con
el identificador de trayectoria start_id. A partir de ese momento, el robot avanzar con las
instrucciones de movimiento tradicionales y volver a la posicin inicial mediante la
trayectoria grabada. Para poder ejecutar instrucciones de movimiento con la grabadora de
trayectorias, es necesario cambiar el nivel de la trayectoria con StorePath.
Caractersticas
pathrecid es un tipo de dato sin valor
Contina en la pgina siguiente
3 Tipos de datos
3.40. pathrecid - Identificador de grabadora de trayectorias
Path Recovery
1155 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Inicio y detencin de la grabadora de trayec-
torias
PathRecStart - Inicia la grabadora de trayec-
torias en la pgina 314
PathRecStop - Detiene la grabadora de
trayectorias en la pgina 317
Comprobacin de que la trayectoria grabada
es correcta
PathRecValidBwd - Comprueba si existe una
trayectoria de retroceso vlida guardada en
la pgina 931
PathRecValidFwd - Comprueba si existe una
trayectoria de avance vlida guardada en la
pgina 934
Reproduccin de la grabacin de trayectorias
hacia atrs
PathRecMoveBwd - Hace retroceder la
grabadora de trayectorias en la pgina 303
Reproduccin de la grabacin de trayectorias
hacia delante
PathRecMoveFwd - Hace avanzar la
grabadora de trayectorias en la pgina 311
Caractersticas de los tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.41. pos - Posiciones (slo X, Y y Z)
RobotWare - OS
3HAC16581-5 Revisin: H 1156


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.41. pos - Posiciones (slo X, Y y Z)
Utilizacin
pos se utiliza para posiciones (slo para X, Y y Z).
El tipo de dato robtarget se utiliza con las posiciones del robot, incluida la orientacin de
la herramienta y la configuracin de los ejes.
Descripcin
Los datos de tipo pos describen las coordenadas de una posicin: X, Y y Z.
Componentes
El tipo de dato pos contiene los componentes siguientes:
x
Tipo de dato: num
El valor X de la posicin.
y
Tipo de dato: num
El valor Y de la posicin.
z
Tipo de dato: num
El valor Z de la posicin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato pos.
Ejemplo 1
VAR pos pos1;
...
pos1 := [500, 0, 940];
Se asigna a la posicin pos1 el valor: X=500 mm, Y=0 mm, Z=940 mm.
Ejemplo 2
pos1.x := pos1.x + 50;
Se traslada la posicin de pos1 50 mm en la direccin X.
Estructura
< dataobject of pos >
< x of num >
< y of num >
< z of num >
Contina en la pgina siguiente
3 Tipos de datos
3.41. pos - Posiciones (slo X, Y y Z)
RobotWare - OS
1157 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Operaciones con posiciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Posicin del robot incluida su orientacin robtarget - Datos de posicin en la pgina
1172
Continuacin
3 Tipos de datos
3.42. pose - Transformaciones de coordenadas
RobotWare - OS
3HAC16581-5 Revisin: H 1158


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.42. pose - Transformaciones de coordenadas
Utilizacin
pose se utiliza para cambiar de un sistema de coordenadas a otro.
Descripcin
Los datos de tipo pose describen cmo se desplaza y gira un sistema de coordenadas
alrededor de otro sistema de coordenadas. Por ejemplo, estos datos pueden describir cmo
est situado y orientado el sistema de coordenadas de la herramienta respecto del sistema de
coordenadas de la mueca.
Componentes
El tipo de dato contiene los componentes siguientes:
tran s
translation
Tipo de dato: pos
El desplazamiento de posicin (x, y, z) del sistema de coordenadas.
rot
rotation
Tipo de dato: orient
La rotacin del sistema de coordenadas.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato pose.
VAR pose frame1;
...
frame1.trans := [50, 0, 40];
frame1.rot := [1, 0, 0, 0];
Se asigna a la transformacin de coordenadas frame1 un valor que corresponde a un
desplazamiento en su posicin, donde X=50 mm, Y=0 mm, Z=40 mm. Sin embargo, no hay
ninguna rotacin.
Estructura
< dataobject of pose >
< trans of pos >
< rot of orient >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Qu es un cuaternio? orient - Orientacin en la pgina 1146
3 Tipos de datos
3.43. progdisp - Desplazamiento de programa
RobotWare - OS
1159 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.43. progdisp - Desplazamiento de programa
Utilizacin
progdisp se utiliza para almacenar el desplazamiento de programa actual de los ejes del
robot y los ejes externos.
Normalmente no es necesario utilizar este tipo de dato dado que los datos se establecen con
las instrucciones PDispSet, PDispOn, PDispOff, EOffsSet, EOffsOn y EOffsOff. Slo
se utiliza para almacenar temporalmente el valor actual para un uso posterior.
Descripcin
Los valores actuales del desplazamiento de programa estn disponibles a travs de la variable
de sistema C_PROGDISP.
Para obtener ms informacin, consulte las instrucciones PDispSet, PDispOn, EOffsSet y
EOffsOn.
Componentes
pdisp
program displacement
Tipo de dato: pose
El desplazamiento de programa del robot, expresado mediante una traslacin y una
orientacin. La traslacin se expresa en mm.
eoffs
external offset
Tipo de dato: extjoint
El offset de cada uno de los ejes externos. Si el eje es lineal, el valor se expresa en mm. Si es
de rotacin, el valor se expresa en grados.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato progdisp.
Ejemplo 1
VAR progdisp progdisp1;
...
SearchL sen1, psearch, p10, v100, tool1;
PDispOn \ExeP:=psearch, *, tool1;
EOffsOn \ExeP:=psearch, *;
...
progdisp1:=C_PROGDISP;
PDispOff;
EOffsOff;
...
PDispSet progdisp1.pdisp;
EOffsSet progdisp1.eoffs;
Contina en la pgina siguiente
3 Tipos de datos
3.43. progdisp - Desplazamiento de programa
RobotWare - OS
3HAC16581-5 Revisin: H 1160


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En primer lugar, se activa un desplazamiento de programa desde una posicin buscada. A
continuacin, los valores de desplazamiento de programa actuales se almacenan
temporalmente en la variable progdisp1 y el desplazamiento de programa se desactiva. Ms
adelante, la reactivacin se realiza utilizando las instrucciones PDispSet y EOffsSet.
Datos predefinidos
La variable de sistema C_PROGDISP describe el desplazamiento de programa actual de los
ejes del robot y los ejes externos y est siempre disponible desde el programa. C_PROGDISP.
Por otro lado, slo puede modificarse mediante un conjunto de instrucciones, no mediante
asignacin.
Los siguientes valores predeterminados de desplazamiento de programa se establecen:
En los arranques en fro.
Cuando se carga un nuevo programa.
Cuando se inicia la ejecucin del programa desde el principio
VAR progdisp C_PROGDISP :=
[ [[ 0, 0, 0], [1, 0, 0, 0]], -> posedata
[ 0, 0, 0, 0, 0, 0]]; -> extjointdata
Estructura
< dataobject of progdisp >
< pdisp of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< eoffs of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones para la definicin de
desplazamientos de programa
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Parmetros de movimiento
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de
coordenadas
Continuacin
3 Tipos de datos
3.44. rawbytes - Datos sin formato
RobotWare - OS
1161 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.44. rawbytes - Datos sin formato
Utilizacin
rawbytes se utiliza como un contenedor genrico de datos. Puede usarse para la
comunicacin con los dispositivos de E/S.
Descripcin
Los datos rawbytes pueden contener cualquier tipo de dato (num, byte, string) mediante
las instrucciones y funciones de soporte. En cualquier variable de tipo rawbytes, el sistema
almacena tambin la longitud actual de los bytes vlidos.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato rawbytes.
Ejemplo 1
VAR rawbytes raw_data;
VAR num integer := 8;
VAR num float := 13.4;
ClearRawBytes raw_data;
PackRawBytes integer, raw_data, 1 \IntX := INT;
PackRawBytes float, raw_data, (RawBytesLen(raw_data)+1) \Float4;
En este ejemplo, la variable raw_data del tipo rawbytes es borrada en primer lugar. Es
decir, todos sus bytes cambian a 0 (el valor predeterminado tras la declaracin). A
continuacin, se guarda el valor de integer en los 2 primeros bytes y el valor de float en
los 4 bytes siguientes.
Limitaciones
Las variables de tipo rawbytes pueden contener de 0 a 1.024 bytes.
Estructura
rawbytes es un tipo de dato sin valor.
Tras la declaracin de la variable de tipo rawbytes, todos los bytes de rawbytes quedan
definidos como 0 y la longitud actual de los bytes vlidos de la variable es tambin 0.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Obtencin de la longitud de un dato
rawbytes
RawBytesLen - Obtiene la longitud de un dato
de tipo rawbytes en la pgina 949
Borrado del contenido de un dato
rawbytes
ClearRawBytes - Borra el contenido de un
dato de tipo rawbytes en la pgina 49
Copiado del contenido de un dato
rawbytes
CopyRawBytes - Copia el contenido de un
dato de tipo rawbytes en la pgina 67
Empaquetamiento del encabezado de
DeviceNet en un dato rawbytes
PackDNHeader - Empaqueta un encabezado
de DeviceNet en datos rawbytes en la pgina
293
Contina en la pgina siguiente
3 Tipos de datos
3.44. rawbytes - Datos sin formato
RobotWare - OS
3HAC16581-5 Revisin: H 1162


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Empaquetamiento de datos en un dato
rawbytes
PackRawBytes - Empaqueta datos en un dato
de tipo rawbytes en la pgina 296
Escritura de un dato rawbytes WriteRawBytes - Escribe un dato de tipo
rawbytes en la pgina 730
Lectura de un dato rawbytes ReadRawBytes - Lee datos de tipo rawbytes
en la pgina 359
Desempaquetamiento de datos de un dato
rawbytes
UnpackRawBytes - Desempaqueta datos de
un dato de tipo rawbytes en la pgina 667
Para obtener ms informacin sobre Consulte
Continuacin
3 Tipos de datos
3.45. restartdata - Datos de reinicio de seales de disparo
RobotWare - OS
1163 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.45. restartdata - Datos de reinicio de seales de disparo
Utilizacin
restartdata refleja los valores previos y posteriores de las seales de E/S especificadas
(seales de proceso) en la secuencia de paro de los movimientos del robot. Las seales de E/
S que deben supervisarse se especifican en la instruccin TriggStopProc.
TriggStopProc y restartdata han sido creadas para ser usadas en el reinicio tras un paro
de programa (STOP) o un paro de emergencia (QSTOP) de las propias instrucciones de
proceso definidas en RAPID (rutinas NOSTEPIN).
Definicin
En la tabla se muestra la definicin del momento de lectura de los valores previos y
posteriores de las seales de I/O.
Descripcin
restartdata refleja los datos siguientes tras la detencin de la ejecucin del programa:
Datos vlidos de reinicio
Indicacin de si el robot se ha detenido dentro o fuera de la trayectoria
Valor previo de las seales de E/S
Valor posterior de las seales de E/S
Nmero de flancos, entre el tiempo previo y el tiempo posterior, de la seal
correspondiente al proceso en curso
Componentes
restartstop
valid restartdata after stop
Tipo de dato: bool
TRUE =Refleja el ltimo paro STOP o QSTOP.
FALSE =Datos de reinicio no vlidos. Todos los valores de las seales de E/S cambian a -1.
stoponpath
stop on path
Tipo de dato: bool
TRUE =El robot se ha detenido dentro de la trayectoria (STOP).
FALSE =El robot se ha detenido, pero fuera de la trayectoria (QSTOP).
Tipo de paro
Tiempo de lectura del valor
previo de la seal de E/S
Tiempo de lectura del valor
posterior de la seal de E/S
STOP dentro de
trayectoria
Cuando todos los ejes del robot
estn parados
Aproximadamente 400 ms tras el
tiempo previo
QSTOP fuera
de trayectoria
Lo antes posible Aproximadamente 400 ms tras el
tiempo previo
Contina en la pgina siguiente
3 Tipos de datos
3.45. restartdata - Datos de reinicio de seales de disparo
RobotWare - OS
3HAC16581-5 Revisin: H 1164


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
predo1val
pre do1 value
Tipo de dato: dionum
El valor previo de la seal digital "do1" especificada en el argumento DO1 de la instruccin
TriggStopProc.
postdo1val
post do1 value
Tipo de dato: dionum
El valor posterior de la seal digital "do1" especificada en el argumento DO1 de la instruccin
TriggStopProc.
prego1val
pre go1 value
Tipo de dato: num
El valor previo de la seal digital de grupo "go1" especificada en el argumento GO1 de la
instruccin TriggStopProc.
postgo1val
post go1 value
Tipo de dato: num
El valor posterior de la seal digital de grupo "go1" especificada en el argumento GO1 de la
instruccin TriggStopProc.
prego2val
pre go2 value
Tipo de dato: num
El valor previo de la seal digital de grupo "go2" especificada en el argumento GO2 de la
instruccin TriggStopProc.
postgo2val
post go2 value
Tipo de dato: num
El valor posterior de la seal digital de grupo "go2" especificada en el argumento GO2 de la
instruccin TriggStopProc.
prego3val
pre go3 value
Tipo de dato: num
El valor previo de la seal digital de grupo "go3" especificada en el argumento GO3 de la
instruccin TriggStopProc.
postgo3val
post go3 value
Tipo de dato: num
El valor posterior de la seal digital de grupo "go3" especificada en el argumento GO3 de la
instruccin TriggStopProc.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.45. restartdata - Datos de reinicio de seales de disparo
RobotWare - OS
1165 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
prego4val
pre go4 value
Tipo de dato: num
El valor previo de la seal digital de grupo "go4" especificada en el argumento GO4 de la
instruccin TriggStopProc.
postgo4val
post go4 value
Tipo de dato: num
El valor posterior de la seal digital de grupo "go4" especificada en el argumento GO4 de la
instruccin TriggStopProc.
preshadowval
pre shadow value
Tipo de dato: dionum
El valor previo de la seal digital "shadow" especificada en el argumento ShadowDO de la
instruccin TriggStopProc.
shadowflanks
number of shadow flanks
Tipo de dato: num
El nmero de transiciones de valor (flancos) de la seal digital shadow entre el tiempo
previo y el tiempo posterior. La seal shadow se especifica en el argumento ShadowDO de
la instruccin TriggStopProc.
postshadowval
post shadow value
Tipo de dato: dionum
El valor posterior de la seal digital "shadow" especificada en el argumento ShadowDO de la
instruccin TriggStopProc.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.45. restartdata - Datos de reinicio de seales de disparo
RobotWare - OS
3HAC16581-5 Revisin: H 1166


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Estructura
< dataobject of restartdata >
< restartstop of bool >
< stoponpath of bool >
< predo1val of dionum >
< postdo1val of dionum >
< prego1val of num >
< postgo1val of num >
< prego2val of num >
< postgo2val of num >
< prego3val of num >
< postgo3val of num >
< prego4val of num >
< postgo4val of num >
< preshadowval of dionum >
< shadowflanks of dionum >
< postshadowval of dionum >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de procesos predefinidos TriggL - Movimiento lineal del robot con
eventos en la pgina 610
TriggC - Movimiento circular del robot con
eventos en la pgina 576
Configuracin de reflejos de datos de
reinicio
TriggStopProc - Genera datos de reinicio para
las seales de disparo ante paros en la pgina
637
Retroceso por la trayectoria StepBwdPath - Retrocede un paso a lo largo
de la trayectoria en la pgina 507
Continuacin
3 Tipos de datos
3.46. rmqheader - Encabezado de mensaje de RAPID Message Queue
FlexPendant Interface, PC Interface, or Multitasking
1167 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.46. rmqheader - Encabezado de mensaje de RAPID Message Queue
Utilizacin
rmqheader (RAPID Message Queue Header) se usa para leer la estructura de los datos
contenidos en un mensaje de tipo rmqmessage.
Descripcin
La parte de encabezado de un tipo de dato sin valor rmqmessage convertido al tipo de dato
de valor rmqheader.
Componentes
datatype
Tipo de dato: string
El nombre del tipo de dato utilizado, por ejemplo num, string o algn otro tipo de dato con
valor.
ndim
Number of Dimensions
Tipo de dato: num
Nmero de dimensiones de matriz.
dim1
Size of first dimension
Tipo de dato: num
El tamao de la primera dimensin. 0 si no se usa.
dim2
Size of second dimension
Tipo de dato: num
El tamao de la segunda dimensin. 0 si no se usa.
dim3
Size of third dimension
Tipo de dato: num
El tamao de la tercera dimensin. 0 si no se usa.
Ejemplos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato rmqheader.
Ejemplo 1
VAR rmqmessage message;
VAR rmqheader header;
...
RMQGetMessage message;
RMQGetMsgHeader message \Header:=header;
Copiar y convertir la informacin de rmqheader desde un mensaje rmqmessage.
Contina en la pgina siguiente
3 Tipos de datos
3.46. rmqheader - Encabezado de mensaje de RAPID Message Queue
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 1168


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Estructura
<dataobject of rmqheader>
<datatype of string>
<ndim of num>
<dim1 of num>
<dim2 of num>
<dim3 of num>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en
la pgina 387
RMQ Message rmqmessage - Mensaje de RAPID Message
Queue en la pgina 1169
Continuacin
3 Tipos de datos
3.47. rmqmessage - Mensaje de RAPID Message Queue
FlexPendant Interface, PC Interface, or Multitasking
1169 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.47. rmqmessage - Mensaje de RAPID Message Queue
Utilizacin
rmqmessage (RAPID Message Queue Message) se usa para el almacenamiento temporal de
los datos de comunicacin.
Descripcin
El tipo de dato rmqmessage es el mensaje utilizado para almacenar los datos durante la
comunicacin entre distintas tareas de RAPID o distintos clientes de Robot Application
Builder con la funcionalidad RMQ. Contiene informacin acerca del tipo de datos enviados,
las dimensiones de los datos, la identidad del remitente y los datos en s.
Un rmqmessage es un tipo de dato de gran tamao (de aproximadamente 3.000 bytes) y se
recomienda reutilizar la variable para ahorrar memoria de RAPID.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato rmqmessage.
Ejemplo 1
VAR rmqmessage rmqmessage1;
VAR string myrecdata;
...
RMQGetMsgData rmqmessage1, myrecdata;
La variable rmqmessage1 se define y puede usarse en un comando RMQ (RAPID Message
Queue). En este ejemplo, la parte de datos contenida en el rmqmessage1 se copia a la
variable myrecdata.
Caractersticas
rmqmessage es un tipo de dato sin valor y no puede usarse en operaciones basadas en
valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, RAPID Message Queue.
RMQ Header rmqheader - Encabezado de mensaje de
RAPID Message Queue en la pgina 1167
Extraer los datos de encabezado de un
rmqmessage
RMQGetMsgHeader - Obtener informacin
de encabezado de un mensaje de RMQ en la
pgina 387
Ordenar y habilitar interrupciones para un
tipo de dato en concreto
IRMQMessage - Ordenar interrupciones de
RMQ para un tipo de dato en la pgina 167
Obtener el primer mensaje de una cola de
RAPID Message Queue.
RMQGetMessage - Obtener un mensaje de
RMQ en la pgina 381
Enviar datos a la cola de una tarea de RAPID
o un cliente de Robot Application Builder y
esperar una respuesta del cliente.
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Extraer los datos de un rmqmessage RMQGetMsgData - Obtener la parte de datos
de un mensaje de RMQ en la pgina 384
3 Tipos de datos
3.48. rmqslot - Nmero de identidad de un cliente de RMQ
FlexPendant Interface, PC Interface, or Multitasking
3HAC16581-5 Revisin: H 1170


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.48. rmqslot - Nmero de identidad de un cliente de RMQ
Utilizacin
rmqslot (RAPID Message Queue Slot) se utiliza al comunicarse con un RMQ o un cliente
de Robot Application Builder.
Descripcin
El rmqslot es un nmero de identidad de una cola de RAPID Message Queue configurada
para una tarea de RAPID o el nmero de identidad de un cliente de Robot Application
Builder.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato rmqslot.
Ejemplo 1
VAR rmqslot rmqslot1;
RMQFindSlot rmqslot1, "RMQ_T_ROB1";
...
La variable rmqslot1 se define y puede usarse en la instruccin RMQFindSlot para obtener
el nmero de identidad de la cola de RAPID Message Queue "RMQ_T_ROB1" configurada
para la tarea de RAPID "T_ROB1".
Caractersticas
rmqslot es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Descripcin de la funcionalidad de RAPID
Message Queue
Application manual - Robot communication
and I/O control, seccin RAPID Message
Queue.
Encontrar el nmero de identidad de una
tarea de RAPID Message Queue o de un
cliente de Robot Application Builder.
RMQFindSlot - Buscar una identidad de
ranura para el nombre de ranura en la pgina
379
Enviar datos a la cola de una tarea de RAPID
o de un cliente de Robot Application Builder.
RMQSendMessage - Enviar un mensaje de
datos de RMQ en la pgina 393
Enviar datos a un cliente y esperar una
respuesta del cliente.
RMQSendWait - Enviar un mensaje de datos
de RMQ y esperar una respuesta en la
pgina 397
Obtener el nombre de ranura de una
identidad de ranura especificada.
RMQGetSlotName - Obtener el nombre de
un cliente de RMQ en la pgina 972
3 Tipos de datos
3.49. robjoint - Posicin de eje de los ejes del robot
RobotWare - OS
1171 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.49. robjoint - Posicin de eje de los ejes del robot
Utilizacin
robjoint se utiliza para definir la posicin en grados de los ejes del robot.
Descripcin
Los datos de tipo robjoint se utilizan para almacenar posiciones de eje en grados para los
ejes de robot del 1 al 6. La posicin de un eje se define como la rotacin en grados del eje
(brazo) correspondiente, en sentido positivo o negativo respecto de la posicin de calibracin
del eje.
Componentes
rax_1
robot axis 1
Tipo de dato: num
La posicin del eje 1 del robot, en grados, respecto de la posicin de calibracin.
...
rax_6
robot axis 6
Tipo de dato: num
La posicin del eje 6 del robot, en grados, respecto de la posicin de calibracin.
Estructura
< dataobject ofrobjoint>
< rax_1 of num >
< rax_2 of num >
< rax_3 of num >
< rax_4 of num >
< rax_5 of num >
< rax_6 of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Datos de posicin de ejes jointtarget - Datos de posicin de eje en la
pgina 1125
Desplazamiento hacia una posicin de ejes MoveAbsJ - Mueve el robot a una posicin de
ejes absoluta en la pgina 231
3 Tipos de datos
3.50. robtarget - Datos de posicin
RobotWare - OS
3HAC16581-5 Revisin: H 1172


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.50. robtarget - Datos de posicin
Utilizacin
robtarget (robot target) se utiliza para definir la posicin del robot y de los ejes externos.
Descripcin
Los datos de posicin se utilizan en las instrucciones de movimiento para indicar la posicin
hacia la que deben desplazarse los ejes del robot y los ejes externos.
Debido a que el robot puede alcanzar una misma posicin con mtodos diferentes, tambin
se especifica la configuracin de los ejes. De esta forma, se definen los valores de los ejes si
por algn motivo resultan ambiguas, por ejemplo en los casos siguientes:
Si el robot se encuentra en una posicin avanzada o retrasada
Si el eje 4 est orientado hacia abajo o hacia arriba
Si el eje 6 se encuentra en una revolucin negativa o positiva
AVISO!
La posicin se define partiendo del sistema de coordenadas del objeto de trabajo, incluidos
los posibles desplazamientos de programa. Si la posicin se programa con un objeto de
trabajo distinto del utilizado en la instruccin, el robot no se mover de la forma esperada.
Asegrese de usar el mismo objeto de trabajo que el utilizado al programar las instrucciones
de movimiento. Un uso incorrecto puede causar accidentes o daos en el robot o en otros
equipos.
Componentes
trans
translation
Tipo de dato: pos
La posicin (x, y, z) del punto central de la herramienta, expresado en mm.
La posicin se especifica respecto del sistema de coordenadas del objeto actual, incluido el
desplazamiento de programa. Si no se ha especificado ningn objeto de trabajo, se utiliza el
sistema de coordenadas mundo.
rot
rotation
Tipo de dato: orient
La orientacin de la herramienta, expresada en forma de un cuaternio (q1, q2, q3 y q4).
La orientacin se especifica respecto del sistema de coordenadas del objeto actual, incluido
el desplazamiento de programa. Si no se ha especificado ningn objeto de trabajo, se utiliza
el sistema de coordenadas mundo.
Contina en la pgina siguiente
3 Tipos de datos
3.50. robtarget - Datos de posicin
RobotWare - OS
1173 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
robconf
robot configuration
Tipo de dato: confdata
La configuracin de ejes del robot (cf1, cf4, cf6 y cfx). Esto se define en forma del cuarto
de revolucin actual de los ejes 1, 4 y 6. El primer cuarto de revolucin positivo, de 0 a 90
se define como 0. El significado del componente cfx depende del tipo de robot.
Para obtener ms informacin, consulte el tipo de dato confdata.
extax
external axes
Tipo de dato: extjoint
La posicin de los ejes externos.
La posicin se define de la forma siguiente para cada eje independiente (eax_a, eax_b
... eax_f):
Para los ejes de rotacin, la posicin se define como la rotacin en grados de la
posicin de calibracin.
Para los ejes lineales, la posicin se define como la distancia en mm existente respecto
de la posicin de calibracin.
Los ejes externos eax_a ... son ejes lgicos. La relacin existente entre el nmero lgico
del eje y el nmero fsico del eje se define en los parmetros del sistema.
El valor 9E9 se utiliza para definir los ejes que no estn conectados. Si los ejes definidos en
los datos de posicin son distintos de los ejes que estn conectados realmente en el momento
de la ejecucin del programa, ocurre lo siguiente:
Si la posicin no est definida en los datos de posicin (su valor es 9E9), el valor no
se tendr en cuenta si el eje est conectado pero no activado. Sin embargo, si el eje est
activado, se genera un error.
Si la posicin est definida en los datos de posicin, a pesar de que el eje no est
conectado, el valor no se tiene en cuenta.
No se realiza ningn movimiento pero tampoco se genera ningn error en el caso de los ejes
que tengan datos de posicin vlidos pero que no estn activados.
Si algn eje externo est funcionando en el modo independiente y el robot y sus ejes externos
deben realizar algn nuevo movimiento, los datos de posicin del eje externo en el modo
independiente no deben ser 9E9 sino algn valor arbitrario (no utilizado por el sistema).
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato robtarget.
Ejemplo 1
CONST robtarget p15 := [ [600, 500, 225.3], [1, 0, 0, 0], [1, 1,
0, 0], [ 11, 12.3, 9E9, 9E9, 9E9, 9E9] ];
Se define la posicin p15 de la forma siguiente:
La posicin del robot: x =600, y =500 y z =225,3 mm en el sistema de coordenadas
de objeto.
La orientacin de la herramienta en la misma direccin que el sistema de coordenadas
del objeto.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.50. robtarget - Datos de posicin
RobotWare - OS
3HAC16581-5 Revisin: H 1174


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La configuracin de ejes del robot es la siguiente: ejes 1 y 4 en la posicin de 90 a
180, eje 6 en la posicin de 0 a 90.
La posicin de los ejes externos lgicos a y b, expresada en grados o mm (en funcin
del tipo de eje). Los ejes de c a f permanecen sin definir.
Ejemplo 2
VAR robtarget p20;
...
p20 := CRobT(\Tool:=tool\wobj:=wobj);
p20 := Offs(p20,10,0,0);
Se establece la posicin p20 en la misma posicin que la posicin actual del robot, mediante
una llamada a la funcin CRobT. A continuacin, se mueve la posicin 10 mm en la direccin
x.
Estructura
< dataobject of robtarget >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< robconf of confdata >
< cf1 of num >
< cf4 of num >
< cf6 of num >
< cfx of num >
< extax of extjoint >
< eax_a of num >
< eax_b of num >
< eax_c of num >
< eax_d of num >
< eax_e of num >
< eax_f of num >
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.50. robtarget - Datos de posicin
RobotWare - OS
1175 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de movimiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de
coordenadas
Manejo de datos de configuracin Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Configuracin del robot
Configuracin de ejes externos Application manual - Additional axes and
stand alone controller
Qu es un cuaternio? orient - Orientacin en la pgina 1146
Continuacin
3 Tipos de datos
3.51. shapedata - Datos de forma de zonas mundo
World Zones
3HAC16581-5 Revisin: H 1176


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.51. shapedata - Datos de forma de zonas mundo
Utilizacin
shapedata se utiliza para describir la geometra de una zona mundo.
Descripcin
Es posible definir zonas mundo con 4 formas geomtricas diferentes.
Un prisma cuyos lados son paralelos al sistema de coordenadas mundo y que se
definen mediante una instruccin WZBoxDef
Una esfera, definida mediante una instruccin WZSphDef
Un cilindro paralelo al eje z del sistema de coordenadas mundo y definido mediante
una instruccin WZCylDef
Un rea de espacio de ejes para los ejes del robot y/o los externos, definidos por la
instruccin WZHomeJointDef o WZLimJointDef
La geometra de una zona mundo se define mediante una de las instrucciones indicadas
anteriormente y la accin de una zona mundo definida mediante la instruccin WZLimSup o
WZDOSet.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato shapedata.
Ejemplo 1
VAR wzstationary pole;
VAR wzstationary conveyor;
...
PROC ...
VAR shapedata volume;
...
WZBoxDef \Inside, volume, p_corner1, p_corner2;
WZLimSup \Stat, conveyor, volume;
WZCylDef \Inside, volume, p_center, 200, 2500;
WZLimSup \Stat, pole, volume;
ENDPROC
Una conveyor se define como un prisma y se activa la supervisin de esta rea. Se define un
pole como un cilindro y se activa la supervisin de la zona. Si el robot alcanza una de estas
reas, se detiene el movimiento.
Caractersticas
shapedata es un tipo de dato sin valor.
Contina en la pgina siguiente
3 Tipos de datos
3.51. shapedata - Datos de forma de zonas mundo
World Zones
1177 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Parmetros de movimiento
Definicin de zonas mundo en forma de
prisma
WZBoxDef - Define una zona mundo con
forma de prisma en la pgina 737
Definicin de zonas mundo esfricas WZSphDef - Define una zona mundo con
forma esfrica en la pgina 762
Definicin de zonas mundo cilndricas WZCylDef - Define una zona mundo con
forma cilndrica en la pgina 739
Definicin de una zona mundo para las
posiciones iniciales de los ejes
WZHomeJointDef - Define una zona mundo
para las posiciones iniciales de los ejes en la
pgina 752
Definicin de una zona mundo para las
posiciones lmite de los ejes
WZLimJointDef - Define una zona mundo
para la limitacin de los ejes en la pgina 755
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
3 Tipos de datos
3.52. signalxx - Seales digitales y analgicas
RobotWare - OS
3HAC16581-5 Revisin: H 1178


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.52. signalxx - Seales digitales y analgicas
Utilizacin
Los tipos de datos denominados como signalxx se utilizan con las seales digitales y
analgicas de entrada y salida.
Los nombres de las seales se definen en los parmetros del sistema y, por tanto, no es
necesario definirlos en el programa.
Descripcin
Las variables del tipo signalxo slo contienen una referencia a la seal. El valor se establece
mediante una instruccin, por ejemplo DOutput.
Las variables del tipo signalxi contienen una referencia a una seal, as como la posibilidad
de obtener directamente el valor desde el programa, si se utiliza en un contexto de valor.
El valor de una seal de entrada puede leerse directamente desde el programa, como en los
ejemplos siguientes:
! Digital input
IF di1 = 1 THEN ...
! Digital group input
IF gi1 = 5 THEN ...
! Analog input
IF ai1 > 5.2 THEN ...
Tambin puede usarse en asignaciones, por ejemplo:
VAR num current_value;
! Digital input
current_value := di1;
! Digital group input
current_value := gi1;
! Analog input
current_value := ai1;
Tipo de dato Se usa para
signalai Seales analgicas de entrada
signalao Seales analgicas de salida
signaldi Seales digitales de entrada
signaldo Seales digitales de salida
signalgi Grupos de seales digitales de entrada
signalgo Grupos de seales digitales de salida
Contina en la pgina siguiente
3 Tipos de datos
3.52. signalxx - Seales digitales y analgicas
RobotWare - OS
1179 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
No debe definir el tipo de dato signalxx en el programa. Sin embargo, si se llega a hacer,
aparecer un mensaje de error tan pronto como se ejecute una instruccin o una funcin que
haga referencia a esta seal. Sin embargo, s es posible utilizarlos como parmetros al
declarar una rutina.
Datos predefinidos
Las seales definidas en los parmetros del sistema estn siempre disponibles desde el
programa mediante las variables de seal predefinidas (datos instalados). Sin embargo, debe
tener en cuenta que si se define otro dato con el mismo nombre, se pierde la posibilidad de
usar la seal.
Caractersticas
Signalxo es un tipo de dato non-value. Por tanto, los datos de este tipo no son compatibles
con operaciones basadas en valores.
Signalxi es un tipo de datos de semivalor.
Gestin de errores
Pueden generarse los errores recuperables siguientes. El error puede ser gestionado en un
gestor de errores. La variable de sistema ERRNO cambia a:
ERR_NORUNUNIT si se ha perdido el contacto con la unidad.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de instrucciones de entrada y salida Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Seales de entrada y salida
Funcionalidad de entrada/salida en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Principios de E/S
Configuracin de E/S Manual de referencia tcnica - Parmetros
del sistema
Caractersticas de los tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.53. socketdev - Dispositivo de zcalo
Socket Messaging
3HAC16581-5 Revisin: H 1180


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.53. socketdev - Dispositivo de zcalo
Utilizacin
socketdev (socket device) se usa para comunicarse con otros ordenadores en una red o entre
tareas de RAPID.
Descripcin
El dispositivo de zcalo es el manejador de un enlace de comunicaciones con otro ordenador
de una red.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato socketdev.
Ejemplo 1
VAR socketdev socket1;
Se define la variable socket1, que puede usarse en un comando de zcalo, por ejemplo
SocketCreate.
Limitaciones
Es posible declarar tantos zcalos como se desee, pero slo es posible utilizar 8 de ellos al
mismo tiempo.
Caractersticas
socketdev es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control
Creacin de un nuevo zcalo SocketCreate - Crea un nuevo zcalo en la
pgina 468
Caractersticas de los tipos de datos sin
valor
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.54. socketstatus - Estado de comunicacin de zcalo
Socket Messaging
1181 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.54. socketstatus - Estado de comunicacin de zcalo
Utilizacin
socketstatus se usa para representar el estado de la comunicacin con zcalos.
Descripcin
El estado del zcalo se captura con la funcin SocketGetStatus y puede usarse en tareas
como el control del flujo de un programa o la depuracin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato socketstatus.
Ejemplo 1
VAR socketdev socket1;
VAR socketstatus state;
...
SocketCreate socket1;
state := SocketGetStatus( socket1 );
El estado de zcalo SOCKET_CREATED se almacena en la variable state.
Datos predefinidos
Se han predefinido las constantes siguientes del tipo socketstatus:
Caractersticas
socketstatus es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante de RAPID Valor Estado de zcalo...
SOCKET_CREATED 1 Creado
SOCKET_CONNECTED 2 Cliente conectado a un host remoto
SOCKET_BOUND 3 Servidor enlazado a una direccin y un puerto
locales
SOCKET_LISTENING 4 Servidor a la escucha de conexiones
entrantes
SOCKET_CLOSED 5 Cerrado
Para obtener ms informacin sobre Consulte
Comunicacin con zcalos en general Application manual - Robot communication
and I/O control
Obtencin del estado de zcalo SocketGetStatus - Obtiene el estado actual
de un zcalo en la pgina 982
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.55. speeddata - Datos de velocidad
RobotWare - OS
3HAC16581-5 Revisin: H 1182


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.55. speeddata - Datos de velocidad
Utilizacin
speeddata se utiliza para especificar la velocidad a la que deben moverse los ejes, tanto los
del robot como los ejes externos.
Description
Los datos de velocidad se utilizan para definir las velocidades siguientes:
Velocidad a la que se mueve el punto central de la herramienta
Velocidad de reorientacin de la herramienta
Velocidad a la que se mueven los ejes lineales o de rotacin.
Cuando se combinan varios tipos de movimiento, una de las velocidades suele limitar todos
los movimientos. La velocidad de los dems movimientos se reduce de forma que todos los
movimientos terminen de ejecutarse al mismo tiempo.
La velocidad tambin est limitada por el rendimiento del robot. Este rendimiento es distinto
segn el tipo de robot y la trayectoria del movimiento.
Componentes
v_tcp
velocity tcp
Tipo de dato:num
La velocidad del punto central de la herramienta (TCP) en mm/s.
Si se utiliza una herramienta estacionaria o ejes externos coordinados, la velocidad se
especifica respecto del objeto de trabajo.
v_ori
velocity orientation
Tipo de dato: num
La velocidad de reorientacin alrededor del TCP, expresada en grados/s.
Si se utiliza una herramienta estacionaria o ejes externos coordinados, la velocidad se
especifica respecto del objeto de trabajo.
v_leax
velocity linear external axes
Tipo de dato: num
La velocidad de los ejes externos lineales, en mm/s.
v_reax
velocity rotational external axes
Tipo de dato: num
La velocidad de los ejes externos de rotacin, en grados/s.
Contina en la pgina siguiente
3 Tipos de datos
3.55. speeddata - Datos de velocidad
RobotWare - OS
1183 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato speeddata.
Ejemplo 1
VAR speeddata vmedium := [ 1000, 30, 200, 15 ];
Se definen los datos de velocidad vmedium con las velocidades siguientes:
1.000 mm/s para el TCP.
30 grados/s para la reorientacin de la herramienta.
200 mm/s para los ejes externos lineales.
15 grados/s para los ejes externos de rotacin.
vmedium.v_tcp := 900;
Se cambia la velocidad del TCP a 900 mm/s.
Limitaciones
Con un movimiento muy lento, cada movimiento debe ser lo suficientemente corto para
generar un tiempo de interpolacin inferior a los 240 segundos.
Datos predefinidos
Existen varios datos de velocidad ya definidos en el mdulo de sistema BASE.
Datos de velocidad predefinidos para su uso en los movimientos del robot y de los ejes
externos:
Nombre Velocidad del TCP Orientacin
Eje externo
lineal
Eje externo de
rotacin
v5 5 mm/s 500/s 5000 mm/s 1000/s
v10 10 mm/s 500/s 5000 mm/s 1000/s
v20 20 mm/s 500/s 5000 mm/s 1000/s
v30 30 mm/s 500/s 5000 mm/s 1000/s
v40 40 mm/s 500/s 5000 mm/s 1000/s
v50 50 mm/s 500/s 5000 mm/s 1000/s
v60 60 mm/s 500/s 5000 mm/s 1000/s
v80 80 mm/s 500/s 5000 mm/s 1000/s
v100 100 mm/s 500/s 5000 mm/s 1000/s
v150 150 mm/s 500/s 5000 mm/s 1000/s
v200 200 mm/s 500/s 5000 mm/s 1000/s
v300 300 mm/s 500/s 5000 mm/s 1000/s
v400 400 mm/s 500/s 5000 mm/s 1000/s
v500 500 mm/s 500/s 5000 mm/s 1000/s
v600 600 mm/s 500/s 5000 mm/s 1000/s
v800 800 mm/s 500/s 5000 mm/s 1000/s
v1000 1.000 mm/s 500/s 5000 mm/s 1000/s
v1500 1500 mm/s 500/s 5000 mm/s 1000/s
v2000 2000 mm/s 500/s 5000 mm/s 1000/s
v2500 2500 mm/s 500/s 5000 mm/s 1000/s
v3000 3000 mm/s 500/s 5000 mm/s 1000/s
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.55. speeddata - Datos de velocidad
RobotWare - OS
3HAC16581-5 Revisin: H 1184


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
*) 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. Si utiliza valores
de TCP extremadamente altos en la base de coordenadas de la herramienta, cree sus propios
datos de velocidad con una velocidad de TCP mayor que la que devuelve MaxRobSpeed.
Datos de velocidad predefinidos para su uso en los movimientos de ejes externos de rotacin
con la instruccin MoveExtJ.
Datos de velocidad predefinidos para su uso en los movimientos de ejes externos lineales con
la instruccin MoveExtJ.
Estructura
< dataobject of speeddata >
< v_tcp of num >
< v_ori of num >
< v_leax of num >
< v_reax of num >
v4000 4000 mm/s 500/s 5000 mm/s 1000/s
v5000 5000 mm/s 500/s 5000 mm/s 1000/s
v6000 6000 mm/s 500/s 5000 mm/s 1000/s
v7000 7000 mm/s 500/s 5000 mm/s 1000/s
vmax *) 500/s 5000 mm/s 1000/s
Nombre Velocidad del TCP Orientacin
Eje externo
lineal
Eje externo de
rotacin
vrot1 0 mm/s 0/s 0 mm/s 1/s
vrot2 0 mm/s 0/s 0 mm/s 2/s
vrot5 0 mm/s 0/s 0 mm/s 5/s
vrot10 0 mm/s 0/s 0 mm/s 10/s
vrot20 0 mm/s 0/s 0 mm/s 20/s
vrot50 0 mm/s 0/s 0 mm/s 50/s
vrot100 0 mm/s 0/s 0 mm/s 100/s
Nombre Velocidad del TCP Orientacin
Eje externo
lineal
Eje externo de
rotacin
vlin10 0 mm/s 0/s 10 mm/s 0/s
vlin20 0 mm/s 0/s 20 mm/s 0/s
vlin50 0 mm/s 0/s 50 mm/s 0/s
vlin100 0 mm/s 0/s 100 mm/s 0/s
vlin200 0 mm/s 0/s 200 mm/s 0/s
vlin500 0 mm/s 0/s 500 mm/s 0/s
lin1000 0 mm/s 0/s 1.000 mm/s 0/s
Nombre Velocidad del TCP Orientacin
Eje externo
lineal
Eje externo de
rotacin
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.55. speeddata - Datos de velocidad
RobotWare - OS
1185 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimiento y velocidad en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Definicin de la velocidad mxima VelSet - Cambia la velocidad programada en
la pgina 671
Velocidad mxima del TCP para el robot
actual
MaxRobSpeed - Velocidad mxima del robot
en la pgina 901
Continuacin
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 1186


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.56. stoppointdata - Datos de punto de paro
Utilizacin
stoppointdata se utiliza para especificar cmo debe terminar una posicin, es decir, a qu
distancia de la posicin programada deben encontrarse los ejes antes de iniciar un
movimiento hasta la posicin siguiente.
Descripcin
Una posicin puede terminar en forma de un punto de paso o un punto de paro.
El punto de paso significa que la posicin programada no llega a alcanzarse nunca. La
instruccin especifica una zona para el movimiento, definiendo una trayectoria de esquina.
En lugar de dirigirse hacia la posicin programada, la direccin del movimiento toma la
forma de una trayectoria de esquina antes de alcanzar la posicin. Consulte Tipos de datos -
zonedata.
Un punto de paro significa que los ejes del robot y los ejes externos deben alcanzar la posicin
especificada antes de que continen con el movimiento siguiente. Se considera que el robot
ha alcanzado un punto de paro cuando se satisfacen los criterios de convergencia del punto.
Los criterios de convergencia son la velocidad y la posicin. Tambin es posible especificar
criterios de temporizacin. Para el punto de parada fine, consulte tambin el tipo de dato
zonedata.
Es posible definir tres tipos de puntos de paro mediante stoppointdata.
El tipo de punto de paro en posicin se define como un porcentaje de los criterios de
convergencia (posicin y velocidad) para el punto de paro fine predefinido. El tipo
en posicin tambin utiliza un tiempo mnimo y un tiempo mximo. El robot espera
el cumplimiento de los criterios de posicin y velocidad, durante al menos el tiempo
mnimo y como mucho el tiempo mximo.
En los puntos de paro de tiempo de paro, se espera siempre el tiempo especificado
sin dejar el punto de paro.
Los puntos de paro de tiempo de seguimiento son puntos de paro de un tipo especial
que se utilizan para coordinar los movimientos del robot con un transportador.
Los datos de tipo stoppointdata tambin determinan cmo deben sincronizarse los
movimientos con la ejecucin de RAPID. Si el movimiento se sincroniza, la ejecucin de
RAPID espera a un evento de tipo en posicin cuando el robot est en posicin. Si el
movimiento no est sincronizado, la ejecucin de RAPID recibe un evento de precaptura
casi medio segundo antes de que el robot fsico alcance la posicin programada. Cuando la
ejecucin del programa recibe un evento en posicin o precaptura, contina con la
instruccin siguiente. Cuando llega el evento precaptura, el robot sigue teniendo un margen
de maniobra amplio. Cuando llega el evento en posicin, el robot est cerca de la posicin
programada.
Con los tipos tiempo de paro y tiempo de seguimiento, la instruccin siguiente empieza a
ejecutarse al mismo tiempo que empieza la cuenta atrs del tiempo de parada y del tiempo de
seguimiento, respectivamente. Sin embargo, para el tipo en posicin, la siguiente instruccin
se inicia cuando se cumplen los criterios de convergencia.
Contina en la pgina siguiente
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
1187 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Si utiliza instrucciones de movimiento con el argumento \Conc, no se realiza ninguna
sincronizacin, de modo que la ejecucin real de la instruccin de movimiento estar
preparada inmediatamente.
xx0500002374
La figura anterior representa la terminacin de los puntos de paro. La velocidad del robot no
reduce la velocidad lineal. El servo del robot siempre va por delante del robot fsico. Esto se
representa como el retraso constante en la figura anterior. El retraso constante es de
aproximadamente 0,1 segundos. Los elementos de temporizacin de stoppointdata
utilizan como disparador una velocidad de referencia. La medicin de tiempo comienza
cuando la velocidad de referencia es cero. Por tanto, el tiempo de los elementos de
temporizacin siempre incluyen el retraso constante. La consecuencia es que no tiene sentido
utilizar valores inferiores al retraso constante.
Componentes
type
type of stop point
Tipo de dato: stoppoint
La tabla siguiente define el tipo de stoppoint.
1 (inpos) El movimiento termina como un tipo de punto de parada "en
posicin". Activa el elemento inpos de stoppointdata. No se
utilizan los datos de zona de la instruccin, sino fine o z0.
2 (stoptime) El movimiento termina con un tipo de punto de paro de "tiempo de
paro". Activa el elemento stoptime de stoppointdata. No se
utilizan los datos de zona de la instruccin, sino fine o z0.
3 (followtime) El movimiento termina con un tipo de tiempo exacto de
seguimiento del transportador. Los datos de zona de la instruccin
se utilizan cuando el robot abandona el transportador. Activa el
elemento followtime de stoppointdata.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 1188


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
El tipo de dato stoppoint es un tipo de dato de alias de num. Se utiliza para elegir el tipo de
punto de paro y qu elementos de datos de stoppointdata deben utilizarse. Sus constantes
predefinidas son:
progsynch
program synchronization
Tipo de dato: bool
Sincronizacin con la ejecucin del programa de RAPID.
TRUE: El movimiento est sincronizado con la ejecucin de RAPID. El programa no
empieza a ejecutar la instruccin siguiente hasta que se ha alcanzado el punto de paro.
FALSE: El movimiento no est sincronizado con la ejecucin de RAPID. El programa
empieza a ejecutar la instruccin siguiente antes de alcanzar el punto de paro.
Si utiliza instrucciones de movimiento con el argumento \Conc, no se realiza ninguna
sincronizacin de forma independiente de los datos de progsynch, de modo que la
instruccin de movimiento real estar siempre preparada inmediatamente.
inpos.position
position condition for TCP
Tipo de dato: num
La condicin de posicin (el radio) del TCP en porcentaje de un punto de paro fine normal.
inpos.speed
speed condition for TCP
Tipo de dato: num
La condicin de velocidad del TCP en porcentaje de un punto de paro fine normal.
inpos.mintime
minimum wait time
Tipo de dato: num
El tiempo de espera mnimo, en segundos, antes de alcanzar la posicin. Se utiliza para hacer
que el robot espere en el punto al menos el tiempo especificado. El valor mximo es de 20,0
segundos.
inpos.maxtime
maximum wait time
Tipo de dato: num
El tiempo mximo, en segundos, que se espera a que se cumplan los criterios de convergencia.
Se utilizan para garantizar que el robot no se quede parado en el punto si se han establecido
condiciones de velocidad y posicin demasiado estrictas. El valor mximo es de 20,0
segundos.
Valor Constante simblica Comentario
1 inpos Nmero de tipo en posicin
2 stoptime Nmero de tipo de tiempo de paro
3 fllwtime Nmero de tipo de tiempo de seguimiento
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
1189 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
stoptime
stop time
Tipo de dato: num
El tiempo, en segundos, que el TCP permanece parado en la posicin antes de empezar el
movimiento siguiente. Rango vlido de 0 a 20 s, resolucin 0,001 s.
followtime
follow time
Tipo de dato: num
El tiempo, en segundos, que el TCP sigue al transportador. Rango vlido de 0 a 20 s,
resolucin 0,001 s.
signal
Tipo de dato: string
Reservado para un uso futuro.
relation
Tipo de dato: opnum
Reservado para un uso futuro.
checkvalue
Tipo de dato: num
Reservado para un uso futuro.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato stoppointdata.
Inpos
VAR stoppointdata my_inpos := [ inpos, TRUE, [ 25, 40, 0.1, 5], 0,
0, "", 0, 0];
MoveL *, v1000, fine \Inpos:=my_inpos, grip4;
Se definen los datos del punto de paro my_inpos con las caractersticas siguientes:
El punto de paro es de tipo "en posicin", inpos.
El punto de paro estar sincronizado con la ejecucin del programa de RAPID, TRUE.
El criterio de distancia del punto de paro es del 25% de la distancia definida para el
punto de paro fine, 25.
El criterio de velocidad del punto de paro es del 40% de la velocidad definida para el
punto de paro fine, 40.
El tiempo mnimo que se espera a la convergencia es 0,1 s, 0.1.
El tiempo mximo que se espera a la convergencia es 5 s, 5.
El robot se mueve hacia la posicin programada hasta que se cumple uno de los criterios de
posicin o velocidad.
my_inpos.inpos.position := 40;
MoveL *, v1000, fine \Inpos:=my_inpos, grip4;
Se ajusta el criterio de distancia del punto de paro al 40%.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
3HAC16581-5 Revisin: H 1190


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Stoptime
VAR stoppointdata my_stoptime := [ stoptime, FALSE, [ 0, 0, 0, 0],
1.45, 0, "", 0, 0];
MoveL *, v1000, fine \Inpos:=my_stoptime, grip4;
Se definen los datos del punto de paro my_stoptime con las caractersticas siguientes:
El punto de paro es de tipo de tiempo de espera, stoptime.
El punto de paro no estar sincronizado con la ejecucin del programa de RAPID,
FALSE.
El tiempo de espera en posicin es de 1,45 s.
El robot se mueve hacia la posicin programada hasta que llega el evento de precaptura. Se
ejecuta la siguiente instruccin de RAPID. Si es una instruccin de movimiento, el robot se
detiene durante 1,45 segundos antes de empezar el movimiento siguiente.
my_stoptime.stoptime := 6.66;
MoveL *, v1000, fine \Inpos:=my_stoptime, grip4;
Se ajusta el tiempo de paro del punto de paro a 6,66 s. Si la siguiente instruccin de RAPID
es una instruccin de movimiento, el robot se detiene durante 6,66 s.
Followtime
VAR stoppointdata my_followtime := [ fllwtime, TRUE, [ 0, 0, 0,
0], 0, 0.5, "", 0, 0];
MoveL *, v1000, z10 \Inpos:=my_followtime, grip6\wobj:=conveyor1;
Se definen los datos del punto de paro my_followtime con las caractersticas siguientes:
El punto de paro es de tipo de tiempo de seguimiento, fllwtime.
El punto de paro estar sincronizado con la ejecucin del programa de RAPID, TRUE.
El tiempo de seguimiento del punto de paro es de 0,5 s, 0.5.
El robot sigue al transportador durante 0,5 s antes de dejarlo, con una zona de 10 mm, z10.
my_followtime.followtime := 0.4;
Se ajusta el tiempo de seguimiento del punto de paro a 0,4 s.
Datos predefinidos
Existen varios datos de punto de paro ya definidos en el mdulo de sistema BASE.
Puntos de paro en posicin
(inpos100 tiene los mismos criterios de convergencia que el punto de paro fine)
Nombre Progsynch Position Speed Mintime Maxtime
Stop-
time
Follow-
time
inpos20 TRUE 20% 20% 0 s 2 s - -
inpos50 TRUE 50% 50% 0 s 2 s - -
inpos100 TRUE 100% 100% 0 s 2 s - -
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.56. stoppointdata - Datos de punto de paro
RobotWare - OS
1191 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Puntos de paro de tiempo de paro
Puntos de paro de tiempo de seguimiento
Estructura
< data object of stoppointdata >
< type of stoppoint >
< progsynch of bool >
< inpos of inposdata >
< position of num >
< speed of num >
< mintime of num >
< maxtime of num >
< stoptime of num >
< followtime of num >
< signal of string >
< relation of opnum >
< checkvalue of num >
Informacin relacionada
Nombre Progsynch Position Speed Mintime Maxtime
Stop-
time
Follow-
time
stoptime0_5 FALSE - - - - 0.5 s -
stoptime1_0 FALSE - - - - 1.0 s -
stoptime1_5 FALSE - - - - 1.5 s -
Nombre Progsynch Position Speed Mintime Maxtime
Stop-
time
Follow-
time
fllwtime0_5 TRUE - - - - - 0.5 s
fllwtime1_0 TRUE - - - - - 1.0 s
fllwtime1_5 TRUE - - - - - 1.5 s
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimientos/trayectorias en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Puntos de paro o de paso zonedata - Datos de zonas en la pgina 1231
Continuacin
3 Tipos de datos
3.57. string - Cadenas de caracteres
RobotWare - OS
3HAC16581-5 Revisin: H 1192


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.57. string - Cadenas de caracteres
Utilizacin
string se utiliza con cadenas de caracteres.
Descripcin
Las cadenas de caracteres estn compuestas por varios caracteres (un mximo de 80)
encerrados entre comillas (""), por ejemplo "Esto es una cadena de caracteres".
Si desea incluir comillas dentro de la cadena de caracteres, debe escribirlas dos veces, por
ejemplo "Esta cadena contiene un carcter "" de comilla doble".
Si desea incluir una barra invertida dentro de la cadena de caracteres, debe escribirla dos
veces, por ejemplo "Esta cadena contiene un carcter \\".
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato string.
Ejemplo 1
VAR string text;
...
text := "start welding pipe 1";
TPWrite text;
El texto start welding pipe 1 se escribe en el FlexPendant.
Limitaciones
Una cadena puede tener de 0 a 80 caracteres, incluidas las comillas o las barras invertidas que
se utilicen.
Las cadenas de caracteres pueden contener cualquiera de los caracteres especificados en la
norma ISO 8859-1 (Latin-1), adems de caracteres de control (caracteres ajenos al estndar
ISO 8859-1 (Latin-1) y con cdigos numricos de 0 a 255).
Datos predefinidos
El sistema dispone de varias constantes de cadena de caracteres predefinidas, que pueden
usarse junto con las funciones para cadenas de caracteres. Consulte el ejemplo StrMemb.
Nombre Conjunto de caracteres
STR_DIGIT <digit>::=
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
STR_UPPER <upper case letter>::=
A | B | C | D | E | F | G | H | I | J
| K | L | M | N | O | P | Q | R | S | T
| U | V | W | X | Y | Z | | | |
| | | | | | | | | |
| | | 1)| | | | | | |
| | | | | 2) | 3)
Contina en la pgina siguiente
3 Tipos de datos
3.57. string - Cadenas de caracteres
RobotWare - OS
1193 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
1) Letra "eth" islandesa.
2) Letra Y con acento agudo.
3) Letra "thorn" islandesa.
Las constantes siguientes ya estn definidas en el mdulo de sistema BASE:
CONST string diskhome := "HOME:";
! For old programs from S4C system
CONST string ram1disk := "HOME:";
CONST string disktemp := "TEMP:";
CONST string flp1 := "flp1:";
CONST string stEmpty := "";
stEmpty puede resultar til a la hora de ahorrar memoria si se utiliza un nmero elevado de
cadenas vacas, por ejemplo:
TPReadFK reg1, "warm start required", stEmpty, stEmpty, stEmpty,
stEmpty, "OK";
Informacin relacionada
STR_LOWER <lower case letter>::=
a | b | c | d | e | f | g | h | i | j
| k | l | m | n | o | p | q | r | s | t
| u | v | w | x | y | z | | | |
| | | | | | | | | |
| | | 1) | | | | | | |
| | | | | 2) | 3) | | -
STR_WHITE <blank character>::=
Nombre Conjunto de caracteres
Para obtener ms informacin sobre Consulte
Operaciones con cadenas de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Expresiones
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Instrucciones que utilizan juegos de
caracteres
StrMemb - Comprueba si un carcter
pertenece a un conjunto en la pgina 1010
Continuacin
3 Tipos de datos
3.58. stringdig - Cadena de caracteres con slo dos dgitos
RobotWare - OS
3HAC16581-5 Revisin: H 1194


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.58. stringdig - Cadena de caracteres con slo dos dgitos
Utilizacin
stringdig se utiliza para representar enteros positivos grandes en una cadena, usando
nicamente dgitos.
Este tipo de dato ha sido introducido dado que el tipo de dato num no es capaz de manejar
enteros positivos superiores a 8.388.608 con una representacin exacta.
Descripcin
Un dato stringdig slo puede contener los dgitos del 0 al 9 encerrados entre guiones (""),
por ejemplo "0123456789".
El tipo de dato stringdig puede manejar enteros positivos hasta 4.294.967.295.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato stringdig.
Ejemplo 1
VAR stringdig digits1;
VAR stringdig digits2;
VAR bool flag1;
...
digits1 ="09000000";
digits2 = "9000001";
flag1 := StrDigCmp (digits1, LT, digits2);
El dato flag1 cambia a TRUE porque 09000000 es inferior a 9000001.
Caractersticas
stringdig es un tipo de dato de alias de string y por tanto hereda la mayor parte de sus
caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Valores de cadena de caracteres Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Elementos bsicos
Cadenas string - Cadenas de caracteres en la pgina
1192
Valores numricos num - Valores numricos en la pgina 1142
Operador de comparacin opnum - Operador de comparacin en la
pgina 1145StrDigCmp - Comparar dos
cadenas que slo contienen dgitos en la
pgina 1000
Comparar cadenas que slo contienen
dgitos
StrDigCmp - Comparar dos cadenas que slo
contienen dgitos en la pgina 1000
3 Tipos de datos
3.59. switch - Optional parameters
RobotWare - OS
1195 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.59. switch - Optional parameters
Utilizacin
switch se utiliza para los parmetros opcionales.
Descripcin
El tipo especial switch (slo) puede ser asignado a parmetros opcionales y proporciona una
forma de usar argumentos modificadores, es decir, argumentos que slo se especifican por
nombre (no por valor). No es posible transmitir un valor a un parmetro modificador. La nica
forma de usar un parmetro modificador es comprobar su presencia mediante la funcin
predefinida Present.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato switch.
Ejemplo 1
PROC my_routine(\switch on | \switch off)
....
IF Present (off ) THEN
....
ENDIF
ENDPROC
En funcin de los argumentos utilizados por la rutina que llama a my_routine, el flujo del
programa puede ser controlado.
Caractersticas
switch es un tipo de dato sin valor y no puede usarse en operaciones basadas en valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
sistema Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Rutinas
Cmo comprobar si est presente un
parmetro opcional
Present - Comprueba si se est usando un
parmetro opcional en la pgina 946
3 Tipos de datos
3.60. symnum - Nmero simblico
RobotWare - OS
3HAC16581-5 Revisin: H 1196


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.60. symnum - Nmero simblico
Utilizacin
symnum (Symbolic Number) se utiliza para representar un entero con una constante
simblica.
Descripcin
Las constantes de symnum se han diseado para usarlas al comprobar el valor de retorno de
las funciones OpMode y RunMode. Consulte el ejemplo siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato symnum.
Ejemplo 1
IF RunMode() = RUN_CONT_CYCLE THEN
..
ELSE
..
ENDIF
Datos predefinidos
Se han definido las constantes simblicas siguientes del tipo de dato symnum. Puede usarlas
a la hora de comprobar valores de retorno de las funciones OpMode y RunMode.
Caractersticas
Symnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Valor Constante simblica Comentario
0 RUN_UNDEF Modo de ejecucin no definido
1 RUN_CONT_CYCLE Modo de ejecucin continuo o en modo ciclo
2 RUN_INSTR_FWD Modo de ejecucin de avance de instrucciones
3 RUN_INSTR_BWD Modo de ejecucin hacia atrs
4 RUN_SIM Modo de ejecucin simulado
5 RUN_STEP_MOVE Instrucciones de movimiento en ejecucin hacia
delante e instrucciones lgicas en modo de ejecucin
continuo
Valor Constante simblica Comentario
0 OP_UNDEF Modo de funcionamiento no definido
1 OP_AUTO Modo de funcionamiento automtico
2 OP_MAN_PROG Modo de funcionamiento manual a 250 mm/seg como
mximo
3 OP_MAN_TEST Modo de funcionamiento manual a mxima velocidad,
100%
Contina en la pgina siguiente
3 Tipos de datos
3.60. symnum - Nmero simblico
RobotWare - OS
1197 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Continuacin
3 Tipos de datos
3.61. syncident - Identidad de punto de sincronizacin
Multitasking
3HAC16581-5 Revisin: H 1198


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.61. syncident - Identidad de punto de sincronizacin
Utilizacin
syncident (synchronization identity) se utiliza para especificar el nombre de un punto de
sincronizacin. El nombre del punto de sincronizacin tendr el mismo nombre (identidad)
de los datos declarados con el tipo syncident.
Descripcin
syncident se utiliza para identificar un punto de programa en el que la tarea de programa
actual esperar a que las tareas de programa cooperantes alcancen el mismo punto de
sincronizacin.
El nombre (la identidad) del dato del tipo syncident debe ser el mismo en todas las tareas
de programa cooperantes.
Los datos del tipo syncident se utilizan en las instrucciones WaitSyncTask, SyncMoveOn y
SyncMoveOff.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato syncident.
Ejemplo 1
Ejemplo de programa de la tarea de programa ROB1
PERS tasks task_list{3} := [ ["STN1"], ["ROB1"], ["ROB2"] ];
VAR syncident sync1;
WaitSyncTask sync1, task_list;
En el momento de la ejecucin de la instruccin WaitSyncTask en la tarea de programa
ROB1, la ejecucin de dicha tarea de programa esperar a que las dems tareas de programa,
STN1 y ROB2, hayan alcanzado su instruccin WaitSyncTask correspondiente con el mismo
punto de sincronizacin (reunin), sync1.
Estructura
syncident es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Especificacin de tareas de programa coop-
erativas
tasks - Tareas de programa de RAPID en la
pgina 1203
Espera de un punto de sincronizacin con
otras tareas
WaitSyncTask - Espera en un punto de sin-
cronizacin con otras tareas de programa en
la pgina 694
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
3 Tipos de datos
3.62. Datos del sistema - Valores actuales de los datos del sistema de RAPID
RobotWare - OS
1199 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.62. Datos del sistema - Valores actuales de los datos del sistema de RAPID
Utilizacin
System data refleja los valores actuales de los datos del sistema de RAPID, el nmero
actual de recuperacin en caso de error ERRNO, el nmero actual de interrupcin INTNO, etc.
Estos datos pueden ser utilizados y ledos por el programa. Pueden usarse para leer el estado
actual, por ejemplo, el desplazamiento actual del programa.
C_MOTSET
La variable C_MOTSET del tipo de dato motsetdata refleja los valores de movimiento
actuales:
Descripcin
Tipo de
dato
Cambiado
por
Ms informacin
Parmetros actuales
de movimiento, es
decir:
motsetdata Instrucciones motsetdata - Datos de parmetros
de movimiento en la pgina 1137
Ajuste de velocidad y
velocidad mxima
VelSet VelSet - Cambia la velocidad
programada en la pgina 671
Ajuste de aceleracin AccSet AccSet - Reduce la aceleracin en
la pgina 15
Movimientos cerca de
puntos singulares
SingArea SingArea - Define el mtodo de
interpolacin alrededor de puntos
singulares en la pgina 455
Control de configu-
racin lineal
Control de configu-
racin de ejes
ConfL
ConfJ
ConfL - Monitoriza la configuracin
durante el movimiento lineal en la
pgina 61
ConfJ - Controla la configuracin
durante el movimiento de los ejes
en la pgina 59
Resolucin de la
trayectoria
PathResol PathResol - Ajusta la resolucin de
la trayectoria en la pgina 320
Ajuste de la
supervisin de
movimiento
MotionSup MotionSup - Desactiva/activa la
supervisin del movimiento en la
pgina 228
Reduccin de la
aceleracin y decel-
eracin del TCP a lo
largo de la trayectoria
de movimiento
PathAccLim PathAccLim - Reduce la
aceleracin del TCP a lo largo de la
trayectoria en la pgina 300
Modificacin de la
orientacin de la
herramienta durante
la interpolacin
circular
CirPathMode CirPathMode - Reorientacin de la
herramienta durante trayectorias
circulares en la pgina 37
Reduccin de la
aceleracin de la
carga til en el
sistema de
coordenadas mundo
WorldAccLim WorldAccLim - Control de
aceleracin en el sistema de
coordenadas mundo en la pgina
712
Contina en la pgina siguiente
3 Tipos de datos
3.62. Datos del sistema - Valores actuales de los datos del sistema de RAPID
RobotWare - OS
3HAC16581-5 Revisin: H 1200


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
C_PROGDISP
La variable C_PROGDISP del tipo de dato progdisp refleja el desplazamiento actual del
programa y el offset de los ejes externos:
ERRNO
La variable ERRNO del tipo de dato errnum refleja el nmero actual de recuperacin en caso
de error:
INTNO
La variable INTNO del tipo de dato intnum refleja el nmero actual de interrupcin:
Descripcin
Tipo de
dato
Cambiado
por
Ms informacin
Desplazamiento de
programa actual para
los ejes del robot
progdisp Instrucciones: progdisp - Desplazamiento de
programa en la pgina 1159
PDispSet PDispSet - Activa un
desplazamiento de programa a
partir de una base de coordenadas
conocida en la pgina 328
PDispOn PDispOn - Activa el
desplazamiento de programa en la
pgina 324
PDispOff PDispOff - Desactiva el
desplazamiento de programa en la
pgina 323
Offset actual de los
ejes externos
EOffsSet EOffsSet - Activa un offset de ejes
externos a partir de valores
conocidos en la pgina 88
EOffsOn EOffsOn - Activa un offset de ejes
externos en la pgina 86
EOffsOff EOffsOff - Desactiva un offset de
ejes externos en la pgina 85
Descripcin
Tipo de
dato
Cambiado
por
Ms informacin
El ltimo error que ha
tenido lugar.
errnum El sistema Manual de referencia tcnica -
Descripcin general de RAPID,
seccin Resumen sobre RAPID -
Recuperacin en caso de error
intnum - Identidad de interrupcin
en la pgina 1121
Descripcin
Tipo de
dato
Cambiado
por
Ms informacin
La ltima interrupcin
que ha tenido lugar.
intnum El sistema Manual de referencia tcnica -
Descripcin general de RAPID,
seccin Resumen sobre RAPID -
Interrupciones
intnum - Identidad de interrupcin
en la pgina 1121
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.62. Datos del sistema - Valores actuales de los datos del sistema de RAPID
RobotWare - OS
1201 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ROB_ID
La variable ROB_ID del tipo de dato mecunit contiene una referencia al robot con TCP (si
lo hay) de la tarea de programa actual.
Descripcin
Tipo de
dato
Cambiado
por
Ms informacin
Referencia al robot (si
corresponde) en la
tarea de programa
actual. Comprubelo
antes de usar con
TaskRunRob ()
mecunit El sistema mecunit - Unidad mecnica en la
pgina 1135
Continuacin
3 Tipos de datos
3.63. taskid - Identificacin de tareas
Multitasking
3HAC16581-5 Revisin: H 1202


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.63. taskid - Identificacin de tareas
Utilizacin
taskid se utiliza para identificar tareas de programa disponibles en el sistema.
Los nombres de las tareas de programa se definen en los parmetros del sistema y, por tanto,
no es necesario definirlos en el programa.
Descripcin
Los datos del tipo taskid slo contienen una referencia a la tarea de programa.
Limitaciones
No debe definir los datos de tipo taskid en el programa. Sin embargo, s es posible
utilizarlos como parmetros al declarar una rutina.
Datos predefinidos
Las tareas de programa definidas en los parmetros del sistema estn siempre disponibles
desde el programa (datos instalados).
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 T_ROB1 la identificacin de la tarea es T_ROB1Id, T_ROB2 - T_ROB2Id etc.
Caractersticas
taskid es un tipo de dato sin valor. Esto significa que los datos de este tipo no son
compatibles con operaciones basadas en valores.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Guardado de mdulos de programa Save - Guarda un mdulo de programa en la
pgina 403
Configuracin de tareas de programa Manual de referencia tcnica - Parmetros del
sistema
Caractersticas de los tipos de datos sin
valor
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
3 Tipos de datos
3.64. tasks - Tareas de programa de RAPID
Multitasking
1203 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.64. tasks - Tareas de programa de RAPID
Utilizacin
tasks se utiliza para especificar varias tareas de programa de RAPID.
Descripcin
Para especificar varias tareas de programa de RAPID, es posible indicar el nombre de cada
tarea como una cadena. En este caso, una matriz del tipo de dato tasks puede contener todos
los nombres de las tareas.
A continuacin, esta lista de tareas puede ser utilizada en las instrucciones WaitSyncTask y
SyncMoveOn.
NOTA!
Estas instrucciones exigen que los datos estn definidos como variables PERS globales del
sistema y disponibles en todas las tareas cooperantes.
Componentes
El tipo de dato contiene los componentes siguientes:
taskname
Tipo de dato: string
El nombre de una tarea de programa de RAPID, especificado en una cadena.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato tasks.
Ejemplo 1
Ejemplo de programa de la tarea de programa T_ROB1
PERS tasks task_list{3} := [ ["T_STN1"], ["T_ROB1"], ["T_ROB2"] ];
VAR syncident sync1;
WaitSyncTask sync1, task_list;
En el momento de la ejecucin de la instruccin WaitSyncTask en la tarea de programa
T_ROB1, la ejecucin de dicha tarea de programa esperar a que las dems tareas de
programa, T_STN1 y T_ROB2, hayan alcanzado su instruccin WaitSyncTask
correspondiente con el mismo punto de sincronizacin (reunin), sync1.
Estructura
<dataobject of tasks>
<taskname of string>
Contina en la pgina siguiente
3 Tipos de datos
3.64. tasks - Tareas de programa de RAPID
Multitasking
3HAC16581-5 Revisin: H 1204


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Identidad para punto de sincronizacin syncident - Identidad de punto de sincroniza-
cin en la pgina 1198
Espera de un punto de sincronizacin con
otras tareas
WaitSyncTask - Espera en un punto de sin-
cronizacin con otras tareas de programa en
la pgina 694
Inicio de movimientos sincronizados
coordinados
SyncMoveOn - Inicia los movimientos sin-
cronizados coordinados en la pgina 542
Fin de movimientos sincronizados
coordinados
SyncMoveOff - Finaliza los movimientos sin-
cronizados coordinados en la pgina 537
Continuacin
3 Tipos de datos
3.65. testsignal - Seal de prueba
RobotWare - OS
1205 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.65. testsignal - Seal de prueba
Utilizacin
El tipo de dato testsignal se utiliza cuando se realiza un test del sistema de movimiento
del robot.
Descripcin
El sistema de robot cuenta con varias seales de test predefinidas. El tipo de dato
testsignal puede usarse para simplificar la programacin de la instruccin
TestSignDefine.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato testsignal.
Ejemplo 1
TestSignDefine 2, speed, Orbit, 2, 0;
La constante predefinida speed se usa para leer la velocidad actual del eje 2 en el
manipulador orbit.
Datos predefinidos
El sistema tiene predefinidas las seales de test siguientes para los ejes del manipulador
externo. Todos los datos se indican en unidades SI y se miden en el lado del motor del eje.
Caractersticas
testsignal es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Constante simblica Valor Unidad
speed 6 rad/s
torque_ref 9 Nm
resolver_angle 1 rad
speed_ref 4 rad/s
dig_input1 102 0 1
dig_input2 103 0 1
Para obtener ms informacin sobre Consulte
Definicin de una seal de test TestSignDefine - Define una seal de prueba
en la pgina 559
Lectura de una seal de prueba TestSignRead - Obtiene el valor de una seal
de test en la pgina 1031
Puesta a cero de seales de prueba TestSignReset - Restablece todas las defini-
ciones de seales de prueba en la pgina 561
3 Tipos de datos
3.66. tooldata - Datos de herramientas
RobotWare - OS
3HAC16581-5 Revisin: H 1206


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.66. tooldata - Datos de herramientas
Utilizacin
tooldata se utiliza para describir las caractersticas de una herramienta, por ejemplo, una
pistola de soldadura o una pinza.
Si la herramienta est fija en el espacio (una herramienta estacionaria), los datos de la
herramienta definen esta herramienta y la pinza que sostiene el objeto de trabajo.
Descripcin
Los datos de la herramienta afectan de las formas siguientes a los movimientos del robot:
El punto central de la herramienta (TCP) se refiere a un punto que seguir la
trayectoria especificada y el rendimiento de velocidad deseado. Si se reorienta la
herramienta o se utilizan los ejes externos coordinados, slo este punto seguir la
trayectoria deseada a la velocidad programada.
Si se utiliza una herramienta estacionaria, la velocidad y la trayectoria programadas
sern las del objeto de trabajo sostenido por el robot.
Las posiciones programadas se refieren a la posicin del TCP actual y la orientacin
en relacin con el sistema de coordenadas de la herramienta. Esto significa que si por
ejemplo, se reemplaza una herramienta porque est daada, sigue siendo posible
utilizar el programa anterior con slo redefinir el sistema de coordenadas de la
herramienta.
Los datos de la herramienta tambin se usan en los movimientos del robot para:
Definir el TCP que no debe moverse cuando se reorienta el robot.
Definir el sistema de coordenadas de la herramienta para facilitar el acercamiento o la
rotacin de las direcciones de la herramienta.
AVISO!
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 para la herramienta, este hecho suele tener
las consecuencias siguientes:
Si el valor de la carga especificada es superior a la carga real;
-El robot no se usar a su mxima capacidad
-Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
Si el valor de la carga especificada es inferior a la carga real:
- Riesgo de sobrecarga de la estructura mecnica
- Peor exactitud de la trayectoria, con riesgo de sobrepasar posiciones
Contina en la pgina siguiente
3 Tipos de datos
3.66. tooldata - Datos de herramientas
RobotWare - OS
1207 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Componentes
robhold
robot hold
Tipo de dato: bool
Define si el robot es el que est sosteniendo la herramienta:
TRUE: El robot sostiene la herramienta.
FALSE: El robot no sostiene la herramienta, sino que se trata de una herramienta
estacionaria.
tframe
tool frame
Tipo de dato: pose
El sistema de coordenadas de la herramienta, es decir:
La posicin del TCP (x, y, z) en mm, expresada en el sistema de coordenadas de la
mueca (consulte la figura siguiente).
La orientacin del sistema de coordenadas de la herramienta, expresado en el sistema
de coordenadas de la mueca en forma de un cuaternio (q1, q2, q3 y q4) (consulte la
figura siguiente).
Si se utiliza una herramienta estacionaria, la definicin se hace respecto del sistema de
coordenadas mundo.
Si no se especifica la direccin de la herramienta, el sistema de coordenadas de la herramienta
y el sistema de coordenadas de la mueca coincidirn.
xx0500002366
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.66. tooldata - Datos de herramientas
RobotWare - OS
3HAC16581-5 Revisin: H 1208


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
tload
tool load
Tipo de dato: loaddata
La carga de la herramienta, es decir:
El peso de la herramienta en kilos.
El centro de gravedad de la carga de la herramienta (x, y, z) en mm, expresado en el
sistema de coordenadas de la mueca.
Los momentos de inercia de la herramienta respecto de su centro de masa alrededor
de los ejes coordinados de la carga de la herramienta, en kgm
2
. Si todos los
componentes de inercia estn definidos con el valor 0 kgm
2
, la herramienta se
gestiona como una masa puntual.
xx0500002367
Para obtener ms informacin (por ejemplo el sistema de coordenadas para la herramienta
estacionaria o posibles restricciones), consulte el tipo de dato loaddata.
Si se utiliza una herramienta estacionaria, la carga de la pinza que sostiene el objeto de trabajo
se define en tload.
NOTA!
Slo debe especificar la carga de la herramienta. La carga til manejada por la pinza se
conecta y desconecta mediante la instruccin GripLoad.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato tooldata.
Ejemplo 1
PERS tooldata gripper := [ TRUE, [[97.4, 0, 223.1], [0.924, 0,
0.383 ,0]], [5, [23, 0, 75], [1, 0, 0, 0], 0, 0, 0]];
La herramienta se describe utilizando los valores siguientes:
El robot sostiene la herramienta.
El TCP est situado en un punto a 223,1 mm en lnea recta del eje 6 y a 97,4 mm a
lo largo del eje X del sistema de coordenadas de la mueca.
Las direcciones X y Z de la herramienta se giran 45 en relacin con el sistema de
coordenadas de la mueca.
La masa de la herramienta es de 5 kg.
El centro de gravedad est situado en un punto a 75 mm en lnea recta del eje 6 y a
23 mm a lo largo del eje X del sistema de coordenadas de la mueca.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.66. tooldata - Datos de herramientas
RobotWare - OS
1209 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Es posible considerar la carga como una masa puntual, es decir, sin ningn momento
de inercia.
gripper.tframe.trans.z := 225.2;
Se ajusta el TCP de la herramienta, gripper, a 225,2 en la direccin Z.
Limitaciones
Los datos de la herramienta deben definirse como variables persistentes (PERS) y no deben
definirse desde dentro de una rutina. De esta forma, los valores se guardan al guardar el
programa y se recuperan al cargarlo.
Los argumentos de datos de herramienta de cualquier instruccin de movimiento deben ser
slo del tipo persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos
La herramienta tool0 define el sistema de coordenadas de la mueca, cuyo origen es el
centro de la brida de montaje. Tool0 est siempre disponible desde el programa, pero no
puede ser modificada en ningn momento (est almacenada en el mdulo de sistema BASE).
PERS tooldata tool0 := [ TRUE, [ [0, 0, 0], [1, 0, 0 ,0] ], [0.001,
[0, 0, 0.001], [1, 0, 0, 0], 0, 0, 0] ];
Estructura
< dataobject of tooldata >
< robhold of bool >
< tframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< tload of loaddata >
< mass of num >
< cog of pos >
< x of num >
< y of num >
< z of num >
< aom of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< ix of num >
< iy of num >
< iz of num >
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.66. tooldata - Datos de herramientas
RobotWare - OS
3HAC16581-5 Revisin: H 1210


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Definicin de una carga til GripLoad - Define la carga til del robot en la
pgina 117
Definicin de carga loaddata - Datos de carga en la pgina 1128
Continuacin
3 Tipos de datos
3.67. tpnum - Nmero de ventana del FlexPendant
RobotWare - OS
1211 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.67. tpnum - Nmero de ventana del FlexPendant
Utilizacin
tpnum se utiliza para representar la ventana del FlexPendant con una constante simblica.
Descripcin
Las constantes tpnum se han diseado para su uso con la instruccin TPShow. Consulte el
ejemplo siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato tpnum.
Ejemplo 1
TPShow TP_LATEST;
La ltima ventana usada en el FlexPendant antes de la ventana actual del FlexPendant ser la
que se active tras la ejecucin de esta instruccin.
Datos predefinidos
Se ha predefinido la constante simblica siguiente para el tipo de dato tpnum. Puede usarla
con la instruccin TPShow.
Caractersticas
tpnum es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Valor Constante simblica Comentario
2 TP_LATEST ltima ventana usada en el FlexPendant
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Comunicacin a travs del FlexPendant Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Comunicacin
Cambio de ventana en el FlexPendant TPShow - Cambia de ventana en el
FlexPendant en la pgina 573
3 Tipos de datos
3.68. trapdata - Datos de interrupcin para la rutina TRAP actual
RobotWare - OS
3HAC16581-5 Revisin: H 1212


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.68. trapdata - Datos de interrupcin para la rutina TRAP actual
Utilizacin
trapdata (trap data) se utiliza para contener los datos de interrupcin que provocan la
ejecucin de la rutina TRAP actual.
Debe utilizarse en las rutinas TRAP generadas por la instruccin IError, antes del uso de la
instruccin ReadErrData.
Descripcin
Los datos del tipo trapdata representan informacin interna relacionada con la interrupcin
que provoc la ejecucin de la rutina TRAP actual. Su contenido depende del tipo de
interrupcin.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato trapdata.
Ejemplo 1
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
del error se almacenan en las variables adecuadas sin valor, del tipo trapdata.
Caractersticas
trapdata es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Resumen de interrupciones Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Interrupciones
Ms informacin sobre la gestin de interrup-
ciones
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Interrupciones
Tipos de datos sin valor Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Solicitud de una interrupcin para errores IError - Solicita una interrupcin para errores
en la pgina 124
Obtencin de datos de interrupcin para la
rutina TRAP actual
GetTrapData - Obtiene datos de interrupcin
para la rutina TRAP actual en la pgina 113
Contina en la pgina siguiente
3 Tipos de datos
3.68. trapdata - Datos de interrupcin para la rutina TRAP actual
RobotWare - OS
1213 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Obtencin de informacin sobre un error ReadErrData - Obtiene informacin sobre un
error en la pgina 356GetTrapData - Obtiene
datos de interrupcin para la rutina TRAP
actual en la pgina 113
Para obtener ms informacin sobre Consulte
Continuacin
3 Tipos de datos
3.69. triggdata - Eventos de posicionamiento, trigg
RobotWare - OS
3HAC16581-5 Revisin: H 1214


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.69. triggdata - Eventos de posicionamiento, trigg
Utilizacin
triggdata se utiliza para almacenar datos acerca de un evento de posicionamiento durante
un movimiento del robot.
Un evento de posicionamiento puede tener la forma de un parmetro en una seal de salida o
puede significar la ejecucin de una rutina de interrupcin en una posicin especfica a lo
largo de la trayectoria de movimiento del robot.
Descripcin
Para definir las condiciones de las mediciones respectivas de un evento de posicionamiento,
se utilizan variables del tipo triggdata. Los datos contenidos en la variable se forman en el
programa mediante una instruccin TriggIO, TriggEquip, TriggCheckIO o TriggInt y
se utilizan desde una instruccin TriggL, TriggC o TriggJ.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato triggdata.
Ejemplo 1
VAR triggdata gunoff;
TriggIO gunoff, 0,5 \DOp:=gun, 0;
TriggL p1, v500, gunoff, fine, gun1;
La seal digital de salida gun cambia al valor 0 cuando el TCP se encuentra en una posicin
a 0,5 mm del punto p1.
Caractersticas
triggdata es un tipo de dato sin valor.
Informacin relacionada
Para obtener ms
informacin sobre
Consulte
Definicin de disparos TriggIO - Define un evento de E/S de posicin o tiempo fijos
cerca de un punto de paro en la pgina 598
TriggEquip - Define un evento de E/S basado en la posicin
y el tiempo en la trayectoria en la pgina 588
TriggCheckIO - Define una comprobacin de E/S en una
posicin fija en la pgina 583
TriggInt - Define una interrupcin dependiente de una
posicin en la pgina 594
Utilizacin de disparos TriggL - Movimiento lineal del robot con eventos en la
pgina 610
TriggC - Movimiento circular del robot con eventos en la
pgina 576
TriggJ - Movimientos de ejes del robot a partir de eventos
en la pgina 603
Caractersticas de los tipos de
datos sin valor
Manual de referencia tcnica - Descripcin general de
RAPID, seccin Caractersticas bsicas - Tipos de datos
3 Tipos de datos
3.70. triggios - Positioning events, trigg
RobotWare - OS
1215 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.70. triggios - Positioning events, trigg
Utilizacin
triggios se utiliza para almacenar datos acerca de un evento de posicionamiento durante
un movimiento del robot. Si el evento de posicionamiento est distribuido en una posicin
especfica de la trayectoria, una seal de salida cambia a un valor especfico.
Descripcin
triggios se utiliza para definir condiciones y acciones para el establecimiento de una seal
digital de salida, un grupo de seales digitales de salida o una seal analgica de salida en una
posicin fija a lo largo de la trayectoria de movimiento del robot.
Componentes
used
Tipo de dato: bool
Define si el elemento de la matriz debe utilizarse o no.
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
si el componente start tiene el valor FALSE.
start
Tipo de dato: bool
Cambia a TRUE si la distancia comienza en el punto inicial del movimiento en lugar del
punto final.
equiplag
Equipment Lag
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 significa que la seal de E/S es activada por el sistema de robot
en el momento especificado, antes de que el TCP alcance fsicamente la distancia
especificada respecto del punto de inicio o final del movimiento.
Un valor negativo 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.
Contina en la pgina siguiente
3 Tipos de datos
3.70. triggios - Positioning events, trigg
RobotWare - OS
3HAC16581-5 Revisin: H 1216


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
En la figura se muestra el uso del componente equiplag.
xx0800000173
signalname
Tipo de dato: string
El nombre de la seal que debe cambiar. Debe ser una seal digital de salida, un grupo de
seales digitales de salida o una seal analgica de salida.
setvalue
Tipo de dato: num
El valor deseado para la seal de salida (dentro del rango permitido para la seal actual).
xxx
Tipo de dato: num
Este componente no se utiliza en este momento. Ha sido aadido con el fin de poder aadir
funcionalidad en versiones futuras sin perder la compatibilidad.
Ejemplos
A continuacin aparece un ejemplo del tipo de dato triggios.
Ejemplo 1
VAR triggios gunon{1};
gunon{1}.used:=TRUE;
gunon{1}.distance:=3;
gunon{1}.start:=TRUE;
gunon{1}.signalname:="gun";
gunon{1}.equiplag:=0;
gunon{1}.setvalue:=1;
MoveJ p1, v500, z50, gun1;
TriggLIOs p2, v500, \TriggData1:=gunon, z50, gun1;
MoveL p3, v500, z50, gun1;
La seal gun se activa cuando el TCP est 3 mm despus del punto p1.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.70. triggios - Positioning events, trigg
RobotWare - OS
1217 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Estructura
<dataobject of triggios>
<used of bool>
<distance of num>
<start of bool>
<equiplag of num>
<signalname of string>
<setvalue of num>
<xxx of num>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimientos lineales del robot con eventos
de E/S
TriggLIOs - Movimientos lineales del robot
con eventos de E/S en la pgina 617
Continuacin
3 Tipos de datos
3.71. triggstrgo - Positioning events, trigg
RobotWare - OS
3HAC16581-5 Revisin: H 1218


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.71. triggstrgo - Positioning events, trigg
Utilizacin
triggstrgo(trigg stringdig group output) se utiliza para almacenar datos acerca de un
evento de posicionamiento durante un movimiento del robot. Si el evento de posicionamiento
est distribuido en una posicin especfica de la trayectoria, un grupo de seales digitales de
salida cambia a un valor especfico.
Descripcin
triggstrgo se utiliza para definir condiciones y acciones para el establecimiento de seales
digitales de salida en una posicin fija a lo largo de la trayectoria de movimiento del robot.
Componentes
used
Tipo de dato: bool
Define si el elemento de la matriz debe utilizarse o no.
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
si el componente start tiene el valor FALSE.
start
Tipo de dato: bool
Cambia a TRUE si la distancia comienza en el punto inicial del movimiento en lugar del
punto final.
Contina en la pgina siguiente
3 Tipos de datos
3.71. triggstrgo - Positioning events, trigg
RobotWare - OS
1219 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
equiplag
Equipment Lag
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 significa que la seal de E/S es activada por el sistema de robot
en el momento especificado, antes de que el TCP alcance fsicamente la distancia
especificada respecto del punto de inicio o final del movimiento.
Un valor negativo 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.
En la figura se muestra el uso del componente equiplag.
xx0800000173
signalname
Tipo de dato: string
El nombre de la seal que debe cambiar. Debe ser un nombre de seal de salida de grupo.
setvalue
Tipo de dato: stringdig
El valor deseado para la seal de salida (dentro del rango permitido para la salida digital de
grupo actual). El uso del tipo de dato stringdig hace posible utilizar valores hasta el
4.294.967.295, que es el valor mximo que puede tener un grupo de seales digitales (el
sistema admite como mximo 32 seales en una seal de grupo).
xxx
Tipo de dato: num
Este componente no se utiliza en este momento. Ha sido aadido con el fin de poder aadir
funcionalidad en versiones futuras sin perder la compatibilidad.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.71. triggstrgo - Positioning events, trigg
RobotWare - OS
3HAC16581-5 Revisin: H 1220


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos
A continuacin aparece un ejemplo del tipo de dato triggstrgo.
Ejemplo 1
VAR triggstrgo gunon{1};
gunon{1}.used:=TRUE;
gunon{1}.distance:=3;
gunon{1}.start:=TRUE;
gunon{1}.signalname:="gun";
gunon{1}.equiplag:=0;
gunon{1}.setvalue:="4294967295";
MoveJ p1, v500, z50, gun1;
TriggLIOs p2, v500, \TriggData2:=gunon, z50, gun1;
MoveL p3, v500, z50, gun1;
La seal gun recibe el valor 4.294.967.295 cuando el TCP est 3 mm despus del punto p1.
Estructura
<dataobject of triggstrgo>
<used of bool>
<distance of num>
<start of bool>
<equiplag of num>
<signalname of string>
<setvalue of stringdig>
<xxx of num>
Informacin relacionada
Para obtener ms informacin sobre Consulte
Movimientos lineales del robot con eventos
de E/S
TriggLIOs - Movimientos lineales del robot
con eventos de E/S en la pgina 617
Comparar dos cadenas que slo contienen
dgitos
StrDigCmp - Comparar dos cadenas que slo
contienen dgitos en la pgina 1000
Operaciones aritmticas con tipos de datos
stringdig
StrDigCalc - Operaciones aritmticas con el
tipo de dato stringdig en la pgina 997
Continuacin
3 Tipos de datos
3.72. tunetype - Tipo de ajuste de servo
RobotWare - OS
1221 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.72. tunetype - Tipo de ajuste de servo
Utilizacin
tunetype se utiliza para representar un entero con una constante simblica para tipos
distintos de ajuste de servo.
Descripcin
Las constantes tunetype se han diseado para su uso como argumento de la instruccin
TuneServo. Consulte el ejemplo siguiente.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato tunetype.
Ejemplo 1
TuneServo MHA160R1, 1, 110 \Type:= TUNE_KP;
Datos predefinidos
Se han definido las constantes simblicas siguientes para el tipo de dato tunetype. Puede
usarlas como argumento de la instruccin TuneServo.
Caractersticas
tunetype es un tipo de dato de alias de num y por tanto hereda sus caractersticas.
Informacin relacionada
Valor Constante simblica Comentario
0 TUNE_DF Reduce el riesgo de sobrepasar posiciones
1 TUNE_KP Afecta a la ganancia del control de posicin
2 TUNE_KV Afecta a la ganancia del control de velocidad
3 TUNE_TI Afecta al tiempo de integracin del control de velocidad
4 TUNE_FRIC_LEV Afecta al nivel de compensacin de friccin
5 TUNE_FRIC_RAMP Afecta a la pendiente de compensacin de friccin
6 TUNE_DG Reduce el riesgo de sobrepasar posiciones
7 TUNE_DH Reduce las vibraciones con cargas pesadas
8 TUNE_DI Reduce los errores de trayectoria
9 TUNE_DK Slo para uso interno de ABB
10 TUNE_DL Slo para uso interno de ABB
Para obtener ms informacin sobre Consulte
Tipos de datos en general, tipos de datos de
alias
Manual de referencia tcnica - Descripcin
general de RAPID, seccin Caractersticas
bsicas - Tipos de datos
Uso del tipo de dato tunetype TuneServo - Ajuste de servos en la pgina
647
3 Tipos de datos
3.73. uishownum - ID de instancia para UIShow
3HAC16581-5 Revisin: H 1222


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.73. uishownum - ID de instancia para UIShow
Utilizacin
uishownum es el tipo de dato utilizado para el parmetro InstanceId de la instruccin
UIShow. Se usa para identificar una vista en el FlexPendant.
Descripcin
Cuando una variable persistente del tipo uishownum se usa con la instruccin UIShow, recibe
un valor especfico que identifica la vista iniciada en el FlexPendant. A continuacin, la
variable persistente se utiliza en todas las operaciones realizadas con esa vista, como iniciar
de nuevo la vista, modificar la vista, etc.
Ejemplos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato uishownum.
Ejemplo 1
CONST string Name:="TpsViewMyAppl.gtpu.dll";
CONST string Type:="ABB.Robotics.SDK.Views.TpsViewMyAppl";
CONST string Cmd1:="Init data string passed to the view";
PERS uishownum myinstance:=0;
VAR num mystatus:=0;
...
! Launch one view de la aplicacin MyAppl
UIShow Name, Type \InitCmd:=Cmd1 \InstanceID:=myinstance
\Status:=mystatus;
El cdigo de la parte superior iniciar una vista de la aplicacin MyAppl con el comando de
inicializacin Cmd1. El token utilizado para identificar la vista se guarda en el parmetro
myinstance.
Caractersticas
uishownum es un tipo de dato de alias de num y por tanto hereda sus propiedades.
Informacin relacionada
Para obtener ms informacin sobre Consulte
UIShow UIShow - Visualizacin de interfaz de usuario
en la pgina 660
3 Tipos de datos
3.74. wobjdata - Datos del objeto de trabajo
RobotWare - OS
1223 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.74. wobjdata - Datos del objeto de trabajo
Utilizacin
wobjdata se utiliza para describir el objeto de trabajo que el robot est soldando,
procesando, moviendo por s solo, etc.
Descripcin
Si los objetos de trabajo estn definidos en una instruccin de posicionamiento, la posicin
se basar en las coordenadas del objeto de trabajo. Las ventajas de hacerlo son las siguientes:
Si se introducen manualmente los datos de posicin, por ejemplo, mediante la
programacin fuera de lnea, suele ser posible tomar los valores de un plano.
Los programas pueden reutilizarse rpidamente despus de cualquier cambio en la
instalacin del robot. Por ejemplo, si se cambia de posicin un til, slo es necesario
redefinir el sistema de coordenadas del usuario.
Tambin es posible compensar las variaciones en la forma en que el objeto de trabajo
est fijado. Sin embargo, para estos fines se requerir algn tipo de sensor para
posicionar el objeto de trabajo.
Si se utiliza una herramienta estacionaria o ejes externos coordinados, es necesario definir el
objeto de trabajo, ya que en este caso la trayectoria y la velocidad estaran relacionadas con
el objeto de trabajo en lugar del TCP.
Los datos del objeto de trabajo pueden usarse tambin para los movimientos.
El robot puede desplazarse en las direcciones del objeto de trabajo.
La posicin actual mostrada se basa en el sistema de coordenadas del objeto de trabajo.
Componentes
robhold
robot hold
Tipo de dato: bool
Define si el robot de la tarea de programa actual es el que est sosteniendo el objeto de trabajo:
TRUE: El robot sostiene el objeto de trabajo, es decir, se est utilizando una
herramienta estacionaria.
FALSE: El robot no est sosteniendo el objeto de trabajo, es decir, el robot est
sosteniendo la herramienta.
ufprog
user frame programmed
Tipo de dato: bool
Define si se est utilizando un sistema fijo de coordenadas del usuario:
TRUE: Sistema de coordenadas del usuario fijo
FALSE: Sistema mvil de coordenadas del usuario, es decir, se utilizan ejes externos
coordinados. Tambin debe usarse en los sistemas MultiMove que se utilizan en el
modo semicoordinado o sincronizado coordinado.
Contina en la pgina siguiente
3 Tipos de datos
3.74. wobjdata - Datos del objeto de trabajo
RobotWare - OS
3HAC16581-5 Revisin: H 1224


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ufmec
user frame mechanical unit
Tipo de dato: string
La unidad mecnica con la que se coordinan los movimientos del robot. Slo se especifican
en el caso de los sistemas mviles de coordenadas del usuario (ufprog es FALSE).
Especifica el nombre de la unidad mecnica definido en los parmetros del sistema, por
ejemplo orbit_a.
uframe
user frame
Tipo de dato: pose
El sistema de coordenadas del usuario, es decir, la posicin de la superficie o del til de
trabajo actual (consulte la figura siguiente):
La posicin del origen del sistema de coordenadas (x, y, z) en mm.
La rotacin del sistema de coordenadas, expresada como un cuaternio (q1, q2, q3, q4).
Si el robot es el que sostiene la herramienta, el sistema de coordenadas del usuario se define
en el sistema de coordenadas mundo (en el sistema de coordenadas de la mueca si se utiliza
una herramienta estacionaria).
En el caso de una base de coordenadas de usuario mvil (ufprog con el valor FALSE), la base
de coordenadas del usuario es definida continuamente por el sistema.
oframe
object frame
Tipo de dato: pose
El sistema de coordenadas del objeto, es decir, la posicin del objeto de trabajo actual
(consulte la figura siguiente):
La posicin del origen del sistema de coordenadas (x, y, z) en mm.
La rotacin del sistema de coordenadas, expresada como un cuaternio (q1, q2, q3, q4).
El sistema de coordenadas del objeto se define en el sistema de coordenadas del usuario.
xx0500002369
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.74. wobjdata - Datos del objeto de trabajo
RobotWare - OS
1225 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato wobjdata.
Ejemplo 1
PERS wobjdata wobj2 :=[ FALSE, TRUE, "", [ [300, 600, 200], [1, 0,
0 ,0] ], [ [0, 200, 30], [1, 0, 0 ,0] ] ];
El objeto de trabajo de la figura anterior se describe utilizando los valores siguientes:
El robot no sostiene el objeto de trabajo.
Se utiliza el sistema fijo de coordenadas del usuario.
El sistema de coordenadas del usuario no se gira y las coordenadas de su origen son
x=300, y =600 y z =200 mm en el sistema de coordenadas mundo.
El sistema de coordenadas del objeto no se gira y las coordenadas de su origen son x=
0, y =200 y z =30 mm en el sistema de coordenadas del usuario.
wobj2.oframe.trans.z := 38.3;
Se ajusta la posicin del objeto de trabajo wobj2 a 38,3 mm en la direccin z.
Limitaciones
Los datos del objeto de trabajo deben definirse como variables persistentes (PERS)y no deben
definirse desde dentro de una rutina. De esta forma, los valores se guardan al guardar el
programa y se recuperan al cargarlo.
Los argumentos de datos de objeto de trabajo de cualquier instruccin de movimiento deben
ser slo del tipo persistente completo (ni elementos de matriz ni componentes de registro).
Datos predefinidos
Los datos de objeto de trabajo wobj0 se definen de forma que el sistema de coordenadas del
objeto coincida con el sistema de coordenadas mundo. El robot no sostiene el objeto de
trabajo.
Wobj0 est siempre disponible desde el programa, pero no puede ser modificada en ningn
momento (est almacenada en el mdulo de sistema BASE).
PERS wobjdata wobj0 := [ FALSE, TRUE, "", [ [0, 0, 0], [1, 0, 0
,0] ], [ [0, 0, 0], [1, 0, 0 ,0] ] ];
Estructura
< dataobject of wobjdata >
< robhold of bool >
< ufprog of bool >
< ufmec of string >
< uframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.74. wobjdata - Datos del objeto de trabajo
RobotWare - OS
3HAC16581-5 Revisin: H 1226


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
< oframe of pose >
< trans of pos >
< x of num >
< y of num >
< z of num >
< rot of orient >
< q1 of num >
< q2 of num >
< q3 of num >
< q4 of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Sistemas de coordenadas Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Ejes externos coordinados Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Sistemas de coordenadas
Calibracin de los ejes coordinados Application manual - Additional axes and
stand alone controller
Manual de aplicaciones - MultiMove
Continuacin
3 Tipos de datos
3.75. wzstationary - Datos de zona mundo estacionaria
World Zones
1227 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.75. wzstationary - Datos de zona mundo estacionaria
Utilizacin
wzstationary (world zone stationary) se usa para identificar una zona mundo estacionaria
y slo puede usarse en una rutina de evento conectada al evento POWER ON.
Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la ejecucin
del programa como durante los movimientos. Si el TCP del robot alcanza la zona mundo o si
los ejes del robot o los ejes externos alcanzan la zona mundo, el movimiento se detiene o se
activa o desactiva una seal digital de salida.
Descripcin
Las zonas mundo wzstationary se definen y activan con una instruccin WZLimSup o una
instruccin WZDOSet.
WZLimSup o WZDOSet asignan un valor numrico a variables o variables persistentes con el
tipo de dato wzstationary. El valor identifica una zona mundo.
Las zonas mundo estacionarias siempre estn activas en el estado Motores ON y slo se
eliminan en los arranques en caliente (al apagar y encender de nuevo el interruptor). No es
posible desactivar, activar ni eliminar una zona mundo estacionaria a travs de instrucciones
de RAPID.
Las zonas mundo estacionarias deben estar activadas desde la puesta en marcha y deben estar
definidas en la rutina de evento POWER ON o en una tarea semiesttica.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato wzstationary.
Ejemplo 1
VAR wzstationary conveyor;
...
PROC ...
VAR shapedata volume;
...
WZBoxDef \Inside, volume, p_corner1, p_corner2;
WZLimSup \Stat, conveyor, volume;
ENDPROC
Un conveyor se define como un prisma de ngulos rectos (el volumen que queda debajo de
la cinta). Si el robot alcanza este volumen, se detiene el movimiento.
Contina en la pgina siguiente
3 Tipos de datos
3.75. wzstationary - Datos de zona mundo estacionaria
World Zones
3HAC16581-5 Revisin: H 1228


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los datos wzstationary deben definirse como variables (VAR) o variables persistentes
(PERS). Pueden ser globales en la tarea o locales dentro del mdulo, pero no locales dentro
de una rutina.
Los argumentos de tipo wzstationary deben ser slo datos completos (ni elementos de
matriz ni componentes de registro).
Los valores de inicializacin de los datos del tipo wzstationary no se utilizan en el sistema
de control. Cuando sea necesario utilizar una variable persistente en un sistema multitarea,
cambie el valor inicial a 0 en las dos tareas, por ejemplo PERS wzstationary
share_workarea := [0];
Ms ejemplos
Para ver un ejemplo completo, consulte la instruccin WZLimSup.
Caractersticas
wzstationary es un tipo de dato de alias de wztemporary y hereda sus caractersticas.
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Zona mundo temporal wztemporary - Datos de zona mundo
temporal en la pgina 1229
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Continuacin
3 Tipos de datos
3.76. wztemporary - Datos de zona mundo temporal
RobotWare - OS
1229 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.76. wztemporary - Datos de zona mundo temporal
Utilizacin
wztemporary (world zone temporary) se utiliza para identificar una zona mundo temporal
y puede usarse en cualquier parte del programa RAPID para cualquier tarea de movimiento.
Las zonas mundo se supervisan durante los movimientos del robot, tanto durante la ejecucin
del programa como durante los movimientos. Si el TCP del robot alcanza la zona mundo o si
los ejes del robot o los ejes externos alcanzan la zona mundo, el movimiento se detiene o se
activa o desactiva una seal digital de salida.
Descripcin
Las zonas mundo wztemporary se definen y activan mediante una instruccin WZLimSup o
WZDOSet.
WZLimSup o WZDOSet asignan un valor numrico a variables o variables persistentes con el
tipo de dato wztemporary. El valor identifica una zona mundo.
Una vez definidas y activadas, las zonas mundo temporales pueden desactivarse con
WZDisable, activarse de nuevo con WZEnable y eliminarse con WZFree.
Todas las zonas mundo temporales de la tarea de movimiento se eliminan automticamente y
todos los objetos de datos del tipo wztemporary de la tarea de movimiento cambian a 0:
Cuando se carga un nuevo programa en la tarea motion
Cuando se inicia la ejecucin del programa desde el principio en la tarea motion
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato wztemporary.
Ejemplo 1
VAR wztemporary roll;
...
PROC
VAR shapedata volume;
CONST pos t_center := [1000, 1000, 1000];
...
WZCylDef \Inside, volume, t_center, 400, 1000;
WZLimSup \Temp, roll, volume;
ENDPROC
Se define una variable wztemporary, roll, con forma de cilindro. Si el robot alcanza este
volumen, se detiene el movimiento.
Contina en la pgina siguiente
3 Tipos de datos
3.76. wztemporary - Datos de zona mundo temporal
RobotWare - OS
3HAC16581-5 Revisin: H 1230


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Los datos wztemporary deben definirse como variables (VAR) o variables persistentes
(PERS). Pueden ser globales en la tarea o locales dentro del mdulo, pero no locales dentro
de una rutina.
Los argumentos de tipo wztemporary deben ser slo datos completos (ni elementos de
matriz ni componentes de registro).
Las zonas mundo temporales slo deben definirse (WZLimSup o WZDOSet) y liberarse
(WZFree) desde la tarea MAIN. Las definiciones de zonas mundo temporales en cualquier
segundo plano no se permiten porque afectaran a la ejecucin del programa en la tarea de
movimiento relacionada. Las instrucciones WZDisable y WZEnable pueden usarse en la
tarea en segundo plano. Cuando sea necesario utilizar una variable persistente en un sistema
multitarea, cambie el valor inicial a 0 en las dos tareas, por ejemplo PERS wztemporary
share_workarea :=[0];
Ms ejemplos
Para ver un ejemplo completo, consulte la instruccin WZDOSet.
Estructura
< dataobject of wztemporary >
< wz of num >
Informacin relacionada
Para obtener ms informacin sobre Consulte
Zonas mundo Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Zonas mundo
Forma de las zonas mundo shapedata - Datos de forma de zonas mundo
en la pgina 1176
Zona mundo estacionaria wzstationary - Datos de zona mundo estacio-
naria en la pgina 1227
Activacin de la supervisin de lmites de las
zonas mundo
WZLimSup - Activa la supervisin de lmites
de las zonas mundo en la pgina 759
Activacin de salidas digitales basadas en
zonas mundo
WZDOSet - Activacin de salidas digitales
basadas en zonas mundo en la pgina 744
Desactivacin de zonas mundo WZDisable - Desactiva la supervisin de las
zonas mundo temporales en la pgina 742
Activacin de zonas mundo WZEnable - Activa la supervisin de las
zonas mundo temporales en la pgina 748
Eliminacin de zonas mundo WZFree - Elimina la supervisin de las zonas
mundo temporales en la pgina 750
Continuacin
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
1231 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
3.77. zonedata - Datos de zonas
Utilizacin
zonedata se utiliza para especificar cmo debe terminar una posicin, es decir, a qu
distancia de la posicin programada deben encontrarse los ejes antes de iniciar un
movimiento hasta la posicin siguiente.
Descripcin
Una posicin puede terminar en forma de un punto de paso o un punto de paro.
Un punto de paro significa que los ejes del robot y los ejes externos deben alcanzar la posicin
especificada (detenindose) antes de que la ejecucin del programa contine en la instruccin
siguiente. Tambin es posible definir puntos de paro distintos del tipo predefinido fine. Los
criterios de paro que indican si se considera que el robot ha alcanzado el punto, pueden
manipularse mediante stoppointdata.
El punto de paso significa que la posicin programada no llega a alcanzarse nunca. En su
lugar, la direccin del movimiento cambia antes de que se alcance la posicin. Es posible
definir dos zonas (rangos) diferentes para cada posicin:
La zona para la trayectoria del TCP
La zona extendida para la reorientacin de la herramienta y para los ejes externos
xx0500002357
Las zonas funcionan de la misma forma durante el movimiento de los ejes, pero el tamao de
la zona puede ser algo distinto del programado.
El tamao de la zona no puede ser mayor que la mitad de la distancia existente hasta la
posicin ms cercana (hacia delante o hacia atrs). Si se especifica una zona ms grande, el
robot la reduce automticamente.
La zona para la trayectoria del TCP
Se genera una trayectoria de esquina (parbola) tan pronto como se alcanza el borde de la
zona (consulte la figura anterior).
Contina en la pgina siguiente
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
3HAC16581-5 Revisin: H 1232


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
La zona de reorientacin de la herramienta
La reorientacin comienza tan pronto como el TCP alcanza la zona extendida. La herramienta
se reorienta de forma que la orientacin en el momento de salir de la zona sea la misma que
habra tenido en la misma posicin si se hubieran programado puntos de paro. La
reorientacin ser ms suave si se aumenta el tamao de la zona. Adems, existe menos riesgo
de tener que reducir la velocidad para realizar la reorientacin.
En la figura siguiente se muestran tres posiciones programadas, la ltima de ellas con una
orientacin distinta para la herramienta.
xx0500002358
En la figura siguiente se muestra cmo quedara la ejecucin del programa si todas las
posiciones fueran puntos de paro.
xx0500002359
En la figura siguiente se muestra cmo quedara la ejecucin del programa si la posicin
central fuera un punto de paso.
xx0500002360
La zona para los ejes externos
Los ejes externos comienzan a moverse hacia la prxima posicin tan pronto como el TCP
alcanza la zona extendida. De esta forma, un eje lento puede empezar su aceleracin antes y
funcionar de una forma ms uniforme.

Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
1233 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Zona reducida
Con reorientaciones grandes de la herramienta o movimientos grandes de los ejes externos,
la zona extendida e incluso la zona del TCP pueden ser reducidas por el robot. La zona se
define como el tamao relativo ms pequeo de la zona, basado en los componentes de la
misma (consulte Componentes en la pgina 1234) y en el movimiento programado.
En la figura siguiente se muestra un ejemplo de zona reducida para la reorientacin de la
herramienta al 36% del movimiento previsto para zone_ori.
xx0500002362
En la figura siguiente se muestra un ejemplo de zona reducida para la reorientacin de la
herramienta y de la trayectoria del TCP al 15% del movimiento previsto para zone_ori.
xx0500002363
Cuando los ejes externos estn activos, afectan a los tamaos relativos de la zona acorde con
las frmulas siguientes:
xx0500002364

Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
3HAC16581-5 Revisin: H 1234


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
NOTA!
Si la zona del TCP se reduce a causa de zone_ori, zone_leax o zone_reax, el
planificador de trayectorias activa un modo que puede manejar el caso de que no se produzca
ningn movimiento del TCP. Si se ha producido un movimiento del TCP con este modo
activado, no se compensa la velocidad para la curvatura de la trayectoria en una zona de
esquina. Por ejemplo, esto provoca una reduccin de velocidad del 30% en las esquinas de 90
grados. Si esto le supone un problema, aumente el componente de la zona que est causando
esta limitacin.
Componentes
finep
fine point
Tipo de dato: bool
Define si el movimiento debe terminar como un punto de paro (punto fino fine) o como
punto de paso.
TRUE: El movimiento termina como un punto de paro y la ejecucin del programa no
contina hasta que el robot llega hasta el punto de paro. Los dems componentes de
los datos de la zona no se utilizan.
FALSE: El movimiento termina como un punto de paso y la ejecucin del programa
contina hasta aproximadamente 100 ms antes de que el robot llegue a la zona.
pzone_tcp
path zone TCP
Tipo de dato: num
El tamao (el radio) de la zona del TCP en mm.
La zona extendida se define como el tamao relativo ms pequeo de la zona, basado en los
componentes pzone_ori...zone_reax siguientes y en el movimiento programado.
pzone_ori
path zone orientation
Tipo de dato: num
El tamao de la zona (el radio) para la reorientacin de la herramienta. El tamao se define
como la distancia en mm del TCP respecto del punto programado.
El tamao debe ser mayor que el valor correspondiente de pzone_tcp. Si se especifica un
valor menor, el tamao aumenta automticamente para que sea igual que el pzone_tcp.
pzone_eax
path zone external axes
Tipo de dato: num
El tamao de la zona (el radio) para los ejes externos. El tamao se define como la distancia
en mm del TCP respecto del punto programado.
El tamao debe ser mayor que el valor correspondiente de pzone_tcp. Si se especifica un
valor menor, el tamao aumenta automticamente para que sea igual que el pzone_tcp.
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
1235 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
zone_ori
zone orientation
Tipo de dato: num
El tamao de la zona para la reorientacin de la herramienta, en grados. Si el robot est
sosteniendo el objeto de trabajo, esto implica un ngulo de rotacin para el objeto de trabajo.
zone_leax
zone linear external axes
Tipo de dato: num
El tamao de zona para los ejes externos lineales, en mm.
zone_reax
zone rotational external axes
Tipo de dato: num
El tamao de zona para los ejes externos de rotacin, en grados.
Ejemplos bsicos
A continuacin aparecen algunos ejemplos bsicos del tipo de dato zonedata.
Ejemplo 1
VAR zonedata path := [ FALSE, 25, 40, 40, 10, 35, 5 ];
Se definen los datos de zona path con las caractersticas siguientes:
El tamao de la zona para la trayectoria del TCP es de 25 mm.
El tamao de la zona para la reorientacin de la herramienta es de 40 mm (movimiento
del TCP).
El tamao de la zona para los ejes externos es de 40 mm (movimiento del TCP).
Si el TCP est detenido, se produce una gran reorientacin o existe un gran movimiento de
los ejes externos respecto de la zona, se aplica lo siguiente:
El tamao de la zona para la reorientacin de la herramienta es de 10 grados.
El tamao de la zona para los ejes externos lineales es de 35 mm.
El tamao de la zona para los ejes externos de rotacin es de 5 grados.
path.pzone_tcp := 40;
Se ajusta el tamao de la zona para la trayectoria del TCP a 40 mm.
Datos predefinidos
Existen varios datos de zona ya definidos en el mdulo de sistema BASE.
Puntos de paro
Use zonedata con nombre fine.
Puntos de paso
Zona de trayectoria Zona
Nombre
Trayec.
TCP
Orienta-
cin
Eje
externo
Orienta-
cin
Eje lineal
Eje de rot-
acin
z0 0,3 mm 0,3 mm 0,3 mm 0.03 0,3 mm 0.03
z1 1 mm 1 mm 1 mm 0.1 1 mm 0.1
Continuacin
Contina en la pgina siguiente
3 Tipos de datos
3.77. zonedata - Datos de zonas
RobotWare - OS
3HAC16581-5 Revisin: H 1236


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Estructura
< data object of zonedata >
< finep of bool >
< pzone_tcp of num >
< pzone_ori of num >
< pzone_eax of num >
< zone_ori of num >
< zone_leax of num >
< zone_reax of num >
Informacin relacionada
z5 5 mm 8 mm 8 mm 0.8 8 mm 0.8
z10 10 mm 15 mm 15 mm 1.5 15 mm 1.5
z15 15 mm 23 mm 23 mm 2.3 23 mm 2.3
z20 20 mm 30 mm 30 mm 3.0 30 mm 3.0
z30 30 mm 45 mm 45 mm 4.5 45 mm 4.5
z40 40 mm 60 mm 60 mm 6.0 60 mm 6.0
z50 50 mm 75 mm 75 mm 7.5 75 mm 7.5
z60 60 mm 90 mm 90 mm 9.0 90 mm 9.0
z80 80 mm 120 mm 120 mm 12 120 mm 12
z100 100 mm 150 mm 150 mm 15 150 mm 15
z150 150 mm 225 mm 225 mm 23 225 mm 23
z200 200 mm 300 mm 300 mm 30 300 mm 30
Zona de trayectoria Zona
Nombre
Trayec.
TCP
Orienta-
cin
Eje
externo
Orienta-
cin
Eje lineal
Eje de rot-
acin
Para obtener ms informacin sobre Consulte
Instrucciones de posicionamiento Manual de referencia tcnica - Descripcin
general de RAPID, seccin Resumen sobre
RAPID - Movimiento
Movimientos/trayectorias en general Manual de referencia tcnica - Descripcin
general de RAPID, seccin Principios de
movimiento y E/S - Posicionamiento durante
la ejecucin del programa
Configuracin de ejes externos Application manual - Additional axes and
stand alone controller
Otros puntos de paro stoppointdata - Datos de punto de paro en la
pgina 1186
Continuacin
4 Ejemplos de tipos de programacin
4.1. Gestor de ERROR con movimientos
Path Recovery
1237 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
4 Ejemplos de tipos de programacin
4.1. Gestor de ERROR con movimientos
Utilizacin
Estos ejemplos de tipos describen cmo usar instrucciones de movimiento en un gestor de
ERROR despus de producirse un proceso elevado asincrnicamente o un error de
movimiento.
Esta funcionalidad slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un
sistema MultiMove, en las tareas de movimiento.
Descripcin
El gestor de ERROR puede iniciar un nuevo movimiento temporal y por ltimo reanudar el
movimiento original interrumpido y detenido. Por ejemplo, puede usarse para ir a una
posicin de servicio o para limpiar la pistola tras producirse un proceso elevado
asncronamente o un error de movimiento.
Para alcanzar esta funcionalidad, deben usarse las instrucciones StorePath - RestoPath
en el gestor de ERROR. Para reanudar el movimiento y continuar con la ejecucin del
programa existen varias instrucciones RAPID.
Ejemplos de tipo
A continuacin aparecen algunos ejemplos de tipo de esta funcionalidad.
Principio
...
ERROR
IF ERRNO = ERR_PATH_STOP THEN
StorePath;
! Move away and back to the interrupted position
...
RestoPath;
StartMoveRetry;
ENDIF
ENDPROC
En la ejecucin de StartMoveRetry, el robot reanuda su movimiento, se reanuda cualquier
proceso activo y el programa reintenta su ejecucin. StartMoveRetry hace lo mismo que
StartMove ms RETRY en una operacin indivisible.
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.1. Gestor de ERROR con movimientos
Path Recovery
3HAC16581-5 Revisin: H 1238


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Reinicio automtico de la ejecucin
CONST robtarget service_pos := [...];
VAR robtarget stop_pos;
...
ERROR
IF ERRNO = AW_WELD_ERR THEN
! Current movement on motion base path level
! is already stopped.
! New motion path level for new movements in the ERROR handler
StorePath;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=tool1, \WObj:=wobj1);
! Do the work to fix the problem
MoveJ service_pos, v50, fine, tool1, \WObj:=wobj1;
...
! Move back to the position on the motion base path level
MoveJ stop_pos, v50, fine, tool1, \WObj:=wobj1;
! Go back to motion base path level
RestoPath;
! Restart the stopped movements on motion base path level,
! restart the process and retry program execution
StartMoveRetry;
ENDIF
ENDPROC
ste es un ejemplo de tipo de cmo usar la recuperacin asncrona de errores automtica tras
algn tipo de proceso durante los movimientos del robot.
Reinicio manual de la ejecucin
...
ERROR
IF ERRNO = PROC_ERR_XXX THEN
! Current movement on motion base path level
! is already stopped and in stop move state.
! This error must be handle manually.
! Reset the stop move state on motion base path level.
StopMoveReset;
ENDIF
ENDPROC
ste es un ejemplo de tipo de cmo usar el manejo manual de la recuperacin asncrona de
errores tras algn tipo de proceso durante los movimientos del robot.
Una vez que el gestor de ERROR anterior se ha ejecutado hasta el final, la ejecucin del
programa se detiene y el puntero de programa del principio de la instruccin con el error de
proceso (tambin al principio de cualquier rutina NOSTEPIN utilizada). El siguiente inicio
de programa reanuda el programa y el movimiento desde la posicin en la que se produjo el
error de proceso original.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.1. Gestor de ERROR con movimientos
Path Recovery
1239 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Ejecucin de programas
Comportamiento de ejecucin:
Al inicio de la ejecucin del gestor de ERROR, el programa abandona su nivel de
ejecucin base.
En la ejecucin de StorePath, el sistema de movimiento abandona su nivel de
ejecucin base.
En la ejecucin de RestoPath, el sistema de movimiento retorna a su nivel de
ejecucin base.
En la ejecucin de StartMoveRetry, el programa regresa a su nivel de ejecucin
base.
Limitaciones
Las siguientes instrucciones de RAPID deben usarse en el gestor de ERROR con instrucciones
de movimiento para ponerlo a funcionar con la recuperacin automtica de errores tras un
error de proceso generado asncronamente o un error de trayectoria:
La siguiente instruccin RAPID debe usarse en el gestor de ERROR para ponerlo a funcionar
con la recuperacin manual de errores tras un error de proceso generado asncronamente o un
error de trayectoria:
Informacin relacionada
Instruccin Descripcin
StorePath Entrar en el nuevo nivel de trayectoria de movimiento
RestoPath Retornar al nivel base de trayectoria de movimientos
StartMove Reintentar Reanudar los movimientos interrumpidos en el nivel base de
trayectoria de movimientos. Tambin se reanuda el proceso y
se reintenta la ejecucin de programas.
Misma funcionalidad que StartMove +RETRY.
Instruccin Descripcin
StopMoveReset Entrar en el nuevo nivel de trayectoria de movimiento
Para obtener ms informacin sobre Consulte
Para entrar en el nuevo nivel de trayectoria
de movimiento
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Para retornar al nivel base de trayectoria de
movimientos
RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Para reanudar la ejecucin del movimiento
interrumpido, el proceso y el reintento del
programa.
StartMoveRetry - Reanuda el movimiento y la
ejecucin del robot en la pgina 497
Continuacin
4 Ejemplos de tipos de programacin
4.2. Rutinas de servicio con o sin movimientos
Path recovery
3HAC16581-5 Revisin: H 1240


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
4.2. Rutinas de servicio con o sin movimientos
Utilizacin
Estos ejemplos de tipo describen cmo usar las instrucciones de movimiento en una rutina de
servicio. El mismo principio aplicable a StopMove, StartMove y StopMoveReset es
vlido tambin para las rutinas de servicio vlidas sin movimientos (slo instrucciones
lgicas).
Ambas rutinas de servicio u otras rutinas (procedimientos) sin parmetros pueden iniciarse
manualmente y realizar movimientos de acuerdo con estos ejemplos de tipo.
Esta funcionalidad slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un
sistema MultiMove, en las tareas de movimiento en el modo independiente o
semicoordinado.
Descripcin
La rutina de servicio puede iniciar un nuevo movimiento temporal y, en un inicio posterior
del programa, reanudar el movimiento original. Por ejemplo, puede usarse para ir a una
posicin de servicio o iniciar manualmente la limpieza de la pistola.
Para alcanzar esta funcionalidad, deben usarse las instrucciones StorePath - RestoPath
y StopMoveReset en la rutina de servicio.
Ejemplos de tipo
A continuacin aparecen algunos ejemplos de tipo de esta funcionalidad.
Principio
PROC xxxx()
StopMove;
StorePath;
! Move away and back to the interrupted position
...
RestoPath;
StopMoveReset;
ENDPROC
StopMove es necesario con el fin de asegurarse de que el movimiento detenido originalmente
no se reanude en caso de una secuencia manual "parar programa-reiniciar programa" durante
la ejecucin de la rutina de servicio.
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.2. Rutinas de servicio con o sin movimientos
Path recovery
1241 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Paro dentro de la trayectoria
VAR robtarget service_pos := [...];
...
PROC proc_stop_on_path()
VAR robtarget stop_pos;
! Current stopped movements on motion base path level
! must not be restarted in the service routine.
StopMove;
! New motion path level for new movements in the service routine.
StorePath;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=tool1 \WObj:=wobj1);
! Do the work
MoveJ service_pos, v50, fine, tool1 \WObj:=wobj1;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, tool1, \WObj:=wobj1;
! Go back to motion base path level
RestoPath;
! Reset the stop move state for the interrupted movement
! on motion base path level
StopMoveReset;
ENDPROC
En este ejemplo de tipo, los movimientos de la rutina de servicio comienzan y terminan en la
posicin de la trayectoria en la que se detuvo el programa.
Recuerde tambin que la herramienta y el objeto de trabajo utilizados se conocen en el
momento de la programacin.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.2. Rutinas de servicio con o sin movimientos
Path recovery
3HAC16581-5 Revisin: H 1242


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Pero en el siguiente punto de paro
TASK PERS tooldata used_tool := [...];
TASK PERS wobjdata used_wobj := [...];
...
PROC proc_stop_in_stop_point()
VAR robtarget stop_pos;
! Current move instruction on motion base path level continue
! to its ToPoint and will be finished in a stop point.
StartMove;
! New motion path level for new movements in the service routine
StorePath;
! Get current tool and work object data
GetSysData used_tool;
GetSysData used_wobj;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=used_tool \WObj:=used_wobj);
! Do the work
MoveJ Offs(stop_pos,0,0,20),v50,fine,used_tool\WObj:=used_wobj;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, used_tool,\WObj:=used_wobj;
! Go back to motion base path level
RestoPath;
! Reset the stop move state for any new movement
! on motion base path level
StopMoveReset;
ENDPROC
En este ejemplo de tipo, los movimientos de la rutina de servicio continan y terminan en el
punto ToPoint de las instrucciones de movimiento interrumpidas, antes de que se complete
la instruccin StorePath.
Recuerde tambin que la herramienta y el objeto de trabajo utilizados no se conocen en el
momento de la programacin.
Ejecucin de programas
Comportamiento de ejecucin:
Al inicio de la ejecucin de la rutina de servicio, el programa abandona su nivel de
ejecucin base.
En la ejecucin de StorePath, el sistema de movimiento abandona su nivel de
ejecucin base.
En la ejecucin de RestoPath, el sistema de movimiento retorna a su nivel de
ejecucin base.
En la ejecucin de ENDPROC, el programa regresa a su nivel de ejecucin base.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.2. Rutinas de servicio con o sin movimientos
Path recovery
1243 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Las siguientes instrucciones de RAPID deben usarse en la rutina de servicio junto con las
instrucciones de movimiento para que funcione:
Informacin relacionada
Instruccin Descripcin
StorePath Entrar en el nuevo nivel de trayectoria de movimiento
RestoPath Retornar al nivel base de trayectoria de movimientos
StopMoveReset Restablecer el estado de paro de movimiento del movimiento
interrumpido en el nivel base de la trayectoria
Para obtener ms informacin sobre Consulte
Ninguna reanudacin del movimiento ya
detenido en el nivel base de trayectoria
StopMove - Detiene el movimiento del robot
en la pgina 523
Reanudacin del movimiento ya detenido en
el nivel base de trayectoria
StopMove - Detiene el movimiento del robot
en la pgina 523
Para entrar en el nuevo nivel de trayectoria
de movimiento
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Para retornar al nivel base de trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Restablecer el estado de paro de
movimiento del movimiento interrumpido en
el nivel base de la trayectoria
StopMoveReset - Restablece el estado de
movimiento de paro de sistema en la pgina
527
Continuacin
4 Ejemplos de tipos de programacin
4.3. Interrupciones de E/S del sistema con o sin movimiento
Path recovery
3HAC16581-5 Revisin: H 1244


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
4.3. Interrupciones de E/S del sistema con o sin movimiento
Utilizacin
Estos ejemplos de tipo describen cmo usar las instrucciones de movimiento en una rutina de
interrupcin de E/S del sistema. El mismo principio aplicable a StopMove, StartMove y
StopMoveReset es vlido tambin para las interrupciones de E/S del sistema sin
movimientos (slo instrucciones lgicas).
Esta funcionalidad slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un
sistema MultiMove, en las tareas de movimiento en el modo independiente o
semicoordinado.
Descripcin
La interrupcin de E/S del sistema puede iniciar un nuevo movimiento temporal y, en un
inicio posterior del programa, reanudar el movimiento original. Por ejemplo, puede usarse
para ir a una posicin de servicio o limpiar una pistola cuando se produce una interrupcin.
Para alcanzar esta funcionalidad, deben usarse las instrucciones StorePath - RestoPath
y StopMoveReset en la rutina de interrupcin de E/S del sistema.
Ejemplos de tipo
A continuacin aparecen algunos ejemplos de tipo de esta funcionalidad.
Principio
PROC xxxx()
StopMove;
StorePath;
! Move away and back to the interrupted position
...
RestoPath;
StopMoveReset;
ENDPROC
StopMove es necesario para poder garantizar que el movimiento detenido originalmente no
se reinicie al principio de la rutina de interrupcin de E/S.
Si no se usa StopMove or con StartMove, el movimiento de la rutina de interrupcin de E/
S continuar inmediatamente y finalizar en ToPoint en la instruccin de movimiento
interrumpida.
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.3. Interrupciones de E/S del sistema con o sin movimiento
Path recovery
1245 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Paro dentro de la trayectoria
VAR robtarget service_pos := [...];
...
PROC proc_stop_on_path()
VAR robtarget stop_pos;
! Current stopped movements on motion base path level
! isnt restarted in the system I/O routine.
StopMove;
! New motion path level for new movements in the system
! I/O routine.
StorePath;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=tool1 \WObj:=wobj1);
! Do the work
MoveJ service_pos, v50, fine, tool1 \WObj:=wobj1;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, tool1, \WObj:=wobj1;
! Go back to motion base path level
RestoPath;
! Reset the stop move state for the interrupted movement
! on motion base path level
StopMoveReset;
ENDPROC
En este ejemplo de tipo, los movimientos interrumpidos se detienen inmediatamente y se
reinician al iniciarse el programa una vez finalizada la rutina de interrupcin de E/S del
sistema.
Recuerde tambin que la herramienta y el objeto de trabajo utilizados se conocen en el
momento de la programacin.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.3. Interrupciones de E/S del sistema con o sin movimiento
Path recovery
3HAC16581-5 Revisin: H 1246


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Pero en el siguiente punto de paro
TASK PERS tooldata used_tool := [...];
TASK PERS wobjdata used_wobj := [...];
...
PROC proc_stop_in_stop_point()
VAR robtarget stop_pos;
! Current move instruction on motion base path level continue
! to its ToPoint and will be finished in a stop point.
StartMove;
! New motion path level for new movements in the system
! I/O routine
StorePath;
! Get current tool and work object data
GetSysData used_tool;
GetSysData used_wobj;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=used_tool \WObj:=used_wobj);
! Do the work
MoveJ Offs(stop_pos,0,0,20),v50,fine,used_tool\WObj:=used_wobj;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, used_tool,\WObj:=used_wobj;
! Go back to motion base path level
RestoPath;
! Reset the stop move state for new movement
! on motion base path level
StopMoveReset;
ENDPROC
En este ejemplo de tipo, los movimientos de la rutina de E/S del sistema continan
inmediatamente y terminan en el punto ToPoint de las instrucciones de movimiento
interrumpidas.
Recuerde tambin que la herramienta y el objeto de trabajo utilizados no se conocen en el
momento de la programacin.
Ejecucin de programas
Comportamiento de ejecucin:
Al inicio de la ejecucin de la rutina de E/S del sistema, el programa abandona su nivel
de ejecucin base.
En la ejecucin de StorePath, el sistema de movimiento abandona su nivel de
ejecucin base.
En la ejecucin de RestoPath, el sistema de movimiento retorna a su nivel de
ejecucin base.
En la ejecucin de ENDPROC, el programa regresa a su nivel de ejecucin base.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.3. Interrupciones de E/S del sistema con o sin movimiento
Path recovery
1247 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Las siguientes instrucciones de RAPID deben usarse en la rutina de E/S del sistema junto con
las instrucciones de movimiento para que funcione:
Informacin relacionada
Instruccin Descripcin
StorePath Entrar en el nuevo nivel de trayectoria de movimiento
RestoPath Retornar al nivel base de trayectoria de movimientos
StopMoveReset Restablecer el estado de paro de movimiento del movimiento
interrumpido en el nivel base de la trayectoria
Para obtener ms informacin sobre Consulte
Ninguna reanudacin del movimiento ya
detenido en el nivel base de trayectoria
StopMove - Detiene el movimiento del robot
en la pgina 523
Reanudacin del movimiento ya detenido en
el nivel base de trayectoria
StartMove - Reanuda el movimiento del robot
en la pgina 494
Para entrar en el nuevo nivel de trayectoria
de movimiento
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Para retornar al nivel base de trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Restablecer el estado de paro de movimiento
del movimiento interrumpido en el nivel base
de la trayectoria
StopMoveReset - Restablece el estado de
movimiento de paro de sistema en la pgina
527
Continuacin
4 Ejemplos de tipos de programacin
4.4. Rutinas TRAP con movimientos
Path Recovery
3HAC16581-5 Revisin: H 1248


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
4.4. Rutinas TRAP con movimientos
Utilizacin
Estos ejemplos de tipo describen cmo usar las instrucciones de movimiento en una rutina
TRAP tras producirse una interrupcin.
Esta funcionalidad slo puede usarse en la tarea principal T_ROB1 o, si se cuenta con un
sistema MultiMove, en las tareas de movimiento.
Descripcin
La rutina TRAP puede iniciar un nuevo movimiento temporal y por ltimo reanudar el
movimiento original. Por ejemplo, puede usarse para ir a una posicin de servicio o limpiar
una pistola cuando se produce una interrupcin.
Para alcanzar esta funcionalidad, deben usarse las instrucciones StorePath - RestoPath
y StartMove en la rutina TRAP.
Ejemplos de tipo
A continuacin aparecen algunos ejemplos de tipo de esta funcionalidad.
Principio
TRAP xxxx
StopMove;
StorePath;
! Move away and back to the interrupted position
...
RestoPath;
StartMove;
ENDTRAP
Si se utiliza StopMove, el movimiento se detiene inmediatamente dentro de la trayectoria en
curso. De lo contrario, el movimiento contina hacia el punto ToPoint de la instruccin de
movimiento actual.
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.4. Rutinas TRAP con movimientos
Path Recovery
1249 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Pero en el siguiente punto de paro
VAR robtarget service_pos := [...];
...
TRAP trap_in_stop_point
VAR robtarget stop_pos;
! Current move instruction on motion base path level continue
! to its ToPoint and will be finished in a stop point.
! New motion path level for new movements in the TRAP
StorePath;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=tool1 \WObj:=wobj1);
! Do the work
MoveJ service_pos, v50, fine, tool1 \WObj:=wobj1;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, tool1, \WObj:=wobj1;
! Go back to motion base path level
RestoPath;
! Restart the interupted movements on motion base path level
StartMove;
ENDTRAP
En este ejemplo de tipo, los movimientos de la rutina TRAP se inician y terminan en el punto
ToPoint de las instrucciones de movimiento interrumpidas. Recuerde tambin que la
herramienta y el objeto de trabajo se conocen en el momento de la programacin.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.4. Rutinas TRAP con movimientos
Path Recovery
3HAC16581-5 Revisin: H 1250


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Paro inmediato dentro de la trayectoria
TASK PERS tooldata used_tool := [...];
TASK PERS wobjdata used_wobj := [...];
...
TRAP trap_stop_at_once
VAR robtarget stop_pos;
! Current move instruction on motion base path level stops
! at once
StopMove;
! New motion path level for new movements in the TRAP
StorePath;
! Get current tool and work object data
GetSysData used_tool;
GetSysData used_wobj;
! Store current position from motion base path level
stop_pos := CRobT(\Tool:=used_tool \WObj:=used_wobj);
! Do the work
MoveJ Offs(stop_pos,0,0,20),v50,fine,used_tool\WObj:=used_wobj;
...
! Move back to interrupted position on the motion base path level
MoveJ stop_pos, v50, fine, used_tool,\WObj:=used_wobj;
! Go back to motion base path level
RestoPath;
! Restart the interupted movements on motion base path level
StartMove;
ENDTRAP
En este ejemplo de tipo, los movimientos de la rutina TRAP comienzan y terminan en la
posicin de la trayectoria en la que se detuvo la instruccin de movimiento interrumpida.
Recuerde tambin que la herramienta y el objeto de trabajo utilizados no se conocen en el
momento de la programacin.
Ejecucin de programas
Comportamiento de ejecucin:
Al inicio de la ejecucin de la rutina TRAP, el programa abandona su nivel de
ejecucin base.
En la ejecucin de StorePath, el sistema de movimiento abandona su nivel de
ejecucin base.
En la ejecucin de RestoPath, el sistema de movimiento retorna a su nivel de
ejecucin base.
En la ejecucin de ENDTRAP, el programa regresa a su nivel de ejecucin base.
Continuacin
Contina en la pgina siguiente
4 Ejemplos de tipos de programacin
4.4. Rutinas TRAP con movimientos
Path Recovery
1251 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
Limitaciones
Las siguientes instrucciones de RAPID deben usarse en la rutina TRAP junto con las
instrucciones de movimiento para que funcione:
Informacin relacionada
Instruccin Descripcin
StorePath Entrar en el nuevo nivel de trayectoria de movimiento
RestoPath Retornar al nivel base de trayectoria de movimientos
StartMove Reanudar los movimientos interrumpidos en el nivel base de
trayectoria de movimientos
Para obtener ms informacin sobre Consulte
Para detener inmediatamente el movimiento
actual
StopMove - Detiene el movimiento del robot
en la pgina 523
Para entrar en el nuevo nivel de trayectoria
de movimiento
StorePath - Almacena la trayectoria cuando
se produce una interrupcin en la pgina 530
Para retornar al nivel base de trayectoria RestoPath - Restablece la trayectoria
despus de una interrupcin en la pgina 370
Para reanudar el movimiento interrumpido StartMove - Reanuda el movimiento del robot
en la pgina 494
Continuacin
ndice
1253 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
A
Abs 765
AccSet 15
ACos 767
ActUnit 17
Add 19
aiotrigg 1079
AliasIO 20
AOutput 768
ArgName 770
ASin 773
Assignment
= 23
ATan 774
ATan2 775
B
BitAnd 776
BitCheck 778
BitClear 25
BitLSh 780
BitNeg 782
BitOr 784
BitRSh 786
BitSet 27
BitXOr 788
BookErrNo 29
bool 1081
Break 31
btnres 1082
busstate 1084
buttondata 1085
byte 1087
ByteToString 790
C
CalcJ ointT 792
CalcRobT 796
CalcRotAxFrameZ 798
CalcRotAxisFrame 802
CallByVar 32
CancelLoad 34
CDate 806
CheckProgRef 36
CirPathMode 37
CJ ointT 807
Clear 43
ClearIOBuff 44
ClearPath 45
ClearRawBytes 49
ClkRead 809
ClkReset 51
ClkStart 52
ClkStop 54
clock 1088
Close 55
CloseDir 56
comment 57
CompactIF 58
confdata 1089
ConfJ 59
ConfL 61
CONNECT 63
CopyFile 65
CopyRawBytes 67
CorrClear 69
CorrCon 70
corrdescr 1095
CorrDiscon 75
CorrRead 810
CorrWrite 76
Cos 811
CPos 812
CRobT 814
CSpeedOverride 817
CTime 819
CTool 820
CWObj 821
D
datapos 1097
DeactUnit 78
Decr 80
DecToHex 822
DefAccFrame 823
DefDFrame 826
DefFrame 829
Dim 832
dionum 1098
dir 1099
Distance 834
DitherAct 81
DitherDeact 83
dnum 1100
DnumToNum 836
DotProd 838
DOutput 840
DropWObj 84
E
EOffsOff 85
EOffsOn 86
EOffsSet 88
EraseModule 90
errdomain 1102
ErrLog 92
errnum 1104
ErrRaise 96
errstr 1110
errtype 1111
ErrWrite 100
etiqueta 208
EulerZYX 842
event_type 1112
EventType 844
exec_level 1113
ExecHandler 846
ExecLevel 847
EXIT 102
ExitCycle 103
Exp 848
ndice
1254 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
extjoint 1114
F
FileSize 849
FileTime 852
FOR 105
FSSize 855
G
gestor de ERROR 1237
GetDataVal 108
GetMecUnitName 858
GetNextMechUnit 859
GetNextSym 862
GetSysData 111
GetSysInfo 864
GetTaskName 867
GetTime 869
GetTrapData 113
GInputDnum 871
GOTO 115
GOutput 873
GOutputDnum 875
GripLoad 117
H
handler_type 1116
HexToDec 877
HollowWristReset 119
I
icondata 1117
IDelete 121
identno 1119
IDisable 122
IEnable 123
IError 124
IF 128
Incr 130
IndAMove 131
IndCMove 135
IndDMove 139
IndInpos 878
IndReset 143
IndRMove 148
IndSpeed 880
intnum 1121
InvertDO 153
IOBusStart 155
IOBusState 156
iodev 1123
IODisable 159
IOEnable 162
iounit_state 1124
IOUnitState 882
IPers 165
IRMQMessage 167
IsFile 885
ISignalAI 171
ISignalAO 182
ISignalDI 186
ISignalDO 189
ISignalGI 192
ISignalGO 195
ISleep 198
IsMechUnitActive 889
IsPers 890
IsStopMoveAct 892
IsStopStateEvent 894
IsSyncMoveOn 896
IsSysId 898
IsVar 899
ITimer 200
IVarValue 203
IWatch 206
J
jointtarget 1125
L
leer bloque 350
listitem 1127
Load 209
loaddata 1128
LoadId 213
loadidnum 1133
loadsession 1134
M
MakeDir 219
ManLoadIdProc 220
MaxRobSpeed 901
MechUnitLoad 224
mecunit 1135
MirPos 902
ModExist 904
ModTime 905
MotionPlannerNo 907
MotionSup 228
motsetdata 1137
MoveAbsJ 231
MoveC 237
MoveCDO 244
MoveCSync 248
MoveExtJ 252
MoveJ 255
MoveJ DO 260
MoveJ Sync 264
MoveL 268
MoveLDO 273
MoveLSync 277
MToolRotCalib 281
MToolTCPCalib 284
N
NonMotionMode 909
NOrient 911
num 1142
NumToDnum 913
NumToStr 914
ndice
1255 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
O
Offs 916
opcalc 1144
Open 287
OpenDir 291
OpMode 918
opnum 1145
orient 1146
OrientZYX 919
ORobT 921
P
PackDNHeader 293
PackRawBytes 296
paridnum 1150
ParIdPosVaild 923
ParIdRobValid 926
paridvalidnum 1152
PathAccLim 300
PathLevel 929
pathrecid 1154
PathRecMoveBwd 303
PathRecMoveFwd 311
PathRecStart 314
PathRecStop 317
PathRecValidBwd 931
PathRecValidFwd 934
PathResol 320
PDispOff 323
PDispOn 324
PDispSet 328
PFRestart 938
pos 1156
pose 1158
PoseInv 939
PoseMult 940
PoseVect 942
Pow 944
PPMovedInManMode 945
Present 946
ProcCall 330
ProcerrRecovery 332
progdisp 1159
ProgMemFree 948
PulseDO 338
R
RAISE 341
RaiseToUser 344
rawbytes 1161
RawBytesLen 949
ReadAnyBin 347
ReadBin 951
ReadBlock 350
ReadCfgData 352
ReadDir 953
ReadErrData 356
ReadMotor 956
ReadNum 958
ReadRawBytes 359
ReadStr 961
ReadStrBin 965
ReadVar 967
RelTool 969
RemainingRetries 971
RemoveDir 362
RemoveFile 364
RenameFile 365
Reset 367
ResetPPMoved 368
ResetRetryCount 369
restartdata 1163
RestoPath 370
RETRY 372
RETURN 373
Rewind 375
RMQEmptyQueue 377
RMQFindSlot 379
RMQGetMessage 381
RMQGetMsgData 384
RMQGetMsgHeader 387
RMQGetSlotName 972
rmqheader 1167
rmqmessage 1169
RMQReadWait 390
RMQSendMessage 393
RMQSendWait 397
rmqslot 1170
robjoint 1171
RobName 974
RobOS 976
robtarget 1172
Round 977
RunMode 979
Rutinas de servicio 1240, 1244
Rutinas TRAP 1248
S
Save 403
SCWrite 406
SearchC 409
SearchExtJ 417
SearchL 424
SenDevice 433
Set 435
SetAllDataVal 437
SetAO 439
SetDataSearch 441
SetDataVal 445
SetDO 448
SetGO 450
SetSysData 453
shapedata 1176
signalxx 1178
Sin 981
SingArea 455
SkipWarn 457
SocketAccept 458
SocketBind 461
SocketClose 463
ndice
1256 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
SocketConnect 465
SocketCreate 468
socketdev 1180
SocketGetStatus 982
SocketListen 470
SocketReceive 472
SocketSend 477
socketstatus 1181
SoftAct 481
SoftDeact 483
speeddata 1182
SpeedRefresh 484
SpyStart 487
SpyStop 489
Sqrt 985
StartLoad 490
StartMove 494
StartMoveRetry 497
STCalcForce 986
STCalcTorque 988
STCalib 500
STClose 504
StepBwdPath 507
STIndGun 509
STIndGunReset 511
STIsCalib 990
STIsClosed 992
STIsIndGun 994
STIsOpen 995
SToolRotCalib 512
SToolTCPCalib 515
Stop 518
STOpen 521
StopMove 523
StopMoveReset 527
stoppointdata 1186
StorePath 530
StrDigCalc 997
StrDigCmp 1000
StrFind 1003
string 1192
stringdig 997, 1194
StrLen 1005
StrMap 1006
StrMatch 1008
StrMemb 1010
StrOrder 1012
StrPart 1015
StrToByte 1017
StrToVal 1020
STTune 532
STTuneReset 536
switch 1195
symnum 1196
syncident 1198
SyncMoveOff 537
SyncMoveOn 542
SyncMoveResume 549
SyncMoveSuspend 551
SyncMoveUndo 553
system data 1199
SystemStopAction 555
T
Tan 1022
taskid 1202
TaskRunMec 1023
TaskRunRob 1024
tasks 1203
TasksInSync 1025
TEST 557
TestAndSet 1027
TestDI 1030
testsignal 1205
TestSignDefine 559
TestSignRead 1031
TestSignReset 561
TextGet 1033
TextTabFreeToUse 1035
TextTabGet 1037
TextTabInstall 562
tooldata 1206
TPErase 564
tpnum 1211
TPReadFK 565
TPReadNum 570
TPShow 573
TPWrite 574
trapdata 1212
TriggC 576
TriggCheckIO 583
triggdata 1214
TriggEquip 588
TriggInt 594
TriggIO 598
triggios 1215
TriggJ 603
TriggL 610
TriggLIOs 617
TriggRampAO 623
TriggSpeed 629
TriggStopProc 637
triggstrgo 1218
Trunc 1039
TryInt 643
TRYNEXT 645
TuneReset 646
TuneServo 647
tunetype 1221
U
UIAlphaEntry 1041
UIClientExist 1046
UIListView 1047
UIMessageBox 1054
UIMsgBox 653
UINumEntry 1061
UINumTune 1067
UIShow 660
uishownum 1222
UnLoad 664
ndice
1257 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
UnpackRawBytes 667
V
ValidIO 1073
ValToStr 1075
VectMagn 1077
VelSet 671
W
WaitAI 673
WaitAO 675
WaitDI 677
WaitDO 679
WaitGI 681
WaitGO 684
WaitLoad 687
WaitRob 692
WaitSyncTask 694
WaitTestAndSet 698
WaitTime 701
WaitUntil 703
WaitWObj 706
WarmStart 709
WHILE 710
wobjdata 1223
WorldAccLim 712
Write 714
WriteAnyBin 718
WriteBin 721
WriteBlock 724
WriteCfgData 726
WriteRawBytes 730
WriteStrBin 732
WriteVar 734
WZBoxDef 737
WZCylDef 739
WZDisable 742
WZDOSet 744
WZEnable 748
WZFree 750
WZHomeJ ointDef 752
WZLimJ ointDef 755
WZLimSup 759
WZSphDef 762
wzstationary 1227
wztemporary 1229
Z
zonedata 1231
ndice
1258 3HAC16581-5 Revisin: H


C
o
p
y
r
i
g
h
t

2
0
0
4
-
2
0
0
9

A
B
B
.

R
e
s
e
r
v
a
d
o
s

t
o
d
o
s

l
o
s

d
e
r
e
c
h
o
s
.
ABB AB
Robotics Products
S-721 68 VSTERS
SUECIA
Telfono: +46 (0) 21 344000
Fax: +46 (0) 21 132592
3
H
A
C
1
6
5
8
1
-
5
,

R
e
v
i
s
i

n

H
,

e
s

También podría gustarte